| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public LotteryEventVo getLotteryEvent(String id) { |
| | | public LotteryEventVo getLotteryEvent(String id, String orderId) { |
| | | Long userId = SecurityUtils.getUserId(); |
| | | TLotteryEvent lotteryEvent = this.getById(id); |
| | | //构建返回结果 |
| | |
| | | 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()); |
| | | |
| | | //构建我的奖品明细 |
| | |
| | | * @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); |
| | |
| | | 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)); |
| | | //开始抽奖,根据中奖概率来抽奖 |
| | |
| | | userLotteryEvent.setObjectId(lotteryEventPrize.getObjectId()); |
| | | userLotteryEvent.setObjectName(lotteryEventPrize.getObjectName()); |
| | | userLotteryEvent.setNumber(lotteryEventPrize.getNumber()); |
| | | userLotteryEvent.setOrderId(orderId); |
| | | //中奖优惠券 |
| | | if (1 == lotteryEventPrize.getPrizeType()) { |
| | | AddMemberCoupon addMemberCoupon = new AddMemberCoupon(); |