puzhibing
1 天以前 c7ac989e5a693bf29efb4fbaee16770442ea41a0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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);
    }
    
}