From 401510af482a05aa777db983791f8e7594edaec2 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 08 七月 2025 13:53:55 +0800 Subject: [PATCH] 新增迭代 --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java | 18 ++++---- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 32 ++++++++++++++-- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java | 64 ++++++++++++++++++++++---------- 3 files changed, 81 insertions(+), 33 deletions(-) diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java index c76eac0..06191f1 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 @@ -1001,6 +1001,24 @@ Integer userid = loginStudy.getUserid(); TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, loginStudy.getUserid()) .eq(TUserStudy::getDisabled, 0).one(); + TStudy study = studyService.lambdaQuery().eq(TStudy::getWeek, week).one(); + if (study.getQuarter()!=1){ + // 判断上季度 通关率 + String quarterRate = study.getQuarterRate(); + BigDecimal bigDecimal = new BigDecimal(quarterRate); + // 查询五个自主学习通关率 + List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getWeek, week) + .eq(TSubjectRecordDetail::getUserId, userid).list(); + List<TSubjectRecordDetail> pass = list.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList()); + if (list.isEmpty()){ + return R.fail("上季度未达到通关率"+quarterRate+"%,当前通关率0%"); + } + BigDecimal divide = new BigDecimal(pass.size()).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP); + if (divide.compareTo(bigDecimal)<1){ + return R.fail("上季度未达到通关率"+quarterRate+"%,当前通关率"+divide.multiply(new BigDecimal(100))+"%"); + } + + } if (null != studyRecord) { // 计算当前周 day 1-5的总进度 int computeSchedule = studyService.computeSchedule(studyRecord, week); @@ -1669,7 +1687,7 @@ return R.tokenError("登录失效!"); } List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userStudy.getUserid()) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 5).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -1681,7 +1699,7 @@ .eq(TStudyPair::getDay, 5).last("limit 1").one(); if (one!=null){ if (listenRate<(Double.parseDouble(one.getRate())/100)){ - return R.fail("音图相配未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide+"%"); + return R.fail("音图相配未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%"); } } } @@ -1732,7 +1750,7 @@ return R.tokenError("登录失效!"); } List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userStudy.getUserid()) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 5).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -1744,7 +1762,7 @@ .eq(TStudyPair::getDay, 5).last("limit 1").one(); if (one!=null){ if (listenRate<(Double.parseDouble(one.getRate())/100)){ - return R.fail("音图相配未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide+"%"); + return R.fail("音图相配未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%"); } } } @@ -1980,6 +1998,9 @@ public R<StudyStoryListenResultVO> lookPictureDbu(@RequestParam Integer quarter, @RequestParam Integer week) { // 看图配音信息 TStoryListen storyListen = storyListenService.storyDetail(quarter, week); + if (storyListen==null){ + return R.fail("当前未配置看图配音信息"); + } // 题组信息 StudyStoryVO studyStory = new StudyStoryVO(); studyStory.setId(storyListen.getId()); @@ -2003,6 +2024,9 @@ public R<StudyStoryListenResultVO> frameworkMemory(@RequestParam Integer quarter, @RequestParam Integer week) { // 看图配音信息 TStoryListen storyListen = storyListenService.storyDetail(quarter, week); + if (storyListen==null){ + return R.fail("当前未配置框架记忆信息"); + } // 题组信息 StudyStoryVO studyStory = new StudyStoryVO(); studyStory.setId(storyListen.getId()); 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 2f5da68..8fc166f 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 @@ -446,7 +446,7 @@ StudyListenResultVO studyListenResultVO = new StudyListenResultVO(learnStudy, subjectList); List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 1).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -560,7 +560,7 @@ StudyLookResultVO studyListenResultVO = new StudyLookResultVO(learnStudy, subjectList); List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 1).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -572,7 +572,7 @@ .eq(TStudyListen::getDay, 1).last("limit 1").one(); if (one!=null){ if (listenRate<(Double.parseDouble(one.getRate())/100)){ - return R.fail("听音选图未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide+"%"); + return R.fail("听音选图未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%"); } } } @@ -704,7 +704,7 @@ .eq(TSubjectRecordDetail::getDay, day) .eq(TSubjectRecordDetail::getType, 3).list(); List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 2).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -716,7 +716,7 @@ .eq(TStudyLook::getDay, 2).last("limit 1").one(); if (one!=null){ if (listenRate<(Double.parseDouble(one.getRate())/100)){ - return R.fail("看图选音未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide+"%"); + return R.fail("看图选音未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%"); } } } @@ -881,7 +881,7 @@ .eq(TSubjectRecordDetail::getDay, day) .eq(TSubjectRecordDetail::getType, 4).list(); List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 3).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -893,7 +893,7 @@ .eq(TStudyInduction::getDay, 3).last("limit 1").one(); if (one!=null){ if (listenRate<(Double.parseDouble(one.getRate())/100)){ - return R.fail("归纳排除未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide+"%"); + return R.fail("归纳排除未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%"); } } } @@ -1066,7 +1066,7 @@ .eq(TSubjectRecordDetail::getDay, day) .eq(TSubjectRecordDetail::getType, 5).list(); List<TSubjectRecordDetail> subjectRecordDetails = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid) - .eq(TSubjectRecordDetail::getWeek, week).ne(BaseModel::getDisabled, 0).list(); + .eq(TSubjectRecordDetail::getWeek, week).eq(BaseModel::getDisabled, 0).list(); List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 4).collect(Collectors.toList()); int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count(); int listenSize = listenList.size(); @@ -1078,7 +1078,7 @@ .eq(TStudyAnswer::getDay, 4).last("limit 1").one(); if (one!=null){ if (listenRate<(Double.parseDouble(one.getRate())/100)){ - return R.fail("归纳排除未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide+"%"); + return R.fail("归纳排除未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%"); } } } 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 43042bf..de6e73a 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 @@ -104,27 +104,51 @@ } else if (Constants.FIVE.equals(type)) { userStudyRecord.setPair(Constants.ONE_HUNDRED); } - if (userStudyRecord.getLook().equals(Constants.ONE_HUNDRED) && - userStudyRecord.getAnswer().equals(Constants.ONE_HUNDRED) && - userStudyRecord.getPair().equals(Constants.ONE_HUNDRED) && - userStudyRecord.getInduction().equals(Constants.ONE_HUNDRED) && - userStudyRecord.getListen().equals(Constants.ONE_HUNDRED)) { - // 学习完成,进入下一学习day - Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay())); - userStudyRecord.setDay(nextDay); - // 下一day为 6,进入游戏日 - if (nextDay.equals(Constants.SIX)) { - // 游戏难度初始化 0(入门难度) - userStudyRecord.setGameDifficulty(Constants.ZERO); - } else { - // 重置学习进度 - 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); - } + if (userStudyRecord.getListen().equals(Constants.ONE_HUNDRED)){ + userStudyRecord.setDay(2); + } + if (userStudyRecord.getLook().equals(Constants.ONE_HUNDRED)){ + userStudyRecord.setDay(3); + + } + if (userStudyRecord.getInduction().equals(Constants.ONE_HUNDRED)){ + userStudyRecord.setDay(4); + + } + if (userStudyRecord.getAnswer().equals(Constants.ONE_HUNDRED)){ + userStudyRecord.setDay(5); + + } + if (userStudyRecord.getPair().equals(Constants.ONE_HUNDRED)){ + userStudyRecord.setDay(6); + + } + if (userStudyRecord.getDay().equals(Constants.SIX)) { + // 游戏难度初始化 0(入门难度) + userStudyRecord.setGameDifficulty(Constants.ZERO); + } +// if (userStudyRecord.getLook().equals(Constants.ONE_HUNDRED) && +// userStudyRecord.getAnswer().equals(Constants.ONE_HUNDRED) && +// userStudyRecord.getPair().equals(Constants.ONE_HUNDRED) && +// userStudyRecord.getInduction().equals(Constants.ONE_HUNDRED) && +// userStudyRecord.getListen().equals(Constants.ONE_HUNDRED)) { +// // 学习完成,进入下一学习day +// Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay())); +// userStudyRecord.setDay(nextDay); +// // 下一day为 6,进入游戏日 +// if (nextDay.equals(Constants.SIX)) { +// // 游戏难度初始化 0(入门难度) +// userStudyRecord.setGameDifficulty(Constants.ZERO); +// } else { +// // 重置学习进度 +// 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.setTotalStudy(userStudyRecord.getTotalStudy() + studyTime); -- Gitblit v1.7.1