diff --git a/src/main/java/hyundai/softeer/orange/event/draw/component/picker/AccSumBasedWinnerPicker.java b/src/main/java/hyundai/softeer/orange/event/draw/component/picker/AccSumBasedWinnerPicker.java index 29c48737..d39e6973 100644 --- a/src/main/java/hyundai/softeer/orange/event/draw/component/picker/AccSumBasedWinnerPicker.java +++ b/src/main/java/hyundai/softeer/orange/event/draw/component/picker/AccSumBasedWinnerPicker.java @@ -12,8 +12,9 @@ public class AccSumBasedWinnerPicker implements WinnerPicker { @Override public List pick(List items, long count) { long maxPickCount = Math.min(items.size(), count); - // TODO: 둘 중 하나를 선택하는 최적 조건 분석하기. - if (count - maxPickCount <= 10 || // 두 값 차이가 작을 때 + // pick count = 0이면 아무 것도 안하게 수정 + if(maxPickCount == 0) return Collections.emptyList(); + if (count - maxPickCount <= 10 ||// 두 값 차이가 작을 때 ((double) count / maxPickCount) <= 1.1 ) { return pickMany(items, maxPickCount); } else { @@ -50,6 +51,7 @@ protected List pickManyUsingSet(List targets, long count // 가중합 배열 RandomItem[] items = getAccumulatedItems(targets); List pickedTargets = new ArrayList<>(); + if(items.length == 0) return pickedTargets; long bound = items[items.length - 1].score; // 이미 선택된 대상이 존재하는 공간 Set pickedIdxSet = new HashSet<>(); 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 5f1b5678..70f09d6e 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 @@ -33,12 +33,6 @@ public class DrawEventDrawMachine { @Async @Transactional public CompletableFuture draw(DrawEvent drawEvent) { - try{ - Thread.sleep(1000 * 5 * 1); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - long drawEventRawId = drawEvent.getId(); // 점수 계산. 추후 추첨 과정과 분리될 수도 있음. List policies = drawEvent.getPolicyList();