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()); 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))+"%"); } } } 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);