puzhibing
10 小时以前 d2a65425646e33c26b8a98c394c7990a6bfb6b03
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.goods.api.domain.GetLotteryEventList;
import com.ruoyi.goods.api.domain.TLotteryEvent;
import com.ruoyi.goods.api.domain.TLotteryEventUser;
import com.ruoyi.goods.api.domain.TUserLotteryEvent;
import com.ruoyi.goods.api.service.LotteryEventClient;
import com.ruoyi.goods.service.lottery.ILotteryEventService;
import com.ruoyi.goods.service.lottery.ILotteryEventUserService;
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;
 
    @Resource
    private ILotteryEventUserService lotteryEventUserService;
    
    
    /**
     * 根据开启方式获取活动列表
     *
     * @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);
    }
 
 
    /**
     * 添加用户抽奖弹框记录
     * @param lotteryEventUser
     * @return
     */
    @ResponseBody
    @PostMapping("/addLotteryEventUser")
    public R addLotteryEventUser(@RequestBody TLotteryEventUser lotteryEventUser){
        TLotteryEventUser one = lotteryEventUserService.getOne(new LambdaQueryWrapper<TLotteryEventUser>().eq(TLotteryEventUser::getLotteryEventId, lotteryEventUser.getLotteryEventId())
                .eq(TLotteryEventUser::getUser_id, lotteryEventUser.getUser_id()));
        if(null == one){
            lotteryEventUserService.save(lotteryEventUser);
        }
        return R.ok();
    }
 
 
 
}