From 03ca19f288ce7320f1897590db290c7a797d87fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 16:47:41 +0900 Subject: [PATCH 01/11] =?UTF-8?q?refactor:=20=EB=8F=88=EA=B8=B8=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20API=20Mapper=20=EB=A0=88=EC=9D=B4=EC=96=B4?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=ED=95=98=EC=97=AC=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=86=A0=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChallengeController.java | 33 +++++++++++++++++++ .../ceos/bankids/mapper/ChallengeMapper.java | 16 +++------ 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index c96cfbe8..3316d892 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -1,5 +1,38 @@ package com.ceos.bankids.controller; +import com.ceos.bankids.config.CommonResponse; +import com.ceos.bankids.domain.User; +import com.ceos.bankids.dto.ChallengeDTO; +import com.ceos.bankids.mapper.ChallengeMapper; +import com.ceos.bankids.mapper.request.ChallengeRequest; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +@RequestMapping("/challenge") +@RequiredArgsConstructor public class ChallengeController { + private final ChallengeMapper challengeMapper; + + @ApiOperation(value = "돈길 생성") + @PostMapping(produces = "application/json; charset=utf-8") + public CommonResponse postChallenge(@AuthenticationPrincipal User authUser, + @RequestBody + ChallengeRequest challengeRequest) { + + log.info("api = 돈길 생성, req = {}", challengeRequest); + + ChallengeDTO challengeDTO = challengeMapper.postChallenge(authUser, challengeRequest); + + return CommonResponse.onSuccess(challengeDTO); + } + } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index fcf49824..caf42ec4 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -42,19 +42,16 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; @Slf4j -@RestController -@RequestMapping("/challenge") +@Service @RequiredArgsConstructor public class ChallengeMapper { @@ -67,13 +64,10 @@ public class ChallengeMapper { private final ParentServiceImpl parentService; private final KidServiceImpl kidService; - @ApiOperation(value = "돈길 생성") - @PostMapping(produces = "application/json; charset=utf-8") - public CommonResponse postChallenge(@AuthenticationPrincipal User authUser, + // 돈길 생성 API Mapper + public ChallengeDTO postChallenge(@AuthenticationPrincipal User authUser, @Valid @RequestBody ChallengeRequest challengeRequest) { - log.info("api = 돈길 생성, req = {}", challengeRequest); - // validation sundayValidation(); userRoleValidation(authUser, true); @@ -93,7 +87,7 @@ public CommonResponse postChallenge(@AuthenticationPrincipal User // 저장로직 성공시 알림 로직 notificationService.createPendingChallengeNotification(contractUser, challengeUser); - return CommonResponse.onSuccess(challengeDTO); + return challengeDTO; } @ApiOperation(value = "돈길 포기하기") From 90e90fb69fc36eefe5779277f5c15571c991b25f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 16:51:20 +0900 Subject: [PATCH 02/11] =?UTF-8?q?refactor:=20=EB=8F=88=EA=B8=B8=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20API=20Mapper=20=EA=B5=AC=EC=A1=B0=EB=A1=9C?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChallengeController.java | 14 +++++++++++ .../ceos/bankids/mapper/ChallengeMapper.java | 24 +++++-------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index 3316d892..c1fab02c 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -9,6 +9,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -35,4 +37,16 @@ public CommonResponse postChallenge(@AuthenticationPrincipal User return CommonResponse.onSuccess(challengeDTO); } + @ApiOperation(value = "돈길 포기하기") + @DeleteMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8") + public CommonResponse deleteChallenge(@AuthenticationPrincipal User authUser, + @PathVariable Long challengeId) { + + log.info("api = 돈길 포기하기, user = {} challengeId = {}", authUser.getUsername(), challengeId); + + ChallengeDTO challengeDTO = challengeMapper.deleteChallenge(authUser, challengeId); + + return CommonResponse.onSuccess(challengeDTO); + } + } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index caf42ec4..3ff85a7c 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -43,7 +43,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -65,8 +64,7 @@ public class ChallengeMapper { private final KidServiceImpl kidService; // 돈길 생성 API Mapper - public ChallengeDTO postChallenge(@AuthenticationPrincipal User authUser, - @Valid @RequestBody ChallengeRequest challengeRequest) { + public ChallengeDTO postChallenge(User authUser, ChallengeRequest challengeRequest) { // validation sundayValidation(); @@ -90,13 +88,7 @@ public ChallengeDTO postChallenge(@AuthenticationPrincipal User authUser, return challengeDTO; } - @ApiOperation(value = "돈길 포기하기") - @DeleteMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8") - public CommonResponse deleteChallenge( - @AuthenticationPrincipal User authUser, - @PathVariable Long challengeId) { - - log.info("api = 돈길 포기하기, user = {} challengeId = {}", authUser.getUsername(), challengeId); + public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { userRoleValidation(authUser, true); ChallengeUser challengeUser = challengeUserService.getChallengeUser(challengeId); @@ -107,28 +99,24 @@ public CommonResponse deleteChallenge( if (deleteChallenge.getChallengeStatus() == ChallengeStatus.WALKING) { kidService.checkKidDeleteChallenge(authUser); challengeUserService.deleteChallengeUser(authUser, challengeId); - ChallengeDTO deleteWalkingChallengeDTO = challengeService.deleteWalkingChallenge( + return challengeService.deleteWalkingChallenge( authUser, challengeUser); - return CommonResponse.onSuccess(deleteWalkingChallengeDTO); } else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.FAILED) { challengeUserService.deleteChallengeUser(authUser, challengeId); - ChallengeDTO deleteFailedChallengeDTO = challengeService.deleteWalkingChallenge( + return challengeService.deleteWalkingChallenge( authUser, challengeUser); - return CommonResponse.onSuccess(deleteFailedChallengeDTO); } else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.REJECTED) { challengeUserService.deleteChallengeUser(authUser, challengeId); - ChallengeDTO deleteRejectedChallengeDTO = challengeService.deleteRejectedChallenge( + return challengeService.deleteRejectedChallenge( authUser, challengeUser); - return CommonResponse.onSuccess(deleteRejectedChallengeDTO); } else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.PENDING) { challengeUserService.deleteChallengeUser(authUser, challengeId); - ChallengeDTO deletePendingChallengeDTO = challengeService.deletePendingChallenge( + return challengeService.deletePendingChallenge( authUser, challengeUser); - return CommonResponse.onSuccess(deletePendingChallengeDTO); } throw new BadRequestException(ErrorCode.CANT_DELETE_CHALLENGE_STATUS.getErrorCode()); From 17813021f34ea75230e017ce414f38d543b83730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 16:56:42 +0900 Subject: [PATCH 03/11] =?UTF-8?q?refactor:=20=EB=8F=88=EA=B8=B8=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=20API=20Mapper=20=EA=B5=AC=EC=A1=B0?= =?UTF-8?q?=EB=A1=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChallengeController.java | 32 +++++++++++++++++++ .../ceos/bankids/mapper/ChallengeMapper.java | 17 +++------- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index c1fab02c..9b3b3640 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -3,17 +3,21 @@ import com.ceos.bankids.config.CommonResponse; import com.ceos.bankids.domain.User; import com.ceos.bankids.dto.ChallengeDTO; +import com.ceos.bankids.dto.KidChallengeListDTO; import com.ceos.bankids.mapper.ChallengeMapper; import com.ceos.bankids.mapper.request.ChallengeRequest; import io.swagger.annotations.ApiOperation; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @Slf4j @@ -49,4 +53,32 @@ public CommonResponse deleteChallenge(@AuthenticationPrincipal Use return CommonResponse.onSuccess(challengeDTO); } + @ApiOperation(value = "돈길 리스트 가져오기") + @GetMapping(produces = "application/json; charset=utf-8") + public CommonResponse> getListChallenge( + @AuthenticationPrincipal User authUser, @RequestParam String status) { + + log.info("api = 돈길 리스트 가져오기, user = {}, status = {}", authUser.getUsername(), status); + + List challengeDTOList = challengeMapper.getListChallenge(authUser, status); + + return CommonResponse.onSuccess(challengeDTOList); + } + + @ApiOperation(value = "자녀의 돈길 리스트 가져오기") + @GetMapping(value = "/kid/{kidId}", produces = "application/json; charset=utf-8") + public CommonResponse getListKidChallenge( + @AuthenticationPrincipal User authUser, @PathVariable Long kidId, + @RequestParam String status) { + + log.info("api = 자녀의 돈길 리스트 가져오기, user = {}, kidId = {}, status = {}", + authUser.getUsername(), kidId, status); + + KidChallengeListDTO kidChallengeListDTO = challengeMapper.getListKidChallenge(authUser, + kidId, + status); + + return CommonResponse.onSuccess(kidChallengeListDTO); + } + } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index 3ff85a7c..ad408efa 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -122,10 +122,7 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { throw new BadRequestException(ErrorCode.CANT_DELETE_CHALLENGE_STATUS.getErrorCode()); } - @ApiOperation(value = "돈길 리스트 가져오기") - @GetMapping(produces = "application/json; charset=utf-8") - public CommonResponse> getListChallenge( - @AuthenticationPrincipal User authUser, @RequestParam String status) { + public List getListChallenge(User authUser, String status) { log.info("api = 돈길 리스트 가져오기, user = {}, status = {}", authUser.getUsername(), status); if (!Objects.equals(status, "walking") && !Objects.equals(status, "pending")) { @@ -167,17 +164,11 @@ public CommonResponse> getListChallenge( }); } - return CommonResponse.onSuccess(challengeDTOList); + return challengeDTOList; } - @ApiOperation(value = "자녀의 돈길 리스트 가져오기") - @GetMapping(value = "/kid/{kidId}", produces = "application/json; charset=utf-8") - public CommonResponse getListKidChallenge( - @AuthenticationPrincipal User authUser, @PathVariable Long kidId, - @RequestParam String status) { + public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String status) { - log.info("api = 자녀의 돈길 리스트 가져오기, user = {}, kidId = {}, status = {}", - authUser.getUsername(), kidId, status); Kid kid = kidService.getKid(kidId); User kidUser = kid.getUser(); List challengeDTOList = new ArrayList<>(); @@ -219,7 +210,7 @@ public CommonResponse getListKidChallenge( } KidChallengeListDTO kidChallengeListDTO = new KidChallengeListDTO(kidUser, challengeDTOList); - return CommonResponse.onSuccess(kidChallengeListDTO); + return kidChallengeListDTO; } @ApiOperation(value = "자녀의 돈길 수락 / 거절") From 087eece230672ff848bc6d134c8def002a56c073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 17:02:46 +0900 Subject: [PATCH 04/11] =?UTF-8?q?refactor:=20=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20API=20Mapper=20=EA=B5=AC=EC=A1=B0=EB=A1=9C?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChallengeController.java | 42 +++++++++++++++++++ .../ceos/bankids/mapper/ChallengeMapper.java | 41 +++++++----------- 2 files changed, 57 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index 9b3b3640..07fe34c4 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -4,15 +4,20 @@ import com.ceos.bankids.domain.User; import com.ceos.bankids.dto.ChallengeDTO; import com.ceos.bankids.dto.KidChallengeListDTO; +import com.ceos.bankids.dto.KidWeekDTO; +import com.ceos.bankids.dto.WeekDTO; import com.ceos.bankids.mapper.ChallengeMapper; import com.ceos.bankids.mapper.request.ChallengeRequest; +import com.ceos.bankids.mapper.request.KidChallengeRequest; import io.swagger.annotations.ApiOperation; import java.util.List; +import javax.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -81,4 +86,41 @@ public CommonResponse getListKidChallenge( return CommonResponse.onSuccess(kidChallengeListDTO); } + @ApiOperation(value = "자녀의 돈길 수락 / 거절") + @PatchMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8") + public CommonResponse patchChallengeStatus(@AuthenticationPrincipal User authUser, + @PathVariable Long challengeId, + @Valid @RequestBody KidChallengeRequest kidChallengeRequest) { + + log.info("api = 자녀의 돈길 수락 / 거절, user = {}, challengeId = {}, 수락여부 = {}", + authUser.getUsername(), challengeId, kidChallengeRequest.getAccept()); + + ChallengeDTO challengeDTO = challengeMapper.patchChallengeStatus(authUser, challengeId, + kidChallengeRequest); + + return CommonResponse.onSuccess(challengeDTO); + } + + @ApiOperation(value = "주차 정보 가져오기") + @GetMapping(value = "/progress", produces = "application/json; charset=utf-8") + public CommonResponse getWeekInfo(@AuthenticationPrincipal User authUser) { + + log.info("api = 주차 정보 가져오기, user = {}", authUser.getUsername()); + + WeekDTO weekInfo = challengeMapper.getWeekInfo(authUser); + + return CommonResponse.onSuccess(weekInfo); + } + + @ApiOperation(value = "자녀의 주차 정보 가져오기") + @GetMapping(value = "/kid/progress/{kidId}", produces = "application/json; charset=utf-8") + public CommonResponse getKidWeekInfo(@AuthenticationPrincipal User authUser, + @PathVariable Long kidId) { + + log.info("api = 자녀의 주차 정보 가져오기, user = {}, kid = {}", authUser.getUsername(), kidId); + + KidWeekDTO kidWeekInfo = challengeMapper.getKidWeekInfo(authUser, kidId); + + return CommonResponse.onSuccess(kidWeekInfo); + } } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index ad408efa..0423e2a3 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -38,7 +38,6 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -import javax.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -46,7 +45,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @Slf4j @@ -88,6 +86,7 @@ public ChallengeDTO postChallenge(User authUser, ChallengeRequest challengeReque return challengeDTO; } + // 돈길 삭제 API Mapper public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { userRoleValidation(authUser, true); @@ -122,6 +121,7 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { throw new BadRequestException(ErrorCode.CANT_DELETE_CHALLENGE_STATUS.getErrorCode()); } + // 돈길 리스트 가져오기 API Mapper public List getListChallenge(User authUser, String status) { log.info("api = 돈길 리스트 가져오기, user = {}, status = {}", authUser.getUsername(), status); @@ -167,6 +167,7 @@ public List getListChallenge(User authUser, String status) { return challengeDTOList; } + // 자녀의 돈길 리스트 가져오기 API Mapper public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String status) { Kid kid = kidService.getKid(kidId); @@ -208,19 +209,14 @@ public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String } }); } - KidChallengeListDTO kidChallengeListDTO = new KidChallengeListDTO(kidUser, + return new KidChallengeListDTO(kidUser, challengeDTOList); - return kidChallengeListDTO; } - @ApiOperation(value = "자녀의 돈길 수락 / 거절") - @PatchMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8") - public CommonResponse patchChallengeStatus(@AuthenticationPrincipal User authUser, - @PathVariable Long challengeId, - @Valid @RequestBody KidChallengeRequest kidChallengeRequest) { + // 돈길 수락 / 거절 API Mapper + public ChallengeDTO patchChallengeStatus(User authUser, Long challengeId, + KidChallengeRequest kidChallengeRequest) { - log.info("api = 자녀의 돈길 수락 / 거절, user = {}, challengeId = {}, 수락여부 = {}", - authUser.getUsername(), challengeId, kidChallengeRequest.getAccept()); ChallengeUser challengeUser = challengeUserService.getChallengeUser(challengeId); User user = challengeUser.getUser(); Challenge challenge = challengeService.readChallenge(challengeId); @@ -233,36 +229,30 @@ public CommonResponse patchChallengeStatus(@AuthenticationPrincipa kidService.updateKidTotalChallenge(user); parentService.updateParentAcceptedChallenge(authUser); notificationService.notification(challenge, user); - return CommonResponse.onSuccess(challengeDTO); + return challengeDTO; } else { ChallengeDTO challengeDTO = challengeService.updateChallengeStatusToRejected(challenge, kidChallengeRequest, authUser); notificationService.notification(challenge, user); - return CommonResponse.onSuccess(challengeDTO); + return challengeDTO; } } - @ApiOperation(value = "주차 정보 가져오기") - @GetMapping(value = "/progress", produces = "application/json; charset=utf-8") - public CommonResponse getWeekInfo(@AuthenticationPrincipal User authUser) { + // 주차 정보 가져오기 API Mapper + public WeekDTO getWeekInfo(User authUser) { - log.info("api = 주차 정보 가져오기, user = {}", authUser.getUsername()); List walkingChallengeList = challengeUserService.getChallengeUserList(authUser, "walking") .stream() .filter(challenge -> challenge.getChallengeStatus() == ChallengeStatus.WALKING).collect( Collectors.toList()); - WeekDTO weekDTO = challengeService.readWeekInfo(walkingChallengeList); - return CommonResponse.onSuccess(weekDTO); + return challengeService.readWeekInfo(walkingChallengeList); } - @ApiOperation(value = "자녀의 주차 정보 가져오기") - @GetMapping(value = "/kid/progress/{kidId}", produces = "application/json; charset=utf-8") - public CommonResponse getKidWeekInfo(@AuthenticationPrincipal User authUser, - @PathVariable Long kidId) { + // 자녀의 주차 정보 가져오기 API Mapper + public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) { - log.info("api = 자녀의 주차 정보 가져오기, user = {}, kid = {}", authUser.getUsername(), kidId); Kid kid = kidService.getKid(kidId); User kidUser = kid.getUser(); familyUserService.checkSameFamily(authUser, kidUser); @@ -272,9 +262,8 @@ public CommonResponse getKidWeekInfo(@AuthenticationPrincipal User a .filter(challenge -> challenge.getChallengeStatus() == ChallengeStatus.WALKING).collect( Collectors.toList()); WeekDTO weekDTO = challengeService.readWeekInfo(kidWalkingChallengeList); - KidWeekDTO kidWeekDTO = new KidWeekDTO(kid, weekDTO); - return CommonResponse.onSuccess(kidWeekDTO); + return new KidWeekDTO(kid, weekDTO); } @ApiOperation(value = "완주한 돈길 리스트 가져오기") From 7b1742a94cd4063ca95d9a51717e2998bf9fe1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 17:07:03 +0900 Subject: [PATCH 05/11] =?UTF-8?q?refactor:=20=EC=99=84=EC=A3=BC=ED=95=9C?= =?UTF-8?q?=20=EB=8F=88=EA=B8=B8=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20API=20Map?= =?UTF-8?q?per=20=EA=B5=AC=EC=A1=B0=EB=A1=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChallengeController.java | 29 +++++++++++++++++++ .../ceos/bankids/mapper/ChallengeMapper.java | 28 ++++++------------ 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index 07fe34c4..b46ed298 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -2,7 +2,9 @@ import com.ceos.bankids.config.CommonResponse; import com.ceos.bankids.domain.User; +import com.ceos.bankids.dto.AchievedChallengeListDTO; import com.ceos.bankids.dto.ChallengeDTO; +import com.ceos.bankids.dto.KidAchievedChallengeListDTO; import com.ceos.bankids.dto.KidChallengeListDTO; import com.ceos.bankids.dto.KidWeekDTO; import com.ceos.bankids.dto.WeekDTO; @@ -123,4 +125,31 @@ public CommonResponse getKidWeekInfo(@AuthenticationPrincipal User a return CommonResponse.onSuccess(kidWeekInfo); } + + @ApiOperation(value = "완주한 돈길 리스트 가져오기") + @GetMapping(value = "/achieved", produces = "application/json; charset=utf-8") + public CommonResponse getAchievedListChallenge( + @AuthenticationPrincipal User authUser, @RequestParam String interestPayment) { + + log.info("api = 완주한 돈길 리스트 가져오기, user = {}", authUser.getUsername()); + + AchievedChallengeListDTO achievedListChallenge = challengeMapper.getAchievedListChallenge( + authUser, interestPayment); + + return CommonResponse.onSuccess(achievedListChallenge); + } + + @ApiOperation(value = "자녀의 완주한 돈길 리스트 가져오기") + @GetMapping(value = "kid/achieved/{kidId}", produces = "application/json; charset=utf-8") + public CommonResponse getKidAchievedListChallenge( + @AuthenticationPrincipal User authUser, @PathVariable Long kidId, + @RequestParam String interestPayment) { + + log.info("api = 완주한 돈길 리스트 가져오기, user = {}, kid = {}", authUser.getUsername(), kidId); + + KidAchievedChallengeListDTO kidAchievedListChallenge = challengeMapper.getKidAchievedListChallenge( + authUser, kidId, interestPayment); + + return CommonResponse.onSuccess(kidAchievedListChallenge); + } } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index 0423e2a3..deb2f87c 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -42,10 +42,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestParam; @Slf4j @Service @@ -266,37 +264,29 @@ public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) { return new KidWeekDTO(kid, weekDTO); } - @ApiOperation(value = "완주한 돈길 리스트 가져오기") - @GetMapping(value = "/achieved", produces = "application/json; charset=utf-8") - public CommonResponse getAchievedListChallenge( - @AuthenticationPrincipal User authUser, @RequestParam String interestPayment) { + // 완주한 돈길 리스트 가져오기 API Mapper + public AchievedChallengeListDTO getAchievedListChallenge(User authUser, + String interestPayment) { - log.info("api = 완주한 돈길 리스트 가져오기, user = {}", authUser.getUsername()); List achievedChallengeUserList = challengeUserService.getAchievedChallengeUserList( authUser); - AchievedChallengeListDTO achievedChallengeListDTO = challengeService.readAchievedChallenge( + + return challengeService.readAchievedChallenge( achievedChallengeUserList, interestPayment); - - return CommonResponse.onSuccess(achievedChallengeListDTO); } - @ApiOperation(value = "자녀의 완주한 돈길 리스트 가져오기") - @GetMapping(value = "kid/achieved/{kidId}", produces = "application/json; charset=utf-8") - public CommonResponse getKidAchievedListChallenge( - @AuthenticationPrincipal User authUser, @PathVariable Long kidId, - @RequestParam String interestPayment) { + public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Long kidId, + String interestPayment) { - log.info("api = 완주한 돈길 리스트 가져오기, user = {}, kid = {}", authUser.getUsername(), kidId); Kid kid = kidService.getKid(kidId); User kidUser = kid.getUser(); familyUserService.checkSameFamily(authUser, kidUser); List achievedChallengeUserList = challengeUserService.getAchievedChallengeUserList( kidUser); - KidAchievedChallengeListDTO kidAchievedChallengeListDTO = challengeService.readKidAchievedChallenge( - authUser, achievedChallengeUserList, interestPayment, kidId); - return CommonResponse.onSuccess(kidAchievedChallengeListDTO); + return challengeService.readKidAchievedChallenge( + authUser, achievedChallengeUserList, interestPayment, kidId); } @ApiOperation(value = "완주한 돈길에 이자 지급하기") From e6cabdcd383806cb502c43341be91df376f650b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 17:08:55 +0900 Subject: [PATCH 06/11] =?UTF-8?q?refactor:=20=EC=9D=B4=EC=9E=90=20?= =?UTF-8?q?=EC=A7=80=EA=B8=89=20API=20Mapper=20=EA=B5=AC=EC=A1=B0=EB=A1=9C?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bankids/controller/ChallengeController.java | 16 ++++++++++++++++ .../com/ceos/bankids/mapper/ChallengeMapper.java | 14 ++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index b46ed298..5d1ff653 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -2,6 +2,7 @@ import com.ceos.bankids.config.CommonResponse; import com.ceos.bankids.domain.User; +import com.ceos.bankids.dto.AchievedChallengeDTO; import com.ceos.bankids.dto.AchievedChallengeListDTO; import com.ceos.bankids.dto.ChallengeDTO; import com.ceos.bankids.dto.KidAchievedChallengeListDTO; @@ -152,4 +153,19 @@ public CommonResponse getKidAchievedListChallenge( return CommonResponse.onSuccess(kidAchievedListChallenge); } + + @ApiOperation(value = "완주한 돈길에 이자 지급하기") + @PatchMapping(value = "/interest-payment/{challengeId}", produces = "application/json; charset=utf-8") + public CommonResponse patchInterestPayment( + @AuthenticationPrincipal User authUser, + @PathVariable Long challengeId) { + + log.info("api = 완주한 돈길에 이자 지급, user = {}, challengeId = {}", authUser.getUsername(), + challengeId); + + AchievedChallengeDTO achievedChallengeDTO = challengeMapper.patchInterestPayment(authUser, + challengeId); + + return CommonResponse.onSuccess(achievedChallengeDTO); + } } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index deb2f87c..e14c5480 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -276,6 +276,7 @@ public AchievedChallengeListDTO getAchievedListChallenge(User authUser, interestPayment); } + // 자녀의 완주한 돈길 리스트 가져오기 API Mapper public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Long kidId, String interestPayment) { @@ -289,19 +290,12 @@ public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Lo authUser, achievedChallengeUserList, interestPayment, kidId); } - @ApiOperation(value = "완주한 돈길에 이자 지급하기") - @PatchMapping(value = "/interest-payment/{challengeId}", produces = "application/json; charset=utf-8") - public CommonResponse patchInterestPayment( - @AuthenticationPrincipal User authUser, - @PathVariable Long challengeId) { + // 이자 지급 API Mapper + public AchievedChallengeDTO patchInterestPayment(User authUser, Long challengeId) { - log.info("api = 완주한 돈길에 이자 지급, user = {}, challengeId = {}", authUser.getUsername(), - challengeId); - AchievedChallengeDTO achievedChallengeDTO = challengeService.updateChallengeInterestPayment( + return challengeService.updateChallengeInterestPayment( authUser, challengeId); - - return CommonResponse.onSuccess(achievedChallengeDTO); } @ApiOperation(value = "돈길 걷기") From e86b66c22e935a141277247045f98bc52100be43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 17:13:40 +0900 Subject: [PATCH 07/11] =?UTF-8?q?refactor:=20=EB=8F=88=EA=B8=B8=20?= =?UTF-8?q?=EA=B1=B7=EA=B8=B0=20API=20Mapper=20=EA=B5=AC=EC=A1=B0=EB=A1=9C?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bankids/controller/ChallengeController.java | 13 +++++++++++++ .../com/ceos/bankids/mapper/ChallengeMapper.java | 14 +++----------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/ChallengeController.java b/src/main/java/com/ceos/bankids/controller/ChallengeController.java index 5d1ff653..0c3cfeaa 100644 --- a/src/main/java/com/ceos/bankids/controller/ChallengeController.java +++ b/src/main/java/com/ceos/bankids/controller/ChallengeController.java @@ -8,6 +8,7 @@ import com.ceos.bankids.dto.KidAchievedChallengeListDTO; import com.ceos.bankids.dto.KidChallengeListDTO; import com.ceos.bankids.dto.KidWeekDTO; +import com.ceos.bankids.dto.ProgressDTO; import com.ceos.bankids.dto.WeekDTO; import com.ceos.bankids.mapper.ChallengeMapper; import com.ceos.bankids.mapper.request.ChallengeRequest; @@ -168,4 +169,16 @@ public CommonResponse patchInterestPayment( return CommonResponse.onSuccess(achievedChallengeDTO); } + + @ApiOperation(value = "돈길 걷기") + @PatchMapping(value = "/{challengeId}/progress", produces = "application/json; charset=utf-8") + public CommonResponse patchProgress(@AuthenticationPrincipal User authUser, + @PathVariable Long challengeId) { + + log.info("api = 돈길 걷기, user = {}, challengeId = {}", authUser, challengeId); + + ProgressDTO progressDTO = challengeMapper.patchProgress(authUser, challengeId); + + return CommonResponse.onSuccess(progressDTO); + } } diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index e14c5480..17e5212d 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -1,6 +1,5 @@ package com.ceos.bankids.mapper; -import com.ceos.bankids.config.CommonResponse; import com.ceos.bankids.constant.ChallengeStatus; import com.ceos.bankids.constant.ErrorCode; import com.ceos.bankids.domain.Challenge; @@ -29,7 +28,6 @@ import com.ceos.bankids.service.KidServiceImpl; import com.ceos.bankids.service.ParentServiceImpl; import com.ceos.bankids.service.UserServiceImpl; -import io.swagger.annotations.ApiOperation; import java.sql.Timestamp; import java.time.DayOfWeek; import java.time.LocalDateTime; @@ -40,10 +38,7 @@ import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; @Slf4j @Service @@ -298,12 +293,9 @@ public AchievedChallengeDTO patchInterestPayment(User authUser, Long challengeId challengeId); } - @ApiOperation(value = "돈길 걷기") - @PatchMapping(value = "/{challengeId}/progress", produces = "application/json; charset=utf-8") - public CommonResponse patchProgress(@AuthenticationPrincipal User authUser, - @PathVariable Long challengeId) { + // 돈길 걷기 API Mapper + public ProgressDTO patchProgress(User authUser, Long challengeId) { - log.info("api = 돈길 걷기, user = {}, challengeId = {}", authUser, challengeId); userRoleValidation(authUser, true); Challenge challenge = challengeService.readChallenge(challengeId); if (challenge.getChallengeStatus() != ChallengeStatus.WALKING) { @@ -320,7 +312,7 @@ public CommonResponse patchProgress(@AuthenticationPrincipal User a challenge); } - return CommonResponse.onSuccess(progressDTO); + return progressDTO; } // 일요일 처리 validation From 13ab209d5b28569449129e160ec196c415319bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Mon, 19 Sep 2022 17:22:40 +0900 Subject: [PATCH 08/11] =?UTF-8?q?refactor:=20=EC=9D=BC=EC=9A=94=EC=9D=BC?= =?UTF-8?q?=20=EB=B0=B8=EB=A6=AC=EB=8D=B0=EC=9D=B4=EC=85=98=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ceos/bankids/mapper/ChallengeMapper.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index 17e5212d..76b4817d 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -82,6 +82,7 @@ public ChallengeDTO postChallenge(User authUser, ChallengeRequest challengeReque // 돈길 삭제 API Mapper public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { + sundayValidation(); userRoleValidation(authUser, true); ChallengeUser challengeUser = challengeUserService.getChallengeUser(challengeId); Challenge deleteChallenge = challengeUser.getChallenge(); @@ -117,7 +118,7 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { // 돈길 리스트 가져오기 API Mapper public List getListChallenge(User authUser, String status) { - log.info("api = 돈길 리스트 가져오기, user = {}, status = {}", authUser.getUsername(), status); + userRoleValidation(authUser, true); if (!Objects.equals(status, "walking") && !Objects.equals(status, "pending")) { throw new BadRequestException(ErrorCode.INVALID_QUERYPARAM.getErrorCode()); } @@ -163,6 +164,7 @@ public List getListChallenge(User authUser, String status) { // 자녀의 돈길 리스트 가져오기 API Mapper public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String status) { + userRoleValidation(authUser, false); Kid kid = kidService.getKid(kidId); User kidUser = kid.getUser(); List challengeDTOList = new ArrayList<>(); @@ -210,6 +212,8 @@ public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String public ChallengeDTO patchChallengeStatus(User authUser, Long challengeId, KidChallengeRequest kidChallengeRequest) { + sundayValidation(); + userRoleValidation(authUser, false); ChallengeUser challengeUser = challengeUserService.getChallengeUser(challengeId); User user = challengeUser.getUser(); Challenge challenge = challengeService.readChallenge(challengeId); @@ -234,6 +238,7 @@ public ChallengeDTO patchChallengeStatus(User authUser, Long challengeId, // 주차 정보 가져오기 API Mapper public WeekDTO getWeekInfo(User authUser) { + userRoleValidation(authUser, true); List walkingChallengeList = challengeUserService.getChallengeUserList(authUser, "walking") .stream() @@ -246,6 +251,7 @@ public WeekDTO getWeekInfo(User authUser) { // 자녀의 주차 정보 가져오기 API Mapper public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) { + userRoleValidation(authUser, false); Kid kid = kidService.getKid(kidId); User kidUser = kid.getUser(); familyUserService.checkSameFamily(authUser, kidUser); @@ -263,6 +269,7 @@ public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) { public AchievedChallengeListDTO getAchievedListChallenge(User authUser, String interestPayment) { + userRoleValidation(authUser, true); List achievedChallengeUserList = challengeUserService.getAchievedChallengeUserList( authUser); @@ -275,6 +282,7 @@ public AchievedChallengeListDTO getAchievedListChallenge(User authUser, public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Long kidId, String interestPayment) { + userRoleValidation(authUser, false); Kid kid = kidService.getKid(kidId); User kidUser = kid.getUser(); familyUserService.checkSameFamily(authUser, kidUser); @@ -288,6 +296,8 @@ public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Lo // 이자 지급 API Mapper public AchievedChallengeDTO patchInterestPayment(User authUser, Long challengeId) { + sundayValidation(); + userRoleValidation(authUser, false); return challengeService.updateChallengeInterestPayment( authUser, challengeId); @@ -296,6 +306,7 @@ public AchievedChallengeDTO patchInterestPayment(User authUser, Long challengeId // 돈길 걷기 API Mapper public ProgressDTO patchProgress(User authUser, Long challengeId) { + sundayValidation(); userRoleValidation(authUser, true); Challenge challenge = challengeService.readChallenge(challengeId); if (challenge.getChallengeStatus() != ChallengeStatus.WALKING) { From b76576189a26af0ffd20fd5037031bab5834e86b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Tue, 20 Sep 2022 12:23:07 +0900 Subject: [PATCH 09/11] =?UTF-8?q?feat:=20=EB=8F=88=EA=B8=B8=20=EB=A7=8C?= =?UTF-8?q?=EB=93=A0=EC=A7=80=201=EC=A3=BC=EC=9D=BC=20=EA=B2=BD=EA=B3=BC?= =?UTF-8?q?=20=EC=A0=84=EC=9D=B4=EB=A9=B4=20=EC=82=AD=EC=A0=9C=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EA=B2=80=EC=82=AC=20=EC=95=88=ED=95=A8=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ceos/bankids/mapper/ChallengeMapper.java | 4 ++-- .../java/com/ceos/bankids/service/KidService.java | 2 +- .../com/ceos/bankids/service/KidServiceImpl.java | 13 +++++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index 76b4817d..3d49741b 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -90,8 +90,8 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { throw new ForbiddenException(ErrorCode.NOT_MATCH_CHALLENGE_USER.getErrorCode()); } if (deleteChallenge.getChallengeStatus() == ChallengeStatus.WALKING) { - kidService.checkKidDeleteChallenge(authUser); - challengeUserService.deleteChallengeUser(authUser, challengeId); + kidService.checkKidDeleteChallenge(authUser, deleteChallenge); +// challengeUserService.deleteChallengeUser(authUser, challengeId); return challengeService.deleteWalkingChallenge( authUser, challengeUser); diff --git a/src/main/java/com/ceos/bankids/service/KidService.java b/src/main/java/com/ceos/bankids/service/KidService.java index e79ef178..f06c1ba6 100644 --- a/src/main/java/com/ceos/bankids/service/KidService.java +++ b/src/main/java/com/ceos/bankids/service/KidService.java @@ -12,7 +12,7 @@ public interface KidService { public void deleteKid(User user); - public void checkKidDeleteChallenge(User user); + public void checkKidDeleteChallenge(User user, Challenge challenge); public void userLevelUp(User contractUser, User user); diff --git a/src/main/java/com/ceos/bankids/service/KidServiceImpl.java b/src/main/java/com/ceos/bankids/service/KidServiceImpl.java index 5eb1f063..b0208642 100644 --- a/src/main/java/com/ceos/bankids/service/KidServiceImpl.java +++ b/src/main/java/com/ceos/bankids/service/KidServiceImpl.java @@ -45,11 +45,12 @@ public void deleteKid(User user) { @Transactional(readOnly = true) @Override - public void checkKidDeleteChallenge(User user) { + public void checkKidDeleteChallenge(User user, Challenge challenge) { if (user.getKid() == null) { throw new BadRequestException(ErrorCode.NOT_EXIST_KID.getErrorCode()); } + // Todo: 돈길 만든지 1주일 안지났으면 그냥 통과 // 현재 시간 가져오기 LocalDateTime now = LocalDateTime.now(); @@ -57,6 +58,15 @@ public void checkKidDeleteChallenge(User user) { Calendar nowCal = Calendar.getInstance(); nowCal.setTime(nowTimestamp); + Timestamp challengeCreatedAt = challenge.getCreatedAt(); + Calendar challengeCal = Calendar.getInstance(); + challengeCal.setTime(challengeCreatedAt); + int currentWeek = nowCal.get(Calendar.WEEK_OF_YEAR); + + if (nowCal.get(Calendar.DAY_OF_YEAR) - challengeCal.get(Calendar.DAY_OF_YEAR) < 7) { + return; + } + Kid kid = user.getKid(); if (kid.getDeleteChallenge() != null) { @@ -66,7 +76,6 @@ public void checkKidDeleteChallenge(User user) { deleteCal.setTime(deleteChallenge); int lastDeleteWeek = deleteCal.get(Calendar.WEEK_OF_YEAR); - int currentWeek = nowCal.get(Calendar.WEEK_OF_YEAR); int diffYears = nowCal.get(Calendar.YEAR) - deleteCal.get(Calendar.YEAR); int l = deleteCal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ? lastDeleteWeek - 1 : lastDeleteWeek; From f430aee7a72e40ff1fcb799241ce5d6a421b4355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Tue, 20 Sep 2022 12:24:20 +0900 Subject: [PATCH 10/11] =?UTF-8?q?refactor:=20challengeUser=EC=97=90=20casc?= =?UTF-8?q?ade=EA=B0=80=20=EB=8B=AC=EB=A6=BC=EC=97=90=20=EB=94=B0=EB=9D=BC?= =?UTF-8?q?=20challengeUser=20=EC=82=AD=EC=A0=9C=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ceos/bankids/mapper/ChallengeMapper.java | 4 ---- .../ceos/bankids/service/ChallengeUserService.java | 2 -- .../bankids/service/ChallengeUserServiceImpl.java | 12 +----------- 3 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index 3d49741b..dda95418 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -91,22 +91,18 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { } if (deleteChallenge.getChallengeStatus() == ChallengeStatus.WALKING) { kidService.checkKidDeleteChallenge(authUser, deleteChallenge); -// challengeUserService.deleteChallengeUser(authUser, challengeId); return challengeService.deleteWalkingChallenge( authUser, challengeUser); } else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.FAILED) { - challengeUserService.deleteChallengeUser(authUser, challengeId); return challengeService.deleteWalkingChallenge( authUser, challengeUser); } else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.REJECTED) { - challengeUserService.deleteChallengeUser(authUser, challengeId); return challengeService.deleteRejectedChallenge( authUser, challengeUser); } else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.PENDING) { - challengeUserService.deleteChallengeUser(authUser, challengeId); return challengeService.deletePendingChallenge( authUser, challengeUser); diff --git a/src/main/java/com/ceos/bankids/service/ChallengeUserService.java b/src/main/java/com/ceos/bankids/service/ChallengeUserService.java index 5cb78d60..56fe1b8a 100644 --- a/src/main/java/com/ceos/bankids/service/ChallengeUserService.java +++ b/src/main/java/com/ceos/bankids/service/ChallengeUserService.java @@ -13,8 +13,6 @@ public interface ChallengeUserService { public ChallengeUser getChallengeUser(Long challengeId); - public void deleteChallengeUser(User authUser, Long challengeId); - public List getChallengeUserList(User authUser, String status); public List getAchievedChallengeUserList(User authUser); diff --git a/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java b/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java index 4f7c966b..4b576362 100644 --- a/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java +++ b/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java @@ -42,17 +42,7 @@ public ChallengeUser getChallengeUser(Long challengeId) { return challengeUser; } - @Override - public void deleteChallengeUser(User authUser, Long challengeId) { - ChallengeUser deleteChallengeUser = cuRepo.findByChallengeId(challengeId).orElseThrow( - () -> new BadRequestException(ErrorCode.NOT_EXIST_CHALLENGE_USER.getErrorCode())); - if (deleteChallengeUser.getUser().getId() != authUser.getId()) { - throw new ForbiddenException(ErrorCode.NOT_MATCH_CHALLENGE_USER.getErrorCode()); - } - - cuRepo.delete(deleteChallengeUser); - } - + @Transactional @Override public List getChallengeUserList(User authUser, String status) { if (Objects.equals(status, "pending")) { From d3fc80ea206ff8256e4db49c900849c1a2f84f62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Tue, 20 Sep 2022 12:46:48 +0900 Subject: [PATCH 11/11] =?UTF-8?q?refactor:=20Transactional=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20#232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ceos/bankids/mapper/ChallengeMapper.java | 12 ++++++++++++ .../bankids/service/ChallengeUserServiceImpl.java | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index dda95418..a43e0a0d 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -39,6 +39,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Slf4j @Service @@ -55,6 +56,7 @@ public class ChallengeMapper { private final KidServiceImpl kidService; // 돈길 생성 API Mapper + @Transactional public ChallengeDTO postChallenge(User authUser, ChallengeRequest challengeRequest) { // validation @@ -80,6 +82,7 @@ public ChallengeDTO postChallenge(User authUser, ChallengeRequest challengeReque } // 돈길 삭제 API Mapper + @Transactional public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { sundayValidation(); @@ -112,6 +115,7 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) { } // 돈길 리스트 가져오기 API Mapper + @Transactional public List getListChallenge(User authUser, String status) { userRoleValidation(authUser, true); @@ -158,6 +162,7 @@ public List getListChallenge(User authUser, String status) { } // 자녀의 돈길 리스트 가져오기 API Mapper + @Transactional public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String status) { userRoleValidation(authUser, false); @@ -205,6 +210,7 @@ public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String } // 돈길 수락 / 거절 API Mapper + @Transactional public ChallengeDTO patchChallengeStatus(User authUser, Long challengeId, KidChallengeRequest kidChallengeRequest) { @@ -232,6 +238,7 @@ public ChallengeDTO patchChallengeStatus(User authUser, Long challengeId, } // 주차 정보 가져오기 API Mapper + @Transactional(readOnly = true) public WeekDTO getWeekInfo(User authUser) { userRoleValidation(authUser, true); @@ -245,6 +252,7 @@ public WeekDTO getWeekInfo(User authUser) { } // 자녀의 주차 정보 가져오기 API Mapper + @Transactional(readOnly = true) public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) { userRoleValidation(authUser, false); @@ -262,6 +270,7 @@ public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) { } // 완주한 돈길 리스트 가져오기 API Mapper + @Transactional(readOnly = true) public AchievedChallengeListDTO getAchievedListChallenge(User authUser, String interestPayment) { @@ -275,6 +284,7 @@ public AchievedChallengeListDTO getAchievedListChallenge(User authUser, } // 자녀의 완주한 돈길 리스트 가져오기 API Mapper + @Transactional(readOnly = true) public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Long kidId, String interestPayment) { @@ -290,6 +300,7 @@ public KidAchievedChallengeListDTO getKidAchievedListChallenge(User authUser, Lo } // 이자 지급 API Mapper + @Transactional public AchievedChallengeDTO patchInterestPayment(User authUser, Long challengeId) { sundayValidation(); @@ -300,6 +311,7 @@ public AchievedChallengeDTO patchInterestPayment(User authUser, Long challengeId } // 돈길 걷기 API Mapper + @Transactional public ProgressDTO patchProgress(User authUser, Long challengeId) { sundayValidation(); diff --git a/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java b/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java index 4b576362..0183a2f9 100644 --- a/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java +++ b/src/main/java/com/ceos/bankids/service/ChallengeUserServiceImpl.java @@ -85,6 +85,7 @@ public void deleteAllChallengeUser(User authUser) { cuRepo.deleteAll(challengeUserList); } + @Transactional(readOnly = true) public void checkMaxChallengeCount(User user) { List walkingChallengeList = cuRepo.findByUserId(user.getId()).stream() .map(ChallengeUser::getChallenge) @@ -95,6 +96,7 @@ public void checkMaxChallengeCount(User user) { } } + @Transactional(readOnly = true) public List getChallengeUserListByContractUser(User user) { return cuRepo.findByChallenge_ContractUserId(user.getId());