From 6058af744bdf4fe6a3856c46fe31cfb4dbd8e255 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 29 七月 2025 11:54:01 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 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 d71fcf8..21fc9f1 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
@@ -25,6 +25,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.List;
@@ -144,6 +145,12 @@
 			vo.setContinueAnswer(null != questionsServiceOne ? questionsServiceOne.getStatus() : 0);
 			vo.setAnswerStartTime(null != questionsServiceOne ? questionsServiceOne.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null);
 			vo.setAnswerTimeLimit(lotteryEvent.getAnsweringTime());
+			if (vo.getContinueAnswer() == 1) {
+				long remainingTime = (lotteryEvent.getAnsweringTime() * 60) - (LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) - questionsServiceOne.getCreateTime().toEpochSecond(ZoneOffset.of("+8")));
+				int count1 = userLotteryEventQuestionsAnswersService.count(new QueryWrapper<TUserLotteryEventQuestionsAnswers>().eq("lottery_event_id", id).eq("user_id", userId));
+				vo.setRemainingTime(remainingTime);
+				vo.setCurrent(count1 - 1);
+			}
 		}
 		return R.ok(vo);
 	}
@@ -242,6 +249,8 @@
 			one.setLotteryEventQuestionId(lotteryEventQuestions.getId());
 			one.setLotteryEventQuestionsAnswersId(lotteryEventQuestionsAnswers.getId());
 			one.setCreateTime(LocalDateTime.now());
+		}else{
+			one.setLotteryEventQuestionsAnswersId(lotteryEventQuestionsAnswers.getId());
 		}
 		one.setIsCorrect(0);
 		//答案正确
@@ -263,7 +272,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());
@@ -273,7 +287,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