✅ 29. 사용자 로또 응모 기록 저장 기능 구현 완료
목표: 사용자가 추천 받은 번호 또는 직접 선택한 번호를 응모 기록으로 DB에 저장
테이블: lotto_user_history
구현 내용:
- LottoUserHistoryRequest DTO 설계 (번호 6개 + drawRound 등 포함)
- 컨트롤러: POST /api/lotto/user/history
- 서비스: saveUserLottoHistory(userId, request)로 DB에 저장
- 중복 저장 방지를 위해 복합 유니크 제약(userId + drawRound)
📌 사용자가 응모한 번호를 기반으로 당첨 여부 평가, 마이페이지 기록에 활용 가능
✅ 30. 당첨 결과 자동 평가 기능 구현 완료
목표: 저장된 사용자 응모 번호에 대해 당첨 등수/금액 자동 계산
DTO: LottoUserWinningUpdateRequest
주요 로직:
- 기존 응모 기록과 실제 회차 당첨번호 비교
- 일치 개수 및 보너스 번호 포함 여부 기반으로 등수 계산
- 등수별 당첨 금액 조회 후 DB 업데이트
결과 반영 항목:
- winningRank: 1~5등
- winningAmount: 금액
- isClaimed: false (초기 상태)
📌 등수 계산 후 마이페이지에서 당첨 여부를 확인 가능하게 됨
✅ 31. 사용자 응모 기록 조회 API 구현 완료
경로: GET /api/lotto/user/history
파라미터: userId, sort, limit, drawRound 등
기능:
- 사용자별 응모 기록을 리스트로 반환
- 최신순 정렬 및 페이징/필터 지원
- 반환 DTO: LottoUserHistoryResponse (번호, 회차, 당첨 여부 등 포함)
📌 마이페이지 구현을 위한 핵심 API 완성!
✅ 32. 관리자용 수동 평가 API 구현 완료
경로: POST /api/lotto/admin/evaluate
설명:
- 특정 회차를 기준으로 전체 사용자 응모 기록을 평가
- 크롤링 완료 후 누락된 회차를 수동으로 반영할 수 있음
- Swagger에서 테스트 가능
📌 회차 누락, 수동 정산 등의 상황에 대응 가능한 유틸성 기능
✅ 33. 사용자 인증 기반 요청 처리 흐름 완성
관련 파일: AuthContext.jsx, UseAxios.jsx
기능 요약:
- 로그인 시 이메일, token, refreshToken 저장
- 전역 인증 상태 관리 (isLoggedIn 포함)
- useAxios 훅을 통한 Authorization 자동 삽입
- multipart 요청 대응도 가능
📌 모든 민감 API 요청은 토큰 기반으로 보안 강화됨
✅ 34. 공통 응답/에러 포맷 완성 및 Swagger 연동
클래스: CommonResponse, ErrorResponse
Swagger 어노테이션:
- 각 필드에 @Schema를 통해 메시지, 예시, 구조 명시
- 에러 포맷 구조(code, message, errors) 문서화
📌 클라이언트 협업 시 명확한 응답/에러 포맷 공유 가능
✅ 35. 공통 로깅 AOP 흐름 전면 적용
클래스: CommonLogger
적용 대상: 모든 Controller, Service 계층
기능:
- 진입 시 파라미터 출력
- 반환 시 결과 요약 로그 출력 (70자 이상 시 길이만 표시)
📌 모든 추천, 응모, 평가 흐름의 트래킹 로그 자동화
✅ 36. 회차별 번호 등장 여부 히트맵 API 구현 완료
목표: 회차별로 1~45번 번호 중 어떤 번호가 등장했는지 시각화하기 위한 히트맵 데이터 제공
경로: GET /api/lotto/stats/history-heatmap
응답 구조: SortedMap<Long, Map<Integer, Boolean>>
- key: 회차 번호
- value: Map<번호, 등장여부(true/false)>
📌 Chart.js Matrix 플러그인을 활용한 히트맵 구현 기반 API로, 시각화 완성도 향상
✅ 37. 프론트엔드 LottoHeatmap 컴포넌트 구현 완료
기능 요약:
- Chart.js 기반 매트릭스(히트맵) 차트 구성
- 사용자 입력으로 시작 회차, 끝 회차 설정 가능
- Fallback 예외 처리 및 로딩 상태 관리 포함
📌 시각적으로 전체 회차의 번호 출현 패턴을 한눈에 보여주는 통계 시각화 컴포넌트 완성
📌 다음 작업 예정 차트 항목
- 번호 출현 빈도 막대그래프 통계 API 및 차트 구현
- 당첨 등수 분포 차트 (1~5등)
- 사용자 응모 히스토리 기반 필터링 및 시각화 확장
'DEV-LOG > Lottomate' 카테고리의 다른 글
| [Project Lottomate] 개발일지(5) (0) | 2025.04.22 |
|---|---|
| [Project Lottomate] 개발일지(4) (0) | 2025.04.21 |
| [Project Lottomate] 개발일지(3) (0) | 2025.04.20 |
| [Project Lottomate] 개발일지(2) (0) | 2025.04.18 |
| [Project Lottomate] 개발일지(1) (0) | 2025.04.16 |