From 57145eb45c9b339eecc97a5037c60c2f8da8f8fd Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 22 五月 2024 20:56:00 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/DolphinEnglish

---
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java                       |   41 +++---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java                    |   23 +++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyGamerResultVO.java                             |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java                              |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyRecordResultVO.java                            |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java                            |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerSubjectVO.java                           |   34 +++++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java                         |    2 
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java                            |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java                              |    2 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java |    5 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java                       |   74 ++++++------
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java                        |   87 +++++++-------
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/AnswerVO.java                                       |   29 ++++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java                            |   13 -
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyStoryListenResultVO.java                       |    2 
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java                    |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStudyAnswer.java                               |    1 
 18 files changed, 201 insertions(+), 124 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
index df981c5..1e5aa4f 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
@@ -1,6 +1,7 @@
 package com.ruoyi.common.security.handler;
 
 import com.ruoyi.common.core.constant.HttpStatus;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.DemoModeException;
 import com.ruoyi.common.core.exception.GlobalException;
 import com.ruoyi.common.core.exception.InnerAuthException;
@@ -143,8 +144,8 @@
      * 捕获全局自定义异常
      */
     @ExceptionHandler(GlobalException.class)
-    public AjaxResult globalExceptionHandler(GlobalException e) {
-        return AjaxResult.error(e.getMessage());
+    public R<String> globalExceptionHandler(GlobalException e) {
+        return R.fail(e.getMessage());
     }
 
 }
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 5e1d85a..fe88a1b 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.*;
@@ -165,8 +164,8 @@
      */
     @GetMapping("/exchangeRecord")
     @ApiOperation(value = "兑换记录", tags = {"兑换记录"})
-    public AjaxResult<List<TOrder>> exchangeRecord() {
-        return AjaxResult.success(orderService.lambdaQuery().eq(TOrder::getUserId, tokenService.getLoginUserStudy().getUserid())
+    public R<List<TOrder>> exchangeRecord() {
+        return R.ok(orderService.lambdaQuery().eq(TOrder::getUserId, tokenService.getLoginUserStudy().getUserid())
                 .orderByDesc(TOrder::getCreateTime).list());
     }
 
@@ -178,10 +177,10 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "id", dataType = "String", required = true)
     })
