From dda33478829592be6eea4c78b6519142a9dd93bb Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期三, 26 六月 2024 18:20:19 +0800
Subject: [PATCH] fix: 学习端bug

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
index ab871ee..224def4 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
@@ -809,7 +809,7 @@
             data.setIsDelete(0);
             result = result && userPresentRecordService.save(data);
         } else {
-            if (System.currentTimeMillis() - record.getPresentTime().getTime() >= 10 * 60 * 1000) {
+            if (System.currentTimeMillis() - record.getPresentTime().getTime() >= (long) Integer.parseInt(sysSet.getTime()) * 60 * 1000) {
                 // 赠送积分
                 result = userService.lambdaUpdate()
                         .set(TUser::getIntegral, user.getIntegral() + Integer.parseInt(integral))
@@ -820,6 +820,12 @@
                 data.setPresentTime(new Date());
                 data.setIsDelete(0);
                 result = result && userPresentRecordService.save(data);
+                // 生成积分明细
+                TIntegralRecord integralRecord = new TIntegralRecord();
+                integralRecord.setIntegral(sysSet.getIntegral());
+                integralRecord.setMethod(Constants.ONLINE_DURATION);
+                integralRecord.setUserId(loginStudy.getUserid());
+                result = result && integralRecordService.save(integralRecord);
             }
         }
         return R.ok(result);
@@ -1335,7 +1341,8 @@
          * 例如:游戏配置的积分是100,他的正确率是50%那么拿50分,下次他再玩这个游戏 正确率是60% 那么他该获得60分 但是上次已经拿了50 所以这次就只给他加10积分
          */
         Integer userid = loginUserStudy.getUserid();
-        TGame game = gameService.lambdaQuery().eq(TGame::getId, completeStudy.getGameId()).eq(TGame::getDisabled, 0).one();
+        TGame game = gameService.lambdaQuery().eq(TGame::getId, completeStudy.getGameId())
+                .eq(TGame::getDisabled, 0).one();
         if (null == game) {
             throw new GlobalException("游戏信息异常!");
         }
@@ -1348,15 +1355,17 @@
                 .eq(TIntegralRecord::getGameDifficulty, difficulty).list();
         // 本次游戏总共能获取的积分数量
         Integer integral;
+        Integer item = null;
         if (completeStudy.getGameName().equals(Constants.HEARING)) {
             // 本次游戏总积分
             integral = Integer.parseInt(game.getIntegral().split(",")[difficulty]);
+            item = completeStudy.getDifficulty();
         } else if (completeStudy.getGameName().equals(Constants.MEMORY)) {
             integralRecordList = integralRecordService.lambdaQuery()
                     .eq(TIntegralRecord::getUserId, userid)
                     .eq(TIntegralRecord::getGameId, game.getId())
                     .eq(TIntegralRecord::getDisabled, 0)
-                    .eq(TIntegralRecord::getGameDifficulty, null).list();
+                    .last("and gameDifficulty is null").list();
             integral = game.getAnswerIntegral();
         } else {
             throw new GlobalException("该次游戏积分计算异常!");
@@ -1368,7 +1377,7 @@
         // 可获得积分不为null时,才添加积分明细记录
         if (null != availableIntegral && !Constants.ZERO.equals(availableIntegral)) {
             add = add && integralRecordService.add(String.valueOf(availableIntegral),
-                    Constants.COMPLETE_GAME, completeStudy.getGameId(), null, difficulty, null);
+                    Constants.COMPLETE_GAME, completeStudy.getGameId(), null, item, null);
             // 用户账户添加积分
             TUser user = userService.getById(userid);
             user.setIntegral(user.getIntegral() + availableIntegral);

--
Gitblit v1.7.1