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