From 0cc7a7d0acfcc010a74dcf842fa3087317094af0 Mon Sep 17 00:00:00 2001 From: Son Chanhyeok <127181634+hyeokson@users.noreply.github.com> Date: Wed, 21 Aug 2024 23:36:45 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=EC=84=A0=EC=B0=A9=EC=88=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=9D=98=20=EC=8B=9C=EC=9E=91=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=EC=9D=84=20=EB=B3=B4=EB=82=B4=EC=A3=BC?= =?UTF-8?q?=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84=20(#191)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Infra] CI/CD test (#42) * infra: 빌드 테스트 yml 작성 * infra: DB 정보 추가 * infra: ssh-agent 버전 변경 * infra: known_hosts 추가 * infra: db port 변경 * infra: database test 설정 변경 * infra: DB 환경변수 설정 및 application.yml 생성 * infra: application.yml 동적 생성 스크립트 수정 * infra: 레디스 설정 추가 * infra: redis test 추가 * infra: redis 버전 변경 * infra: redis cli 설치 * infra: application.yml 위치 및 내용 확인 * infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가 * infra: 환경변수 확인 추가 * infra: zip file 만들기 추가, AWS credentials 추가 * infra: 환경변수 이름 변경 - ARN -> AWS_ARN * infra: s3 bucket에 업로드 추가 * infra: code deploy 추가 * infra: code deploy 수정 * infra: code deploy 수정 * infra: appspec.yml 작성 * infra: application.yml 생성 경로 변경 * infra: application.yml 확인 스크립트 삭제 * infra: application.yml 생성 스크립트 수정 * infra: application-prod.yml 추가 * infra: appspec.yml 수정, 배포를 위한 sh파일 추가 * infra: deploy.yml 이름 변경 - test_deploy -> deploy * infra: body = null 설정 * infra: develop에 머지되었을 때만 발동하도록 수정 * feat: draw_rank column 이름 수정 * Infra: environment 삭제 * [Infra] CI CD test 3 (#45) * infra: 빌드 테스트 yml 작성 * infra: DB 정보 추가 * infra: ssh-agent 버전 변경 * infra: known_hosts 추가 * infra: db port 변경 * infra: database test 설정 변경 * infra: DB 환경변수 설정 및 application.yml 생성 * infra: application.yml 동적 생성 스크립트 수정 * infra: 레디스 설정 추가 * infra: redis test 추가 * infra: redis 버전 변경 * infra: redis cli 설치 * infra: application.yml 위치 및 내용 확인 * infra: Github Actions 환경변수에 REDIS_HOST, REDIS_PORT 추가 * infra: 환경변수 확인 추가 * infra: zip file 만들기 추가, AWS credentials 추가 * infra: 환경변수 이름 변경 - ARN -> AWS_ARN * infra: s3 bucket에 업로드 추가 * infra: code deploy 추가 * infra: code deploy 수정 * infra: code deploy 수정 * infra: appspec.yml 작성 * infra: application.yml 생성 경로 변경 * infra: application.yml 확인 스크립트 삭제 * infra: application.yml 생성 스크립트 수정 * infra: application-prod.yml 추가 * infra: appspec.yml 수정, 배포를 위한 sh파일 추가 * infra: deploy.yml 이름 변경 - test_deploy -> deploy * infra: body = null 설정 * infra: develop에 머지되었을 때만 발동하도록 수정 * feat: draw_rank column 이름 수정 * Infra: environment 삭제 * Infra: environment 삭제 * config: jwt 속성을 yml에 설정 * rebase: 원본 develop 브랜치와 병합 * doc: jacoco 파일 생성 * feat: 선착순 이벤트 당첨 기록 응답 Dto 클래스 * chore: 패키지 변경 * feat: winningDate값 바인딩 * chore: 패키지 변경 * refactor: 변수 타입 변경 * feat: 선착순 당첨 기록을 처리하는 메서드 구현 * feat: 선착순 당첨 기록 응답을 반환하는 메서드 구현 * feat: 인수로 넘어온 선착순 설정 정보를 바인딩하는 메서드 구현 * chore: 패키지 변경 * refactor: redis prefix 상수 변경 * fix: 퀴즈 힌트 조회 로직 수정 * refactor: 메서드 변경 * feat: timeformatter 추가 * feat: entity에 변수 추가 * feat: 선착순 repository 메서드 추가 * chore: jacoco 파일 삭제 * test: 메서드 수정 * refactor: fcfsStartTime을 바인딩하도록 변경 * refactor: 필드 수정 * feat: request uri를 확인하는 로그 추가 * feat: 메서드 생성 - 현재 선착순 이벤트가 진행중이라면 현재 이벤트의 시작시간을, 진행중이 아니라면 다음 이벤트 시작시간을 반환하는 메서드 구현 --------- Co-authored-by: DrRivaski <48974215+DrRivaski@users.noreply.github.com> Co-authored-by: hyeokson --- .../fo_domain/fcfs/service/FcfsSettingManager.java | 13 +++++++++++++ .../fo_domain/mainpage/service/MainPageService.java | 10 ++++++++-- .../global/filter/JwtAuthenticationFilter.java | 2 ++ .../mainpage/service/MainPageServiceTest.java | 2 +- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/softeer/backend/fo_domain/fcfs/service/FcfsSettingManager.java b/src/main/java/com/softeer/backend/fo_domain/fcfs/service/FcfsSettingManager.java index 26a1707a..8b0670f2 100644 --- a/src/main/java/com/softeer/backend/fo_domain/fcfs/service/FcfsSettingManager.java +++ b/src/main/java/com/softeer/backend/fo_domain/fcfs/service/FcfsSettingManager.java @@ -162,6 +162,19 @@ public LocalDateTime getNextFcfsTime(LocalDateTime now) { return null; } + /** + * 현재 선착순 이벤트가 진행중이라면 현재 이벤트의 시작시간을, 진행중이 아니라면 다음 이벤트 시작시간을 반환하는 메서드 + */ + public LocalDateTime getNowOrNextFcfsTime(LocalDateTime now) { + + Integer round = getFcfsRound(now); + if(round != null){ + return fcfsSettingList.get(round-1).getStartTime(); + } + + return getNextFcfsTime(now); + } + public Integer getFcfsRoundForHistory(LocalDate now) { for (FcfsSettingDto fcfsSettingDto : fcfsSettingList) { diff --git a/src/main/java/com/softeer/backend/fo_domain/mainpage/service/MainPageService.java b/src/main/java/com/softeer/backend/fo_domain/mainpage/service/MainPageService.java index 2729a3eb..d861a290 100644 --- a/src/main/java/com/softeer/backend/fo_domain/mainpage/service/MainPageService.java +++ b/src/main/java/com/softeer/backend/fo_domain/mainpage/service/MainPageService.java @@ -105,6 +105,13 @@ public MainPageEventInfoResponseDto getEventPageInfo() { int remainDrawCount = totalDrawWinner - (int) drawRepository.count(); + String fcfsTime = ""; + if(firstFcfsSetting.getStartTime().getMinute() != 0){ + fcfsTime = firstFcfsSetting.getStartTime().format(fcfsTimeFormatter); + } + else + fcfsTime = firstFcfsSetting.getStartTime().format(fcfsTimeMinFormatter); + String fcfsTime = ""; if(firstFcfsSetting.getStartTime().getMinute() != 0){ fcfsTime = firstFcfsSetting.getStartTime().format(fcfsTimeFormatter); @@ -125,8 +132,7 @@ public MainPageEventInfoResponseDto getEventPageInfo() { .remainDrawCount(staticResourceUtil.format( textContentMap.get(StaticTextName.REMAIN_DRAW_COUNT.name()), decimalFormat.format(remainDrawCount))) .fcfsHint(quizManager.getHint()) - .isFcfsAvailable(fcfsSettingManager.isFcfsEntryAvailable(LocalDateTime.now())) - .nextFcfsStartTime(fcfsSettingManager.getNextFcfsTime(LocalDateTime.now())) + .fcfsStartTime(fcfsSettingManager.getNowOrNextFcfsTime(LocalDateTime.now())) .build(); } diff --git a/src/main/java/com/softeer/backend/global/filter/JwtAuthenticationFilter.java b/src/main/java/com/softeer/backend/global/filter/JwtAuthenticationFilter.java index b8d37081..968d9857 100644 --- a/src/main/java/com/softeer/backend/global/filter/JwtAuthenticationFilter.java +++ b/src/main/java/com/softeer/backend/global/filter/JwtAuthenticationFilter.java @@ -55,6 +55,8 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { + log.info("request uri: {}", request.getRequestURI()); + // preflight 요청 또는 whitelist에 있는 요청은 인증 검사 x if (CorsUtils.isPreFlightRequest(request) || isUriInWhiteList(request.getRequestURI())) { filterChain.doFilter(request, response); diff --git a/src/test/java/com/softeer/backend/fo_domain/mainpage/service/MainPageServiceTest.java b/src/test/java/com/softeer/backend/fo_domain/mainpage/service/MainPageServiceTest.java index bffa4709..b790af96 100644 --- a/src/test/java/com/softeer/backend/fo_domain/mainpage/service/MainPageServiceTest.java +++ b/src/test/java/com/softeer/backend/fo_domain/mainpage/service/MainPageServiceTest.java @@ -129,7 +129,7 @@ void testGetEventPageInfo() { when(drawSettingManager.getStartDate()).thenReturn(LocalDate.of(2024, 8, 1)); when(drawSettingManager.getEndDate()).thenReturn(LocalDate.of(2024, 8, 31)); when(quizManager.getHint()).thenReturn("퀴즈 힌트"); - when(fcfsSettingManager.getNextFcfsTime(any())).thenReturn(LocalDateTime.of(2024, 8, 22, 11, 0)); + when(fcfsSettingManager.getNowOrNextFcfsTime(any())).thenReturn(LocalDateTime.of(2024, 8, 22, 11, 0)); // When MainPageEventInfoResponseDto response = mainPageService.getEventPageInfo();