From cfa32649111586be06b30d7cdb9ac5d745c9a40c Mon Sep 17 00:00:00 2001 From: MinchoGreenT Date: Tue, 24 Sep 2024 11:01:14 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[fix]=20=EC=9D=B4=EB=AF=B8=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=ED=95=9C=20=ED=8C=9C=ED=81=B4=EB=9F=BD=20=EC=84=B1?= =?UTF-8?q?=EA=B3=B5=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/farmclub/exception/FarmClubErrorCode.java | 3 ++- .../domain/farmclub/helper/UserFarmClubHelper.java | 6 ++++++ .../domain/farmclub/service/FarmClubService.java | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/exception/FarmClubErrorCode.java b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/exception/FarmClubErrorCode.java index c149c0e..040815b 100644 --- a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/exception/FarmClubErrorCode.java +++ b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/exception/FarmClubErrorCode.java @@ -11,7 +11,8 @@ public enum FarmClubErrorCode implements ResponseCode { FARM_CLUB_NOT_FOUND(3001, "해당 팜클럽을 찾을 수 없습니다."), USER_FARM_CLUB_NOT_FOUND(3002, "해당 등록 정보를 찾을 수 없습니다."), MISSION_POST_NOT_FOUND(3003, "해당 미션 포스트를 찾을 수 없습니다."), - MISSION_POST_COMMENT_NOT_FOUND(3004, "해당 미션 포스트 댓글을 찾을 수 없습니다."); + MISSION_POST_COMMENT_NOT_FOUND(3004, "해당 미션 포스트 댓글을 찾을 수 없습니다."), + USER_FARM_CLUB_COMPLETE(3005, "이미 완료된 팜클럽입니다."); private final int code; private final String message; diff --git a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/helper/UserFarmClubHelper.java b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/helper/UserFarmClubHelper.java index b47b2e9..03ed3f4 100644 --- a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/helper/UserFarmClubHelper.java +++ b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/helper/UserFarmClubHelper.java @@ -39,4 +39,10 @@ public Optional findFarmClubByMyVeggieId(Long myVeggieId){ public SuccessFarmClubVo getFarmClubRecord(Long userId, Long farmClubId) { return userFarmClubRepository.getFarmClubRecord(userId, farmClubId); } + + public void checkUserFarmClubComplete(UserFarmClub userFarmClub) { + if (userFarmClub.isComplete()) { + throw new FarmClubEntityNotFoundException("이미 완료된 팜클럽입니다.", FarmClubErrorCode.USER_FARM_CLUB_COMPLETE); + } + } } diff --git a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/service/FarmClubService.java b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/service/FarmClubService.java index 5195a83..238505e 100644 --- a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/service/FarmClubService.java +++ b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/service/FarmClubService.java @@ -116,6 +116,7 @@ public RegisterFarmClubResponseDto registerFarmClub(Long farmClubId, Long myVegg @Transactional public SuccessFarmClubResponseDto successFarmClub(Long farmClubId, Long userId) { UserFarmClub userFarmClub = userFarmClubHelper.findByUserIdAndFarmClubId(userId, farmClubId); + userFarmClubHelper.checkUserFarmClubComplete(userFarmClub); userFarmClub.updateComplete(); SuccessFarmClubVo farmClubRecord = userFarmClubHelper.getFarmClubRecord(userId, farmClubId); String period = historyHelper.createFarmClubHistoryDetail(userId, userFarmClub.getId(), userFarmClub.getFarmClub().getVeggieInfoId()); From 9ad24f6d94337a897726e68ad5bd4309cdca7fb5 Mon Sep 17 00:00:00 2001 From: MinchoGreenT Date: Tue, 24 Sep 2024 11:21:56 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[fix]=20=EB=AF=B8=EC=85=98=20=EB=8C=93?= =?UTF-8?q?=EA=B8=80=20=EC=8B=A0=EA=B3=A0=20=EC=8B=9C=20=EC=8B=A0=EA=B3=A0?= =?UTF-8?q?=20=EC=9C=A0=EB=AC=B4=20=EC=97=86=EC=95=A0=EA=B3=A0=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=9E=90=EC=B2=B4=EB=A5=BC=20=EB=82=B4?= =?UTF-8?q?=EB=A0=A4=EC=A3=BC=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/MissionPostRepositoryImpl.java | 14 ++++++++++---- .../domain/farmclub/vo/MissionPostCommentVo.java | 8 +++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/repository/MissionPostRepositoryImpl.java b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/repository/MissionPostRepositoryImpl.java index e038e9d..51af6af 100644 --- a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/repository/MissionPostRepositoryImpl.java +++ b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/repository/MissionPostRepositoryImpl.java @@ -62,12 +62,11 @@ public GetMissionPostCommentResponseDto getMissionPostComment(Long missionPostId .select(new QMissionPostCommentVo( missionPostComment, user, - Expressions.constant(userId), - missionPostComment.id.in(reportCommentIds) + Expressions.constant(userId) )) .from(missionPostComment) .join(missionPostComment.missionPost, missionPost) - .where(missionPost.id.eq(missionPostId)) + .where(missionPost.id.eq(missionPostId).and(missionPostComment.id.notIn(reportCommentIds))) .fetch(); Boolean isMyPost = queryFactory @@ -88,6 +87,12 @@ public List getMissionPostList(Long userId, Long farmClubId) { .where(missionPostReport.user.id.eq(userId)) .fetch(); + List reportCommentIds = queryFactory + .select(missionPostCommentReport.missionPostComment.id) + .from(missionPostCommentReport) + .where(missionPostCommentReport.user.id.eq(userId)) + .fetch(); + return queryFactory .select(new QMissionPostVo( missionPost, @@ -97,7 +102,8 @@ public List getMissionPostList(Long userId, Long farmClubId) { .where(missionPostLike.missionPost.eq(missionPost)), JPAExpressions.select(missionPostComment.count()) .from(missionPostComment) - .where(missionPostComment.missionPost.eq(missionPost)), + .where(missionPostComment.missionPost.eq(missionPost) + .and(missionPostComment.id.notIn(reportCommentIds))), JPAExpressions.selectOne() .from(missionPostLike) .where(missionPostLike.missionPost.eq(missionPost) diff --git a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/vo/MissionPostCommentVo.java b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/vo/MissionPostCommentVo.java index 96b0ac2..524ab2e 100644 --- a/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/vo/MissionPostCommentVo.java +++ b/src/main/java/com/modernfarmer/farmusspring/domain/farmclub/vo/MissionPostCommentVo.java @@ -11,11 +11,10 @@ public record MissionPostCommentVo( String profileImage, String date, String content, - Boolean isMyComment, - Boolean isReported + Boolean isMyComment ) { @QueryProjection - public MissionPostCommentVo(MissionPostComment missionPostComment, User user, Long myId, Boolean isReported) + public MissionPostCommentVo(MissionPostComment missionPostComment, User user, Long myId) { this( missionPostComment.getId(), @@ -23,8 +22,7 @@ public MissionPostCommentVo(MissionPostComment missionPostComment, User user, Lo user.getProfileImage(), missionPostComment.getCreatedDate().toString(), missionPostComment.getComment(), - user.getId().equals(myId), - isReported + user.getId().equals(myId) ); } }