From 8059e9b991c15edbac508e6b658a0d9571d11b1c Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期五, 01 八月 2025 12:46:00 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 80 insertions(+), 31 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 d9047dd..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 @@ -16,12 +16,13 @@ import com.ruoyi.goods.domain.vo.*; import com.ruoyi.goods.mapper.lottery.LotteryEventMapper; import com.ruoyi.goods.service.lottery.*; +import com.ruoyi.system.api.domain.dto.IntegralChangeDto; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord; import com.ruoyi.system.api.domain.poji.shop.Shop; -import com.ruoyi.system.api.service.RemoteCouponService; -import com.ruoyi.system.api.service.RemoteMemberService; -import com.ruoyi.system.api.service.RemoteShopService; +import com.ruoyi.system.api.model.AddIntegralRecordVo; +import com.ruoyi.system.api.model.AddOrderVo; +import com.ruoyi.system.api.service.*; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service; @@ -67,6 +68,9 @@ @Resource private ILotteryEventQuestionsService lotteryEventQuestionsService; + + @Resource + private RemoteOrderService remoteOrderService; /** * 根据id查询抽奖活动信息 @@ -75,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); //构建返回结果 @@ -83,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)); - 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 -> { @@ -117,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; } @@ -128,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); @@ -146,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("抽奖次数已用完"); } @@ -176,13 +187,22 @@ userLotteryEvent.setObjectId(lotteryEventPrize.getObjectId()); userLotteryEvent.setObjectName(lotteryEventPrize.getObjectName()); userLotteryEvent.setNumber(lotteryEventPrize.getNumber()); + userLotteryEvent.setOrderId(orderId); //中奖优惠券 if (1 == lotteryEventPrize.getPrizeType()) { - remoteCouponService.addMemberCoupon(lotteryEventPrize.getObjectId(), lotteryEventPrize.getNumber(), userId); + AddMemberCoupon addMemberCoupon = new AddMemberCoupon(); + addMemberCoupon.setCouponId(lotteryEventPrize.getObjectId()); + addMemberCoupon.setNumber(lotteryEventPrize.getNumber()); + addMemberCoupon.setUserId(userId); + remoteCouponService.addMemberCoupon(addMemberCoupon); } //中奖积分 if (4 == lotteryEventPrize.getPrizeType()) { - remoteMemberService.addIntegralRecord(lotteryEventPrize.getNumber(), userId, id); + AddIntegralRecordVo addIntegralRecordVo = new AddIntegralRecordVo(); + addIntegralRecordVo.setIntegral(lotteryEventPrize.getNumber()); + addIntegralRecordVo.setUserId(userId); + addIntegralRecordVo.setOrderId(id); + remoteMemberService.addIntegralRecord(addIntegralRecordVo); } userLotteryEvent.setCreateTime(LocalDateTime.now()); userLotteryEventService.save(userLotteryEvent); @@ -194,32 +214,55 @@ memberGiftRecord.setGiftId(userLotteryEvent.getId()); memberGiftRecord.setGiftFrom(1); memberGiftRecord.setShopId(member.getRelationShopId()); + memberGiftRecord.setVerifyStatus(1); switch (lotteryEventPrize.getPrizeType()) { case 1: memberGiftRecord.setGiftType(1); memberGiftRecord.setCouponId(userLotteryEvent.getObjectId()); memberGiftRecord.setCouponNumber(userLotteryEvent.getNumber()); + memberGiftRecord.setCouponName(userLotteryEvent.getObjectName()); + memberGiftRecord.setVerifyStatus(2); + memberGiftRecord.setVerifyTime(new Date()); break; case 2: memberGiftRecord.setGiftType(2); memberGiftRecord.setGoodsId(userLotteryEvent.getObjectId()); - memberGiftRecord.setGiftName(userLotteryEvent.getObjectName()); memberGiftRecord.setGoodsNumber(userLotteryEvent.getNumber()); + memberGiftRecord.setGoodsName(userLotteryEvent.getObjectName()); + //添加待核销订单 + AddOrderVo orderVo = new AddOrderVo(); + orderVo.setShopId(member.getRelationShopId()); + orderVo.setUserId(member.getUserId()); + orderVo.setId(userLotteryEvent.getId()); + orderVo.setGoodsId(userLotteryEvent.getObjectId()); + orderVo.setGoodsNum(userLotteryEvent.getNumber()); + remoteOrderService.addOrder(orderVo); break; case 3: 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.setIntegralNumber(userLotteryEvent.getNumber()); + memberGiftRecord.setVerifyStatus(2); + memberGiftRecord.setVerifyTime(new Date()); break; } memberGiftRecord.setPrizeFrom(2); memberGiftRecord.setCreateTime(new Date()); - memberGiftRecord.setVerifyStatus(1); - remoteMemberService.saveMemberGiftRecord(memberGiftRecord); + if(5 != lotteryEventPrize.getPrizeType()){ + remoteMemberService.saveMemberGiftRecord(memberGiftRecord); + } return R.ok(lotteryEventPrize); } } catch (Exception e) { @@ -265,6 +308,8 @@ .eq(TLotteryEvent::getActivityType, dto.getActivityType())//类型相同的 .between(TLotteryEvent::getStartTime, dto.getStartTime(), dto.getEndTime())//开始时间在这个活动的(开始-结束)范围内的 .or() + .eq(TLotteryEvent::getDelFlag, 0)//未删除的 + .eq(TLotteryEvent::getActivityType, dto.getActivityType())//类型相同的 .between(TLotteryEvent::getEndTime, dto.getStartTime(), dto.getEndTime())//结束时间在这个活动的(开始-结束)范围内的 ); if (null != lotteryEvents && !lotteryEvents.isEmpty()) { @@ -398,13 +443,16 @@ page.setCurrent(dto.getPageNum()); page.setPages(total/dto.getPageSize()); //获取分页信息 + dto.setOffset((dto.getPageNum() - 1) * dto.getPageSize()); List<MgtLotteryEventPageVo> voList = this.baseMapper.pageMgtLotteryEvent(dto); //填充创建对象 voList.forEach(x->{ - if (x.getActivityType()!=6){ + 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 { @@ -429,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())); @@ -467,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); } @@ -481,6 +529,7 @@ //1.奖品数据删除 /* lotteryEventPrizeService.remove(new LambdaQueryWrapper<TLotteryEventPrize>() .eq(TLotteryEventPrize::getLotteryEventId,lotteryEvent.getId()));*/ + lotteryEventPrizeService.deleteByLotteryEventId(lotteryEvent.getId()); //2.答题类型 if (lotteryEvent.getActivityType().equals(5)) { -- Gitblit v1.7.1