From d4093d81c0d60e830cb8372b40c1d7d042ce9239 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 19 六月 2025 19:38:04 +0800
Subject: [PATCH] 修改直播列表

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java |   61 ++++++++++++++++++------------
 1 files changed, 37 insertions(+), 24 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 a2a5cbf..fdf0355 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
@@ -92,7 +92,20 @@
 		Page<AppLotteryEventPageVo> page = new Page<>();
 		page.setSize(dto.getPageSize());
 		page.setCurrent(dto.getPageNum());
-		List<AppLotteryEventPageVo> activityPageVoList = lotteryEventService.pageAppLotteryEvent(page,userId);
+		List<AppLotteryEventPageVo> activityPageVoList = lotteryEventService.pageAppLotteryEvent(page, userId);
+		activityPageVoList.forEach(vo -> {
+			String startTime = vo.getStartTime();
+			String endTime = vo.getEndTime();
+			if (LocalDateTime.now().isBefore(LocalDateTime.parse(startTime))) {
+				vo.setStatus(1);
+			}
+			if (LocalDateTime.now().isAfter(LocalDateTime.parse(endTime))) {
+				vo.setStatus(3);
+			}
+			if (LocalDateTime.now().isAfter(LocalDateTime.parse(startTime)) && LocalDateTime.now().isBefore(LocalDateTime.parse(endTime))) {
+				vo.setStatus(2);
+			}
+		});
 		return R.ok(page.setRecords(activityPageVoList));
 	}
 	
@@ -105,18 +118,18 @@
 	})
 	public R<LotteryEventInfoVo> getLotteryEventInfo(@PathVariable("id") String id){
 		Long userId = SecurityUtils.getUserId();
-		LotteryEvent lotteryEvent = lotteryEventService.getById(id);
+		TLotteryEvent lotteryEvent = lotteryEventService.getById(id);
 		LotteryEventInfoVo vo = new LotteryEventInfoVo();
 		vo.setId(lotteryEvent.getId());
 		vo.setName(lotteryEvent.getName());
 		vo.setActivityProfile(lotteryEvent.getActivityProfile());
 		vo.setStartTime(lotteryEvent.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		vo.setActivityContent(lotteryEvent.getActivityContent());
-		int count = userLotteryEventService.count(new QueryWrapper<UserLotteryEvent>().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));
 		vo.setParticipation(count > 0);
 		//答题抽奖需要判断是否答题完成
 		if (5 == lotteryEvent.getActivityType()) {
-			UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+			TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
 			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());
@@ -129,19 +142,19 @@
 	@ApiOperation(value = "获取答题题目【2.0】", tags = "抽奖活动")
 	public R<LotteryEventQuestionsVo> getLotteryEventQuestions(@RequestBody LotteryEventQuestionsDto dto) {
 		Long userId = SecurityUtils.getUserId();
-		UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).eq("user_id", userId));
+		TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).eq("user_id", userId));
 		LotteryEventQuestionsVo vo = new LotteryEventQuestionsVo();
