From c279b0695286bea0e915981f4b8dc52abd039dd0 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期四, 19 六月 2025 15:11:10 +0800
Subject: [PATCH] 抽奖bug修改

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java |   24 +++++++++---
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml                        |   40 ++++++++-----------
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventQuestionAnswersDTO.java |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java |    8 ++--
 ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/LotteryEventQuestionsAnswers.java      |    4 +-
 5 files changed, 42 insertions(+), 36 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/LotteryEventQuestionsAnswers.java b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/LotteryEventQuestionsAnswers.java
index 167fba8..56a056d 100644
--- a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/LotteryEventQuestionsAnswers.java
+++ b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/LotteryEventQuestionsAnswers.java
@@ -29,8 +29,8 @@
 	/**
 	 * 答案
 	 */
-	@TableField(value = "answer")
-	private String answer;
+	@TableField(value = "answers")
+	private String answers;
 	/**
 	 * 是否是正确答案(0=否,1=是)
 	 */
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
index aaec304..a2a5cbf 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
@@ -146,7 +146,7 @@
 			List<Map<String, String>> options = list.stream().map(item -> {
 				Map<String, String> map = new HashMap<>();
 				map.put("id", item.getId());
-				map.put("name", item.getAnswer());
+				map.put("name", item.getAnswers());
 				return map;
 			}).collect(Collectors.toList());
 			vo.setOptions(options);
@@ -174,13 +174,13 @@
 			List<Map<String, String>> options = list1.stream().map(item -> {
 				Map<String, String> map = new HashMap<>();
 				map.put("id", item.getId());
-				map.put("name", item.getAnswer());
+				map.put("name", item.getAnswers());
 				return map;
 			}).collect(Collectors.toList());
 			if (-1 == dto.getStepOrDown()) {
 				UserLotteryEventQuestionsAnswers one = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestionsAnswers>().eq("lottery_event_id", dto.getId()).eq("user_id", userId).orderByDesc("create_time").last(" limit 0, 1"));
 				if (null != one) {
-					vo.setAnswer(lotteryEventQuestionsAnswersService.getById(one.getLotteryEventQuestionsAnswersId()).getAnswer());
+					vo.setAnswer(lotteryEventQuestionsAnswersService.getById(one.getLotteryEventQuestionsAnswersId()).getAnswers());
 				}
 			}
 			vo.setOptions(options);
@@ -195,7 +195,7 @@
 		List<LotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
 		LotteryEventQuestions lotteryEventQuestions = list.get(dto.getCurrent());
 		List<LotteryEventQuestionsAnswers> list1 = lotteryEventQuestionsAnswersService.list(new QueryWrapper<LotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", lotteryEventQuestions.getId()));
-		LotteryEventQuestionsAnswers lotteryEventQuestionsAnswers = list1.stream().filter(item -> item.getAnswer().equals(dto.getAnswer())).findAny().orElse(null);
+		LotteryEventQuestionsAnswers lotteryEventQuestionsAnswers = list1.stream().filter(item -> item.getAnswers().equals(dto.getAnswer())).findAny().orElse(null);
 		//构建答题数据
 		Long userId = SecurityUtils.getUserId();
 		UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).eq("user_id", userId));
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventQuestionAnswersDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventQuestionAnswersDTO.java
index 852db90..a78770b 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventQuestionAnswersDTO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventQuestionAnswersDTO.java
@@ -10,7 +10,7 @@
      * 选项
      */
     @ApiModelProperty("选项")
-    private String answer;
+    private String answers;
     /**
      * 是否是正确答案(0=否,1=是)
      */
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 93a76cc..6becbd0 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
@@ -353,7 +353,7 @@
 							answer.setId(IdUtils.simpleUUID());
 							answer.setLotteryEventId(finalLotteryEvent.getId());
 							answer.setLotteryEventQuestionsId(question.getId());
-							answer.setAnswer(answersDTO.getAnswer());
+							answer.setAnswers(answersDTO.getAnswers());
 							answer.setIsRight(answersDTO.getIsRight());
 							return answer;
 						}).collect(Collectors.toList());
