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/controller/TStudyController.java | 32 ++++++++++++++++++++++++++++---- 1 files changed, 28 insertions(+), 4 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()); -- Gitblit v1.7.1