From f991c73f56f35665bcbe8ce2252c04ea82032b10 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期一, 27 五月 2024 18:06:31 +0800
Subject: [PATCH] feat: 修复登录bug;数据校验规则优化

---
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java                   |   19 +++---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyInduction.java                        |    6 ++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java                |    2 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/RedisConstants.java            |    4 +
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGame.java                                  |    9 ++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyListen.java                           |    7 ++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStoryListen.java                           |    8 ++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyPair.java                             |    6 ++
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/StudyLoginException.java |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java                 |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java                   |   51 +++++++++-------
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java       |   10 +++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java                    |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubject.java                               |    4 +
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java                |    4 +
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyAnswer.java                           |   15 +++-
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyLook.java                             |    7 ++
 17 files changed, 115 insertions(+), 43 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/RedisConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/RedisConstants.java
index c01be78..71ae90d 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/RedisConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/RedisConstants.java
@@ -29,5 +29,9 @@
      */
     public final static String HEARING_TREE = "game_subject";
 
+    /**
+     * 过期时间 30
+     */
+    public final static Integer THIRTY = 30;
 
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/StudyLoginException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/StudyLoginException.java
index a8770dd..94c4834 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/StudyLoginException.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/StudyLoginException.java
@@ -1,6 +1,8 @@
 package com.ruoyi.common.core.exception.user;
 
 /**
+ * 学生端登录异常信息
+ *
  * @author HJL
  * @version 1.0
  * @since 2024-05-24 11:35
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 275d931..ca27eae 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -145,7 +145,7 @@
     public LoginUserParent getLoginUserStudy() {
         LoginUserParent userStudy = getLoginUserStudy(ServletUtils.getRequest());
         if (null == userStudy) {
-            throw new StudyLoginException("登录失效,请重新登录!", 505);
+            throw new StudyLoginException("登录失效,请重新登录!", 504);
         }
         return userStudy;
     }
@@ -219,6 +219,10 @@
         if (StringUtils.isNotEmpty(token)) {
             String userkey = JwtUtils.getUserKeyStudy(token);
             user = redisService.getCacheObject(getTokenKeyStudy(userkey));
+            // 再次判断登录状态是否已过期
+            if (null == user) {
+                throw new StudyLoginException("登录信息已过期,请重新登录!", 504);
+            }
             // 优先判断当前账号是否已在其他设备登录
             if (!user.getIsCanLogin()) {
                 throw new StudyLoginException("当前登录账号在其他设备登录!", 505);
@@ -345,6 +349,10 @@
             LoginUserParent redisUserInfo = JSONObject.parseObject(JSONObject.toJSONString(redisCacheUserInfo), LoginUserParent.class);
             // 单点逻辑,如果当前用户已处于登录状态并再次登录,则清除该用户上一次登录token
             if (dto.getUserid().equals(redisUserInfo.getUserid())) {
+                // 被挤账户 可登录状态 已经为 false时,跳出循环
+                if (!redisUserInfo.getIsCanLogin()) {
+                    continue;
+                }
                 // 设置能否登录字段为 否,当该token登录时,isCanLogin为false表示账号被挤
                 redisUserInfo.setIsCanLogin(Boolean.FALSE);
                 redisService.setCacheObject(strKey, redisUserInfo, redisService.getExpire(strKey), TimeUnit.SECONDS);
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
index 12d46fe..76d7e82 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -3,7 +3,6 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.goods.domain.*;
@@ -169,7 +168,7 @@
      * 兑换记录
      */
     @GetMapping("/exchangeRecord")
