diff --git a/src/main/java/com/beotkkot/qtudy/domain/category/Category.java b/src/main/java/com/beotkkot/qtudy/domain/category/Category.java index 8f3c20c..a3615ec 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/category/Category.java +++ b/src/main/java/com/beotkkot/qtudy/domain/category/Category.java @@ -5,10 +5,8 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; -import lombok.Setter; @Getter -@Setter @NoArgsConstructor @AllArgsConstructor @Entity diff --git a/src/main/java/com/beotkkot/qtudy/domain/comments/Comments.java b/src/main/java/com/beotkkot/qtudy/domain/comments/Comments.java index 12a5bd0..2ca4235 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/comments/Comments.java +++ b/src/main/java/com/beotkkot/qtudy/domain/comments/Comments.java @@ -5,7 +5,6 @@ @Builder @Getter -@Setter @NoArgsConstructor @AllArgsConstructor @Entity @@ -24,4 +23,8 @@ public class Comments { private String content; private String createdAt; + + public void updateContent(String content) { + this.content = content; + } } diff --git a/src/main/java/com/beotkkot/qtudy/domain/interests/Interests.java b/src/main/java/com/beotkkot/qtudy/domain/interests/Interests.java index a9999e1..ffcfd4b 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/interests/Interests.java +++ b/src/main/java/com/beotkkot/qtudy/domain/interests/Interests.java @@ -7,10 +7,8 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; -import lombok.Setter; @Getter -@Setter @NoArgsConstructor @AllArgsConstructor @Entity diff --git a/src/main/java/com/beotkkot/qtudy/domain/posts/Posts.java b/src/main/java/com/beotkkot/qtudy/domain/posts/Posts.java index 733d969..722de89 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/posts/Posts.java +++ b/src/main/java/com/beotkkot/qtudy/domain/posts/Posts.java @@ -10,7 +10,6 @@ @Builder -@Setter @Getter @NoArgsConstructor @AllArgsConstructor @@ -44,7 +43,7 @@ public class Posts { private String updatedAt; - public void patchPost(PostsRequestDto dto) { + public void patchPost(PostsRequestDto dto, String summary) { Date now = Date.from(Instant.now()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String updateDatetime = simpleDateFormat.format(now); @@ -55,6 +54,7 @@ public void patchPost(PostsRequestDto dto) { this.updatedAt = updateDatetime; this.tag = tagString; this.categoryId = dto.getCategoryId(); + this.summary = summary; } public void increaseScrapCount() { @@ -64,4 +64,8 @@ public void increaseScrapCount() { public void decreaseScrapCount() { this.scrapCount--; } + + public void updateCommentCount(int commentCount) { + this.commentCount = commentCount; + } } diff --git a/src/main/java/com/beotkkot/qtudy/domain/primaryKey/InterestsPK.java b/src/main/java/com/beotkkot/qtudy/domain/primaryKey/InterestsPK.java index ee11932..5052fb5 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/primaryKey/InterestsPK.java +++ b/src/main/java/com/beotkkot/qtudy/domain/primaryKey/InterestsPK.java @@ -4,12 +4,10 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; -import lombok.Setter; import java.io.Serializable; @Getter -@Setter @NoArgsConstructor @AllArgsConstructor public class InterestsPK implements Serializable { diff --git a/src/main/java/com/beotkkot/qtudy/domain/primaryKey/ScrapPk.java b/src/main/java/com/beotkkot/qtudy/domain/primaryKey/ScrapPk.java index 291643b..f26928b 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/primaryKey/ScrapPk.java +++ b/src/main/java/com/beotkkot/qtudy/domain/primaryKey/ScrapPk.java @@ -4,12 +4,10 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; -import lombok.Setter; import java.io.Serializable; @Getter -@Setter @NoArgsConstructor @AllArgsConstructor public class ScrapPk implements Serializable { diff --git a/src/main/java/com/beotkkot/qtudy/domain/quiz/Quiz.java b/src/main/java/com/beotkkot/qtudy/domain/quiz/Quiz.java index 6ab71cf..193fdb5 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/quiz/Quiz.java +++ b/src/main/java/com/beotkkot/qtudy/domain/quiz/Quiz.java @@ -5,7 +5,6 @@ @Builder @Getter -@Setter @NoArgsConstructor @AllArgsConstructor @Entity diff --git a/src/main/java/com/beotkkot/qtudy/domain/quiz/Review.java b/src/main/java/com/beotkkot/qtudy/domain/quiz/Review.java index c766966..5a1f9c9 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/quiz/Review.java +++ b/src/main/java/com/beotkkot/qtudy/domain/quiz/Review.java @@ -5,7 +5,6 @@ @Builder @Getter -@Setter @NoArgsConstructor @AllArgsConstructor @Entity diff --git a/src/main/java/com/beotkkot/qtudy/domain/tags/Tags.java b/src/main/java/com/beotkkot/qtudy/domain/tags/Tags.java index 3529b2b..7d942c0 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/tags/Tags.java +++ b/src/main/java/com/beotkkot/qtudy/domain/tags/Tags.java @@ -1,13 +1,10 @@ package com.beotkkot.qtudy.domain.tags; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; -@Setter @Getter +@Builder @NoArgsConstructor @AllArgsConstructor @Entity diff --git a/src/main/java/com/beotkkot/qtudy/domain/user/Users.java b/src/main/java/com/beotkkot/qtudy/domain/user/Users.java index 5b6276e..1d013a0 100644 --- a/src/main/java/com/beotkkot/qtudy/domain/user/Users.java +++ b/src/main/java/com/beotkkot/qtudy/domain/user/Users.java @@ -1,11 +1,16 @@ package com.beotkkot.qtudy.domain.user; import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; -import lombok.Setter; +import lombok.NoArgsConstructor; @Entity -@Getter @Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor public class Users { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") @@ -18,4 +23,8 @@ public class Users { private String profileImageUrl; private boolean first; + + public void updateFirst() { + this.first = false; + } } diff --git a/src/main/java/com/beotkkot/qtudy/dto/request/comments/CommentsRequestDto.java b/src/main/java/com/beotkkot/qtudy/dto/request/comments/CommentsRequestDto.java index 2adfb7b..096261d 100644 --- a/src/main/java/com/beotkkot/qtudy/dto/request/comments/CommentsRequestDto.java +++ b/src/main/java/com/beotkkot/qtudy/dto/request/comments/CommentsRequestDto.java @@ -12,9 +12,8 @@ @Getter public class CommentsRequestDto { private String content; - private Long userUid; - public Comments toEntity(Long postId) { + public Comments toEntity(Long postId, Long userUid) { Date now = Date.from(Instant.now()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String writeDatetime = simpleDateFormat.format(now); diff --git a/src/main/java/com/beotkkot/qtudy/dto/request/posts/PostsRequestDto.java b/src/main/java/com/beotkkot/qtudy/dto/request/posts/PostsRequestDto.java index c691e2d..6266454 100644 --- a/src/main/java/com/beotkkot/qtudy/dto/request/posts/PostsRequestDto.java +++ b/src/main/java/com/beotkkot/qtudy/dto/request/posts/PostsRequestDto.java @@ -18,7 +18,7 @@ public class PostsRequestDto { private Long categoryId; private String summary; - public Posts toEntity(Long uid) { + public Posts toEntity(Long uid, String summary) { Date now = Date.from(Instant.now()); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String writeDatetime = simpleDateFormat.format(now); diff --git a/src/main/java/com/beotkkot/qtudy/service/auth/AuthService.java b/src/main/java/com/beotkkot/qtudy/service/auth/AuthService.java index 1785109..465406a 100644 --- a/src/main/java/com/beotkkot/qtudy/service/auth/AuthService.java +++ b/src/main/java/com/beotkkot/qtudy/service/auth/AuthService.java @@ -4,6 +4,7 @@ import com.beotkkot.qtudy.dto.object.KakaoUserInfo; import com.beotkkot.qtudy.dto.response.ResponseDto; import com.beotkkot.qtudy.dto.response.auth.AuthResponseDto; +import com.beotkkot.qtudy.repository.user.UserRepository; import com.beotkkot.qtudy.service.user.UserService; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -31,6 +32,7 @@ public class AuthService { @Value("${OAUTH_CLIENT_ID}") private String OAUTH_CLIENT_ID; private final UserService userService; + private final UserRepository userRepository; // 1. 코드를 이용해 카카오로부터 토큰 얻기 public String getAccessToken(String code) { @@ -50,7 +52,7 @@ public String getAccessToken(String code) { MultiValueMap params = new LinkedMultiValueMap<>(); params.add("grant_type","authorization_code"); params.add("client_id", OAUTH_CLIENT_ID); - params.add("redirect_uti", "https://qtudy.site/auth/redirected/kakao"); + params.add("redirect_uri", "http://localhost:3000/auth/redirected/kakao"); params.add("code", code); // header, body를 가진 엔티티 @@ -119,20 +121,17 @@ public KakaoUserInfo getKakaoUserInfo(String accessToken) { // 3. 사용자 정보를 DB에서 조회하고, 가입되지 않은 사용자라면 DB에 저장 후 해당 사용자 반환 public Users login(KakaoUserInfo kakaoUserInfo) { Long kakaoId = kakaoUserInfo.getId(); // 사용자의 카카오 아이디 불러오기 - Users findUser = userService.findUserKaKaoId(kakaoId); // 카카오 아이디로 유저 조회 + Users findUser = userRepository.findByKakaoId(kakaoId); // 카카오 아이디로 유저 조회 // 가입되지 않은 사용자라면 if (findUser == null) { // DB에 새로 저장 userService.saveUser(kakaoUserInfo); // 사용자 재조회 - findUser = userService.findUserKaKaoId(kakaoId); - // 최초 사용자로 설정 - findUser.setFirst(true); - System.out.println("findUser.isFirst() = " + findUser.isFirst()); + findUser = userRepository.findByKakaoId(kakaoId); } else { // 이미 가입한 사용자라면 if (findUser.isFirst()) { - findUser.setFirst(false); + findUser.updateFirst(); } } return findUser; diff --git a/src/main/java/com/beotkkot/qtudy/service/comments/CommentService.java b/src/main/java/com/beotkkot/qtudy/service/comments/CommentService.java index 265fa8f..06d52bb 100644 --- a/src/main/java/com/beotkkot/qtudy/service/comments/CommentService.java +++ b/src/main/java/com/beotkkot/qtudy/service/comments/CommentService.java @@ -46,9 +46,7 @@ public ResponseEntity saveComment(Long postId, Long return CommentsResponseDto.notExistedUser(); } else { // 댓글 엔티티 생성 - Comments comment = dto.toEntity(postId); - comment.setContent(dto.getContent()); - comment.setUserUid(userUid); + Comments comment = dto.toEntity(postId, userUid); // 댓글 저장 commentRepo.save(comment); @@ -56,7 +54,7 @@ public ResponseEntity saveComment(Long postId, Long // postRespo의 commentCount 업데이트 int commentCount = commentRepo.countByPostId(postId); Posts post = postRepo.findByPostId(postId); - post.setCommentCount(commentCount); + post.updateCommentCount(commentCount); } } catch (Exception exception) { log.info("error " + exception.getMessage()); @@ -101,7 +99,7 @@ public ResponseEntity patchComment(Long postId, Lon if (!comment.getUserUid().equals(userUid)) { return CommentsResponseDto.noPermission(); } - comment.setContent(dto.getContent()); + comment.updateContent(dto.getContent()); } } catch (Exception exception) { log.info("error " + exception.getMessage()); @@ -130,7 +128,7 @@ public ResponseEntity deleteComment(Long post // postRespo의 commentCount 업데이트 int commentCount = commentRepo.countByPostId(postId); Posts post = postRepo.findByPostId(postId); - post.setCommentCount(commentCount); + post.updateCommentCount(commentCount); } } catch (Exception exception) { log.info("error " + exception.getMessage()); diff --git a/src/main/java/com/beotkkot/qtudy/service/posts/PostsService.java b/src/main/java/com/beotkkot/qtudy/service/posts/PostsService.java index 9d21497..949351a 100644 --- a/src/main/java/com/beotkkot/qtudy/service/posts/PostsService.java +++ b/src/main/java/com/beotkkot/qtudy/service/posts/PostsService.java @@ -51,9 +51,6 @@ public ResponseEntity savePost(Long kakao_uid, PostsRe if (userRepo.findByKakaoId(kakao_uid) != null) { - // 포스트 엔티티 생성 - Posts post = dto.toEntity(kakao_uid); - // 태그 처리 List postTags = dto.getTag(); @@ -66,23 +63,21 @@ public ResponseEntity savePost(Long kakao_uid, PostsRe increasedTag.add(tagName); } else { // 새로운 태그인 경우 태그를 생성하고 count를 1로 초기화함 - Tags newTag = new Tags(); - newTag.setName(tagName); - newTag.setCount(1); // 새로운 태그의 count를 1로 초기화 - newTag.setCategoryId(dto.getCategoryId()); + Tags newTag = Tags.builder() + .name(tagName) + .count(1) + .categoryId(dto.getCategoryId()) + .build(); newTagList.add(newTag); } } - // 저장된 태그 목록을 포스트에 설정 - String tagString = String.join(",", postTags); - post.setTag(tagString); - // postRepo에 해당 유저가 작성한 글에 대한 요약본 저장하는 부분 추가 String summary = summaryService.summary(dto.getContent()); - post.setContent(dto.getContent()); - post.setSummary(summary); + + // 포스트 엔티티 생성 + Posts post = dto.toEntity(kakao_uid, summary); // 포스트 저장 후 postId 반환 Posts savedPost = postsRepo.save(post); @@ -196,9 +191,11 @@ public ResponseEntity patchPost(Long postId, Long kaka tag.increaseTagCount(); } else { // 새로운 태그인 경우 태그를 생성하고 count를 1로 초기화함 - Tags newTag = new Tags(); - newTag.setName(tagName); - newTag.setCount(1); // 새로운 태그의 count를 1로 초기화 + Tags newTag = Tags.builder() + .name(tagName) + .count(1) + .categoryId(dto.getCategoryId()) + .build(); // 새로운 태그를 저장 tagRepo.save(newTag); @@ -206,12 +203,11 @@ public ResponseEntity patchPost(Long postId, Long kaka } } - post.patchPost(dto); // 요약 String summary = summaryService.summary(dto.getContent()); - post.setContent(dto.getContent()); - post.setSummary(summary); + + post.patchPost(dto, summary); postsRepo.save(post); diff --git a/src/main/java/com/beotkkot/qtudy/service/quiz/QuizService.java b/src/main/java/com/beotkkot/qtudy/service/quiz/QuizService.java index 0a32865..d198f75 100644 --- a/src/main/java/com/beotkkot/qtudy/service/quiz/QuizService.java +++ b/src/main/java/com/beotkkot/qtudy/service/quiz/QuizService.java @@ -63,7 +63,7 @@ public String generateQuiz(GenerateQuizRequestDto genQuizReqDto) throws JsonProc Map requestBody = new HashMap<>(); requestBody.put("messages", messages); - requestBody.put("model", "gpt-4-1106-preview"); + requestBody.put("model","gpt-3.5-turbo"); // "gpt-4-1106-preview" requestBody.put("temperature", 0.0f); requestBody.put("max_tokens", 4000); @@ -103,15 +103,18 @@ public String generateQuiz(GenerateQuizRequestDto genQuizReqDto) throws JsonProc @Transactional public void saveQuiz(PostQuizRequestDto saveQuizDto) { - Quiz quiz = new Quiz(); + String optionsString = String.join(",", saveQuizDto.getQuizDto().getOptions()); - quiz.setPostId(saveQuizDto.getPostId()); - quiz.setTags(saveQuizDto.getTags()); - quiz.setQuestion(saveQuizDto.getQuizDto().getQuestion()); - quiz.setAnswer(saveQuizDto.getQuizDto().getAnswer()); - quiz.setOptions(optionsString); - quiz.setExplanation(saveQuizDto.getQuizDto().getExplanation()); + Quiz quiz = Quiz.builder() + .postId(saveQuizDto.getPostId()) + .tags(saveQuizDto.getTags()) + .question(saveQuizDto.getQuizDto().getQuestion()) + .answer(saveQuizDto.getQuizDto().getAnswer()) + .options(optionsString) + .explanation(saveQuizDto.getQuizDto().getExplanation()) + .build(); + quizRepo.save(quiz); } @@ -197,20 +200,22 @@ public ResponseEntity gradeQuiz(GradeQuizRequestDt } // 오답노트 entity에 저장 - Review newReview = new Review(); - newReview.setUserId(uuid); - newReview.setPostId(quiz.getPostId()); - newReview.setQuizId(quiz.getQuizId()); - newReview.setReviewId(reviewId); - newReview.setType(dto.getType()); - newReview.setCreatedAt(writeDatetime); - newReview.setUserAnswer(userAnswerList.get(i)); - newReview.setAnswer(answerList.get(i)); - newReview.setCorrect(correct); - newReview.setExplanation(quiz.getExplanation()); - newReview.setCategoryId(post.getCategoryId()); - newReview.setScore(score); - newReview.setTags(quiz.getTags()); + Review newReview = Review.builder() + .userId(uuid) + .postId(quiz.getPostId()) + .quizId(quiz.getQuizId()) + .reviewId(reviewId) + .type(dto.getType()) + .createdAt(writeDatetime) + .userAnswer(userAnswerList.get((i))) + .answer(answerList.get(i)) + .correct(correct) + .explanation(quiz.getExplanation()) + .categoryId(post.getCategoryId()) + .score(score) + .tags(quiz.getTags()) + .build(); + reviewRepo.save(newReview); gradeList.add(QuizGradeListItem.of(quiz, correct, userAnswerList.get(i))); diff --git a/src/main/java/com/beotkkot/qtudy/service/user/UserService.java b/src/main/java/com/beotkkot/qtudy/service/user/UserService.java index 1b57cb3..0be7ccb 100644 --- a/src/main/java/com/beotkkot/qtudy/service/user/UserService.java +++ b/src/main/java/com/beotkkot/qtudy/service/user/UserService.java @@ -26,10 +26,12 @@ public Long saveUser(KakaoUserInfo kakaoUserInfo) { */ // User 엔티티 생성 - Users user = new Users(); - user.setName(name); - user.setKakaoId(kakaoUserInfo.getId()); - user.setProfileImageUrl(kakaoUserInfo.getProfileImageUrl()); + Users user = Users.builder() + .name(name) + .kakaoId(kakaoUserInfo.getId()) + .profileImageUrl(kakaoUserInfo.getProfileImageUrl()) + .first(true) + .build(); // 유저 저장 userRepository.save(user);