-		int count = lotteryEventServiceQuestionsService.count(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()));
+		int count = lotteryEventServiceQuestionsService.count(new QueryWrapper<TLotteryEventQuestions>().eq("lottery_event_id", dto.getId()));
 		vo.setTotal(count);
 		//没有答题,直接从第一题开始
 		if (null == questionsServiceOne) {
 			if (-1 == dto.getStepOrDown()) {
 				return R.fail("操作失败");
 			}
-			LotteryEventQuestions questions = lotteryEventServiceQuestionsService.getOne(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
-			vo.setCurrent(1);
+			TLotteryEventQuestions questions = lotteryEventServiceQuestionsService.getOne(new QueryWrapper<TLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort").last(" limit 1"));
+			vo.setCurrent(0);
 			vo.setName(questions.getName());
-			List<LotteryEventQuestionsAnswers> list = lotteryEventQuestionsAnswersService.list(new QueryWrapper<LotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", questions.getId()));
+			List<TLotteryEventQuestionsAnswers> list = lotteryEventQuestionsAnswersService.list(new QueryWrapper<TLotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", questions.getId()));
 			//封装答题
 			List<Map<String, String>> options = list.stream().map(item -> {
 				Map<String, String> map = new HashMap<>();
@@ -165,11 +178,11 @@
 				}
 				current++;
 			}
-			List<LotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
-			LotteryEventQuestions lotteryEventQuestions = list.get(current);
+			List<TLotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<TLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
+			TLotteryEventQuestions lotteryEventQuestions = list.get(current);
 			vo.setCurrent(current);
 			vo.setName(lotteryEventQuestions.getName());
-			List<LotteryEventQuestionsAnswers> list1 = lotteryEventQuestionsAnswersService.list(new QueryWrapper<LotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", lotteryEventQuestions.getId()));
+			List<TLotteryEventQuestionsAnswers> list1 = lotteryEventQuestionsAnswersService.list(new QueryWrapper<TLotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", lotteryEventQuestions.getId()));
 			//封装答题
 			List<Map<String, String>> options = list1.stream().map(item -> {
 				Map<String, String> map = new HashMap<>();
@@ -178,7 +191,7 @@
 				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"));
+				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());
 				}
@@ -192,15 +205,15 @@
 	@PostMapping("/answerQuestion")
 	@ApiOperation(value = "答题操作【2.0】", tags = "抽奖活动")
 	public R answerQuestion(@RequestBody AnswerQuestionDto dto) {
-		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.getAnswers().equals(dto.getAnswer())).findAny().orElse(null);
+		List<TLotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<TLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
+		TLotteryEventQuestions lotteryEventQuestions = list.get(dto.getCurrent());
+		List<TLotteryEventQuestionsAnswers> list1 = lotteryEventQuestionsAnswersService.list(new QueryWrapper<TLotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", lotteryEventQuestions.getId()));
+		TLotteryEventQuestionsAnswers 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));
+		TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).eq("user_id", userId));
 		if (null == questionsServiceOne) {
-			questionsServiceOne = new UserLotteryEventQuestions();
+			questionsServiceOne = new TUserLotteryEventQuestions();
 			questionsServiceOne.setId(IdUtils.simpleUUID());
 			questionsServiceOne.setUserId(userId);
 			questionsServiceOne.setLotteryEventId(dto.getId());
@@ -209,9 +222,9 @@
 			userLotteryEventQuestionsService.save(questionsServiceOne);
 		}
 		//构建或者修改答题数据
-		UserLotteryEventQuestionsAnswers one = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestionsAnswers>().eq("lottery_event_question_id", lotteryEventQuestions.getId()).eq("user_id", userId));
+		TUserLotteryEventQuestionsAnswers one = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<TUserLotteryEventQuestionsAnswers>().eq("lottery_event_question_id", lotteryEventQuestions.getId()).eq("user_id", userId));
 		if (null == one) {
-			one = new UserLotteryEventQuestionsAnswers();
+			one = new TUserLotteryEventQuestionsAnswers();
 			one.setId(IdUtils.simpleUUID());
 			one.setLotteryEventId(dto.getId());
 			one.setUserId(userId);
@@ -236,12 +249,12 @@
 	})
 	public R<Boolean> endAnswerQuestion(@PathVariable("id") String id) {
 		Long userId = SecurityUtils.getUserId();
-		LotteryEvent lotteryEvent = lotteryEventService.getById(id);
-		UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+		TLotteryEvent lotteryEvent = lotteryEventService.getById(id);
+		TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
 		questionsServiceOne.setStatus(2);
 		questionsServiceOne.setEndTime(LocalDateTime.now());
 		//计算正确率
-		List<UserLotteryEventQuestionsAnswers> list = userLotteryEventQuestionsAnswersService.list(new QueryWrapper<UserLotteryEventQuestionsAnswers>().eq("lottery_event_id", id).eq("user_id", userId));
+		List<TUserLotteryEventQuestionsAnswers> list = userLotteryEventQuestionsAnswersService.list(new QueryWrapper<TUserLotteryEventQuestionsAnswers>().eq("lottery_event_id", id).eq("user_id", userId));
 		int count = list.size();
 		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));

--
Gitblit v1.7.1