44323
2024-05-22 57145eb45c9b339eecc97a5037c60c2f8da8f8fd
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));
    }
    /**