From 72a62fb9fc60800561bf37241e989225e5f20ddf Mon Sep 17 00:00:00 2001 From: wjddn2165 Date: Tue, 13 Aug 2024 15:34:20 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20Admin=20LotteryEvent=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adminController/AdminController.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/controller/adminController/AdminController.java b/Server/src/main/java/JGS/CasperEvent/domain/event/controller/adminController/AdminController.java index 8f8d71d8..a0ada693 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/controller/adminController/AdminController.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/controller/adminController/AdminController.java @@ -65,9 +65,9 @@ public ResponseEntity getLotteryEventPa @PostMapping("/event/rush") public ResponseEntity createRushEvent( @RequestPart(value = "dto") RushEventRequestDto rushEventRequestDto, - @RequestPart(value = "prizeImg")MultipartFile prizeImg, - @RequestPart(value = "leftOptionImg")MultipartFile leftOptionImg, - @RequestPart(value = "rightOptionImg")MultipartFile rightOptionImg) { + @RequestPart(value = "prizeImg") MultipartFile prizeImg, + @RequestPart(value = "leftOptionImg") MultipartFile leftOptionImg, + @RequestPart(value = "rightOptionImg") MultipartFile rightOptionImg) { return ResponseEntity .status(HttpStatus.CREATED) .body(adminService.createRushEvent(rushEventRequestDto, prizeImg, leftOptionImg, rightOptionImg)); @@ -75,9 +75,16 @@ public ResponseEntity createRushEvent( // 선착순 이벤트 전체 조회 @GetMapping("/event/rush") - public ResponseEntity> getRushEvents(){ + public ResponseEntity> getRushEvents() { return ResponseEntity .status(HttpStatus.OK) .body(adminService.getRushEvents()); } + + // 추첨 이벤트 삭제 + @DeleteMapping("/event/lottery") + public ResponseEntity deleteLotteryEvent() { + adminService.deleteLotteryEvent(); + return ResponseEntity.noContent().build(); // 204 No Content + } } From f88ad304388020860d203d859293533106919fb5 Mon Sep 17 00:00:00 2001 From: wjddn2165 Date: Tue, 13 Aug 2024 15:34:41 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20Admin=20=EB=A1=9C=EA=B7=B8=EC=9D=B8?= =?UTF-8?q?=20=EC=8B=9C=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=EA=B9=8C?= =?UTF-8?q?=EC=A7=80=20=EA=B0=99=EC=9D=B4=20=EA=B2=80=EC=A6=9D=ED=95=98?= =?UTF-8?q?=EB=8A=94=20JPA=20=EA=B8=B0=EB=B3=B8=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CasperEvent/domain/event/repository/AdminRepository.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/repository/AdminRepository.java b/Server/src/main/java/JGS/CasperEvent/domain/event/repository/AdminRepository.java index cec89467..d7189cc0 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/repository/AdminRepository.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/repository/AdminRepository.java @@ -4,6 +4,9 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface AdminRepository extends JpaRepository { + Optional findByIdAndPassword(String id, String password); } From 6ff1ebc0825ce8783c880ee207036867b923eac2 Mon Sep 17 00:00:00 2001 From: wjddn2165 Date: Tue, 13 Aug 2024 15:35:13 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20Admin=20=EB=A1=9C=EA=B7=B8=EC=9D=B8?= =?UTF-8?q?=20=EC=8B=9C=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=EA=B9=8C?= =?UTF-8?q?=EC=A7=80=20=EA=B0=99=EC=9D=B4=20=EA=B2=80=EC=A6=9D=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=B6=94?= =?UTF-8?q?=EC=B2=A8=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=82=AD=EC=A0=9C=20?= =?UTF-8?q?API=20=EB=B9=84=EC=A6=88=EB=8B=88=EC=8A=A4=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/service/adminService/AdminService.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java b/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java index f7643022..fc71182d 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java @@ -52,7 +52,7 @@ public class AdminService { private final S3Service s3Service; public Admin verifyAdmin(AdminRequestDto adminRequestDto) { - return adminRepository.findById(adminRequestDto.getAdminId()).orElseThrow(NoSuchElementException::new); + return adminRepository.findByIdAndPassword(adminRequestDto.getAdminId(), adminRequestDto.getPassword()).orElseThrow(NoSuchElementException::new); } public ResponseDto postAdmin(AdminRequestDto adminRequestDto) { @@ -153,4 +153,18 @@ public List getRushEvents(){ List rushEvents = rushEventRepository.findAll(); return AdminRushEventResponseDto.of(rushEvents); } + + public void deleteLotteryEvent() { + List lotteryEventList = lotteryEventRepository.findAll(); + + if (lotteryEventList.isEmpty()) { + throw new CustomException("현재 진행중인 lotteryEvent가 존재하지 않습니다.", CustomErrorCode.NO_LOTTERY_EVENT); + } + + if (lotteryEventList.size() > 1) { + throw new CustomException("현재 진행중인 lotteryEvent가 1개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); + } + + lotteryEventRepository.deleteAll(); + } } From c9715488b711a2b22ffc013ebffe76b97d70d159 Mon Sep 17 00:00:00 2001 From: wjddn2165 Date: Tue, 13 Aug 2024 15:35:36 +0900 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20LotteryEvent=EA=B0=80=202=EA=B0=9C?= =?UTF-8?q?=20=EC=9D=B4=EC=83=81=EC=9D=BC=20=EB=95=8C=20=EB=B0=9C=EC=83=9D?= =?UTF-8?q?=EC=8B=9C=ED=82=AC=20CustomErrorCode=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/JGS/CasperEvent/global/enums/CustomErrorCode.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/JGS/CasperEvent/global/enums/CustomErrorCode.java b/Server/src/main/java/JGS/CasperEvent/global/enums/CustomErrorCode.java index 24d8db6d..bb487359 100644 --- a/Server/src/main/java/JGS/CasperEvent/global/enums/CustomErrorCode.java +++ b/Server/src/main/java/JGS/CasperEvent/global/enums/CustomErrorCode.java @@ -22,7 +22,8 @@ public enum CustomErrorCode { LOTTERY_EVENT_ALREADY_EXISTS("추첨 이벤트가 이미 존재합니다.", 409), INVALID_RUSH_EVENT_OPTIONS_COUNT("이벤트의 옵션 수가 올바르지 않습니다.", 500), INVALID_RUSH_EVENT_OPTION_ID("옵션 ID는 1 또는 2여야 합니다.", 400), - EMPTY_FILE("유효하지 않은 파일입니다.", 422); + EMPTY_FILE("유효하지 않은 파일입니다.", 422), + TOO_MANY_LOTTERY_EVENT("현재 진행중인 추첨 이벤트가 2개 이상입니다.", 409); private final String message; private int status; From 8d3d8eeba940a15eafce264c29992be5b3cc574d Mon Sep 17 00:00:00 2001 From: wjddn2165 Date: Tue, 13 Aug 2024 15:38:55 +0900 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20=EA=B8=B0=EC=A1=B4=20=EB=AC=B4?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=20id=20=EA=B0=92=EC=9D=B4=201=EC=9D=B8=20Lot?= =?UTF-8?q?teryEvent=EB=A5=BC=20=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eventService/LotteryEventService.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java b/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java index a6fb31bc..59baa705 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java @@ -29,6 +29,7 @@ import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; +import java.util.List; import java.util.Optional; @Service @@ -45,7 +46,18 @@ public class LotteryEventService { public CasperBotResponseDto postCasperBot(BaseUser user, CasperBotRequestDto casperBotRequestDto) throws CustomException, NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException { LotteryParticipants participants = registerUserIfNeed(user, casperBotRequestDto); - LotteryEvent lotteryEvent = lotteryEventRepository.findById(1L).orElseThrow(LotteryEventNotExists::new); + + List lotteryEventList = lotteryEventRepository.findAll(); + + if (lotteryEventList.isEmpty()) { + throw new CustomException("현재 진행중인 lotteryEvent가 존재하지 않습니다.", CustomErrorCode.NO_LOTTERY_EVENT); + } + + if (lotteryEventList.size() > 1) { + throw new CustomException("현재 진행중인 lotteryEvent가 1개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); + } + + LotteryEvent lotteryEvent = lotteryEventList.get(0); CasperBot casperBot = casperBotRepository.save(new CasperBot(casperBotRequestDto, user.getId())); lotteryEvent.addAppliedCount(); @@ -100,8 +112,17 @@ public LotteryParticipants registerUserIfNeed(BaseUser user, CasperBotRequestDto } public LotteryEventResponseDto getLotteryEvent() { - LotteryEvent lotteryEvent = lotteryEventRepository.findById(1L).orElseThrow(LotteryEventNotExists::new); + List lotteryEventList = lotteryEventRepository.findAll(); + + if (lotteryEventList.isEmpty()) { + throw new CustomException("현재 진행중인 lotteryEvent가 존재하지 않습니다.", CustomErrorCode.NO_LOTTERY_EVENT); + } + + if (lotteryEventList.size() > 1) { + throw new CustomException("현재 진행중인 lotteryEvent가 1개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); + } + + LotteryEvent lotteryEvent = lotteryEventList.get(0); return LotteryEventResponseDto.of(lotteryEvent, LocalDateTime.now()); } - } From a740121db4f285247b3ae32e51c2c12f86ac5316 Mon Sep 17 00:00:00 2001 From: wjddn2165 Date: Tue, 13 Aug 2024 15:43:32 +0900 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=EC=97=90=EB=9F=AC=EB=A9=94=EC=8B=9C?= =?UTF-8?q?=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/event/service/adminService/AdminService.java | 2 +- .../event/service/eventService/LotteryEventService.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java b/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java index fc71182d..f9b0ef3d 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/service/adminService/AdminService.java @@ -162,7 +162,7 @@ public void deleteLotteryEvent() { } if (lotteryEventList.size() > 1) { - throw new CustomException("현재 진행중인 lotteryEvent가 1개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); + throw new CustomException("현재 진행중인 lotteryEvent가 2개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); } lotteryEventRepository.deleteAll(); diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java b/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java index 59baa705..c5a3c572 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/service/eventService/LotteryEventService.java @@ -54,7 +54,7 @@ public CasperBotResponseDto postCasperBot(BaseUser user, CasperBotRequestDto cas } if (lotteryEventList.size() > 1) { - throw new CustomException("현재 진행중인 lotteryEvent가 1개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); + throw new CustomException("현재 진행중인 lotteryEvent가 2개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); } LotteryEvent lotteryEvent = lotteryEventList.get(0); @@ -119,7 +119,7 @@ public LotteryEventResponseDto getLotteryEvent() { } if (lotteryEventList.size() > 1) { - throw new CustomException("현재 진행중인 lotteryEvent가 1개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); + throw new CustomException("현재 진행중인 lotteryEvent가 2개 이상입니다.", CustomErrorCode.TOO_MANY_LOTTERY_EVENT); } LotteryEvent lotteryEvent = lotteryEventList.get(0);