-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Description
개요
투표 참여 시 사용자의 선택이 다수 의견과 일치하는지 판정하여 연속 정답 시 티켓을 지급하는 리워드 시스템 구현
요구사항
- 사용자가 투표 참여 후 현재 투표 추세를 분석하여 정답 여부 판정
- 3번 연속 정답 시 티켓 1개 지급
- 1번, 2번 맞춘 후 틀린 경우 연속 카운트 0으로 초기화
상세 설계
📋 투표 리워드 시스템 설계서 참조
구현 모듈
- VoteRewardService: 투표 추세 분석 및 정답 판정 비즈니스 로직
- UserVoteStreakService: 연속 정답 카운트 관리 (Redis 기반)
- TicketService Enhancement: 티켓 지급 메서드 추가
- VotingService Integration: 기존 투표 서비스에 리워드 로직 통합
- VoteParticipationResponse Enhancement: 리워드 정보를 포함한 응답 DTO
구현 순서
- VoteRewardService 구현 및 테스트
- UserVoteStreakService 구현 및 테스트
- TicketService 티켓 지급 메서드 추가
- VotingService 통합 및 테스트
- Response DTO 확장
- 통합 테스트 및 QA
주요 고려사항
- Redis 기반 연속 정답 관리로 성능 최적화
- 분산락을 통한 티켓 지급 동시성 제어
- 리워드 처리 실패가 투표 참여를 방해하지 않도록 예외 처리
관련 파일
src/main/java/hanium/modic/backend/web/vote/controller/VoteController.javasrc/main/java/hanium/modic/backend/domain/vote/service/VotingService.javasrc/main/java/hanium/modic/backend/domain/ticket/service/TicketService.java
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels