From 80c4e55000cff8455e159f69d50558c5947ead4c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 24 六月 2024 09:51:17 +0800
Subject: [PATCH] 取消题目和听故事编辑校验是否在使用中

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java |   84 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 73 insertions(+), 11 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 e23e5da..b96e876 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
@@ -714,14 +714,28 @@
         if (null == loginStudy) {
             return R.tokenError("登录失效!");
         }
-        TUserStudy result = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, loginStudy.getUserid())
+        Integer userid = loginStudy.getUserid();
+        TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, loginStudy.getUserid())
                 .eq(TUserStudy::getDisabled, 0).one();
-        if (null != result) {
+        if (null != studyRecord) {
             // 计算当前周 day 1-5的总进度
-            int computeSchedule = studyService.computeSchedule(result, week);
-            result.setComputeSchedule(computeSchedule);
+            int computeSchedule = studyService.computeSchedule(studyRecord, week);
+            studyRecord.setComputeSchedule(computeSchedule);
+            // 学习时长格式转换
+            Integer todayStudy = studyRecord.getTodayStudy();
+            studyRecord.setTodayStudy(Math.round((float) todayStudy / 3600));
+            Integer weekStudy = studyRecord.getWeekStudy();
+            studyRecord.setWeekStudy(Math.round((float) weekStudy / 3600));
+            Integer monthStudy = studyRecord.getMonthStudy();
+            studyRecord.setMonthStudy(Math.round((float) monthStudy / 3600));
+            // 总时长还需计算上游戏测试成绩时长
+            List<TGameRecord> gameRecordList = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, userid)
+                    .eq(TGameRecord::getDisabled, 0).list();
+            int sum = gameRecordList.stream().map(TGameRecord::getUseTime).mapToInt(Integer::intValue).sum();
+            Integer totalStudy = studyRecord.getTotalStudy();
+            studyRecord.setTotalStudy(Math.round((float) (totalStudy + sum) / 3600));
         }
-        return R.ok(result);
+        return R.ok(studyRecord);
     }
 
     /**
@@ -1227,8 +1241,8 @@
     @PostMapping("/gameAchievement")
     @ApiOperation(value = "完成游戏-记录游戏测试成绩", tags = {"学习端-听-自主游戏"})
     public R<Boolean> gameAchievement(@RequestBody CompleteGameDTO completeStudy) {
-        LoginUserParent userStudy = tokenService.getLoginUserStudy();
-        if (null == userStudy) {
+        LoginUserParent loginUserStudy = tokenService.getLoginUserStudy();
+        if (null == loginUserStudy) {
             return R.tokenError("登录失效!");
         }
         /*
@@ -1236,7 +1250,7 @@
          * 并且需要判断如果该游戏用户已获取一部分积分,再次测试后正确率增长,只能获取高于上次正确率的部分积分
          * 例如:游戏配置的积分是100,他的正确率是50%那么拿50分,下次他再玩这个游戏 正确率是60% 那么他该获得60分 但是上次已经拿了50 所以这次就只给他加10积分
          */
-        Integer userid = userStudy.getUserid();
+        Integer userid = loginUserStudy.getUserid();
         TGame game = gameService.lambdaQuery().eq(TGame::getId, completeStudy.getGameId()).eq(TGame::getDisabled, 0).one();
         if (null == game) {
             throw new GlobalException("游戏信息异常!");
@@ -1276,13 +1290,22 @@
             }
             // 超级记忆正确率达到通关率标准,才能进入下一周目学习
             userStudyService.checkRate(game, userid, completeStudy, studyList);
-            return R.ok(add && completeStudy.getAccuracy() >= Integer.parseInt(game.getAnswerRate()));
+            add = add && completeStudy.getAccuracy() >= Integer.parseInt(game.getAnswerRate());
         } else {
             // 超级听力需根据正确率判断是否允许进入下一难度
             userStudyService.gameHearing(game, userid, completeStudy);
             String rate = game.getRate().split(",")[completeStudy.getDifficulty()];
-            return R.ok(add && completeStudy.getAccuracy() >= Integer.parseInt(rate));
+            add = add && completeStudy.getAccuracy() >= Integer.parseInt(rate);
         }
+        // 学习时长更新
+        TUserStudy userStudy = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, userid)
+                .eq(TUserStudy::getDisabled, 0).one();
+        userStudy.setTotalStudy(userStudy.getTotalStudy() + completeStudy.getUseTime());
+        userStudy.setTodayStudy(userStudy.getTodayStudy() + completeStudy.getUseTime());
+        userStudy.setWeekStudy(userStudy.getWeekStudy() + completeStudy.getUseTime());
+        userStudy.setMonthStudy(userStudy.getMonthStudy() + completeStudy.getUseTime());
+        boolean update = userStudyService.updateById(userStudy);
+        return R.ok(add && update);
     }
 
     private List<String> getSubjectId(Integer week) {
@@ -1478,7 +1501,7 @@
     @ApiOperation(value = "游戏测试成绩", tags = {"家长端-游戏测试成绩"})
     public R<StudyRecordResultVO> record() {
         LoginUserParent loginUser1 = tokenService.getLoginUser1();
-        System.err.println("用户登录信息:"+loginUser1);
+        System.err.println("用户登录信息:" + loginUser1);
         if (loginUser1 == null) {
             return R.tokenError("登陆失效,请重新登录");
         }
@@ -1496,6 +1519,10 @@
             TUserStudy tUserStudy = new TUserStudy();
             tUserStudy.setSurplus(studyService.list(new QueryWrapper<TStudy>()
                     .eq("type", 1)).size());
+            tUserStudy.setTodayStudy(Constants.ZERO);
+            tUserStudy.setTotalStudy(Constants.ZERO);
+            tUserStudy.setWeekStudy(Constants.ZERO);
+            tUserStudy.setMonthStudy(Constants.ZERO);
             studyRecord = tUserStudy;
         }
         // 学习时长格式转换
@@ -1589,6 +1616,27 @@
         integralRecord.setUpdateTime(new Date());
         return R.ok(integralRecordService.save(integralRecord));
     }
+    @GetMapping("/addIntegralDetailParent")
+//    @ApiOperation(value = "添加-积分明细", tags = {"添加-积分明细"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "积分数量", name = "integral", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "变动源(完成学习、完成游戏...)", name = "method", dataType = "String", required = true)
+    })
+    public R<Boolean> addIntegralDetailParent(@RequestParam("integral") String integral, @RequestParam("method") String method) {
+        // 当前登录用户
+        LoginUserParent userStudy = tokenService.getLoginUser1();
+        // 生成积分明细信息
+        TIntegralRecord integralRecord = new TIntegralRecord();
+        integralRecord.setIntegral(integral);
+        integralRecord.setMethod(method);
+        integralRecord.setUserId(userStudy.getUserid());
+        integralRecord.setDisabled(Boolean.FALSE);
+        integralRecord.setCreateBy(userStudy.getPhone());
+        integralRecord.setCreateTime(new Date());
+        integralRecord.setUpdateBy(userStudy.getPhone());
+        integralRecord.setUpdateTime(new Date());
+        return R.ok(integralRecordService.save(integralRecord));
+    }
 
     @GetMapping("/addIntegralDetail1")
 //    @ApiOperation(value = "添加-积分明细", tags = {"添加-积分明细"})
@@ -1632,6 +1680,20 @@
         }
         return R.ok(userService.updateById(user));
     }
+    @GetMapping("/exchangeIntegralParent")
+//    @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"})
+    public R<Boolean> exchangeIntegralParent(@RequestParam("integral") Integer integral, @RequestParam("method") String method) {
+        if (tokenService.getLoginUser1()==null){
+            return R.tokenError("登录失效");
+        }
+        TUser user = userService.getById(tokenService.getLoginUser1().getUserid());
+        if (Constants.BURDEN.equals(method)) {
+            user.setIntegral(user.getIntegral() - integral);
+        } else {
+            user.setIntegral(user.getIntegral() + integral);
+        }
+        return R.ok(userService.updateById(user));
+    }
 
     @GetMapping("/exchangeIntegral1")
 //    @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"})

--
Gitblit v1.7.1