package com.ruoyi.goods.controller.miniapp;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.goods.api.domain.LotteryEvent;
|
import com.ruoyi.goods.api.domain.UserLotteryEvent;
|
import com.ruoyi.goods.api.domain.UserLotteryEventQuestions;
|
import com.ruoyi.goods.domain.vo.AppLotteryEventPageVo;
|
import com.ruoyi.goods.domain.vo.LotteryEventInfoVo;
|
import com.ruoyi.goods.domain.vo.LotteryEventVo;
|
import com.ruoyi.goods.service.lottery.ILotteryEventService;
|
import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsService;
|
import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
|
import com.ruoyi.system.api.domain.dto.LotteryEventListDto;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.time.format.DateTimeFormatter;
|
import java.util.List;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/5/26 15:26
|
*/
|
@Validated
|
@RestController
|
@RequiredArgsConstructor
|
@Api(tags = "小程序抽奖相关接口")
|
@RequestMapping("/app/lotteryEvent")
|
public class AppLotteryEventController {
|
|
@Resource
|
private ILotteryEventService lotteryEventService;
|
|
@Resource
|
private IUserLotteryEventService userLotteryEventService;
|
|
@Resource
|
private IUserLotteryEventQuestionsService userLotteryEventQuestionsService;
|
|
|
|
|
@ResponseBody
|
@PostMapping("/getLotteryEvent/{id}")
|
@ApiOperation(value = "获取抽奖页详情【2.0】", tags = "抽奖活动")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "抽奖活动id", required = true, dataType = "String", paramType = "path")
|
})
|
public R<LotteryEventVo> getLotteryEvent(@PathVariable("id") String id) {
|
LotteryEventVo lotteryEvent = lotteryEventService.getLotteryEvent(id);
|
return R.ok(lotteryEvent);
|
}
|
|
|
@ResponseBody
|
@PostMapping("/lotteryDraw/{id}")
|
@ApiOperation(value = "抽奖操作【2.0】", tags = "抽奖活动", notes = "返回奖品ID")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "抽奖活动id", required = true, dataType = "String", paramType = "path")
|
})
|
public R lotteryDraw(@PathVariable("id") String id) {
|
return lotteryEventService.lotteryDraw(id);
|
}
|
|
|
@ResponseBody
|
@PostMapping("/getLotteryEventList")
|
@ApiOperation(value = "获取普通抽奖列表【2.0】", tags = "抽奖活动")
|
public R<Page<AppLotteryEventPageVo>> getLotteryEventList(@RequestBody LotteryEventListDto dto){
|
Long userId = SecurityUtils.getUserId();
|
Page<AppLotteryEventPageVo> page = new Page<>();
|
page.setSize(dto.getPageSize());
|
page.setCurrent(dto.getPageNum());
|
List<AppLotteryEventPageVo> activityPageVoList = lotteryEventService.pageAppLotteryEvent(page,userId);
|
return R.ok(page.setRecords(activityPageVoList));
|
}
|
|
|
@ResponseBody
|
@PostMapping("/getLotteryEventInfo/{id}")
|
@ApiOperation(value = "获取抽奖活动详情【2.0】", tags = "抽奖活动")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "id", value = "抽奖活动id", required = true, dataType = "String", paramType = "path")
|
})
|
public R<LotteryEventInfoVo> getLotteryEventInfo(@PathVariable("id") String id){
|
Long userId = SecurityUtils.getUserId();
|
LotteryEvent lotteryEvent = lotteryEventService.getById(id);
|
LotteryEventInfoVo vo = new LotteryEventInfoVo();
|
vo.setId(lotteryEvent.getId());
|
vo.setName(lotteryEvent.getName());
|
vo.setActivityProfile(lotteryEvent.getActivityProfile());
|
vo.setStartTime(lotteryEvent.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
vo.setActivityContent(lotteryEvent.getActivityContent());
|
int count = userLotteryEventService.count(new QueryWrapper<UserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId));
|
vo.setParticipation(count > 0);
|
//答题抽奖需要判断是否答题完成
|
if(5 == lotteryEvent.getActivityType()){
|
UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
|
vo.setContinueAnswer(null != questionsServiceOne ? questionsServiceOne.getStatus() : 0);
|
}
|
return R.ok(vo);
|
}
|
|
}
|