| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package com.xuekairui.activity.controller;
- import com.xuekairui.activity.dto.ActivityCheckinCycleStatusResponse;
- import com.xuekairui.activity.dto.ActivityInviteStatusResponse;
- import com.xuekairui.activity.dto.ActivityLotteryResultResponse;
- import com.xuekairui.activity.dto.ActivityLotteryStatusResponse;
- import com.xuekairui.activity.entity.ActivityLotteryRecord;
- import com.xuekairui.activity.service.ActivityCheckinCycleService;
- import com.xuekairui.activity.service.ActivityInviteService;
- import com.xuekairui.activity.service.ActivityLotteryService;
- import com.xuekairui.common.Result;
- import jakarta.servlet.http.HttpServletRequest;
- import lombok.RequiredArgsConstructor;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- /**
- * 活动接口(用户端)
- * <p>
- * 统一暴露邀请有礼、签到送会员、比价抽奖三类活动的用户端能力。
- */
- @RestController
- @RequestMapping("/api/activity")
- @RequiredArgsConstructor
- public class ActivityController {
- private final ActivityInviteService activityInviteService;
- private final ActivityCheckinCycleService activityCheckinCycleService;
- private final ActivityLotteryService activityLotteryService;
- // ========== 邀请有礼 ==========
- /**
- * 邀请有礼活动状态(含邀请人已获奖励次数、剩余次数)
- * GET /api/activity/invite/status
- */
- @GetMapping("/invite/status")
- public Result<ActivityInviteStatusResponse> inviteStatus(HttpServletRequest request) {
- Long userId = (Long) request.getAttribute("userId");
- return Result.success(activityInviteService.getStatus(userId));
- }
- // ========== 签到送会员 ==========
- /**
- * 签到送会员周期状态(当前周期签到天数、是否达标、累计领取次数、剩余次数)
- * GET /api/activity/checkin-cycle/status
- */
- @GetMapping("/checkin-cycle/status")
- public Result<ActivityCheckinCycleStatusResponse> checkinCycleStatus(HttpServletRequest request) {
- Long userId = (Long) request.getAttribute("userId");
- return Result.success(activityCheckinCycleService.getStatus(userId));
- }
- // ========== 比价抽奖 ==========
- /**
- * 比价抽奖活动状态(今日可用机会、资格)
- * GET /api/activity/lottery/status
- */
- @GetMapping("/lottery/status")
- public Result<ActivityLotteryStatusResponse> lotteryStatus(HttpServletRequest request) {
- Long userId = (Long) request.getAttribute("userId");
- return Result.success(activityLotteryService.getStatus(userId));
- }
- /**
- * 执行抽奖
- * POST /api/activity/lottery/draw
- */
- @PostMapping("/lottery/draw")
- public Result<ActivityLotteryResultResponse> draw(HttpServletRequest request) {
- Long userId = (Long) request.getAttribute("userId");
- return Result.success(activityLotteryService.draw(userId));
- }
- /**
- * 我的抽奖记录
- * GET /api/activity/lottery/records?limit=20
- */
- @GetMapping("/lottery/records")
- public Result<List<ActivityLotteryRecord>> lotteryRecords(HttpServletRequest request,
- @RequestParam(required = false) Integer limit) {
- Long userId = (Long) request.getAttribute("userId");
- return Result.success(activityLotteryService.listMyRecords(userId, limit));
- }
- }
|