From d6a0c57043e8cc20694a3c678bf8e3a8f28f6499 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 29 五月 2025 11:20:14 +0800
Subject: [PATCH] 新增加用户端接口
---
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java | 78 +++++++++++++++++++++++++++++++++------
1 files changed, 66 insertions(+), 12 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 5c1bc6a..b83e9cb 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
@@ -10,22 +10,27 @@
import com.ruoyi.goods.api.domain.LotteryEvent;
import com.ruoyi.goods.api.domain.LotteryEventPrize;
import com.ruoyi.goods.api.domain.UserLotteryEvent;
+import com.ruoyi.goods.api.domain.UserLotteryEventQuestions;
import com.ruoyi.goods.domain.vo.AppLotteryEventPageVo;
import com.ruoyi.goods.domain.vo.LotteryEventVo;
import com.ruoyi.goods.domain.vo.UserLotteryEventVo;
import com.ruoyi.goods.mapper.lottery.LotteryEventMapper;
import com.ruoyi.goods.service.lottery.ILotteryEventPrizeService;
import com.ruoyi.goods.service.lottery.ILotteryEventService;
-import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsAnswersService;
+import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsService;
import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
+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 org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -54,7 +59,10 @@
private RedissonClient redissonClient;
@Resource
- private IUserLotteryEventQuestionsAnswersService userLotteryEventQuestionsService;
+ private IUserLotteryEventQuestionsService userLotteryEventQuestionsAnswersService;
+
+ @Resource
+ private RemoteShopService remoteShopService;
/**
@@ -65,6 +73,7 @@
*/
@Override
public LotteryEventVo getLotteryEvent(String id) {
+ Long userId = SecurityUtils.getUserId();
LotteryEvent lotteryEvent = this.getById(id);
//构建返回结果
LotteryEventVo vo = new LotteryEventVo();
@@ -76,14 +85,30 @@
//查询抽检活动奖品
List<LotteryEventPrize> lotteryEventPrizeList = lotteryEventPrizeService.list(new QueryWrapper<LotteryEventPrize>().eq("lottery_event_id", id));
vo.setPrizeList(lotteryEventPrizeList);
-
+ //答题正确率
+ if (5 == lotteryEvent.getActivityType()) {
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+ if (null == questionsServiceOne) {
+ vo.setCorrectAnswerRate(questionsServiceOne.getCorrectAnswerRate());
+ }
+ }
//构建我的奖品明细
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
List<UserLotteryEventVo> collect = userLotteryEvents.stream().map(s -> {
UserLotteryEventVo userLotteryEventVo = new UserLotteryEventVo();
userLotteryEventVo.setName(s.getObjectName());
userLotteryEventVo.setPrizeType(s.getPrizeType());
userLotteryEventVo.setNumber(s.getNumber());
- userLotteryEventVo.setVerifyCode(s.getVerifyCode());
+ MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrizeByGiftId(s.getId()).getData();
+ userLotteryEventVo.setVerifyCode("3-" + memberGiftRecord.getPrizeId());
+ userLotteryEventVo.setIsVerify(1 == memberGiftRecord.getVerifyStatus() ? 0 : 1);
+ userLotteryEventVo.setVerifyTime(null == memberGiftRecord.getVerifyTime() ? "" : sdf.format(memberGiftRecord.getVerifyTime()));
+ Member member = remoteMemberService.getMember(userId).getData();
+ userLotteryEventVo.setVerifyShop("全部门店");
+ if (null != member && null != member.getRelationShopId()) {
+ Shop shop = remoteShopService.getShop(member.getRelationShopId()).getData();
+ userLotteryEventVo.setVerifyShop(shop.getShopName());
+ }
return userLotteryEventVo;
}).collect(Collectors.toList());
vo.setYourPrizeList(collect);
@@ -100,11 +125,12 @@
@Override
public R lotteryDraw(String id) {
Long userId = SecurityUtils.getUserId();
+ Member member = remoteMemberService.getMember(userId).getData();
LotteryEvent lotteryEvent = this.getById(id);
//判断答题抽奖是否满足抽奖条件
if (lotteryEvent.getActivityType() == 5) {
- BigDecimal correctAnswerRate = userLotteryEventQuestionsService.getCorrectAnswerRate(userId, id);
- if (correctAnswerRate.compareTo(lotteryEvent.getAccuracy()) < 0) {
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+ if (questionsServiceOne.getCorrectAnswerRate().compareTo(lotteryEvent.getAccuracy()) < 0) {
return R.fail("答题抽奖失败,答题正确率低于活动要求");
}
}
@@ -145,11 +171,6 @@
userLotteryEvent.setObjectId(lotteryEventPrize.getObjectId());
userLotteryEvent.setObjectName(lotteryEventPrize.getObjectName());
userLotteryEvent.setNumber(lotteryEventPrize.getNumber());
- //商品需要生成核销码和核销状态
- if (Arrays.asList(2, 3).contains(lotteryEventPrize.getPrizeType())) {
- userLotteryEvent.setVerifyCode(IdUtils.simpleUUID());
- userLotteryEvent.setIsVerify(0);
- }
//中奖优惠券
if (1 == lotteryEventPrize.getPrizeType()) {
remoteCouponService.addMemberCoupon(lotteryEventPrize.getObjectId(), lotteryEventPrize.getNumber(), userId);
@@ -160,6 +181,39 @@
}
userLotteryEvent.setCreateTime(LocalDateTime.now());
userLotteryEventService.save(userLotteryEvent);
+ //添加奖品数据
+ MemberGiftRecord memberGiftRecord = new MemberGiftRecord();
+ memberGiftRecord.setPrizeId(IdUtils.simpleUUID());
+ memberGiftRecord.setDelFlag(0);
+ memberGiftRecord.setUserId(userId);
+ memberGiftRecord.setGiftId(userLotteryEvent.getId());
+ memberGiftRecord.setGiftFrom(1);
+ memberGiftRecord.setShopId(member.getRelationShopId());
+ switch (lotteryEventPrize.getPrizeType()) {
+ case 1:
+ memberGiftRecord.setGiftType(1);
+ memberGiftRecord.setCouponId(userLotteryEvent.getObjectId());
+ memberGiftRecord.setCouponNumber(userLotteryEvent.getNumber());
+ break;
+ case 2:
+ memberGiftRecord.setGiftType(2);
+ memberGiftRecord.setGoodsId(userLotteryEvent.getObjectId());
+ memberGiftRecord.setGoodsNumber(userLotteryEvent.getNumber());
+ break;
+ case 3:
+ memberGiftRecord.setGiftType(4);
+ memberGiftRecord.setGiftName(userLotteryEvent.getObjectName());
+ memberGiftRecord.setGiftNumber(userLotteryEvent.getNumber());
+ break;
+ case 4:
+ memberGiftRecord.setGiftType(5);
+ memberGiftRecord.setIntegralNumber(userLotteryEvent.getNumber());
+ break;
+ }
+ memberGiftRecord.setPrizeFrom(2);
+ memberGiftRecord.setCreateTime(new Date());
+ memberGiftRecord.setVerifyStatus(1);
+ remoteMemberService.saveMemberGiftRecord(memberGiftRecord);
return R.ok();
}
} catch (Exception e) {
--
Gitblit v1.7.1