-    @ApiOperation(value = "兑换记录", tags = {"兑换记录"})
+    @ApiOperation(value = "学习端-兑换记录", tags = {"学习端-兑换记录"})
     public R<List<TOrder>> exchangeRecord() {
         return R.ok(orderService.lambdaQuery().eq(TOrder::getUserId, tokenService.getLoginUserStudy().getUserid())
                 .orderByDesc(TOrder::getCreateTime).list());
@@ -203,7 +202,7 @@
      * 新增收货地址/修改收货地址
      */
     @PostMapping("/addressSaveOrUpdate")
-    @ApiOperation(value = "新增收货地址/修改收货地址", tags = {"新增收货地址/修改收货地址"})
+    @ApiOperation(value = "学习端-新增收货地址/修改收货地址", tags = {"新增收货地址/修改收货地址"})
     public R<String> addressSave(@RequestBody Recipient recipient) {
         recipient.setUserId(tokenService.getLoginUserStudy().getUserid());
         return R.ok(recipientService.addressSaveOrUpdate(recipient));
@@ -213,7 +212,7 @@
      * 删除收货地址
      */
     @GetMapping("/addressDelete")
-    @ApiOperation(value = "删除收货地址", tags = {"删除收货地址"})
+    @ApiOperation(value = "学习端-删除收货地址", tags = {"学习端-删除收货地址"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "地址信息id", name = "id", dataType = "String", required = true)
     })
@@ -227,7 +226,7 @@
      * @param orderId 订单id
      */
     @GetMapping("/updateOrderAddress")
-    @ApiOperation(value = "修改订单收货地址", tags = {"修改订单收货地址"})
+    @ApiOperation(value = "学习端-修改订单收货地址", tags = {"学习端-修改订单收货地址"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true),
             @ApiImplicitParam(value = "完整收货地址", name = "address", dataType = "String", required = true)
@@ -242,7 +241,7 @@
      * 收货地址省市区三级联动
      */
     @GetMapping("/addressTree")
-    @ApiOperation(value = "收货地址省市区三级联动", tags = {"收货地址省市区三级联动"})
+    @ApiOperation(value = "学习端-收货地址省市区三级联动", tags = {"学习端-收货地址省市区三级联动"})
     public R<List<Region>> addressTree() {
         return R.ok(regionService.addressTree());
     }
@@ -252,7 +251,7 @@
      * 远程调用
      */
     @GetMapping("/goodRecommend")
-    @ApiOperation(value = "可兑换商品推荐", tags = {"可兑换商品推荐"})
+    @ApiOperation(value = "学习端-可兑换商品推荐", tags = {"学习端-可兑换商品推荐"})
     public R<List<TGoodsVO>> goodRecommend() {
         return R.ok(goodsService.goodRecommend(tokenService.getLoginUserStudy().getUserid()));
     }
@@ -263,7 +262,7 @@
      * @param goodId 商品id
      */
     @GetMapping("/goodDetail")
-    @ApiOperation(value = "商品详情", tags = {"商品详情"})
+    @ApiOperation(value = "学习端-商品详情", tags = {"学习端-商品详情"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true)
     })
@@ -281,7 +280,7 @@
      * 商城-立即兑换
      */
     @GetMapping("/redeemNow")
-    @ApiOperation(value = "商城-立即兑换", tags = {"立即兑换"})
+    @ApiOperation(value = "学习端-商城立即兑换", tags = {"学习端-商城立即兑换"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true)
     })
@@ -299,7 +298,7 @@
      * @param goodExchange 商品信息
      */
     @PostMapping("/goodExchange")
-    @ApiOperation(value = "商品兑换-确认", tags = {"商品兑换-确认"})
+    @ApiOperation(value = "学习端-商品兑换确认", tags = {"学习端-商品兑换确认"})
     public R<Boolean> goodExchange(@RequestBody GoodExchangeDTO goodExchange) {
         Recipient recipient = recipientService.getById(goodExchange.getRecipientId());
         return R.ok(goodsService.goodExchange(goodExchange, recipient));
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java
index 41cf496..ab3061e 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java
@@ -59,7 +59,7 @@
         String key = String.format(RedisConstants.GOOD_STOCK, goods.getId());
         RSemaphore semaphore = redissonClient.getSemaphore(key);
         semaphore.trySetPermits(goods.getSurplus());
-        return new GoodDetailVO(goods,recipient);
+        return new GoodDetailVO(goods, recipient);
     }
 
     @Override
@@ -88,6 +88,8 @@
         // redisson分布式锁,防止超卖
         String key = String.format(RedisConstants.GOOD_STOCK, good.getId());
         RSemaphore semaphore = redissonClient.getSemaphore(key);
+        // 请求超时时间 单位:毫秒
+        semaphore.trySetPermits(1000);
         boolean tried = semaphore.tryAcquire(number);
         // 兑换失败,库存不足
         if (!tried) {
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 98d2a9c..43045c2 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
@@ -28,6 +28,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -344,13 +345,13 @@
         TStudy one = studyService.getOne(new QueryWrapper<TStudy>()
                 .eq("week", dto.getWeek())
                 .eq("type", dto.getType()));
-        if (one!=null){
+        if (one != null) {
             one.setType(dto.getType());
             one.setWeek(dto.getWeek());
             one.setTitle(dto.getTitle());
             one.setQuarter(dto.getQuarter());
             studyService.saveOrUpdate(one);
-        }else{
+        } else {
             TStudy tStudy = new TStudy();
             tStudy.setType(dto.getType());
             tStudy.setWeek(dto.getWeek());
@@ -453,7 +454,7 @@
         for (TStudyListen tStudyListen : list) {
             StringBuilder temp = new StringBuilder();
             StudyListenVO studyListenVO = new StudyListenVO();
-            if (StringUtils.hasLength(tStudyListen.getSubject())){
+            if (StringUtils.hasLength(tStudyListen.getSubject())) {
                 for (String s : tStudyListen.getSubject().split(",")) {
                     TSubject byId = subjectService.getById(s);
                     temp.append(byId.getName()).append(",");
@@ -477,7 +478,7 @@
             StringBuilder names = new StringBuilder();
             StringBuilder sorts = new StringBuilder();
             StudyLookVO studyLookVO1 = new StudyLookVO();
-            if (StringUtils.hasLength(tStudyLook.getSubject())){
+            if (StringUtils.hasLength(tStudyLook.getSubject())) {
                 for (String s : tStudyLook.getSubject().split(",")) {
                     TSubject byId = subjectService.getById(s);
                     names.append(byId.getName()).append(",");
@@ -505,7 +506,7 @@
         for (TStudyInduction tStudyInduction : list2) {
             StringBuilder names = new StringBuilder();
             StudyInductionVO studyInductionVO = new StudyInductionVO();
-            if (StringUtils.hasLength(tStudyInduction.getSubject())){
+            if (StringUtils.hasLength(tStudyInduction.getSubject())) {
                 for (String s : tStudyInduction.getSubject().split(",")) {
                     String replace = s.replace("-", "");
                     TSubject byId = subjectService.getById(replace);
@@ -527,34 +528,34 @@
         for (TStudyAnswer tStudyAnswer : list3) {
             StringBuilder names = new StringBuilder();
             StudyAnswerVO studyAnswerVO = new StudyAnswerVO();
-            if (tStudyAnswer.getIsAnswer() != null){
+            if (tStudyAnswer.getIsAnswer() != null) {
                 if (tStudyAnswer.getIsAnswer() == 1) {
-                    if (tStudyAnswer.getSubject()!=null){
+                    if (tStudyAnswer.getSubject() != null) {
                         TSubject byId = subjectService.getById(tStudyAnswer.getSubject());
                         names.append(byId.getName()).append(",");
                     }
-                    if (tStudyAnswer.getAnswerSubject()!=null) {
+                    if (tStudyAnswer.getAnswerSubject() != null) {
                         TSubject byId1 = subjectService.getById(tStudyAnswer.getAnswerSubject());
                         names.append(byId1.getName()).append(",");
                     }
                 } else {
-                    if (tStudyAnswer.getSubject()!=null) {
+                    if (tStudyAnswer.getSubject() != null) {
                         TSubject byId = subjectService.getById(tStudyAnswer.getSubject());
                         names.append(byId.getName()).append(",");
                     }
-                    if (tStudyAnswer.getAnswerSubject()!=null) {
+                    if (tStudyAnswer.getAnswerSubject() != null) {
                         TSubject byId1 = subjectService.getById(tStudyAnswer.getAnswerSubject());
                         names.append(byId1.getName()).append(",");
                     }
                 }
             }
-            if (StringUtils.hasLength(names)){
+            if (StringUtils.hasLength(names)) {
                 String string = names.toString();
                 studyAnswerVO.setName(string.substring(0, string.length() - 1));
                 studyAnswerVO.setIntegral(tStudyAnswer.getIntegral());
                 studyAnswerVO.setIsVip(tStudyAnswer.getIsVip());
                 studyAnswerVO.setIsAnswer(tStudyAnswer.getIsAnswer());
-                studyAnswerVO.setSubject(tStudyAnswer.getSubject()+","+tStudyAnswer.getAnswerSubject());
+                studyAnswerVO.setSubject(tStudyAnswer.getSubject() + "," + tStudyAnswer.getAnswerSubject());
                 answerVOS.add(studyAnswerVO);
             }
 
@@ -567,7 +568,7 @@
         for (TStudyPair tStudyPair : list4) {
             StringBuilder names = new StringBuilder();
             StudyPairVO studyPairVO = new StudyPairVO();
-            if (StringUtils.hasLength(tStudyPair.getSubject())){
+            if (StringUtils.hasLength(tStudyPair.getSubject())) {
                 for (String s : tStudyPair.getSubject().split(",")) {
                     TSubject byId = subjectService.getById(s);
                     names.append(byId.getName()).append(",");
@@ -603,38 +604,41 @@
             StringBuilder names1 = new StringBuilder();
             StringBuilder sort = new StringBuilder();
             StringBuilder sort1 = new StringBuilder();
-            if (StringUtils.hasLength(tStory.getStory())){
+            if (StringUtils.hasLength(tStory.getStory())) {
                 for (String s : tStory.getStory().split(",")) {
                     TStory byId = storyService.getById(s);
                     names.append(byId.getName()).append(",");
                 }
             }
-            if (StringUtils.hasLength(tStory.getLookStory())){
+            if (StringUtils.hasLength(tStory.getLookStory())) {
                 for (String s : tStory.getLookStory().split(",")) {
                     TStory byId = storyService.getById(s);
                     names1.append(byId.getName()).append(",");
                 }
             }
-            if (StringUtils.hasLength(tStory.getSort())){
+            if (StringUtils.hasLength(tStory.getSort())) {
                 for (String s : tStory.getSort().split(",")) {
                     sort.append(s).append(",");
                 }
             }
-            if (StringUtils.hasLength(tStory.getLookSort())){
+            if (StringUtils.hasLength(tStory.getLookSort())) {
                 for (String s : tStory.getLookSort().split(",")) {
                     sort1.append(s).append(",");
                 }
             }
-            if (StringUtils.hasLength(names)){
+            if (StringUtils.hasLength(names)) {
                 storyVO.setName(names.substring(0, names.length() - 1));
 
-            }if (StringUtils.hasLength(sort)){
+            }
+            if (StringUtils.hasLength(sort)) {
                 storyVO.setSort(sort.substring(0, sort.length() - 1));
 
-            }if (StringUtils.hasLength(names1)){
+            }
+            if (StringUtils.hasLength(names1)) {
                 storyVO.setLookName(names1.substring(0, names1.length() - 1));
 
-            }if (StringUtils.hasLength(sort1)){
+            }
+            if (StringUtils.hasLength(sort1)) {
                 storyVO.setLookSort(sort1.substring(0, sort1.length() - 1));
             }
             storyVO.setIntegral(tStory.getIntegral());
@@ -658,7 +662,7 @@
      * @param quarter 季度
      */
     @GetMapping("/weekList")
-    @ApiOperation(value = "周目列表", tags = {"周目列表"})
+    @ApiOperation(value = "根据季度获取周目列表", tags = {"根据季度获取周目列表"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "所属类型", name = "type", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "季度", name = "quarter", dataType = "Integer", required = true)
@@ -854,7 +858,7 @@
      * @param completeStudy 完成学习信息
      */
     @PostMapping("/completeLearning")
-    @ApiOperation(value = "完成学习", tags = {"完成学习/其他积分来源(分享...)"})
+    @ApiOperation(value = "完成学习", tags = {"完成学习"})
     public R<Boolean> completeLearning(@RequestBody CompleteStudyDTO completeStudy) {
         // 登录用户id
         Integer userId = tokenService.getLoginUserStudy().getUserid();
@@ -1004,6 +1008,7 @@
                 subjectId.addAll(Arrays.asList(subject.split(",")));
             }
             redisService.setCacheList(RedisConstants.HEARING_TREE, subjectId);
+            redisService.expire(RedisConstants.HEARING_TREE, RedisConstants.THIRTY, TimeUnit.MINUTES);
         }
         return subjectId;
     }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
index 7548bb6..450d2e3 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
@@ -511,7 +511,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
     })
-    public R sendPhoneCode(@RequestParam String phone) {
+    public R<?> sendPhoneCode(@RequestParam String phone) {
         return userService.phoneCode(phone) ? R.ok() : R.fail();
     }
 
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGame.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGame.java
index e62d302..332594e 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGame.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGame.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,6 +29,7 @@
     /**
      * 所属周目
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * 学习id
@@ -37,29 +39,34 @@
     /**
      * 题目数量
      */
+    @ApiModelProperty("题目数量")
     private Integer count;
     /**
      * 积分逗号隔开 第一个对应入门第二个对应中级...
      */
+    @ApiModelProperty("对应可获取积分数量(第一个为入门难度;第二个为中级难度;第三个为困难难度)")
     private String integral;
     /**
      * 时间逗号隔开 第一个对应入门第二个对应中级...
      */
+    @ApiModelProperty("时间范围(第一个为入门难度;第二个为中级难度;第三个为困难难度)")
     private String time;
 
     /**
      * 超级记忆存储该字段 答题时间
      */
+    @ApiModelProperty("超级记忆 - 答题时间(第一个为入门难度;第二个为中级难度;第三个为困难难度)")
     private Integer answerTime;
     /**
      * 超级记忆存储该字段 可获积分总数
      */
+    @ApiModelProperty("超级记忆 - 可获积分总数")
     private Integer answerIntegral;
     /**
      * 超级记忆游戏题目数量
      */
+    @ApiModelProperty("超级记忆游戏题目数量")
     private Integer answerCount;
-
 
 
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStoryListen.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStoryListen.java
index cfc8023..a3212d8 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStoryListen.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStoryListen.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,31 +29,38 @@
     /**
      * 看图配音可获积分
      */
+    @ApiModelProperty("看图配音可获积分")
     private Integer lookIntegral;
     /**
      * 框架记忆可获积分
      */
+    @ApiModelProperty("框架记忆可获积分")
     private Integer integral;
 
     /**
      * 所属周目
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * 框架记忆故事ids 多个逗号隔开
      */
+    @ApiModelProperty("框架记忆故事ids 多个逗号隔开")
     private String story;
     /**
      * 框架记忆排序 多个逗号隔开和故事ids一一对应
      */
+    @ApiModelProperty("框架记忆排序 多个逗号隔开和故事ids一一对应")
     private String sort;
     /**
      * 看图配音故事ids 多个逗号隔开
      */
+    @ApiModelProperty("看图配音故事ids 多个逗号隔开")
     private String lookStory;
     /**
      * 看图配音排序 多个逗号隔开
      */
+    @ApiModelProperty("看图配音排序 多个逗号隔开")
     private String lookSort;
     /**
      * 学习id
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyAnswer.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyAnswer.java
index 3fe4f27..2095923 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyAnswer.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyAnswer.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,10 +29,12 @@
     /**
      * 周目x
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * Dayx
      */
+    @ApiModelProperty("所属day")
     private Integer day;
     /**
      * 问题题目id
@@ -43,20 +46,24 @@
     private Integer answerSubject;
 
     /**
-     * 完成答题可获积分
-     */
-    private Integer integral;
-    /**
      * 问题题目是否为答案图片 0否1是 为0 那么回答题目是答案图片
      */
+    @ApiModelProperty("问题题目是否为答案图片 0否1是 为0 那么回答题目是答案图片")
     private Integer isAnswer;
+    /**
+     * 完成答题可获积分
+     */
+    @ApiModelProperty("完成答题可获积分")
+    private Integer integral;
     /**
      * 学习id
      */
+    @ApiModelProperty("学习id")
     private Integer studyId;
     /**
      * 非会员是否查看 0否1是
      */
+    @ApiModelProperty("非会员是否查看 0否1是")
     private Integer isVip;
 
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyInduction.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyInduction.java
index 753bd4b..481b5bc 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyInduction.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyInduction.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,10 +29,12 @@
     /**
      * 周目x
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * Dayx
      */
+    @ApiModelProperty("所属day")
     private Integer day;
     /**
      * 题目 多个题目逗号隔开,带有负号为答题选项
@@ -41,13 +44,16 @@
     /**
      * 完成答题可获积分
      */
+    @ApiModelProperty("完成答题可获积分")
     private Integer integral;
     /**
      * 学习id
      */
+    @ApiModelProperty("学习id")
     private Integer studyId;
     /**
      * 非会员是否查看 0否1是
      */
+    @ApiModelProperty("非会员是否查看 0否1是")
     private Integer isVip;
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyListen.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyListen.java
index 3c26264..3dd9f4a 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyListen.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyListen.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,26 +29,32 @@
     /**
      * 周目x
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * Dayx
      */
+    @ApiModelProperty("所属day")
     private Integer day;
     /**
      * 题目
      */
+    @ApiModelProperty("题目录音及图片id")
     private String subject;
 
     /**
      * 完成答题可获积分
      */
+    @ApiModelProperty("完成答题可获积分")
     private Integer integral;
     /**
      * 学习id
      */
+    @ApiModelProperty("学习id")
     private Integer studyId;
     /**
      * 非会员是否查看 0否1是
      */
+    @ApiModelProperty("非会员是否查看 0否1是")
     private Integer isVip;
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyLook.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyLook.java
index 7f81428..c322fe0 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyLook.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyLook.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,10 +29,12 @@
     /**
      * 周目x
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * Dayx
      */
+    @ApiModelProperty("所属day")
     private Integer day;
     /**
      * 题目
@@ -41,17 +44,21 @@
     /**
      * 排序
      */
+    @ApiModelProperty("排序")
     private String sort;
     /**
      * 完成答题可获积分
      */
+    @ApiModelProperty("完成答题可获积分")
     private Integer integral;
     /**
      * 学习id
      */
+    @ApiModelProperty("学习id")
     private Integer studyId;
     /**
      * 非会员是否查看 0否1是
      */
+    @ApiModelProperty("非会员是否查看 0否1是")
     private Integer isVip;
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyPair.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyPair.java
index 66ef183..3f1db13 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyPair.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyPair.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,10 +29,12 @@
     /**
      * 周目x
      */
+    @ApiModelProperty("所属周目")
     private Integer week;
     /**
      * Dayx
      */
+    @ApiModelProperty("所属day")
     private Integer day;
     /**
      * 题目
@@ -41,13 +44,16 @@
     /**
      * 完成答题可获积分
      */
+    @ApiModelProperty("完成答题可获积分")
     private Integer integral;
     /**
      * 学习id
      */
+    @ApiModelProperty("学习id")
     private Integer studyId;
     /**
      * 非会员是否查看 0否1是
      */
+    @ApiModelProperty("非会员是否查看 0否1是")
     private Integer isVip;
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubject.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubject.java
index 65403f8..47e586f 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubject.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubject.java
@@ -44,18 +44,22 @@
     /**
      * 状态1上架2下架3删除
      */
+    @ApiModelProperty(value = "状态:1上架、2下架、3删除")
     private Integer state;
     /**
      * 图片
      */
+    @ApiModelProperty(value = "图片")
     private String img;
     /**
      * 正确语音
      */
+    @ApiModelProperty(value = "正确语音")
     private String correct;
     /**
      * 错误语音 多个逗号拼接 这里只要填入就必须是两个 可以不填入
      */
+    @ApiModelProperty(value = "错误语音 多个逗号拼接")
     private String error;
 
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java
index 420ff1e..1e81be3 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TGameServiceImpl.java
@@ -30,7 +30,7 @@
         if (integralRecordList.isEmpty()) {
             return availableIntegral;
         } else {
-            // 积分明细不为空,计算已获取的积分数量
+            // 积分明细不为空,根据正确率及已获取积分数量计算本次答题可获取的积分数量
             List<Integer> integralList = integralRecordList.stream().map(TIntegralRecord::getIntegral).collect(Collectors.toList()).stream().map(Integer::parseInt).collect(Collectors.toList());
             int sumIntegral = integralList.stream().mapToInt(Integer::intValue).sum();
             if (availableIntegral > sumIntegral) {
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
index ab051c5..411eeb2 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
@@ -67,7 +67,7 @@
         List<TGameRecord> list = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, userId).eq(TGameRecord::getGameId, game.getId()).list();
         boolean contains = list.stream().map(TGameRecord::getGameDifficulty).collect(Collectors.toList()).contains(level);
         if (!contains) {
-            throw new GlobalException("请先完成上一难度再挑战");
+            throw new GlobalException("请先完成上一难度再挑战当前难度!");
         }
     }
 

--
Gitblit v1.7.1