package com.ruoyi.goods.controller.concole;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.goods.api.domain.GetLotteryEventList;
|
import com.ruoyi.goods.api.domain.TLotteryEvent;
|
import com.ruoyi.goods.api.domain.TUserLotteryEvent;
|
import com.ruoyi.goods.service.lottery.ILotteryEventService;
|
import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/5/8 18:13
|
*/
|
@RestController
|
@RequestMapping("/lotteryEvent")
|
public class LotteryEventController {
|
|
@Resource
|
private ILotteryEventService lotteryEventService;
|
|
@Resource
|
private IUserLotteryEventService userLotteryEventService;
|
|
|
/**
|
* 根据开启方式获取活动列表
|
*
|
* @param getLotteryEventList
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/getLotteryEventList")
|
public R<List<TLotteryEvent>> getLotteryEventList(@RequestBody GetLotteryEventList getLotteryEventList) {
|
Integer activityType = getLotteryEventList.getActivityType();
|
Long userId = getLotteryEventList.getUserId();
|
List<TLotteryEvent> list = lotteryEventService.list(new LambdaQueryWrapper<TLotteryEvent>().eq(TLotteryEvent::getActivityType, activityType)
|
.eq(TLotteryEvent::getDelFlag, 0).last(" and now() between start_time and end_time"));
|
//分享抽奖,需要判断最后一次抽奖间隔时间
|
if(activityType == 3 && !list.isEmpty()){
|
TLotteryEvent lotteryEvent = list.get(0);
|
Integer intervalTime = lotteryEvent.getIntervalTime();
|
TUserLotteryEvent one = userLotteryEventService.getOne(new QueryWrapper<TUserLotteryEvent>().eq("user_id", userId).eq("lottery_event_id", lotteryEvent.getId()).last(" order by create_time desc limit 0, 1"));
|
//当前时间小于间隔时间
|
if(null != one && one.getCreateTime().plusDays(intervalTime).compareTo(LocalDateTime.now()) > 0){
|
return R.ok(new ArrayList<>());
|
}
|
}
|
return R.ok(list);
|
}
|
|
}
|