@@ -366,9 +366,10 @@
 	@Override
 	public List<MgtLotteryEventPageVo> pageMgtLotteryEvent(Page<MgtLotteryEventPageVo> page, MgtLotteryEventPageDto dto) {
 		Map<Long,Shop> map;
+		List<Shop> shopList;
 		if (dto.getCreateObject()!=null){
 			//根据 条件-创建对象 模糊查找门店集合
-			List<Shop> shopList=remoteShopService.getShopListByShopName(dto.getCreateObject());
+			shopList=remoteShopService.getShopListByShopName(dto.getCreateObject());
 			if (null != shopList && !shopList.isEmpty()) {
 				List<Long> shopIds = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
 				dto.setShopIds(shopIds);
@@ -384,6 +385,7 @@
 		} else {
             map = new HashMap<>();
         }
+
         //获取分页信息
 		List<MgtLotteryEventPageVo> voList = this.baseMapper.pageMgtLotteryEvent(page, dto);
 		//填充创建对象
@@ -392,7 +394,15 @@
 				x.setCreateObject("平台创建");
 			}else {
 				//线下抽奖,获取门店名称
-				x.setCreateObject(map.get(Long.valueOf(x.getShopId())).getShopName());
+				if(map.containsKey(Long.valueOf(x.getShopId()))){
+					x.setCreateObject(map.get(Long.valueOf(x.getShopId())).getShopName());
+				}else {
+					Shop shop = remoteShopService.getShop(Long.valueOf(x.getShopId())).getData();
+					if (null != shop){
+						x.setCreateObject(shop.getShopName());
+					}
+				}
+
 			}
 
 		});
@@ -407,12 +417,14 @@
 		}
 		MgtLotteryEventDetailVO vo = new MgtLotteryEventDetailVO();
 		BeanUtils.copyProperties(lotteryEvent, vo);
-		if (lotteryEvent.getActivityType()==6){
+		if (lotteryEvent.getActivityType()==6) {
 			//线下抽奖 取商户名称
 			Shop data = remoteShopService.getShop(Long.valueOf(lotteryEvent.getShopId())).getData();
-			if (null != data){
+			if (null != data) {
 				vo.setShopName(data.getShopName());
 			}
+		}
+		if(lotteryEvent.getActivityType()==5){
 			//题干数据
 			List<LotteryEventQuestions> questionsList = lotteryEventQuestionsService.getBaseMapper().selectList(new LambdaQueryWrapper<LotteryEventQuestions>().eq(LotteryEventQuestions::getLotteryEventId, lotteryEvent.getId()));
 
@@ -422,7 +434,7 @@
 				//答案选项数据
 				List<LotteryEventQuestionsAnswers> answersList = lotteryEventQuestionsAnswersService.getBaseMapper().selectList(new LambdaQueryWrapper<LotteryEventQuestionsAnswers>()
 						.eq(LotteryEventQuestionsAnswers::getLotteryEventId, lotteryEvent.getId())
-						.eq(LotteryEventQuestionsAnswers::getLotteryEventQuestionsId, questionVO.getLotteryEventId()));
+						.eq(LotteryEventQuestionsAnswers::getLotteryEventQuestionsId, questionVO.getId()));
 				questionVO.setAnswersVOList(answersList);
 				return questionVO;
 			}).collect(Collectors.toList());
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
index 1bf4081..a96e647 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
@@ -81,28 +81,22 @@
 		<if test="null != dto.activityType and  dto.activityType!=0 ">
 			activity_type = #{dto.activityType}
 		</if>
-
-		<choose>
-			<when test="dto.shopIds != null and dto.shopIds.size() > 0">
-				<choose>
-					<when test="dto.flag != null and dto.flag == 1">
-						AND (shop_id IN
-						<foreach collection="dto.shopIds" item="shopId" open="(" separator="," close=")">
-							#{shopId}
-						</foreach>
-						OR shop_id IS NULL)
-					</when>
-					<otherwise>
-						AND shop_id IN
-						<foreach collection="dto.shopIds" item="shopId" open="(" separator="," close=")">
-							#{shopId}
-						</foreach>
-					</otherwise>
-				</choose>
-			</when>
-			<when test="dto.flag != null and dto.flag == 1">
-				AND shop_id IS NULL
-			</when>
-		</choose>
+		<if test="dto.shopIds != null and dto.shopIds.size() > 0">
+			<choose>
+				<when test="dto.flag != null and dto.flag == 1">
+					AND (shop_id IN
+					<foreach collection="dto.shopIds" item="shopId" open="(" separator="," close=")">
+						#{shopId}
+					</foreach>
+					OR shop_id IS NULL)
+				</when>
+				<otherwise>
+					AND shop_id IN
+					<foreach collection="dto.shopIds" item="shopId" open="(" separator="," close=")">
+						#{shopId}
+					</foreach>
+				</otherwise>
+			</choose>
+		</if>
 	</select>
 </mapper>

--
Gitblit v1.7.1