puzhibing
2 天以前 a95d0c4bdd96b09342c7ccf9aa1aef4b26b31302
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
@@ -79,7 +79,7 @@
    * @return
    */
   @Override
   public LotteryEventVo getLotteryEvent(String id) {
   public LotteryEventVo getLotteryEvent(String id, String orderId) {
      Long userId = SecurityUtils.getUserId();
      TLotteryEvent lotteryEvent = this.getById(id);
      //构建返回结果
@@ -87,7 +87,12 @@
      vo.setId(lotteryEvent.getId());
      vo.setName(lotteryEvent.getName());
      vo.setActivityProfile(lotteryEvent.getActivityProfile());
      List<TUserLotteryEvent> userLotteryEvents = userLotteryEventService.list(new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId));
      QueryWrapper<TUserLotteryEvent> wrapper = new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId);
      //下单抽奖
      if(2 == lotteryEvent.getActivityType()){
         wrapper.eq("orderId", orderId);
      }
      List<TUserLotteryEvent> userLotteryEvents = userLotteryEventService.list(wrapper);
      vo.setLaveTimes(lotteryEvent.getTimes() - userLotteryEvents.size());
      //构建我的奖品明细
@@ -134,7 +139,7 @@
    * @return
    */
   @Override
   public R<TLotteryEventPrize> lotteryDraw(String id) {
   public R<TLotteryEventPrize> lotteryDraw(String id, String orderId) {
      Long userId = SecurityUtils.getUserId();
      Member member = remoteMemberService.getMember(userId).getData();
      TLotteryEvent lotteryEvent = this.getById(id);
@@ -152,11 +157,9 @@
         boolean tryLock = lock.tryLock(30, TimeUnit.SECONDS);
         if (tryLock) {
            //判断抽奖次数是否用完
            if(2 != lotteryEvent.getActivityType()){
               int count = userLotteryEventService.count(new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId));
               if (lotteryEvent.getTimes() <= count) {
                  return R.fail("抽奖次数已用完");
               }
            int count = userLotteryEventService.count(new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId).eq("order_id", orderId));
            if (lotteryEvent.getTimes() <= count) {
               return R.fail("抽奖次数已用完");
            }
            List<TLotteryEventPrize> lotteryEventPrizeList = lotteryEventPrizeService.list(new QueryWrapper<TLotteryEventPrize>().eq("lottery_event_id", id));
            //开始抽奖,根据中奖概率来抽奖
@@ -184,6 +187,7 @@
            userLotteryEvent.setObjectId(lotteryEventPrize.getObjectId());
            userLotteryEvent.setObjectName(lotteryEventPrize.getObjectName());
            userLotteryEvent.setNumber(lotteryEventPrize.getNumber());
            userLotteryEvent.setOrderId(orderId);
            //中奖优惠券
            if (1 == lotteryEventPrize.getPrizeType()) {
               AddMemberCoupon addMemberCoupon = new AddMemberCoupon();