From 0440f99f2874e54532c80d644644e04febf51a50 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期二, 29 七月 2025 14:59:55 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)

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 06010bc..b1146c1 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
@@ -186,15 +186,16 @@
 			Integer current = dto.getCurrent();
 			if (-1 == dto.getStepOrDown()) {
 				if (current - 1 < 0) {
-					return R.fail("操作失败");
+					current = 0;
 				}
 				current--;
 			} else {
-				//下一题
-				if (current >= count) {
-					return R.fail("操作失败");
-				}
 				current++;
+				//下一题
+				current++;
+				if (current >= count) {
+					current = count - 1;
+				}
 			}
 			List<TLotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<TLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
 			TLotteryEventQuestions lotteryEventQuestions = list.get(current);
@@ -208,7 +209,7 @@
 				map.put("name", item.getAnswers());
 				return map;
 			}).collect(Collectors.toList());
-			if (-1 == dto.getStepOrDown()) {
+			if (-1 == dto.getStepOrDown() || current == list.size() - 1) {
 				TUserLotteryEventQuestionsAnswers one = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<TUserLotteryEventQuestionsAnswers>().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()).getAnswers());
@@ -249,6 +250,8 @@
 			one.setLotteryEventQuestionId(lotteryEventQuestions.getId());
 			one.setLotteryEventQuestionsAnswersId(lotteryEventQuestionsAnswers.getId());
 			one.setCreateTime(LocalDateTime.now());
+		}else{
+			one.setLotteryEventQuestionsAnswersId(lotteryEventQuestionsAnswers.getId());
 		}
 		one.setIsCorrect(0);
 		//答案正确
@@ -256,6 +259,8 @@
 			one.setIsCorrect(1);
 		}
 		userLotteryEventQuestionsAnswersService.saveOrUpdate(one);
+		//判断
+
 		return R.ok();
 	}
 	
@@ -270,7 +275,12 @@
 		TLotteryEvent lotteryEvent = lotteryEventService.getById(id);
 		TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
 		if (null == questionsServiceOne) {
-			return R.fail("请先进行答题操作");
+			questionsServiceOne = new TUserLotteryEventQuestions();
+			questionsServiceOne.setId(IdUtils.simpleUUID());
+			questionsServiceOne.setUserId(userId);
+			questionsServiceOne.setLotteryEventId(id);
+			questionsServiceOne.setStatus(1);
+			questionsServiceOne.setCreateTime(LocalDateTime.now());
 		}
 		questionsServiceOne.setStatus(2);
 		questionsServiceOne.setEndTime(LocalDateTime.now());
@@ -280,7 +290,7 @@
 		int right = list.stream().filter(item -> 1 == item.getIsCorrect()).collect(Collectors.toList()).size();
 		BigDecimal multiply = new BigDecimal(right).divide(new BigDecimal(count), 4, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
 		questionsServiceOne.setCorrectAnswerRate(multiply);
-		userLotteryEventQuestionsService.updateById(questionsServiceOne);
+		userLotteryEventQuestionsService.saveOrUpdate(questionsServiceOne);
 		if (multiply.compareTo(lotteryEvent.getAccuracy()) >= 0) {
 			return R.ok(true);
 		}

--
Gitblit v1.7.1