huliguo
9 天以前 0440f99f2874e54532c80d644644e04febf51a50
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);
      }