Skip to content

Commit

Permalink
Merge pull request #97 from softeerbootcamp4th/feature/#88-total-even…
Browse files Browse the repository at this point in the history
…t-date

Feature/#88 total event date
  • Loading branch information
k000927 authored Aug 12, 2024
2 parents c3c2603 + 87f24a4 commit 832360e
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package JGS.CasperEvent.domain.event.controller.eventController;


import JGS.CasperEvent.domain.event.dto.ResponseDto.TotalEventDateResponseDto;
import JGS.CasperEvent.domain.event.service.eventService.EventService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@RequestMapping("/event")

public class EventController {
private final EventService eventService;

@GetMapping("/total")
public ResponseEntity<TotalEventDateResponseDto> getTotalEventDate() {
TotalEventDateResponseDto totalEventDateResponseDto = eventService.getTotalEventDate();
return ResponseEntity.ok(totalEventDateResponseDto);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static ArrayList<LotteryEventDetailResponseDto> of(List<LotteryEvent> lot
event.getStartDateTime().toLocalTime(),
event.getEndDateTime().toLocalDate(),
event.getEndDateTime().toLocalTime(),
event.getAppliedCount(),
event.getTotalAppliedCount(),
event.getWinnerCount(),
event.getCreatedAt(),
event.getUpdatedAt()));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package JGS.CasperEvent.domain.event.dto.ResponseDto;

import java.time.LocalDate;

public record TotalEventDateResponseDto(LocalDate totalEventStartDate, LocalDate totalEventEndDate) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ public class BaseEvent extends BaseEntity {
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
protected LocalDateTime endDateTime;
protected int winnerCount;
protected AtomicInteger appliedCount;
protected AtomicInteger totalAppliedCount;

// 기본 생성자에서 디폴트 값 설정
public BaseEvent() {
this.startDateTime = LocalDateTime.now();
this.endDateTime = LocalDateTime.now().plusMinutes(10);
this.winnerCount = 0; // 기본 우승자 수를 0으로 설정
this.appliedCount = new AtomicInteger(0);
this.totalAppliedCount = new AtomicInteger(0);
}

// 특정 값을 설정할 수 있는 생성자
Expand All @@ -40,6 +40,6 @@ public BaseEvent(LocalDateTime startDateTime, LocalDateTime endDateTime, int win
}

public void addAppliedCount(){
this.appliedCount.addAndGet(1);
this.totalAppliedCount.addAndGet(1);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package JGS.CasperEvent.domain.event.service.eventService;

import JGS.CasperEvent.domain.event.dto.ResponseDto.TotalEventDateResponseDto;
import JGS.CasperEvent.domain.event.entity.event.LotteryEvent;
import JGS.CasperEvent.domain.event.entity.event.RushEvent;
import JGS.CasperEvent.domain.event.repository.eventRepository.LotteryEventRepository;
import JGS.CasperEvent.domain.event.repository.eventRepository.RushEventRepository;
import JGS.CasperEvent.global.enums.CustomErrorCode;
import JGS.CasperEvent.global.error.exception.CustomException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

@Service
@RequiredArgsConstructor
public class EventService {
private final RushEventRepository rushEventRepository;
private final LotteryEventRepository lotteryEventRepository;

public TotalEventDateResponseDto getTotalEventDate() {
List<LotteryEvent> lotteryEventList = lotteryEventRepository.findAll();
List<RushEvent> rushEventList = rushEventRepository.findAll();

if (lotteryEventList.isEmpty()) {
throw new CustomException("추첨 이벤트가 DB에 존재하지 않습니다.", CustomErrorCode.NO_LOTTERY_EVENT);
}

List<LocalDate> localDateList = new ArrayList<>();

// lotteryEvent는 어차피 최대 1개만 존재
localDateList.add(lotteryEventList.get(0).getStartDateTime().toLocalDate());
localDateList.add(lotteryEventList.get(0).getEndDateTime().toLocalDate());

for (RushEvent rushEvent : rushEventList) {
localDateList.add(rushEvent.getStartDateTime().toLocalDate());
}

localDateList.sort(null);

return new TotalEventDateResponseDto(localDateList.get(0), localDateList.get(localDateList.size() - 1));
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
@Getter
public enum CustomErrorCode {
NO_RUSH_EVENT("선착순 이벤트를 찾을 수 없습니다.", 404),
NO_LOTTERY_EVENT("선착순 이벤트를 찾을 수 없습니다.", 404),
NO_RUSH_EVENT_OPTION("해당 밸런스 게임 선택지를 찾을 수 없습니다.", 404),
INVALID_PARAMETER("잘못된 파라미터 입력입니다.", 400),
CASPERBOT_NOT_FOUND("배지를 찾을 수 없습니다.", 404),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class JwtAuthorizationFilter implements Filter {
"/event/rush", "/event/lottery/caspers",
"/admin/join", "/admin/auth", "/h2", "/h2/*",
"/swagger-ui/*", "/v3/api-docs", "/v3/api-docs/*",
"/event/lottery", "/link/*"
"/event/lottery", "/link/*", "/event/total"
};
private final String[] blackListUris = new String[]{
"/event/rush/*", "/event/lottery/casperBot"
Expand Down

0 comments on commit 832360e

Please sign in to comment.