From 55cacb61aa0429c3daf14531358681e896de07b6 Mon Sep 17 00:00:00 2001 From: BullChallenger Date: Mon, 18 Sep 2023 13:13:01 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[REFACTOR]=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=97=B0=EA=B4=80=EB=90=9C=20Controller=20?= =?UTF-8?q?=EC=97=90=20Validation=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 +++ .../kb/wgwg/controller/UserController.java | 36 +++++++++++++++---- .../kb/wgwg/service/NChallengeService.java | 2 +- .../java/kb/wgwg/service/UserService.java | 8 +++++ 4 files changed, 43 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index c25209f..d6039b8 100644 --- a/pom.xml +++ b/pom.xml @@ -53,6 +53,11 @@ modelmapper 2.3.8 + + + org.springframework.boot + spring-boot-starter-validation + diff --git a/src/main/java/kb/wgwg/controller/UserController.java b/src/main/java/kb/wgwg/controller/UserController.java index 5546fea..2fb3c71 100644 --- a/src/main/java/kb/wgwg/controller/UserController.java +++ b/src/main/java/kb/wgwg/controller/UserController.java @@ -8,13 +8,17 @@ import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.persistence.EntityNotFoundException; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotEmpty; import java.util.HashMap; import java.util.List; import java.util.Map; +@Validated @RestController @RequiredArgsConstructor @RequestMapping(value = "/users") @@ -44,20 +48,24 @@ public ResponseEntity readById(@RequestBody UserReadRequestDTO return ResponseEntity.ok(result2); } - @GetMapping("/{email}/check/email") - public ResponseEntity checkEmailDup(@PathVariable String email){ + public ResponseEntity checkEmailDup(@PathVariable @Email @NotEmpty String email){ BaseResponseDTO result = new BaseResponseDTO<>(); + if(userService.checkEmailDup(email)){ result.setStatus(404); result.setSuccess(false); result.setMessage("이메일 중복."); - }else{ + + } else{ result.setStatus(200); result.setSuccess(true); result.setMessage("이메일 사용 가능."); + + return ResponseEntity.ok(result); } - return ResponseEntity.ok(result); + + return ResponseEntity.badRequest().body(result); } @GetMapping("/{nickName}/check/nickname") @@ -67,29 +75,43 @@ public ResponseEntity checkNickNameDup(@PathVariable String nic result.setStatus(404); result.setSuccess(false); result.setMessage("닉네임 중복."); - }else{ + + } else{ result.setStatus(200); result.setSuccess(true); result.setMessage("닉네임 사용 가능."); + + return ResponseEntity.ok(result); } - return ResponseEntity.ok(result); + + return ResponseEntity.badRequest().body(result); } @PostMapping("/insert") public ResponseEntity insert(@RequestBody UserInsertRequestDTO dto){ BaseResponseDTO result = new BaseResponseDTO<>(); + try{ UserReadResponseDTO insertResult = userService.insertUser(dto); result.setMessage("유저 등록 완료."); result.setStatus(200); result.setSuccess(true); result.setData(insertResult); + + return ResponseEntity.ok(result); + } catch (IllegalArgumentException e){ + result.setMessage(e.getMessage()); + result.setSuccess(false); + result.setStatus(400); + + return ResponseEntity.badRequest().body(result); } catch (Exception e){ result.setMessage(e.getMessage()); result.setSuccess(false); result.setStatus(500); + + return ResponseEntity.internalServerError().body(result); } - return ResponseEntity.ok(result); } @DeleteMapping(value = "/delete/{id}") diff --git a/src/main/java/kb/wgwg/service/NChallengeService.java b/src/main/java/kb/wgwg/service/NChallengeService.java index 3e1dea5..d74c077 100644 --- a/src/main/java/kb/wgwg/service/NChallengeService.java +++ b/src/main/java/kb/wgwg/service/NChallengeService.java @@ -42,7 +42,7 @@ public NChallengeInsertResponseDTO insertNChallenge(NChallengeInsertRequestDTO d .description(dto.getDescription()) .status(dto.getStatus()) .startDate(dto.getStartDate()) - .endDate(dto.getStartDate().plusDays(7)) + .endDate(dto.getStartDate().plusDays(6)) .deposit(dto.getDeposit()) .limitAmount(dto.getLimitAmount()) .account(dto.getAccount()) diff --git a/src/main/java/kb/wgwg/service/UserService.java b/src/main/java/kb/wgwg/service/UserService.java index 9468b43..592a228 100644 --- a/src/main/java/kb/wgwg/service/UserService.java +++ b/src/main/java/kb/wgwg/service/UserService.java @@ -62,6 +62,14 @@ public boolean checkNickNameDup(String nickName){ } public UserReadResponseDTO insertUser(UserInsertRequestDTO dto) { + if (checkEmailDup(dto.getEmail())) { + throw new IllegalArgumentException("이미 사용 중인 이메일입니다."); + } + + if (checkNickNameDup(dto.getNickName())) { + throw new IllegalArgumentException("이미 사용 중인 닉네임입니다."); + } + User user = modelMapper.map(dto, User.class); User savedUser = userRepository.save(user); entityManager.flush(); //insertDate From 80f4871b564bdf276d08ae98175403efb87edc0c Mon Sep 17 00:00:00 2001 From: BullChallenger Date: Mon, 18 Sep 2023 13:14:07 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[REFACTOR]=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kb/wgwg/controller/UserController.java | 6 ------ src/main/java/kb/wgwg/service/UserService.java | 8 -------- 2 files changed, 14 deletions(-) diff --git a/src/main/java/kb/wgwg/controller/UserController.java b/src/main/java/kb/wgwg/controller/UserController.java index 2fb3c71..5c2d990 100644 --- a/src/main/java/kb/wgwg/controller/UserController.java +++ b/src/main/java/kb/wgwg/controller/UserController.java @@ -99,12 +99,6 @@ public ResponseEntity insert(@RequestBody UserInsertRequestDTO result.setData(insertResult); return ResponseEntity.ok(result); - } catch (IllegalArgumentException e){ - result.setMessage(e.getMessage()); - result.setSuccess(false); - result.setStatus(400); - - return ResponseEntity.badRequest().body(result); } catch (Exception e){ result.setMessage(e.getMessage()); result.setSuccess(false); diff --git a/src/main/java/kb/wgwg/service/UserService.java b/src/main/java/kb/wgwg/service/UserService.java index 592a228..9468b43 100644 --- a/src/main/java/kb/wgwg/service/UserService.java +++ b/src/main/java/kb/wgwg/service/UserService.java @@ -62,14 +62,6 @@ public boolean checkNickNameDup(String nickName){ } public UserReadResponseDTO insertUser(UserInsertRequestDTO dto) { - if (checkEmailDup(dto.getEmail())) { - throw new IllegalArgumentException("이미 사용 중인 이메일입니다."); - } - - if (checkNickNameDup(dto.getNickName())) { - throw new IllegalArgumentException("이미 사용 중인 닉네임입니다."); - } - User user = modelMapper.map(dto, User.class); User savedUser = userRepository.save(user); entityManager.flush(); //insertDate From f9ad3d9bb43c892583829a24a606926f6c0a52e8 Mon Sep 17 00:00:00 2001 From: Kyongryul Na Date: Mon, 18 Sep 2023 14:39:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[FEAT]=20Challenges=20Insert=EC=97=90?= =?UTF-8?q?=EC=84=9C=20status=20=EB=82=A0=EC=A7=9C=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=9D=BC=20=EC=84=A4=EC=A0=95=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kb/wgwg/service/NChallengeService.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/kb/wgwg/service/NChallengeService.java b/src/main/java/kb/wgwg/service/NChallengeService.java index 3e1dea5..732a988 100644 --- a/src/main/java/kb/wgwg/service/NChallengeService.java +++ b/src/main/java/kb/wgwg/service/NChallengeService.java @@ -14,6 +14,7 @@ import javax.persistence.EntityManager; import javax.persistence.EntityNotFoundException; +import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; import java.util.function.Function; @@ -36,13 +37,28 @@ public NChallengeInsertResponseDTO insertNChallenge(NChallengeInsertRequestDTO d () -> new EntityNotFoundException("해당 사용자를 찾을 수 없습니다.") ); + LocalDateTime currentDate = LocalDateTime.now(); + LocalDateTime endDate = dto.getStartDate().plusDays(6); + + String status; + + // 현재 날짜와 startDate, endDate 비교하여 상태 설정 + if (currentDate.isBefore(dto.getStartDate())) { + status = "모집중"; + } else if (currentDate.isEqual(dto.getStartDate()) || + (currentDate.isAfter(dto.getStartDate()) && currentDate.isBefore(endDate))) { + status = "진행중"; + } else { + status = "종료"; + } + NChallengeInsertEndDateRequestDTO finalDto = NChallengeInsertEndDateRequestDTO.builder() .ownerId(dto.getOwnerId()) .title(dto.getTitle()) .description(dto.getDescription()) - .status(dto.getStatus()) + .status(status) .startDate(dto.getStartDate()) - .endDate(dto.getStartDate().plusDays(7)) + .endDate(dto.getStartDate().plusDays(6)) .deposit(dto.getDeposit()) .limitAmount(dto.getLimitAmount()) .account(dto.getAccount())