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..5c2d990 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,37 @@ 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 (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..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())