From 2a873a04ab9c600b8e0836d1f866a66d87c4b64f Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 22 九月 2025 22:16:22 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java | 66 +++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 23 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java index 0baeaeb..c85351c 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java +++ b/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,18 +87,14 @@ 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 -> { @@ -121,6 +117,17 @@ 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; } @@ -132,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); @@ -150,7 +157,7 @@ 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("抽奖次数已用完"); } @@ -180,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(); @@ -234,6 +242,14 @@ 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); @@ -244,7 +260,9 @@ } memberGiftRecord.setPrizeFrom(2); memberGiftRecord.setCreateTime(new Date()); - remoteMemberService.saveMemberGiftRecord(memberGiftRecord); + if(5 != lotteryEventPrize.getPrizeType()){ + remoteMemberService.saveMemberGiftRecord(memberGiftRecord); + } return R.ok(lotteryEventPrize); } } catch (Exception e) { @@ -431,8 +449,10 @@ 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 { @@ -457,13 +477,7 @@ } 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())); @@ -495,7 +509,13 @@ .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); } -- Gitblit v1.7.1