Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: 로그인시 일기 데이터 추가 #64

Merged
merged 1 commit into from
Feb 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ public ResponseEntity<KakaoLoginResponseDTO> login(@RequestParam(value = "code")
}

Long userId = logInService.getUserId(email);

logInService.insertData(userId);

KakaoLoginResponseDTO kakaoLoginResponseDTO = new KakaoLoginResponseDTO(jwt, userId, nickname);
return ResponseEntity.ok().body(kakaoLoginResponseDTO);
}
Expand Down Expand Up @@ -100,6 +103,9 @@ public ResponseEntity<KakaoLoginResponseDTO> loginLocal(@RequestParam(value = "c
}

Long userId = logInService.getUserId(email);

logInService.insertData(userId);

KakaoLoginResponseDTO kakaoLoginResponseDTO = new KakaoLoginResponseDTO(jwt, userId, nickname);
return ResponseEntity.ok().body(kakaoLoginResponseDTO);
}
Expand Down
11 changes: 9 additions & 2 deletions src/main/java/com/kuit/chatdiary/domain/Diary.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.kuit.chatdiary.domain;

import jakarta.annotation.Nullable;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand Down Expand Up @@ -48,7 +47,15 @@ public class Diary {
@ColumnDefault("'ACTIVE'")
private String status;

// @OneToMany(mappedBy = "diary")
public Diary(Member member, Date diaryDate, String title, String content, String status) {
this.member = member;
this.diaryDate = diaryDate;
this.title = title;
this.content = content;
this.status = status;
}

// @OneToMany(mappedBy = "diary")
// private List<DiaryTag> diaryTagList = new ArrayList<>();


Expand Down
5 changes: 4 additions & 1 deletion src/main/java/com/kuit/chatdiary/domain/DiaryPhoto.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,8 @@ public class DiaryPhoto {
@JoinColumn(name="photo_id")
private Photo photo;


public DiaryPhoto(Diary diary, Photo photo) {
this.diary = diary;
this.photo = photo;
}
}
4 changes: 4 additions & 0 deletions src/main/java/com/kuit/chatdiary/domain/DiaryTag.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,8 @@ public class DiaryTag {
@JoinColumn(name="tag_id")
private Tag tag;

public DiaryTag(Diary diary, Tag tag) {
this.diary = diary;
this.tag = tag;
}
}
8 changes: 8 additions & 0 deletions src/main/java/com/kuit/chatdiary/domain/Photo.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.Optional;

@Entity(name="photo")
@Getter
@Setter
Expand All @@ -21,4 +23,10 @@ public class Photo {

@Column(name = "image_url")
private String imageUrl;

public Photo(Chat chat, String imageUrl) {
this.chat = chat;
this.imageUrl = imageUrl;
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package com.kuit.chatdiary.repository;

import com.kuit.chatdiary.domain.Chat;
import com.kuit.chatdiary.domain.ChatType;
import com.kuit.chatdiary.domain.Member;
import com.kuit.chatdiary.domain.Sender;
import jakarta.persistence.EntityManager;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.kuit.chatdiary.repository;

import com.kuit.chatdiary.domain.DiaryPhoto;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DiaryPhotoRepository extends JpaRepository<DiaryPhoto, Long> {
}
16 changes: 14 additions & 2 deletions src/main/java/com/kuit/chatdiary/repository/DiaryRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@
import com.kuit.chatdiary.dto.diary.DiaryModifyRequestDTO;
import com.kuit.chatdiary.dto.diary.DiaryShowDetailResponseDTO;
import jakarta.persistence.EntityManager;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Repository;
import org.springframework.web.server.ResponseStatusException;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

Expand Down Expand Up @@ -234,5 +233,18 @@ public DiaryDeleteResponseDTO deleteDiary(DiaryDeleteRequestDTO diaryDeleteReque
}


@Transactional
public Diary insertDiary(Member member) throws ParseException {
//diaryDate
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
java.util.Date utilDate = dateFormat.parse("20240214");
java.sql.Date diaryDate = new java.sql.Date(utilDate.getTime());

Diary diary = new Diary(member, diaryDate, "테니스 첫걸음", "오늘은 테니스의 첫 수업이 있는 날이었다. 아침에 일어나서부터 설레임이 가득했다. 처음이라 그런지 자세부터 배우느라 정말 힘들었다. 선생님이 추가 레슨을 해주셔서 정말 감사했다. 한 시간이 금새 지나갔고 아직은 부족하지만, 얼른 배워서 멋지게 치고 싶은 욕심이 생겼다. 나는 테니스를 경기할 수 있을 정도의 실력을 갖추기 위해 열심히 배우고 싶다는 다짐을 하며 하루를 마무리했다.", "ACTIVE");

em.persist(diary);

return diary;

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.kuit.chatdiary.repository;

import com.kuit.chatdiary.domain.Photo;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PhotoRepository extends JpaRepository<Photo, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.kuit.chatdiary.repository;

import com.kuit.chatdiary.domain.Tag;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TagRepository extends JpaRepository<Tag, Long> {
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@

import com.kuit.chatdiary.domain.Diary;
import com.kuit.chatdiary.domain.DiaryTag;
import com.kuit.chatdiary.domain.Member;
import com.kuit.chatdiary.domain.Tag;
import com.kuit.chatdiary.repository.TagRepository;
import jakarta.persistence.EntityManager;
import jakarta.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.sql.Date;
Expand All @@ -12,8 +17,12 @@
public class DiaryTagRepository {
private final EntityManager em;

public DiaryTagRepository(EntityManager em) {
@Autowired
private final TagRepository tagRepository;

public DiaryTagRepository(EntityManager em, TagRepository tagRepository) {
this.em = em;
this.tagRepository = tagRepository;
}

public List<Object[]> findTagStatisticsByMember(Long memberId, Date startDate, Date endDate) {
Expand All @@ -29,4 +38,18 @@ public List<Object[]> findTagStatisticsByMember(Long memberId, Date startDate, D
}


@Transactional
public void insertDiaryTag(Diary diary) {

Tag tag1 = tagRepository.findById(1L)
.orElseThrow(() -> new RuntimeException("Tag not found"));
DiaryTag diaryTag1 = new DiaryTag(diary, tag1);
em.persist(diaryTag1);

Tag tag2 = tagRepository.findById(8L)
.orElseThrow(() -> new RuntimeException("Tag not found"));
DiaryTag diaryTag2 = new DiaryTag(diary, tag2);
em.persist(diaryTag2);

}
}
86 changes: 82 additions & 4 deletions src/main/java/com/kuit/chatdiary/service/LogInService.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.kuit.chatdiary.domain.Member;
import com.kuit.chatdiary.repository.MemberRepository;
import com.kuit.chatdiary.domain.*;
import com.kuit.chatdiary.repository.*;
import com.kuit.chatdiary.repository.diary.DiaryTagRepository;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
Expand All @@ -20,6 +21,7 @@
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Optional;
Expand All @@ -31,11 +33,34 @@ public class LogInService {
@Autowired
private final MemberRepository memberRepository;

@Autowired
private final DiaryRepository diaryRepository;

@Autowired
private final DiaryTagRepository diaryTagRepository;

@Autowired
private final ChatRepository chatRepository;

@Autowired
private final PhotoRepository photoRepository;

@Autowired
private final DiaryPhotoRepository diaryPhotoRepository;




@Value("${KAKAO_API_KEY}")
private String kakaoApiKey;

public LogInService(MemberRepository memberRepository) {
public LogInService(MemberRepository memberRepository, DiaryRepository diaryRepository, DiaryTagRepository diaryTagRepository, ChatRepository chatRepository, PhotoRepository photoRepository, DiaryPhotoRepository diaryPhotoRepository) {
this.memberRepository = memberRepository;
this.diaryRepository = diaryRepository;
this.diaryTagRepository = diaryTagRepository;
this.chatRepository = chatRepository;
this.photoRepository = photoRepository;
this.diaryPhotoRepository = diaryPhotoRepository;
}

// AccessToken 발급하는 메서드
Expand Down Expand Up @@ -171,7 +196,60 @@ public void saveMember(String nickname, String email) {

public Long getUserId(String email){
Long userId = memberRepository.findByEmail(email).get().getUserId();
// System.out.println("getUserId에서 UserId: "+member.getUserId());
return userId;
}

public void insertData(Long userId) throws ParseException {

Member member = memberRepository.findById(userId)
.orElseThrow(() -> new RuntimeException("Member not found"));

// diary
Diary diary = diaryRepository.insertDiary(member);


//diarytag
diaryTagRepository.insertDiaryTag(diary);


//chat
Chat chat1 = new Chat(member, Sender.USER,"안녕", ChatType.CHAT);
chatRepository.save(chat1);
Chat chat2 = new Chat(member, Sender.DADA,"안녕하세요, 오늘 하루는 어땠어요?", ChatType.CHAT);
chatRepository.save(chat2);
Chat chat3 = new Chat(member, Sender.USER,"오늘 테니스 수업 듣고왔어", ChatType.CHAT);
chatRepository.save(chat3);
Chat chat4 = new Chat(member, Sender.DADA,"우와! 테니스 수업 어땠어요? 재밌었나요?", ChatType.CHAT);
chatRepository.save(chat4);
Chat chat5 = new Chat(member, Sender.USER,"첫 수업이라 자세만 잡았는데 그것도 힘들더라!", ChatType.CHAT);
chatRepository.save(chat5);
Chat chat6 = new Chat(member, Sender.DADA,"처음이라 어색하고 힘들 수도 있어요. 연습하다 보면 점점 나아질 거예요, 힘내요!", ChatType.CHAT);
chatRepository.save(chat6);
Chat chat7 = new Chat(member, Sender.USER,"https://chatdiary-bucket.s3.ap-northeast-2.amazonaws.com/test_images/upload_938f1186-e55f-43f7-bee4-c946816197b1.jpg", ChatType.IMG);
chatRepository.save(chat7);
Chat chat8 = new Chat(member, Sender.DADA,"테니스 코트에서 연습한 흔적이 보이네요! 공도 많고 라켓도 멋있어요. 열심히 하셨나봐요!", ChatType.CHAT);
chatRepository.save(chat8);
Chat chat9 = new Chat(member, Sender.USER,"선생님이 추가 레슨도 해주셔서 1시간 정도 쳤어", ChatType.CHAT);
chatRepository.save(chat9);
Chat chat10 = new Chat(member, Sender.DADA,"와, 선생님께서 추가로 레슨해주시다니 정말 행운이네요! 계속 연습하면 더 잘하게 될 거예요!", ChatType.CHAT);
chatRepository.save(chat10);
Chat chat11 = new Chat(member, Sender.USER,"얼른 배워서 멋있게 치고싶어!", ChatType.CHAT);
chatRepository.save(chat11);
Chat chat12 = new Chat(member, Sender.DADA,"정말 멋진 목표예요! 열심히 연습해서 멋진 플레이어가 될 수 있을 거예요, 화이팅!", ChatType.CHAT);
chatRepository.save(chat12);
Chat chat13 = new Chat(member, Sender.USER,"테니스 경기 할 수 있을 정도로 열심히 배워볼게", ChatType.CHAT);
chatRepository.save(chat13);
Chat chat14 = new Chat(member, Sender.DADA,"그래요! 그 정도 실력이 되면 정말 재밌겠어요! 꼭 목표 달성하시길 바랄게요!", ChatType.CHAT);
chatRepository.save(chat14);

//photo
Photo photo = new Photo(chat7, "https://chatdiary-bucket.s3.ap-northeast-2.amazonaws.com/test_images/upload_938f1186-e55f-43f7-bee4-c946816197b1.jpg");
photoRepository.save(photo);

//diaryphoto
DiaryPhoto diaryPhoto = new DiaryPhoto(diary, photo);
diaryPhotoRepository.save(diaryPhoto);


}
}
Loading