From 610604ea8fbdc1f2b0f54e90a689b9ff449f092c Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 18 六月 2024 15:48:04 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/DolphinEnglish --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java | 91 ++++++++++++++++++++++++++++++++------------- 1 files changed, 65 insertions(+), 26 deletions(-) diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java index f7b629b..24cfed5 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java @@ -3,8 +3,10 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.study.domain.TGame; import com.ruoyi.study.domain.TStudy; import com.ruoyi.study.domain.TUserStudy; +import com.ruoyi.study.dto.CompleteGameDTO; import com.ruoyi.study.dto.CompleteStudyDTO; import com.ruoyi.study.mapper.TUserStudyMapper; import com.ruoyi.study.service.ITUserStudyService; @@ -31,20 +33,29 @@ */ private static final Map<String, Integer> DAY_MAP = new HashMap<>(12); + /** + * 所属day map + */ + private static final Map<Integer, Integer> GAME_DIFFICULTY_MAP = new HashMap<>(12); + static { + // 所属day DAY_MAP.put(Constants.ONE_STR, Constants.TWO); DAY_MAP.put(Constants.TWO_STR, Constants.THREE); DAY_MAP.put(Constants.THREE_STR, Constants.FOUR); DAY_MAP.put(Constants.FOUR_STR, Constants.FIVE); - DAY_MAP.put(Constants.FIVE_STR, Constants.ONE); -// DAY_MAP.put(Constants.SIX_STR, Constants.SEVEN); -// DAY_MAP.put(Constants.SEVEN_STR, Constants.ONE); + DAY_MAP.put(Constants.FIVE_STR, Constants.SIX); + DAY_MAP.put(Constants.SIX_STR, Constants.ONE); + // 游戏难度 + GAME_DIFFICULTY_MAP.put(Constants.ZERO, Constants.ONE); + GAME_DIFFICULTY_MAP.put(Constants.ONE, Constants.TWO); + GAME_DIFFICULTY_MAP.put(Constants.TWO, Constants.ZERO); + } @Override - public TUserStudy studySchedule(String userId, Integer week) { + public TUserStudy studySchedule(String userId) { LambdaQueryChainWrapper<TUserStudy> wrapper = lambdaQuery().eq(TUserStudy::getUserId, userId); - wrapper = null != week ? wrapper.eq(TUserStudy::getWeek, week) : wrapper; return wrapper.eq(TUserStudy::getDisabled, 0).one(); } @@ -100,32 +111,20 @@ userStudyRecord.setPair(Constants.BURDEN_ONE); } else if (Constants.FOUR.equals(type)) { userStudyRecord.setAnswer(Constants.ONE_HUNDRED); - userStudyRecord.setPair(Constants.BURDEN_ONE); } else if (Constants.FIVE.equals(type)) { - // 类型五,说明当前day已经全部完成,更新学习记录的 day + userStudyRecord.setPair(Constants.ONE_HUNDRED); + // type为5并且day为5应该进入游戏日 Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay())); userStudyRecord.setDay(nextDay); + // 游戏难度初始化 0(入门难度) + userStudyRecord.setGameDifficulty(Constants.ZERO); // 学习day已切换更新学习进度及学习时长 - userStudyRecord.setListen(Constants.BURDEN_ONE); - userStudyRecord.setLook(Constants.BURDEN_ONE); - userStudyRecord.setInduction(Constants.BURDEN_ONE); - userStudyRecord.setAnswer(Constants.BURDEN_ONE); - userStudyRecord.setPair(Constants.BURDEN_ONE); +// userStudyRecord.setListen(Constants.BURDEN_ONE); +// userStudyRecord.setLook(Constants.BURDEN_ONE); +// userStudyRecord.setInduction(Constants.BURDEN_ONE); +// userStudyRecord.setAnswer(Constants.BURDEN_ONE); +// userStudyRecord.setPair(Constants.BURDEN_ONE); // 下一day为 1说明该周目已完成,应更改为下一周目 - if (Constants.ONE.equals(nextDay)) { - // 获取下一周目信息 - int index = -1; - for (int i = 0; i < studyList.size(); i++) { - if (studyList.get(i).getWeek().equals(userStudyRecord.getWeek())) { - index = i; - break; - } - } - int nextIndex = (index + 1) % studyList.size(); - TStudy nextStudy = studyList.get(nextIndex); - // 更新学习进度及学习时长 - userStudyRecord.setWeek(nextStudy.getWeek()); - } } // 更新学习时长 userStudyRecord.setTotalStudy(userStudyRecord.getTotalStudy() + studyTime); @@ -136,4 +135,44 @@ return this.updateById(userStudyRecord); } + @Override + public void checkRate(TGame game, Integer userid, CompleteGameDTO completeStudy, List<TStudy> studyList) { + String answerRate = game.getAnswerRate(); + // 正确率达到通关率 + if (completeStudy.getAccuracy() >= Integer.parseInt(answerRate)) { + // 获取用户超级记忆游戏记录 + TUserStudy userStudy = this.lambdaQuery().eq(TUserStudy::getUserId, userid).one(); + Integer nextDay = DAY_MAP.get(String.valueOf(userStudy.getDay())); + userStudy.setDay(nextDay); + if (Constants.ONE.equals(nextDay)) { + // 获取下一周目信息 + int index = -1; + for (int i = 0; i < studyList.size(); i++) { + if (studyList.get(i).getWeek().equals(userStudy.getWeek())) { + index = i; + break; + } + } + int nextIndex = (index + 1) % studyList.size(); + TStudy nextStudy = studyList.get(nextIndex); + // 更新学习进度及学习时长 + userStudy.setWeek(nextStudy.getWeek()); + } + this.updateById(userStudy); + } + } + + @Override + public void gameHearing(TGame game, Integer userid, CompleteGameDTO completeStudy) { + // 超级听力通关率 + String answerRate = game.getRate().split(",")[completeStudy.getDifficulty()]; + if (completeStudy.getAccuracy() >= Integer.parseInt(answerRate)) { + // 获取用户超级记忆游戏记录 + TUserStudy userStudy = this.lambdaQuery().eq(TUserStudy::getUserId, userid).one(); + // 更新游戏难度学习记录 + userStudy.setGameDifficulty(GAME_DIFFICULTY_MAP.get(completeStudy.getDifficulty())); + this.updateById(userStudy); + } + } + } -- Gitblit v1.7.1