From 69f136489f036dbf256f8004b5a4166ce7bc94a9 Mon Sep 17 00:00:00 2001 From: minjoon-98 <4kmj54321@gmail.com> Date: Wed, 24 Jul 2024 00:07:04 +0900 Subject: [PATCH] chore: add isAnyAnswerModified in getFaceChallenge API --- build.gradle | 1 - .../controller/ChallengeController.java | 2 +- .../namanmoo/service/AnswerService.java | 3 ++ .../namanmoo/service/AnswerServiceImpl.java | 13 ++++++++ .../namanmoo/service/ChallengeDataInit.java | 32 +++++++++---------- 5 files changed, 33 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 6b27832..47f2209 100644 --- a/build.gradle +++ b/build.gradle @@ -41,7 +41,6 @@ dependencies { runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' - // Other dependencies runtimeOnly 'com.mysql:mysql-connector-j' implementation 'commons-codec:commons-codec:1.13' diff --git a/src/main/java/ongjong/namanmoo/controller/ChallengeController.java b/src/main/java/ongjong/namanmoo/controller/ChallengeController.java index 1f3c54e..1451fa0 100644 --- a/src/main/java/ongjong/namanmoo/controller/ChallengeController.java +++ b/src/main/java/ongjong/namanmoo/controller/ChallengeController.java @@ -262,7 +262,7 @@ public ApiResponse getFaceChallenge( assert family != null; // isComplete 계산 로직 - boolean isComplete = answerService.isAnyAnswerComplete(challenge, family); + boolean isComplete = answerService.isAnyAnswerModified(challenge, family); // 화상 통화 챌린지 정보 DTO 생성 FaceChallengeDto challengeDto = new FaceChallengeDto(challenge, timestamp, isComplete, inviteCode); diff --git a/src/main/java/ongjong/namanmoo/service/AnswerService.java b/src/main/java/ongjong/namanmoo/service/AnswerService.java index c4c5430..eaa3d83 100644 --- a/src/main/java/ongjong/namanmoo/service/AnswerService.java +++ b/src/main/java/ongjong/namanmoo/service/AnswerService.java @@ -25,6 +25,9 @@ public interface AnswerService { // 가족 구성원들의 답변 유무 검사 boolean isAnyAnswerComplete(Challenge challenge, Family family); + // 가족 구성원들의 답변 수정 유무 검사 (FaceChallenge 조회에서 사용) + boolean isAnyAnswerModified(Challenge challenge, Family family); + // 답변 수정 Answer modifyAnswer(Long challengeId, String answerContent) throws Exception; diff --git a/src/main/java/ongjong/namanmoo/service/AnswerServiceImpl.java b/src/main/java/ongjong/namanmoo/service/AnswerServiceImpl.java index 2b380ed..b4493eb 100644 --- a/src/main/java/ongjong/namanmoo/service/AnswerServiceImpl.java +++ b/src/main/java/ongjong/namanmoo/service/AnswerServiceImpl.java @@ -173,6 +173,19 @@ public boolean isAnyAnswerComplete(Challenge challenge, Family family) { return false; } + @Override + @Transactional(readOnly = true) + public boolean isAnyAnswerModified(Challenge challenge, Family family) { + List members = family.getMembers(); + for (Member member : members) { + Optional answer = answerRepository.findByChallengeAndMember(challenge, member); + if (answer.isPresent() && answer.get().getModifiedDate() != null) { + return true; + } + } + return false; + } + // 답변 수정 @Override public Answer modifyAnswer(Long challengeId, String answerContent) throws Exception{ // 로그인한 맴버가 수정한 답변을 저장한다. diff --git a/src/main/java/ongjong/namanmoo/service/ChallengeDataInit.java b/src/main/java/ongjong/namanmoo/service/ChallengeDataInit.java index 6d8510f..289b59e 100644 --- a/src/main/java/ongjong/namanmoo/service/ChallengeDataInit.java +++ b/src/main/java/ongjong/namanmoo/service/ChallengeDataInit.java @@ -39,10 +39,10 @@ public void createChallenges() { challenges.add(createChallenge(12, "요즘 고민이 있다면 무엇일까요?", ChallengeType.NORMAL)); challenges.add(createChallenge(13, "나의 어렸을 때 장래희망은 ◯◯였다.", ChallengeType.NORMAL)); challenges.add(createChallenge(14, "가족과 함께한 휴가나 여행 사진을 공유해 주세요.", ChallengeType.PHOTO)); - challenges.add(createChallenge(15, "도전! 한 소절/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); - challenges.add(createChallenge(15, "도전! 한 소절/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); - challenges.add(createChallenge(15, "도전! 한 소절/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티!", ChallengeType.VOICE3)); - challenges.add(createChallenge(15, "도전! 한 소절/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); + challenges.add(createChallenge(15, "도전! 한 소절!/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); + challenges.add(createChallenge(15, "도전! 한 소절!/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); + challenges.add(createChallenge(15, "도전! 한 소절!/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티", ChallengeType.VOICE3)); + challenges.add(createChallenge(15, "도전! 한 소절!/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); challenges.add(createChallenge(16, "어렸을 때 가장 좋아했던 놀이 또는 게임은 무엇인가요?", ChallengeType.NORMAL)); challenges.add(createChallenge(17, "가족과 가장 닮은 점, 혹은 닮고 싶은 점이 있나요?", ChallengeType.NORMAL)); challenges.add(createChallenge(18, "어릴 적 가장 기억에 남는 생일 선물은 무엇이었나요?", ChallengeType.NORMAL)); @@ -75,10 +75,10 @@ public void createChallenges() { challenges.add(createChallenge(42, "요즘 고민이 있다면 무엇일까요?", ChallengeType.NORMAL)); challenges.add(createChallenge(43, "나의 어렸을 때 장래희망은 ◯◯였다.", ChallengeType.NORMAL)); challenges.add(createChallenge(44, "가족과 함께한 휴가나 여행 사진을 공유해 주세요.", ChallengeType.PHOTO)); - challenges.add(createChallenge(45, "도전! 한 소절/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); - challenges.add(createChallenge(45, "도전! 한 소절/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); - challenges.add(createChallenge(45, "도전! 한 소절/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티!", ChallengeType.VOICE3)); - challenges.add(createChallenge(45, "도전! 한 소절/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); + challenges.add(createChallenge(45, "도전! 한 소절!/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); + challenges.add(createChallenge(45, "도전! 한 소절!/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); + challenges.add(createChallenge(45, "도전! 한 소절!/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티", ChallengeType.VOICE3)); + challenges.add(createChallenge(45, "도전! 한 소절!/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); challenges.add(createChallenge(46, "어렸을 때 가장 좋아했던 놀이 또는 게임은 무엇인가요?", ChallengeType.NORMAL)); challenges.add(createChallenge(47, "가족과 가장 닮은 점, 혹은 닮고 싶은 점이 있나요?", ChallengeType.NORMAL)); challenges.add(createChallenge(48, "어릴 적 가장 기억에 남는 생일 선물은 무엇이었나요?", ChallengeType.NORMAL)); @@ -111,10 +111,10 @@ public void createChallenges() { challenges.add(createChallenge(72, "요즘 고민이 있다면 무엇일까요?", ChallengeType.NORMAL)); challenges.add(createChallenge(73, "나의 어렸을 때 장래희망은 ◯◯였다.", ChallengeType.NORMAL)); challenges.add(createChallenge(74, "가족과 함께한 휴가나 여행 사진을 공유해 주세요.", ChallengeType.PHOTO)); - challenges.add(createChallenge(75, "도전! 한 소절/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); - challenges.add(createChallenge(75, "도전! 한 소절/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); - challenges.add(createChallenge(75, "도전! 한 소절/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티!", ChallengeType.VOICE3)); - challenges.add(createChallenge(75, "도전! 한 소절/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); + challenges.add(createChallenge(75, "도전! 한 소절!/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); + challenges.add(createChallenge(75, "도전! 한 소절!/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); + challenges.add(createChallenge(75, "도전! 한 소절!/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티", ChallengeType.VOICE3)); + challenges.add(createChallenge(75, "도전! 한 소절!/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); challenges.add(createChallenge(76, "어렸을 때 가장 좋아했던 놀이 또는 게임은 무엇인가요?", ChallengeType.NORMAL)); challenges.add(createChallenge(77, "가족과 가장 닮은 점, 혹은 닮고 싶은 점이 있나요?", ChallengeType.NORMAL)); challenges.add(createChallenge(78, "어릴 적 가장 기억에 남는 생일 선물은 무엇이었나요?", ChallengeType.NORMAL)); @@ -147,10 +147,10 @@ public void createChallenges() { challenges.add(createChallenge(102, "요즘 고민이 있다면 무엇일까요?", ChallengeType.NORMAL)); challenges.add(createChallenge(103, "나의 어렸을 때 장래희망은 ◯◯였다.", ChallengeType.NORMAL)); challenges.add(createChallenge(104, "가족과 함께한 휴가나 여행 사진을 공유해 주세요.", ChallengeType.PHOTO)); - challenges.add(createChallenge(105, "도전! 한 소절/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); - challenges.add(createChallenge(105, "도전! 한 소절/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); - challenges.add(createChallenge(105, "도전! 한 소절/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티!", ChallengeType.VOICE3)); - challenges.add(createChallenge(105, "도전! 한 소절/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); + challenges.add(createChallenge(105, "도전! 한 소절!/우리 지금 만나, 당장 만나/우리 지금 만나-리쌍", ChallengeType.VOICE1)); + challenges.add(createChallenge(105, "도전! 한 소절!/너무나 많이 사랑한 죄/사랑앓이-FT아일랜드", ChallengeType.VOICE2)); + challenges.add(createChallenge(105, "도전! 한 소절!/행복하자 우리 행복하자 아프지 말고/양화대교-자이언티", ChallengeType.VOICE3)); + challenges.add(createChallenge(105, "도전! 한 소절!/난 너를 사랑해 이 세상은 너뿐이야/붉은 노을-빅뱅", ChallengeType.VOICE4)); challenges.add(createChallenge(106, "어렸을 때 가장 좋아했던 놀이 또는 게임은 무엇인가요?", ChallengeType.NORMAL)); challenges.add(createChallenge(107, "가족과 가장 닮은 점, 혹은 닮고 싶은 점이 있나요?", ChallengeType.NORMAL)); challenges.add(createChallenge(108, "어릴 적 가장 기억에 남는 생일 선물은 무엇이었나요?", ChallengeType.NORMAL));