| | |
| | | * @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)); |
| | | vo.setLaveTimes(lotteryEvent.getTimes() - userLotteryEvents.size()); |
| | | //查询抽检活动奖品 |
| | | List<TLotteryEventPrize> lotteryEventPrizeList = lotteryEventPrizeService.list(new QueryWrapper<TLotteryEventPrize>().eq("lottery_event_id", id)); |
| | | vo.setPrizeList(lotteryEventPrizeList); |
| | | //答题正确率 |
| | | if (5 == lotteryEvent.getActivityType()) { |
| | | TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId)); |
| | | if (null != questionsServiceOne) { |
| | | vo.setCorrectAnswerRate(questionsServiceOne.getCorrectAnswerRate()); |
| | | } |
| | | QueryWrapper<TUserLotteryEvent> wrapper = new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId); |
| | | //下单抽奖 |
| | | if(2 == lotteryEvent.getActivityType()){ |
| | | wrapper.eq("order_id", orderId); |
| | | } |
| | | List<TUserLotteryEvent> userLotteryEvents = userLotteryEventService.list(wrapper); |
| | | vo.setLaveTimes(lotteryEvent.getTimes() - userLotteryEvents.size()); |
| | | |
| | | //构建我的奖品明细 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); |
| | | List<UserLotteryEventVo> collect = userLotteryEvents.stream().map(s -> { |
| | |
| | | return userLotteryEventVo; |
| | | }).collect(Collectors.toList()); |
| | | vo.setYourPrizeList(collect); |
| | | |
| | | //查询抽奖活动奖品 |
| | | List<TLotteryEventPrize> lotteryEventPrizeList = lotteryEventPrizeService.list(new QueryWrapper<TLotteryEventPrize>().eq("lottery_event_id", id)); |
| | | vo.setPrizeList(lotteryEventPrizeList); |
| | | //答题正确率 |
| | | if (5 == lotteryEvent.getActivityType()) { |
| | | TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId)); |
| | | if (null != questionsServiceOne) { |
| | | vo.setCorrectAnswerRate(questionsServiceOne.getCorrectAnswerRate()); |
| | | } |
| | | } |
| | | return vo; |
| | | } |
| | | |
| | |
| | | * @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) { |
| | | //判断抽奖次数是否用完 |
| | | int count = userLotteryEventService.count(new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId)); |
| | | 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("抽奖次数已用完"); |
| | | } |
| | |
| | | userLotteryEvent.setObjectId(lotteryEventPrize.getObjectId()); |
| | | userLotteryEvent.setObjectName(lotteryEventPrize.getObjectName()); |
| | | userLotteryEvent.setNumber(lotteryEventPrize.getNumber()); |
| | | userLotteryEvent.setOrderId(orderId); |
| | | //中奖优惠券 |
| | | if (1 == lotteryEventPrize.getPrizeType()) { |
| | | AddMemberCoupon addMemberCoupon = new AddMemberCoupon(); |
| | |
| | | memberGiftRecord.setGiftType(4); |
| | | memberGiftRecord.setGiftName(userLotteryEvent.getObjectName()); |
| | | memberGiftRecord.setGiftNumber(userLotteryEvent.getNumber()); |
| | | //添加待核销订单 |
| | | AddOrderVo orderVo1 = new AddOrderVo(); |
| | | orderVo1.setShopId(member.getRelationShopId()); |
| | | orderVo1.setUserId(member.getUserId()); |
| | | orderVo1.setId(userLotteryEvent.getId()); |
| | | orderVo1.setGoodsName(userLotteryEvent.getObjectName()); |
| | | orderVo1.setGoodsNum(userLotteryEvent.getNumber()); |
| | | remoteOrderService.addOrder(orderVo1); |
| | | break; |
| | | case 4: |
| | | memberGiftRecord.setGiftType(5); |
| | |
| | | } |
| | | memberGiftRecord.setPrizeFrom(2); |
| | | memberGiftRecord.setCreateTime(new Date()); |
| | | remoteMemberService.saveMemberGiftRecord(memberGiftRecord); |
| | | if(5 != lotteryEventPrize.getPrizeType()){ |
| | | remoteMemberService.saveMemberGiftRecord(memberGiftRecord); |
| | | } |
| | | return R.ok(lotteryEventPrize); |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | voList.forEach(x->{ |
| | | if (null == x.getShopId()){ |
| | | x.setCreateObject("平台创建"); |
| | | |
| | | }else { |
| | | //线下抽奖,获取门店名称 |
| | | x.setActivityType(6); |
| | | if(map.containsKey(Long.valueOf(x.getShopId()))){ |
| | | x.setCreateObject(map.get(Long.valueOf(x.getShopId())).getShopName()); |
| | | }else { |
| | |
| | | } |
| | | MgtLotteryEventDetailVO vo = new MgtLotteryEventDetailVO(); |
| | | BeanUtils.copyProperties(lotteryEvent, vo); |
| | | if (lotteryEvent.getActivityType()==6) { |
| | | //线下抽奖 取商户名称 |
| | | Shop data = remoteShopService.getShop(Long.valueOf(lotteryEvent.getShopId())).getData(); |
| | | if (null != data) { |
| | | vo.setShopName(data.getShopName()); |
| | | } |
| | | } |
| | | |
| | | if(lotteryEvent.getActivityType()==5){ |
| | | //题干数据 |
| | | List<TLotteryEventQuestions> questionsList = lotteryEventQuestionsService.getBaseMapper().selectList(new LambdaQueryWrapper<TLotteryEventQuestions>().eq(TLotteryEventQuestions::getLotteryEventId, lotteryEvent.getId())); |
| | |
| | | .eq(TLotteryEventPrize::getLotteryEventId, lotteryEvent.getId()));*/ |
| | | List<TLotteryEventPrize> prizeList = lotteryEventPrizeService.getPrizeListByLotteryEventId(lotteryEvent.getId()); |
| | | vo.setLotteryEventPrizeList(prizeList); |
| | | |
| | | if(null!=lotteryEvent.getShopId()){ |
| | | //线下抽奖 取商户名称 |
| | | Shop data = remoteShopService.getShop(Long.valueOf(lotteryEvent.getShopId())).getData(); |
| | | if (null != data) { |
| | | vo.setShopName(data.getShopName()); |
| | | } |
| | | } |
| | | return R.ok(vo); |
| | | } |
| | | |