From 5a57b1b73022877150bb7a5fba58d1a636874dfa Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 23 十月 2025 15:01:31 +0800
Subject: [PATCH] 1020更新
---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java | 104 ++++++++++++++++------------------------------------
1 files changed, 32 insertions(+), 72 deletions(-)
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 8fc166f..d1eba40 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
@@ -477,9 +477,13 @@
List<String> subjectIds = Arrays.stream(studyListen.getSubject().split(",")).collect(Collectors.toList());
List<TSubject> subs = new ArrayList<>();
// 图片及语音集合
+ int i=0;
for (String id : subjectIds) {
TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
.eq(TSubject::getDisabled, 0).one();
+ if(studyListen.getType()==2 && i<2){
+ data.setStudyType(2);
+ }
subs.add(data);
TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
tSubjectRecordDetail.setUserId(userid);
@@ -489,6 +493,8 @@
tSubjectRecordDetail.setStatus(1);
tSubjectRecordDetail.setObjectId(studyListen.getId());
tSubjectRecordDetails.add(tSubjectRecordDetail);
+ i++;
+
}
subjectList.add(subs);
}
@@ -503,13 +509,19 @@
List<String> subjectIds = Arrays.stream(studyListen.getSubject().split(",")).collect(Collectors.toList());
List<TSubject> subs = new ArrayList<>();
// 图片及语音集合
+ int temp=0;
for (String id : subjectIds) {
TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
.eq(TSubject::getDisabled, 0).one();
+ if(studyListen.getType()==2 && temp<2){
+ data.setStudyType(2);
+ }
+ temp++;
subs.add(data);
}
subjectList.add(subs);
- List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(studyListen.getId())).collect(Collectors.toList());
+ List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream()
+ .filter(e -> e.getObjectId().equals(studyListen.getId())).collect(Collectors.toList());
if (tSubjectRecordDetail1.isEmpty()){
for (int i = 0; i < 4; i++) {
@@ -520,9 +532,9 @@
tSubjectRecordDetail.setType(1);
tSubjectRecordDetail.setStatus(1);
tSubjectRecordDetail.setObjectId(studyListen.getId());
+ subjectRecordDetailService.save(tSubjectRecordDetail);
tSubjectRecordDetails.add(tSubjectRecordDetail);
}
- subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
}else{
tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
}
@@ -851,6 +863,7 @@
.divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
}
studyListenResultVO.setSubjectList(subjectList);
+ System.err.println("归纳排除题目"+subjectList);
return R.ok(studyListenResultVO);
}
@@ -858,6 +871,12 @@
public R<StudyAnswerResultVO> questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList, Integer userid) {
if (answerList.isEmpty()) {
throw new GlobalException("当前学习周目题目数量不足!");
+ }
+ if (answerList.size()<4){
+ throw new GlobalException("当前学习周目题目数量不足!");
+ }
+ if (answerList.size()%4!=0){
+ throw new GlobalException("当前学习周目题目数量不足");
}
// 题组信息
LearnStudyVO learnStudy = new LearnStudyVO();
@@ -928,13 +947,6 @@
voAdd(voList, one);
voAdd(voList, two);
subjectList.add(voList);
- }
- for (int i = 0; i < answerList.size(); i += 4) {
- // 一组题目为四道题,
- TStudyAnswer one = answerList.get(i);
- TStudyAnswer two = answerList.get(i + 1);
- TStudyAnswer three = answerList.get(i + 2);
- TStudyAnswer four = answerList.get(i + 3);
TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
tSubjectRecordDetail.setUserId(userid);
tSubjectRecordDetail.setWeek(week);
@@ -943,15 +955,15 @@
tSubjectRecordDetail.setStatus(1);
tSubjectRecordDetail.setOne(one.getId());
tSubjectRecordDetail.setTwo(two.getId());
- tSubjectRecordDetail.setThree(three.getId());
- tSubjectRecordDetail.setFour(four.getId());
tSubjectRecordDetails.add(tSubjectRecordDetail);
}
+
subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
studyListenResultVO.setList(tSubjectRecordDetails);
studyListenResultVO.setAccuracy(new BigDecimal("0.00"));
} else {
+ List<TSubjectRecordDetail> tSubjectRecordDetails1 = new ArrayList<TSubjectRecordDetail>();
List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
for (int i = 0; i < answerList.size(); i += Constants.TWO) {
List<QuestionsAnswersSubjectVO> voList = new ArrayList<>();
@@ -961,31 +973,14 @@
voAdd(voList, one);
voAdd(voList, two);
subjectList.add(voList);
- }
-
-
- List<TSubjectRecordDetail> tSubjectRecordDetails1 = new ArrayList<TSubjectRecordDetail>();
-
- for (int i = 0; i < answerList.size(); i += 4) {
- TStudyAnswer one = answerList.get(i);
- TStudyAnswer two = answerList.get(i + 1);
- TStudyAnswer three = answerList.get(i + 2);
- TStudyAnswer four = answerList.get(i + 3);
TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
tSubjectRecordDetail.setUserId(userid);
tSubjectRecordDetail.setWeek(week);
tSubjectRecordDetail.setDay(day);
tSubjectRecordDetail.setType(4);
- int size = list.size();
- if (size-1>=i/4){
- tSubjectRecordDetail.setStatus(list.get(i/4).getStatus());
- }else{
- tSubjectRecordDetail.setStatus(1);
- }
+ tSubjectRecordDetail.setStatus(1);
tSubjectRecordDetail.setOne(one.getId());
tSubjectRecordDetail.setTwo(two.getId());
- tSubjectRecordDetail.setThree(three.getId());
- tSubjectRecordDetail.setFour(four.getId());
tSubjectRecordDetails.add(tSubjectRecordDetail);
tSubjectRecordDetails1.add(tSubjectRecordDetail);
}
@@ -1155,8 +1150,8 @@
tSubjectRecordDetail.setType(5);
tSubjectRecordDetail.setStatus(1);
tSubjectRecordDetail.setObjectId(data.getId());
- tSubjectRecordDetails.add(tSubjectRecordDetail);
subjectRecordDetailService.save(tSubjectRecordDetail);
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
}else{
tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
}
@@ -1166,13 +1161,14 @@
studyListenResultVO.setAccuracy(new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
.divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
}
+ System.err.println("音图相配返回VO"+studyListenResultVO.getList());
return R.ok(studyListenResultVO);
}
@Override
public int computeSchedule(TUserStudy result, Integer week) {
+ System.err.println("用户学习进度"+result);
List<TStudy> studyList = this.lambdaQuery().eq(TStudy::getDisabled, 0)
- .eq(TStudy::getType, 1)
.orderByAsc(TStudy::getWeek).list();
// 基础学习进度
Integer day = result.getDay();
@@ -1202,6 +1198,8 @@
thisQuarter = key;
}
}
+ System.err.println("当前进入周目所属季度"+studyQuarter);
+ System.err.println("进入周目所属季度"+thisQuarter);
// 默认进度为 0
int defaultSchedule;
// 季度判断
@@ -1219,6 +1217,7 @@
} else if (studyIndex < weekIndex) {
defaultSchedule = 0;
} else {
+ System.err.println("学习到Day"+day);
// 根据day初始化学习进度
if (Constants.ONE.equals(day)) {
defaultSchedule = 0;
@@ -1231,7 +1230,7 @@
} else if (Constants.FIVE.equals(day)) {
defaultSchedule = 80;
} else {
- defaultSchedule = 0;
+ defaultSchedule = 80;
}
// 根据五种学习计算进度
Integer listen = result.getListen();
@@ -1256,46 +1255,7 @@
}
}
}
- // week以超过当前week,进度为 100%
- /*if (itemBool) {
- defaultSchedule = 100;
- } else {
- // 根据day初始化学习进度
- if (Constants.ONE.equals(day)) {
- defaultSchedule = 0;
- } else if (Constants.TWO.equals(day)) {
- defaultSchedule = 20;
- } else if (Constants.THREE.equals(day)) {
- defaultSchedule = 40;
- } else if (Constants.FOUR.equals(day)) {
- defaultSchedule = 60;
- } else if (Constants.FIVE.equals(day)) {
- defaultSchedule = 80;
- } else {
- defaultSchedule = 0;
- }
- // 根据五种学习计算进度
- Integer listen = result.getListen();
- if (!Constants.BURDEN_ONE.equals(listen)) {
- defaultSchedule += (int) (((double) listen / 100) * 4);
- }
- Integer look = result.getLook();
- if (!Constants.BURDEN_ONE.equals(look)) {
- defaultSchedule += (int) (((double) look / 100) * 4);
- }
- Integer induction = result.getInduction();
- if (!Constants.BURDEN_ONE.equals(induction)) {
- defaultSchedule += (int) (((double) induction / 100) * 4);
- }
- Integer answer = result.getAnswer();
- if (!Constants.BURDEN_ONE.equals(answer)) {
- defaultSchedule += (int) (((double) answer / 100) * 4);
- }
- Integer pair = result.getPair();
- if (!Constants.BURDEN_ONE.equals(pair)) {
- defaultSchedule += (int) (((double) pair / 100) * 4);
- }
- }*/
+
return defaultSchedule;
}
--
Gitblit v1.7.1