puzhibing
4 天以前 2a873a04ab9c600b8e0836d1f866a66d87c4b64f
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/LotteryEventController.java
@@ -1,12 +1,23 @@
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.LotteryEvent;
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;
/**
@@ -19,21 +30,57 @@
   
   @Resource
   private ILotteryEventService lotteryEventService;
   @Resource
   private IUserLotteryEventService userLotteryEventService;
   @Resource
   private ILotteryEventUserService lotteryEventUserService;
   
   
   /**
    * 根据开启方式获取活动列表
    *
    * @param activityType
    * @param getLotteryEventList
    * @return
    */
   @ResponseBody
   @PostMapping("/getLotteryEventList")
   public R<List<LotteryEvent>> getLotteryEventList(@RequestParam("activityType") Integer activityType) {
      List<LotteryEvent> list = lotteryEventService.list(new LambdaQueryWrapper<LotteryEvent>().eq(LotteryEvent::getActivityType, activityType)
            .eq(LotteryEvent::getDelFlag, 0).last(" and now() between start_time and end_time"));
   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();
   }
}