-    public AjaxResult confirm(@RequestParam Integer id) {
+    public R<Boolean> confirm(@RequestParam Integer id) {
         TOrder byId = orderService.getById(id);
         byId.setState(3);
-        return AjaxResult.success(orderService.updateById(byId));
+        return R.ok(orderService.updateById(byId));
     }
 
     /**
@@ -189,8 +188,8 @@
      */
     @GetMapping("/shopAddress")
     @ApiOperation(value = "获取用户收货地址", tags = {"获取用户收货地址"})
-    public AjaxResult<List<Recipient>> shopAddress() {
-        return AjaxResult.success(recipientService.lambdaQuery().eq(Recipient::getUserId,
+    public R<List<Recipient>> shopAddress() {
+        return R.ok(recipientService.lambdaQuery().eq(Recipient::getUserId,
                 tokenService.getLoginUserStudy().getUserid()).list());
     }
 
@@ -199,9 +198,9 @@
      */
     @PostMapping("/addressSaveOrUpdate")
     @ApiOperation(value = "新增收货地址/修改收货地址", tags = {"新增收货地址/修改收货地址"})
-    public AjaxResult<String> addressSave(@RequestBody Recipient recipient) {
+    public R<String> addressSave(@RequestBody Recipient recipient) {
         recipient.setUserId(tokenService.getLoginUserStudy().getUserid());
-        return AjaxResult.success(recipientService.addressSaveOrUpdate(recipient));
+        return R.ok(recipientService.addressSaveOrUpdate(recipient));
     }
 
     /**
@@ -212,8 +211,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "地址信息id", name = "id", dataType = "String", required = true)
     })
-    public AjaxResult<String> addressDelete(@RequestParam String id) {
-        return AjaxResult.success(recipientService.removeById(id) ? "删除成功!" : "删除失败!");
+    public R<String> addressDelete(@RequestParam String id) {
+        return R.ok(recipientService.removeById(id) ? "删除成功!" : "删除失败!");
     }
 
     /**
@@ -227,9 +226,9 @@
             @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true),
             @ApiImplicitParam(value = "完整收货地址", name = "address", dataType = "String", required = true)
     })
-    public AjaxResult<Boolean> updateOrderAddress(@RequestParam String orderId,
+    public R<Boolean> updateOrderAddress(@RequestParam String orderId,
                                                   @RequestParam String address) {
-        return AjaxResult.success(orderService.lambdaUpdate().set(TOrder::getConsigneeAddress, address)
+        return R.ok(orderService.lambdaUpdate().set(TOrder::getConsigneeAddress, address)
                 .eq(TOrder::getId, orderId).eq(TOrder::getState, 1).update());
     }
 
@@ -238,8 +237,8 @@
      */
     @GetMapping("/addressTree")
     @ApiOperation(value = "收货地址省市区三级联动", tags = {"收货地址省市区三级联动"})
-    public AjaxResult<List<Region>> addressTree() {
-        return AjaxResult.success(regionService.addressTree());
+    public R<List<Region>> addressTree() {
+        return R.ok(regionService.addressTree());
     }
 
     /**
@@ -262,14 +261,14 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true)
     })
-    public AjaxResult<GoodDetailVO> goodDetail(@RequestParam String goodId) {
+    public R<GoodDetailVO> goodDetail(@RequestParam String goodId) {
         // 商品详情
         TGoods goods = goodsService.lambdaQuery().eq(TGoods::getId, goodId).one();
         // 商品分类详情
         List<TGoodsType> goodsTypes = goodsTypeService.lambdaQuery().in(TGoodsType::getId, Arrays.asList(goods.getTypeIds().split(","))).list();
         // 已兑换人数
         int number = goods.getBasicCount() + orderService.getGoodBuyNumber(goods.getId());
-        return AjaxResult.success(new GoodDetailVO(goods, goodsTypes, number));
+        return R.ok(new GoodDetailVO(goods, goodsTypes, number));
     }
 
     /**
@@ -280,11 +279,11 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true)
     })
-    public AjaxResult<GoodDetailVO> redeemNow(@RequestParam String goodId) {
+    public R<GoodDetailVO> redeemNow(@RequestParam String goodId) {
         Recipient recipient = recipientService.lambdaQuery()
                 .eq(Recipient::getUserId, tokenService.getLoginUserStudy().getUserid())
                 .eq(Recipient::getIsDefault, 1).one();
-        return AjaxResult.success(goodsService.redeemNow(goodId, recipient));
+        return R.ok(goodsService.redeemNow(goodId, recipient));
     }
 
     /**
@@ -294,9 +293,9 @@
      */
     @PostMapping("/goodExchange")
     @ApiOperation(value = "商品兑换-确认", tags = {"商品兑换-确认"})
-    public AjaxResult<Object> goodExchange(@RequestBody GoodExchangeDTO goodExchange) {
+    public R<Boolean> goodExchange(@RequestBody GoodExchangeDTO goodExchange) {
         Recipient recipient = recipientService.getById(goodExchange.getRecipientId());
-        return AjaxResult.success(goodsService.goodExchange(goodExchange, recipient));
+        return R.ok(goodsService.goodExchange(goodExchange, recipient));
     }
 
 }
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java
index 607532e..c3342b5 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java
@@ -44,5 +44,5 @@
      * @param recipient    收货地址
      * @return 兑换结果
      */
-    Object goodExchange(GoodExchangeDTO goodExchange, Recipient recipient);
+    Boolean goodExchange(GoodExchangeDTO goodExchange, Recipient 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 7bd0908..41cf496 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
@@ -64,7 +64,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Object goodExchange(GoodExchangeDTO goodExchange, Recipient recipient) {
+    public Boolean goodExchange(GoodExchangeDTO goodExchange, Recipient recipient) {
         Integer number = goodExchange.getNumber();
         Integer goodId = goodExchange.getGoodId();
         TGoods good = this.getById(goodId);
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 c48a838..a8feebe 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
@@ -8,7 +8,6 @@
 import com.ruoyi.common.core.constant.RedisConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.GlobalException;
-import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
@@ -19,7 +18,10 @@
 import com.ruoyi.study.service.*;
 import com.ruoyi.study.vo.*;
 import com.ruoyi.system.api.model.LoginUserParent;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
@@ -605,9 +607,9 @@
             @ApiImplicitParam(value = "所属类型", name = "type", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "季度", name = "quarter", dataType = "Integer", required = true)
     })
-    public AjaxResult<List<StudyWeekDTO>> weekList(@RequestParam(defaultValue = "1") Integer type, @RequestParam Integer quarter) {
+    public R<List<StudyWeekDTO>> weekList(@RequestParam(defaultValue = "1") Integer type, @RequestParam Integer quarter) {
         List<StudyWeekDTO> result = studyService.weekList(type, quarter);
-        return AjaxResult.success(result);
+        return R.ok(result);
     }
 
     /**
@@ -622,9 +624,9 @@
             @ApiImplicitParam(value = "周目", name = "week", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属day", name = "day", dataType = "Integer", required = true)
     })
-    public AjaxResult<TUserStudy> studySchedule(@RequestParam Integer week, @RequestParam Integer day) {
+    public R<TUserStudy> studySchedule(@RequestParam Integer week, @RequestParam Integer day) {
         TUserStudy result = studyService.studySchedule(String.valueOf(tokenService.getLoginUserStudy().getUserid()), week, day);
-        return AjaxResult.success(result);
+        return R.ok(result);
     }
 
     /**
@@ -632,8 +634,8 @@
      */
     @GetMapping("/goodRecommend")
     @ApiOperation(value = "可兑换商品推荐", tags = {"可兑换商品推荐"})
-    public AjaxResult<List<TGoodsVO>> studySchedule() {
-        return AjaxResult.success(goodsClient.goodRecommend());
+    public R<List<TGoodsVO>> studySchedule() {
+        return R.ok(goodsClient.goodRecommend().getData());
     }
 
     /**
@@ -641,9 +643,9 @@
      */
     @PostMapping("/exitLearning")
     @ApiOperation(value = "退出学习(记录学习进度等信息)", tags = {"退出学习(记录学习进度等信息)"})
-    public AjaxResult<Boolean> exitLearning(@RequestBody TUserStudy userStudy) {
+    public R<Boolean> exitLearning(@RequestBody TUserStudy userStudy) {
         // 学习时长处理
-        return AjaxResult.success(userStudyService.updateById(userStudy));
+        return R.ok(userStudyService.updateById(userStudy));
     }
 
     /**
@@ -683,7 +685,7 @@
             @ApiImplicitParam(value = "周目", name = "week", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属day", name = "day", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyLookResultVO> pictureSelectVoice(@RequestParam Integer week, @RequestParam Integer day) {
+    public R<StudyLookResultVO> pictureSelectVoice(@RequestParam Integer week, @RequestParam Integer day) {
         // 判断当前登录用户是否为 会员
         Boolean isVip = userService.isVip();
         LambdaQueryChainWrapper<TStudyLook> wrapper = studyLookService.lambdaQuery().eq(TStudyLook::getWeek, week)
@@ -694,7 +696,7 @@
         }
         List<TStudyLook> lookList = studyLookService.lambdaQuery().eq(TStudyLook::getWeek, week)
                 .eq(TStudyLook::getDay, day).eq(TStudyLook::getDisabled, 0).list();
-        return AjaxResult.success(studyService.pictureSelectVoice(week, day, lookList));
+        return R.ok(studyService.pictureSelectVoice(week, day, lookList));
     }
 
     /**
@@ -709,7 +711,7 @@
             @ApiImplicitParam(value = "周目", name = "week", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属day", name = "day", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyInductionResultVO> induceExclude(@RequestParam Integer week, @RequestParam Integer day) {
+    public R<StudyInductionResultVO> induceExclude(@RequestParam Integer week, @RequestParam Integer day) {
         // 判断当前登录用户是否为 会员
         Boolean isVip = userService.isVip();
         LambdaQueryChainWrapper<TStudyInduction> wrapper = studyInductionService.lambdaQuery().eq(TStudyInduction::getWeek, week)
@@ -719,7 +721,7 @@
             wrapper.eq(TStudyInduction::getIsVip, 0);
         }
         List<TStudyInduction> inductionList = wrapper.list();
-        return AjaxResult.success(studyService.induceExclude(week, day, inductionList));
+        return R.ok(studyService.induceExclude(week, day, inductionList));
     }
 
     /**
@@ -734,7 +736,7 @@
             @ApiImplicitParam(value = "周目", name = "week", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属day", name = "day", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyAnswerResultVO> questionsAndAnswers(@RequestParam Integer week, @RequestParam Integer day) {
+    public R<StudyAnswerResultVO> questionsAndAnswers(@RequestParam Integer week, @RequestParam Integer day) {
         // 判断当前登录用户是否为 会员
         Boolean isVip = userService.isVip();
         LambdaQueryChainWrapper<TStudyAnswer> wrapper = studyAnswerService.lambdaQuery().eq(TStudyAnswer::getWeek, week)
@@ -744,7 +746,7 @@
             wrapper.eq(TStudyAnswer::getIsVip, 0);
         }
         List<TStudyAnswer> answerList = wrapper.list();
-        return AjaxResult.success(studyService.questionsAndAnswers(week, day, answerList));
+        return R.ok(studyService.questionsAndAnswers(week, day, answerList));
     }
 
     /**
@@ -759,7 +761,7 @@
             @ApiImplicitParam(value = "周目", name = "week", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属day", name = "day", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyPairResultVO> pictureMateVoice(@RequestParam Integer week, @RequestParam Integer day) {
+    public R<StudyPairResultVO> pictureMateVoice(@RequestParam Integer week, @RequestParam Integer day) {
         // 判断当前登录用户是否为 会员
         Boolean isVip = userService.isVip();
         LambdaQueryChainWrapper<TStudyPair> wrapper = studyPairService.lambdaQuery().eq(TStudyPair::getWeek, week)
@@ -769,7 +771,7 @@
             wrapper.eq(TStudyPair::getIsVip, 0);
         }
         TStudyPair pair = wrapper.one();
-        return AjaxResult.success(studyService.pictureMateVoice(week, day, pair));
+        return R.ok(studyService.pictureMateVoice(week, day, pair));
     }
 
     /**
@@ -784,7 +786,7 @@
             @ApiImplicitParam(value = "难度(0入门、1中级、2困难)", name = "difficulty", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属周目", name = "week", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyGamerResultVO> gameHearing(@RequestParam Integer difficulty, @RequestParam Integer week) {
+    public R<StudyGamerResultVO> gameHearing(@RequestParam Integer difficulty, @RequestParam Integer week) {
         TGame game = gameService.lambdaQuery().eq(TGame::getWeek, week)
                 .eq(TGame::getDisabled, 0).one();
         game.setIntegral(game.getIntegral().split(",")[difficulty]);
@@ -808,7 +810,7 @@
             // 获取对应的数据并加入结果列表
             subjectData.add(subjectId.get(randomIndex));
         }
-        return AjaxResult.success(new StudyGamerResultVO(game,
+        return R.ok(new StudyGamerResultVO(game,
                 subjectService.lambdaQuery().in(TSubject::getId, subjectData).eq(TSubject::getState, 1).list()));
     }
 
@@ -824,7 +826,7 @@
             @ApiImplicitParam(value = "难度(0入门、1中级、2困难)", name = "difficulty", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "所属周目", name = "week", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyGamerResultVO> gameMemory(@RequestParam Integer difficulty, @RequestParam Integer week) {
+    public R<StudyGamerResultVO> gameMemory(@RequestParam Integer difficulty, @RequestParam Integer week) {
         TGame game = gameService.lambdaQuery().eq(TGame::getWeek, week).eq(TGame::getDisabled, 0).one();
         // 检验是否完成难度
         studyService.checkDifficulty(difficulty, week, game);
@@ -845,7 +847,7 @@
             // 获取对应的数据并加入结果列表
             subjectData.add(subjectId.get(randomIndex));
         }
-        return AjaxResult.success(new StudyGamerResultVO(game,
+        return R.ok(new StudyGamerResultVO(game,
                 subjectService.lambdaQuery().in(TSubject::getId, subjectData).eq(TSubject::getState, 1).list()));
     }
 
@@ -857,14 +859,14 @@
      */
     @PostMapping("/gameAchievement")
     @ApiOperation(value = "完成游戏-记录游戏测试成绩", tags = {"完成游戏-记录游戏测试成绩"})
-    public AjaxResult<Boolean> gameAchievement(@RequestBody CompleteGameDTO completeStudy) {
+    public R<Boolean> gameAchievement(@RequestBody CompleteGameDTO completeStudy) {
         TGame game = gameService.getById(completeStudy.getGameId());
         // 游戏测试记录
         Boolean add = gameRecordService.add(completeStudy);
         // 添加积分明细记录
         add = add && integralRecordService.add(game.getIntegral(), completeStudy.getMethod());
         // 用户账户添加积分
-        return AjaxResult.success(add);
+        return R.ok(add);
     }
 
     private List<String> getSubjectId(Integer week) {
@@ -902,12 +904,12 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "所属周目", name = "week", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyStoryListenResultVO> lookPictureDbu(@RequestParam Integer week) {
+    public R<StudyStoryListenResultVO> lookPictureDbu(@RequestParam Integer week) {
         // 看图配音信息
         TStoryListen listen = storyListenService.lambdaQuery().eq(TStoryListen::getWeek, week).one();
         // 获取对应图片语音
         List<String> list = Arrays.asList(listen.getLookStory().split(","));
-        return AjaxResult.success(new StudyStoryListenResultVO(listen,
+        return R.ok(new StudyStoryListenResultVO(listen,
                 subjectService.lambdaQuery().in(TSubject::getId, list).eq(TSubject::getState, 1).list()));
     }
 
@@ -921,12 +923,12 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "所属周目", name = "week", dataType = "Integer", required = true)
     })
-    public AjaxResult<StudyStoryListenResultVO> frameworkMemory(@RequestParam Integer week) {
+    public R<StudyStoryListenResultVO> frameworkMemory(@RequestParam Integer week) {
         // 看图配音信息
         TStoryListen listen = storyListenService.lambdaQuery().eq(TStoryListen::getWeek, week).one();
         // 获取对应图片语音
         List<String> list = Arrays.asList(listen.getStory().split(","));
-        return AjaxResult.success(new StudyStoryListenResultVO(listen,
+        return R.ok(new StudyStoryListenResultVO(listen,
                 subjectService.lambdaQuery().in(TSubject::getId, list).eq(TSubject::getState, 1).list()));
     }
 
@@ -937,7 +939,7 @@
      */
     @PostMapping("/completeLearning")
     @ApiOperation(value = "完成学习", tags = {"完成学习/其他积分来源(分享...)"})
-    public AjaxResult<Boolean> completeLearning(@RequestBody CompleteStudyDTO completeStudy) {
+    public R<Boolean> completeLearning(@RequestBody CompleteStudyDTO completeStudy) {
         // 登录用户id
         Integer userId = tokenService.getLoginUserStudy().getUserid();
         // 获取user详细信息,改变积分
@@ -949,7 +951,7 @@
         integralRecord.setIntegral(String.valueOf(completeStudy.getIntegral()));
         integralRecord.setMethod(completeStudy.getMethod());
         integralRecord.setUserId(userId);
-        return AjaxResult.success(update && integralRecordService.save(integralRecord));
+        return R.ok(update && integralRecordService.save(integralRecord));
     }
 
     /**
@@ -962,7 +964,7 @@
             @ApiImplicitParam(value = "故事id", name = "storyId", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "完成答题/完成听故事", name = "method", dataType = "String", required = true)
     })
-    public AjaxResult<Boolean> completeStory(@RequestParam Integer integral, @RequestParam Integer storyId,
+    public R<Boolean> completeStory(@RequestParam Integer integral, @RequestParam Integer storyId,
                                              @RequestParam String method) {
         // 添加积分明细记录
         Boolean add = integralRecordService.add(String.valueOf(integral), method);
@@ -971,12 +973,12 @@
         TUser user = userService.lambdaQuery().eq(TUser::getId, userId).one();
         // 返回结果
         user.setIntegral(user.getIntegral() + integral);
-        return AjaxResult.success(add && userService.updateById(user));
+        return R.ok(add && userService.updateById(user));
     }
 
     @GetMapping("/studyRecord")
     @ApiOperation(value = "个人中心-学习记录", tags = {"个人中心-学习记录"})
-    public AjaxResult<StudyRecordResultVO> studyRecord() {
+    public R<StudyRecordResultVO> studyRecord() {
         Integer userId = tokenService.getLoginUserStudy().getUserid();
         // 学习记录
         TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, userId)
@@ -984,7 +986,7 @@
         // 游戏测试成绩
         List<TGameRecord> gameRecordList = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, userId)
                 .eq(TGameRecord::getDisabled, 0).list();
-        return AjaxResult.success(new StudyRecordResultVO(studyRecord,gameRecordList));
+        return R.ok(new StudyRecordResultVO(studyRecord,gameRecordList));
     }
 
     @GetMapping("/integralDetail")
@@ -994,10 +996,10 @@
             @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "每页显示条数", name = "pageSize", dataType = "Integer", required = true)
     })
-    public AjaxResult<IPage<TIntegralRecord>> integralDetail(String time,
+    public R<IPage<TIntegralRecord>> integralDetail(String time,
                                                              @RequestParam("pageNum") Integer pageNum,
                                                              @RequestParam("pageSize") Integer pageSize) {
-        return AjaxResult.success(integralRecordService.integralDetail(new Page<>(pageNum, pageSize), tokenService.getLoginUserStudy().getUserid(), time));
+        return R.ok(integralRecordService.integralDetail(new Page<>(pageNum, pageSize), tokenService.getLoginUserStudy().getUserid(), time));
     }
 
     /**
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 4f7e44d..94b1a51 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
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.constant.RedisConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.GlobalException;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.redis.service.RedisService;
@@ -65,9 +66,9 @@
 
     @PostMapping("/vipInfo")
     @ApiOperation(value = "会员中心-获取会员说明、当前登录用户是否为会员、会员购买规格", tags = {"家长端-个人中心"})
-    public AjaxResult<List<VipInfoVO>> vipInfo() {
+    public R<List<VipInfoVO>> vipInfo() {
         if (tokenService.getLoginUser1() == null) {
-            return AjaxResult.tokenError("登录失效", new Object());
+            throw new GlobalException("登录失效!");
         }
         List<VipInfoVO> vipInfoVOS = new ArrayList<>();
         List<TVipSet> data = managementClient.getVipSet1().getData();
@@ -92,7 +93,7 @@
             vipInfoVO.setAmount(datum.getAmount());
             vipInfoVOS.add(vipInfoVO);
         }
-        return AjaxResult.ok(vipInfoVOS);
+        return R.ok(vipInfoVOS);
     }
 
     @Autowired
@@ -308,38 +309,38 @@
 
     @PostMapping("/getPage")
     @ApiOperation(value = "获取注意事项", tags = {"家长端-注意事项"})
-    public AjaxResult<String> getPage() {
+    public R<String> getPage() {
         List<TPage> data = managementClient.getPage1().getData();
         for (TPage datum : data) {
             if (datum.getType() == 4) {
-                return AjaxResult.success(datum.getImg());
+                return R.ok(datum.getImg());
             }
         }
-        return AjaxResult.success();
+        return R.ok();
     }
 
     @PostMapping("/parentPage")
     @ApiOperation(value = "平板", tags = {"家长端-启动页"})
-    public AjaxResult<String> parentPage() {
+    public R<String> parentPage() {
         List<TPage> data = managementClient.getPage1().getData();
         for (TPage datum : data) {
             if (datum.getType() == 3) {
-                return AjaxResult.success(datum.getImg());
+                return R.ok(datum.getImg());
             }
         }
-        return AjaxResult.success();
+        return R.ok();
     }
 
     @PostMapping("/parentPage1")
     @ApiOperation(value = "手机", tags = {"家长端-启动页"})
-    public AjaxResult<String> parentPage1() {
+    public R<String> parentPage1() {
         List<TPage> data = managementClient.getPage1().getData();
         for (TPage datum : data) {
             if (datum.getType() == 2) {
-                return AjaxResult.success(datum.getImg());
+                return R.ok(datum.getImg());
             }
         }
-        return AjaxResult.success();
+        return R.ok();
     }
 
     @PostMapping("/getProtocol")
@@ -347,28 +348,28 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "类型 1用户 2隐私 3注销", name = "type", dataType = "string", required = true),
     })
-    public AjaxResult<String> getProtocol(Integer type) {
+    public R<String> getProtocol(Integer type) {
         String data = managementClient.agreement1(type).getData();
-        return AjaxResult.success(data);
+        return R.ok(data);
     }
 
     @PostMapping("/useGuide")
     @ApiOperation(value = "使用指南", tags = {"家长端-使用指南"})
-    public AjaxResult<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) {
+    public R<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) {
         PageInfo<TUseGuide> data = managementClient.useGuide1(query).getData();
-        return AjaxResult.success(data);
+        return R.ok(data);
     }
 
     @PostMapping("/feedBack")
     @ApiOperation(value = "反馈", tags = {"家长端-意见反馈"})
-    public AjaxResult feedBack(@RequestBody TFeedback dto) {
+    public R<String> feedBack(@RequestBody TFeedback dto) {
         if (tokenService.getLoginUser1() == null) {
-            return AjaxResult.tokenError("登录失效", new Object());
+            throw new GlobalException("登录失效!");
         }
         LoginUserParent loginUser1 = tokenService.getLoginUser1();
         dto.setUserId(loginUser1.getUserid());
         managementClient.addFeedBack(dto);
-        return AjaxResult.success("反馈成功");
+        return R.ok("反馈成功");
     }
 
     @PostMapping("/parentLogin")
@@ -377,25 +378,25 @@
             @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
             @ApiImplicitParam(value = "验证码", name = "phoneCode", dataType = "string", required = true)
     })
-    public AjaxResult login(String phone, String phoneCode) {
+    public R<Map<String,Object>> login(String phone, String phoneCode) {
         TUser tUser1 = userService.getOne(new QueryWrapper<TUser>()
                 .ne("state", 3)
                 .eq("phone", phone));
         if (tUser1 != null) {
             if (tUser1.getState() == 2) {
-                return AjaxResult.error("登录失败,您的账号已被冻结!");
+                throw new GlobalException("登录失败,您的账号已被冻结!");
             }
         } else {
             // 手机验证码校验
             Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone);
             if (null == redisPhoneCode) {
-                return AjaxResult.error("登录失败,手机验证码已过期!");
+                throw new GlobalException("登录失败,手机验证码已过期!");
             } else {
                 // redis 验证码的value 为 code:时间戳
                 String rCodeAndTime = String.valueOf(redisPhoneCode);
                 String rCode = rCodeAndTime.split(":")[0];
                 if (!rCode.equalsIgnoreCase(phoneCode)) {
-                    return AjaxResult.error("登录失败,手机验证码输入有误!");
+                    throw new GlobalException("登录失败,手机验证码输入有误!");
                 } else {
                     tUser1 = getUser(phone);
                     userService.save(tUser1);
@@ -410,7 +411,7 @@
         HashMap<String, Object> map = new HashMap<>();
         map.put("token", tokenService.createToken1(loginUserParent));
         // 获取登录token
-        return AjaxResult.success(map);
+        return R.ok(map);
     }
 
     /**
@@ -420,7 +421,7 @@
      */
     @PostMapping("/studyLogin")
     @ApiOperation(value = "学习端-登录", tags = {"学习端-登录"})
-    public AjaxResult studyLogin(@RequestBody @Validated RegisterPhoneRequest phoneRequest) {
+    public R<Map<String,Object>> studyLogin(@RequestBody @Validated RegisterPhoneRequest phoneRequest) {
         String phone = phoneRequest.getPhone();
         String phoneCode = phoneRequest.getPhoneCode();
         TUser user = userService.getOne(new QueryWrapper<TUser>()
@@ -428,19 +429,19 @@
                 .eq("phone", phone));
         if (user != null) {
             if (user.getState() == 2) {
-                return AjaxResult.error("登录失败,您的账号已被冻结!");
+                throw new GlobalException("登录失败,您的账号已被冻结!");
             }
         } else {
             // 手机验证码校验
             Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone);
             if (null == redisPhoneCode) {
-                return AjaxResult.error("登录失败,手机验证码已过期!");
+                throw new GlobalException("登录失败,手机验证码已过期!");
             } else {
                 // redis 验证码的value 为 code:时间戳
                 String rCodeAndTime = String.valueOf(redisPhoneCode);
                 String rCode = rCodeAndTime.split(":")[0];
                 if (!rCode.equalsIgnoreCase(phoneCode)) {
-                    return AjaxResult.error("登录失败,手机验证码输入有误!");
+                    throw new GlobalException("登录失败,手机验证码输入有误!");
                 } else {
                     user = getUser(phone);
                     userService.save(user);
@@ -456,7 +457,7 @@
         HashMap<String, Object> map = new HashMap<>();
         map.put("token", tokenService.createTokenStudy(loginUserParent));
         // 获取登录token
-        return AjaxResult.success(map);
+        return R.ok(map);
     }
 
     private TUser getUser(String phone) {
@@ -481,8 +482,8 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
     })
-    public AjaxResult sendPhoneCode(@RequestParam String phone) {
-        return userService.phoneCode(phone) ? AjaxResult.success() : AjaxResult.error();
+    public R sendPhoneCode(@RequestParam String phone) {
+        return userService.phoneCode(phone) ? R.ok() : R.fail();
     }
 
     /**
@@ -490,7 +491,7 @@
      */
     @GetMapping("/shareInfo")
     @ApiOperation(value = "微信分享信息", tags = {"微信分享信息"})
-    public AjaxResult shareInfo() {
+    public R<TSysSet> shareInfo() {
         // 分享信息
         TSysSet data = managementClient.shareInfo().getData();
         Integer userid = tokenService.getLoginUserStudy().getUserid();
@@ -508,7 +509,7 @@
             record.setUserId(userid);
             userShareService.save(record);
         }
-        return AjaxResult.success();
+        return R.ok(data);
     }
 
     /**
@@ -527,9 +528,9 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
     })
-    public AjaxResult deleteUser() {
+    public R<String> deleteUser() {
         if (tokenService.getLoginUser1() == null) {
-            return AjaxResult.tokenError("登录失效");
+            throw new GlobalException("登录失效!");
         }
         Integer userid = tokenService.getLoginUser1().getUserid();
         TUser tUser = userService.getById(userid);
@@ -538,7 +539,7 @@
         userService.updateById(tUser);
 
         userService.removeById(tUser);
-        return AjaxResult.success("注销成功");
+        return R.ok("注销成功");
     }
 
     @PostMapping("/logout")
@@ -546,9 +547,9 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
     })
-    public AjaxResult logout(HttpServletRequest request) {
+    public R<String> logout(HttpServletRequest request) {
         if (tokenService.getLoginUser1() == null) {
-            return AjaxResult.tokenError("登录失效");
+            throw new GlobalException("登录失效!");
         }
         String token = SecurityUtils.getToken(request);
         if (com.ruoyi.common.core.utils.StringUtils.isNotEmpty(token)) {
@@ -556,7 +557,7 @@
             AuthUtil.logoutByToken1(token);
         }
         // todo 清除token
-        return AjaxResult.success("退出登录成功");
+        return R.ok("退出登录成功");
     }
 
     @PostMapping("/updateUserInfo")
@@ -567,7 +568,7 @@
             @ApiImplicitParam(name = "phone", value = "电话 改什么就只传什么"),
             @ApiImplicitParam(name = "headImg", value = "头像 改什么就只传什么"),
     })
-    public AjaxResult updateUserInfo(String name, String phone, String headImg) {
+    public R<String> updateUserInfo(String name, String phone, String headImg) {
         // todo 获取用户id
         Integer userid = tokenService.getLoginUser1().getUserid();
         TUser byId = userService.getById(userid);
@@ -582,13 +583,13 @@
 //            }
 
             if (phone.equals(byId.getPhone())) {
-                return AjaxResult.error("更换的手机号不能和原手机号相同");
+                return R.fail("更换的手机号不能和原手机号相同!");
             }
             List<TUser> list = userService.list(new QueryWrapper<TUser>()
                     .eq("phone", phone)
                     .ne("state", 3));
             if (list.size() > 0) {
-                return AjaxResult.error("更换的手机号已被使用", new Object());
+                return R.fail("更换的手机号已被使用!");
             }
             byId.setPhone(phone);
         }
@@ -596,7 +597,7 @@
             byId.setHeadImg(headImg);
         }
         userService.saveOrUpdate(byId);
-        return AjaxResult.success("修改成功");
+        return R.ok("修改成功");
     }
 
     @ResponseBody
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 22a1304..3fe4f27 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
@@ -58,4 +58,5 @@
      * 非会员是否查看 0否1是
      */
     private Integer isVip;
+
 }
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 977f9c3..ab051c5 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
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.exception.GlobalException;
+import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.study.domain.*;
 import com.ruoyi.study.dto.StudyWeekDTO;
@@ -102,13 +103,27 @@
         // 随机获取一组题
         Random rand = new Random();
         TStudyAnswer data = answerList.get(rand.nextInt(answerList.size()));
+        AnswerVO one = new AnswerVO();
+        BeanUtils.copyProperties(data, one);
+        answerList.remove(data);
+        TStudyAnswer dataTwo = answerList.get(rand.nextInt(answerList.size()));
+        AnswerVO two = new AnswerVO();
+        BeanUtils.copyProperties(dataTwo, two);
         // 获取问题题目 和 回答题目
         List<String> ids = new ArrayList<>();
-        ids.add(String.valueOf(data.getSubject()));
-        ids.add(String.valueOf(data.getAnswerSubject()));
+        ids.add(String.valueOf(one.getSubject()));
+        ids.add(String.valueOf(one.getAnswerSubject()));
         // 有问有答
-        List<TSubject> subjects = getSubjects(ids.toArray(ids.toArray(new String[0])));
-        return new StudyAnswerResultVO(data, subjects);
+        List<TStudyAnswer> answers = new ArrayList<>();
+        answers.add(one);
+        one.setSubjectList(getSubjects(ids.toArray(new String[0])));
+        // 第二题信息
+        List<String> twoIds = new ArrayList<>();
+        answers.add(two);
+        twoIds.add(String.valueOf(two.getSubject()));
+        twoIds.add(String.valueOf(two.getAnswerSubject()));
+        two.setSubjectList(getSubjects(twoIds.toArray(new String[0])));
+        return new StudyAnswerResultVO(answers);
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/AnswerVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/AnswerVO.java
new file mode 100644
index 0000000..69ef1e9
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/AnswerVO.java
@@ -0,0 +1,29 @@
+package com.ruoyi.study.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.study.domain.TStudyAnswer;
+import com.ruoyi.study.domain.TSubject;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-05-22 14:48
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "有问有答VO信息类")
+public class AnswerVO extends TStudyAnswer{
+
+    /**
+     * 录音及图片信息
+     */
+    @TableField(exist = false)
+    private List<TSubject> subjectList;
+
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java
index 1630385..11d1f78 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java
@@ -1,11 +1,9 @@
 package com.ruoyi.study.vo;
 
 import com.ruoyi.study.domain.TStudyAnswer;
-import com.ruoyi.study.domain.TSubject;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 import java.util.List;
 
@@ -14,20 +12,17 @@
  * @version 1.0
  * @since 2024-05-22 14:48
  */
-@EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("有问有答返回信息类")
-public class StudyAnswerResultVO extends StudyModelVO {
+@ApiModel(value = "有问有答返回信息类")
+public class StudyAnswerResultVO{
 
     /**
      * 自主学习题目信息
      */
     @ApiModelProperty("自主学习题目信息")
-    private TStudyAnswer data;
+    private List<TStudyAnswer> data;
 
-    public StudyAnswerResultVO(TStudyAnswer data, List<TSubject> subjectList) {
+    public StudyAnswerResultVO(List<TStudyAnswer> data) {
         this.data = data;
-        super.setSubjectList(subjectList);
     }
-
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerSubjectVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerSubjectVO.java
new file mode 100644
index 0000000..d381cfe
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerSubjectVO.java
@@ -0,0 +1,34 @@
+package com.ruoyi.study.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.study.domain.TStudyAnswer;
+import com.ruoyi.study.domain.TSubject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-05-22 14:48
+ */
+@Data
+@ApiModel(value = "有问有答返回信息类")
+public class StudyAnswerSubjectVO {
+
+    /**
+     * 自主学习题目信息
+     */
+    @ApiModelProperty("自主学习题目信息")
+    private List<TStudyAnswer> data;
+
+    /**
+     * 录音及图片信息
+     */
+    @TableField(exist = false)
+    private List<TSubject> subjectList;
+
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyGamerResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyGamerResultVO.java
index 26771f0..579fe78 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyGamerResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyGamerResultVO.java
@@ -16,7 +16,7 @@
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("超级听力&&超级记忆返回信息类")
+@ApiModel(value = "超级听力&&超级记忆返回信息类")
 public class StudyGamerResultVO extends StudyModelVO {
 
     /**
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java
index 277b200..faefba8 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java
@@ -16,7 +16,7 @@
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("归纳排除返回信息类")
+@ApiModel(value = "归纳排除返回信息类")
 public class StudyInductionResultVO extends StudyModelVO {
 
     /**
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java
index f023a6c..035eb2f 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java
@@ -16,7 +16,7 @@
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("听音选图返回信息类")
+@ApiModel(value = "听音选图返回信息类")
 public class StudyListenResultVO extends StudyModelVO {
 
     /**
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java
index 3af3b8a..7cf982f 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java
@@ -16,7 +16,7 @@
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("看图选音返回信息类")
+@ApiModel(value = "看图选音返回信息类")
 public class StudyLookResultVO extends StudyModelVO{
 
     /**
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java
index 1823fdb..a1abae0 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java
@@ -16,7 +16,7 @@
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("音图相配返回信息类")
+@ApiModel(value = "音图相配返回信息类")
 public class StudyPairResultVO extends StudyModelVO {
 
     /**
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyRecordResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyRecordResultVO.java
index c24eccd..c697005 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyRecordResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyRecordResultVO.java
@@ -14,7 +14,7 @@
  * @since 2024-05-22 14:39
  */
 @Data
-@ApiModel("个人中心-学习记录返回信息类")
+@ApiModel(value = "个人中心-学习记录返回信息类")
 public class StudyRecordResultVO{
 
     /**
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyStoryListenResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyStoryListenResultVO.java
index 9962987..582cab2 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyStoryListenResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyStoryListenResultVO.java
@@ -16,7 +16,7 @@
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-@ApiModel("自主故事-看图配音&&框架记忆返回信息类")
+@ApiModel(value = "自主故事-看图配音&&框架记忆返回信息类")
 public class StudyStoryListenResultVO extends StudyModelVO {
 
     /**

--
Gitblit v1.7.1