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