From 72da7ea70680235f159a0d42e1b5547def43823d Mon Sep 17 00:00:00 2001 From: blaxsior Date: Fri, 23 Aug 2024 17:38:43 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[fix]=20deleteAllInBatch=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B8=ED=95=B4=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=9D=98=20?= =?UTF-8?q?=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=EB=A5=BC=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=ED=95=98=EC=A7=80=20=EB=AA=BB=ED=95=B4=20=EC=99=B8?= =?UTF-8?q?=EB=9E=98=ED=82=A4=20=EC=97=90=EB=9F=AC=EA=B0=80=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=ED=95=98=EB=8D=98=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#147)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit deleteAllInBatch는 raw sql DELETE 명령을 날리며, CascadeType에 의한 자동 제거를 수행하지 않는다. 연관된 fcfs event / draw event를 모두 찾아 삭제한 후 이벤트를 삭제하게 할 수도 있겠으나, 이 경우 JPA에 의한 cascade을 사용하는 의미가 없으므로 deleteAll을 우선 이용한다. 성능 측면 문제가 심각할 경우 각각 엔티티 타입마다 delete batch를 수행하도록 처리할 예정이다. --- .../softeer/orange/event/common/service/EventService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java b/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java index c3805e9..b395a1a 100644 --- a/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java +++ b/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java @@ -265,7 +265,9 @@ public List deleteEvents(List eventIds) deleteList.add(metadata); } - emRepository.deleteAllInBatch(deleteList); + // deleteAllInBatch는 연관관계를 고려하지 않고 raw Delete 문을 날림. 현재 연관된 DrawEvent / FcfsEvent를 함께 제거해줘야 하므로 + // 성능이 모자르더라도 연관 관계를 함께 삭제해주는 deleteAll을 이용 + emRepository.deleteAll(deleteList); return errorResponse; } From 5041b581d3e1f4bd30f916abb796d181b6374341 Mon Sep 17 00:00:00 2001 From: blaxsior Date: Fri, 23 Aug 2024 17:53:51 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[feat]=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=8B=9C=20=EB=8B=A4=EB=A5=B8=20=EC=9D=B4?= =?UTF-8?q?=EB=B2=A4=ED=8A=B8=20=ED=83=80=EC=9E=85=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=ED=95=A0=20=EC=88=98=20=EC=97=86=EA=B2=8C=20?= =?UTF-8?q?=EC=A0=9C=ED=95=9C=20(#147)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/hyundai/softeer/orange/common/ErrorCode.java | 1 + .../softeer/orange/event/common/service/EventService.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/hyundai/softeer/orange/common/ErrorCode.java b/src/main/java/hyundai/softeer/orange/common/ErrorCode.java index ffa709d..ad85bb7 100644 --- a/src/main/java/hyundai/softeer/orange/common/ErrorCode.java +++ b/src/main/java/hyundai/softeer/orange/common/ErrorCode.java @@ -59,6 +59,7 @@ public enum ErrorCode { ALREADY_PARTICIPATED(HttpStatus.CONFLICT, "이미 참여한 사용자입니다."), PHONE_NUMBER_ALREADY_EXISTS(HttpStatus.CONFLICT, "이미 존재하는 전화번호입니다."), ALREADY_DRAWN(HttpStatus.CONFLICT, "이미 추첨된 이벤트입니다."), + EDIT_TO_DIFFERENT_EVENT_TYPE_NOT_ALLOWED(HttpStatus.CONFLICT,"생성된 이벤트를 다른 타입으로 수정할 수 없습니다"), // 500 Internal Server Error INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "서버에 오류가 발생하였습니다."); diff --git a/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java b/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java index b395a1a..5244097 100644 --- a/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java +++ b/src/main/java/hyundai/softeer/orange/event/common/service/EventService.java @@ -128,6 +128,7 @@ public void editEvent(EventDto eventDto) { Optional metadataOpt = emRepository.findFirstByEventId(eventId); EventMetadata eventMetadata = metadataOpt .orElseThrow(() -> new EventException(ErrorCode.EVENT_NOT_FOUND)); + if(eventDto.getEventType() != eventMetadata.getEventType()) throw new EventException(ErrorCode.EDIT_TO_DIFFERENT_EVENT_TYPE_NOT_ALLOWED); eventMetadata.updateName(eventDto.getName()); eventMetadata.updateDescription(eventDto.getDescription()); eventMetadata.updateStartTime(eventDto.getStartTime()); From 8eaa9cbc7c4034a23859b9d410295a5bbdb5145b Mon Sep 17 00:00:00 2001 From: blaxsior Date: Fri, 23 Aug 2024 18:02:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[chore]=20=EC=B6=94=EC=B2=A8=20=EC=9D=B4?= =?UTF-8?q?=EB=B2=A4=ED=8A=B8=20=EC=84=9C=EB=B2=84=20=EC=83=81=EC=9D=98=20?= =?UTF-8?q?=EB=8F=99=EC=9E=91=20=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20?= =?UTF-8?q?=EC=9C=84=ED=95=B4=20=EC=B6=94=EC=B2=A8=20=EA=B3=BC=EC=A0=95?= =?UTF-8?q?=EC=9D=84=205=EC=B4=88=EA=B0=84=20=EB=8C=80=EA=B8=B0=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=84=A4=EC=A0=95=20(#147)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../softeer/orange/event/draw/service/DrawEventDrawMachine.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/hyundai/softeer/orange/event/draw/service/DrawEventDrawMachine.java b/src/main/java/hyundai/softeer/orange/event/draw/service/DrawEventDrawMachine.java index 933de79..5f1b567 100644 --- a/src/main/java/hyundai/softeer/orange/event/draw/service/DrawEventDrawMachine.java +++ b/src/main/java/hyundai/softeer/orange/event/draw/service/DrawEventDrawMachine.java @@ -34,7 +34,7 @@ public class DrawEventDrawMachine { @Transactional public CompletableFuture draw(DrawEvent drawEvent) { try{ - Thread.sleep(1000 * 60 * 1); + Thread.sleep(1000 * 5 * 1); } catch (InterruptedException e) { throw new RuntimeException(e); }