From fafae77d59bc333a11c6b43e8f8606e190341e4a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 10 六月 2025 16:53:13 +0800
Subject: [PATCH] 部分代码
---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java | 507 +++++++++++++++++++++---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java | 10
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/RestartDTO.java | 35 +
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/DatasourceModel.java | 8
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java | 13
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TSubjectRecordDetailServiceImpl.java | 26 +
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java | 12
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DatasourceModel.java | 20
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ShardingConfig.java | 17
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java | 13
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java | 13
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TSubjectRecordDetailMapper.java | 17
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 261 ++++++++----
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITSubjectRecordDetailService.java | 20 +
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ToLongDeserializer.java | 19
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecordDetail.java | 90 ++++
ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TSubjectRecordDetailMapper.xml | 7
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java | 13
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/AnswerQuestionDTO.java | 50 ++
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java | 4
20 files changed, 969 insertions(+), 186 deletions(-)
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/DatasourceModel.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/DatasourceModel.java
index 4c2b4bd..42d9f06 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/DatasourceModel.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/DatasourceModel.java
@@ -15,15 +15,17 @@
public class DatasourceModel {
// private String url = "jdbc:mysql://127.0.0.1:10633/dolphin_goods?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
// private String username = "root";
-// private String password = "HaiTunEnglish2024!";
+// private String password = "HaiTun@2024!";
// private String driverClassName = "com.mysql.cj.jdbc.Driver";
// private Integer maxActive =20;
// private Long maxWait = 60000L;
// private Integer minIdle =5;
// private Integer initialSize =2;
- private String url = "jdbc:mysql://127.0.0.1:10633/dolphin_goods?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
+
+
+ private String url = "jdbc:mysql://127.0.0.1:3306/dolphin_goods?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
private String username = "root";
- private String password = "Haitunyingyu@2025!";
+ private String password = "root";
private String driverClassName = "com.mysql.cj.jdbc.Driver";
private Integer maxActive =20;
private Long maxWait = 60000L;
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java
index 46133a1..85fb590 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java
@@ -23,9 +23,9 @@
public RedissonClient redissonClient() {
Config config = new Config();
//线上redis
- config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("Haitunyingyu@2025!");
+// config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("Xiwang2024!");
// // 本地redis
-// config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("123456");
+ config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("123456");
return Redisson.create(config);
}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DatasourceModel.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DatasourceModel.java
index 88d793b..f2bfae5 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DatasourceModel.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DatasourceModel.java
@@ -13,20 +13,20 @@
@Data
@Component
public class DatasourceModel {
-// private String url = "jdbc:mysql://127.0.0.1:10633/dolphin_study?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
-// private String username = "root";
-// private String password = "Haitunyingyu@2025!";
-// private String driverClassName = "com.mysql.cj.jdbc.Driver";
-// private Integer maxActive =20;
-// private Long maxWait = 60000L;
-// private Integer minIdle =5;
-// private Integer initialSize =2;
- private String url = "jdbc:mysql://127.0.0.1:3306/dolphin_study?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
+ private String url = "jdbc:mysql://127.0.0.1:10633/dolphin_study?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
private String username = "root";
- private String password = "root";
+ private String password = "HaiTun@2024!";
private String driverClassName = "com.mysql.cj.jdbc.Driver";
private Integer maxActive =20;
private Long maxWait = 60000L;
private Integer minIdle =5;
private Integer initialSize =2;
+// private String url = "jdbc:mysql://127.0.0.1:3306/dolphin_study?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai";
+// private String username = "root";
+// private String password = "root";
+// private String driverClassName = "com.mysql.cj.jdbc.Driver";
+// private Integer maxActive =20;
+// private Long maxWait = 60000L;
+// private Integer minIdle =5;
+// private Integer initialSize =2;
}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ShardingConfig.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ShardingConfig.java
index d763ffe..6e53c56 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ShardingConfig.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ShardingConfig.java
@@ -98,12 +98,20 @@
props6.setProperty("algorithm-expression", "t_subject_record$->{userId % 5 + 1}");
result1.getShardingAlgorithms().put("t_subject_record-inline", new AlgorithmConfiguration("INLINE", props6));
result1.getKeyGenerators().put("t_subject_record-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties()));
+
//分片规则配置
result1.getTables().add(getCoursePackageOrderTableRuleConfiguration1());
Properties props7 = new Properties();
props7.setProperty("algorithm-expression", "t_user_present_record$->{user_id % 5 + 1}");
result1.getShardingAlgorithms().put("t_user_present_record-inline", new AlgorithmConfiguration("INLINE", props7));
result1.getKeyGenerators().put("t_user_present_record-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties()));
+
+ //分片规则配置
+ result1.getTables().add(getCoursePackageOrderTableRuleConfiguration2());
+ Properties props8 = new Properties();
+ props8.setProperty("algorithm-expression", "t_subject_record_detail$->{userId % 5 + 1}");
+ result1.getShardingAlgorithms().put("t_subject_record_detail-inline", new AlgorithmConfiguration("INLINE", props8));
+ result1.getKeyGenerators().put("t_subject_record_detail-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties()));
linkedList.add(result1);
return linkedList;
@@ -162,11 +170,18 @@
result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("userId", "t_subject_record-inline"));
result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("id", "t_subject_record-snowflake"));
return result;
- }private ShardingTableRuleConfiguration getCoursePackageOrderTableRuleConfiguration1() {
+ }
+ private ShardingTableRuleConfiguration getCoursePackageOrderTableRuleConfiguration1() {
ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_user_present_record", "m_$->{0}.t_user_present_record$->{1..5}");//30
result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("user_id", "t_user_present_record-inline"));
result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("id", "t_user_present_record-snowflake"));
return result;
}
+ private ShardingTableRuleConfiguration getCoursePackageOrderTableRuleConfiguration2() {
+ ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_subject_record_detail", "m_$->{0}.t_subject_record_detail$->{1..5}");//30
+ result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("userId", "t_subject_record_detail-inline"));
+ result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("id", "t_subject_record_detail-snowflake"));
+ return result;
+ }
}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ToLongDeserializer.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ToLongDeserializer.java
new file mode 100644
index 0000000..3e7768f
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/ToLongDeserializer.java
@@ -0,0 +1,19 @@
+package com.ruoyi.study.config;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import java.io.IOException;
+
+public class ToLongDeserializer extends JsonDeserializer<Long> {
+ @Override
+ public Long deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
+ String value = p.getText();
+ try {
+ return value != null ? Long.parseLong(value) : null;
+ } catch (NumberFormatException e) {
+ throw new IOException("Invalid long value: " + value, e);
+ }
+ }
+}
+
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 26c0859..be1178f 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
@@ -24,9 +24,17 @@
import kotlin.random.Random;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import javax.sound.sampled.*;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -83,65 +91,19 @@
private ManagementClient managementClient;
@Resource
private ITUserPresentRecordService userPresentRecordService;
+ @Resource
+ private ITSubjectRecordDetailService subjectRecordDetailService;
@PostMapping("/testAddData")
@ApiOperation(value = "测试分片", tags = {"测试分片"})
public R<Object> testAddData() {
- TIntegralRecord tIntegralRecord = new TIntegralRecord();
- tIntegralRecord.setIntegral("1");
- tIntegralRecord.setMethod("1");
- tIntegralRecord.setUserId(23);
- tIntegralRecord.setGameId(1);
- tIntegralRecord.setGameDifficulty(1);
- tIntegralRecord.setStoryId(1);
- tIntegralRecord.setStoryType(1);
- integralRecordService.save(tIntegralRecord);
- TGameRecord tGameRecord = new TGameRecord();
- tGameRecord.setUserId(33);
- tGameRecord.setAccuracy(0);
- tGameRecord.setGameName("");
- tGameRecord.setUseTime(0);
- tGameRecord.setUseTime1("");
- tGameRecord.setGameId(0);
- tGameRecord.setGameDifficulty(0);
- tGameRecord.setTime("");
- tGameRecord.setDisabled(false);
- tGameRecord.setCreateBy("");
- tGameRecord.setCreateTime(new Date());
- tGameRecord.setUpdateBy("");
- tGameRecord.setUpdateTime(new Date());
- gameRecordService.save(tGameRecord);
- TSubjectRecord tSubjectRecord = new TSubjectRecord();
- tSubjectRecord.setUserId(22);
- tSubjectRecord.setWeek(0);
- tSubjectRecord.setDay(0);
- tSubjectRecord.setBeforeSubject("");
- tSubjectRecord.setType(0);
- tSubjectRecord.setCompleteSubject("");
- tSubjectRecord.setAnswerNumber(0);
- tSubjectRecord.setCorrectNumber(0);
- tSubjectRecord.setDisabled(false);
- tSubjectRecord.setCreateBy("");
- tSubjectRecord.setCreateTime(new Date());
- tSubjectRecord.setUpdateBy("");
- tSubjectRecord.setUpdateTime(new Date());
- subjectRecordService.save(tSubjectRecord);
- TUserPresentRecord tUserPresentRecord = new TUserPresentRecord();
- tUserPresentRecord.setUserId(44);
- tUserPresentRecord.setPresentTime(new Date());
- tUserPresentRecord.setIsDelete(0);
- userPresentRecordService.save(tUserPresentRecord);
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(12);
+ subjectRecordDetailService.save(tSubjectRecordDetail);
- TUserStudyRecord tUserStudyRecord = new TUserStudyRecord();
- tUserStudyRecord.setUserId(17);
- tUserStudyRecord.setQuarter(0);
- tUserStudyRecord.setWeek(0);
- tUserStudyRecord.setDay(0);
- tUserStudyRecord.setObtainedIntegral(0);
- tUserStudyRecord.setType(0);
- tUserStudyRecord.setStudyType(0);
- tUserStudyRecord.setStoryId(0);
- studyRecordService.save(tUserStudyRecord);
+
+
+
return R.ok();
}
@@ -537,6 +499,10 @@
return R.ok();
}
+ public static void main(String[] args) throws Exception {
+ double temp =1.687;
+ System.err.println((int)temp);
+ }
/**
* 添加周目
*
@@ -549,10 +515,7 @@
.eq("week", dto.getWeek())
.eq("type", dto.getType()));
if (one != null) {
- one.setType(dto.getType());
- one.setWeek(dto.getWeek());
one.setTitle(dto.getTitle());
- one.setQuarter(dto.getQuarter());
studyService.saveOrUpdate(one);
} else {
TStudy tStudy = new TStudy();
@@ -570,8 +533,69 @@
.orderByAsc(TStudy::getWeek)
.list();
int i = 1;
+ List<TGame> games = gameService.list(new QueryWrapper<TGame>());
+ List<TStoryListen> storyListens = storyListenService.list(new QueryWrapper<TStoryListen>());
+ List<TStudyListen> studyListens = studyListenService.list();
+ List<TStudyLook> studyLooks = studyLookService.list();
+ List<TStudyInduction> studyInductions = studyInductionService.list();
+ List<TStudyAnswer> studyAnswers = studyAnswerService.list();
+ List<TStudyPair> studyPairs = studyPairService.list();
for (TStudy tStudy : list1) {
+ System.err.println("进入修改");
tStudy.setWeek(i);
+ // 将对应的题目配置修改week
+ List<TGame> games1 = games.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TGame tGame : games1) {
+ tGame.setWeek(i);
+ tGame.setStudyId(tStudy.getId());
+ gameService.updateById(tGame);
+
+
+ }
+ // 听故事
+ List<TStoryListen> storyListens1 = storyListens.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TStoryListen tStoryListen : storyListens1) {
+ tStoryListen.setWeek(i);
+ tStoryListen.setStudyId(tStudy.getId());
+ storyListenService.updateById(tStoryListen);
+
+ }
+ // 听音选图
+ List<TStudyListen> studyListens1 = studyListens.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TStudyListen tStudyListen : studyListens1) {
+ tStudyListen.setWeek(i);
+ tStudyListen.setStudyId(tStudy.getId());
+ studyListenService.updateById(tStudyListen);
+ }
+ // 看图选音
+ List<TStudyLook>studyLooks1 = studyLooks.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TStudyLook tStudyLook : studyLooks1) {
+ tStudyLook.setWeek(i);
+ tStudyLook.setStudyId(tStudy.getId());
+ studyLookService.updateById(tStudyLook);
+ }
+ // 归纳判断
+ List<TStudyInduction> studyInductions1 = studyInductions.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TStudyInduction tStudyInduction : studyInductions1) {
+ tStudyInduction.setWeek(i);
+ tStudyInduction.setStudyId(tStudy.getId());
+ System.err.println("归纳判断"+tStudy.getId());
+ studyInductionService.updateById(tStudyInduction);
+
+ }
+ List<TStudyAnswer> studyAnswers1 = studyAnswers.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TStudyAnswer tStudyAnswer : studyAnswers1) {
+ tStudyAnswer.setStudyId(tStudy.getId());
+ tStudyAnswer.setWeek(i);
+ studyAnswerService.updateById(tStudyAnswer);
+
+ }
+ List<TStudyPair> studyPairs1 = studyPairs.stream().filter(e->e.getWeek().equals(tStudy.getWeek())).collect(Collectors.toList());
+ for (TStudyPair tStudyPair : studyPairs1) {
+ tStudyPair.setWeek(i);
+ tStudyPair.setStudyId(tStudy.getId());
+ studyPairService.updateById(tStudyPair);
+ }
i++;
}
studyService.updateBatchById(list1);
@@ -670,13 +694,17 @@
List<TStudyListen> list = studyListenService.list(new QueryWrapper<TStudyListen>()
.eq("week", week)
.eq("day", day));
+ List<TSubject> list9 = subjectService.list();
+
for (TStudyListen tStudyListen : list) {
StringBuilder temp = new StringBuilder();
StudyListenVO studyListenVO = new StudyListenVO();
if (StringUtils.hasLength(tStudyListen.getSubject())) {
for (String s : tStudyListen.getSubject().split(",")) {
- TSubject byId = subjectService.getById(s);
- temp.append(byId.getName()).append(",");
+ TSubject byId = list9.stream().filter(e -> e.getId().equals(Integer.valueOf(s))).findFirst().orElse(null);
+ if (byId!=null){
+ temp.append(byId.getName()).append(",");
+ }
}
String string = temp.toString();
studyListenVO.setName(string.substring(0, string.length() - 1));
@@ -699,8 +727,10 @@
StudyLookVO studyLookVO1 = new StudyLookVO();
if (StringUtils.hasLength(tStudyLook.getSubject())) {
for (String s : tStudyLook.getSubject().split(",")) {
- TSubject byId = subjectService.getById(s);
- names.append(byId.getName()).append(",");
+ TSubject byId = list9.stream().filter(e -> e.getId().equals(Integer.valueOf(s))).findFirst().orElse(null);
+ if (byId!=null){
+ names.append(byId.getName()).append(",");
+ }
String[] split = tStudyLook.getSort().split(",");
String s1 = split[index];
sorts.append(s1).append(",");
@@ -728,8 +758,10 @@
if (StringUtils.hasLength(tStudyInduction.getSubject())) {
for (String s : tStudyInduction.getSubject().split(",")) {
String replace = s.replace("-", "");
- TSubject byId = subjectService.getById(replace);
- names.append(byId.getName()).append(",");
+ TSubject byId = list9.stream().filter(e -> e.getId().equals(Integer.valueOf(replace))).findFirst().orElse(null);
+ if (byId!=null){
+ names.append(byId.getName()).append(",");
+ }
}
String string = names.toString();
studyInductionVO.setName(string.substring(0, string.length() - 1));
@@ -750,21 +782,31 @@
if (tStudyAnswer.getIsAnswer() != null) {
if (tStudyAnswer.getIsAnswer() == 1) {
if (tStudyAnswer.getSubject() != null) {
- TSubject byId = subjectService.getById(tStudyAnswer.getSubject());
- names.append(byId.getName()).append(",");
+
+ TSubject byId = list9.stream().filter(e -> e.getId().equals(tStudyAnswer.getSubject())).findFirst().orElse(null);
+ if (byId!=null){
+ names.append(byId.getName()).append(",");
+ }
}
if (tStudyAnswer.getAnswerSubject() != null) {
- TSubject byId1 = subjectService.getById(tStudyAnswer.getAnswerSubject());
- names.append(byId1.getName()).append(",");
+
+ TSubject byId1 = list9.stream().filter(e -> e.getId().equals(tStudyAnswer.getAnswerSubject())).findFirst().orElse(null);
+ if (byId1!=null){
+ names.append(byId1.getName()).append(",");
+ }
}
} else {
if (tStudyAnswer.getSubject() != null) {
- TSubject byId = subjectService.getById(tStudyAnswer.getSubject());
- names.append(byId.getName()).append(",");
+ TSubject byId = list9.stream().filter(e -> e.getId().equals(tStudyAnswer.getSubject())).findFirst().orElse(null);
+ if (byId!=null){
+ names.append(byId.getName()).append(",");
+ }
}
if (tStudyAnswer.getAnswerSubject() != null) {
- TSubject byId1 = subjectService.getById(tStudyAnswer.getAnswerSubject());
- names.append(byId1.getName()).append(",");
+ TSubject byId1 = list9.stream().filter(e -> e.getId().equals(tStudyAnswer.getAnswerSubject())).findFirst().orElse(null);
+ if (byId1!=null){
+ names.append(byId1.getName()).append(",");
+ }
}
}
}
@@ -789,8 +831,11 @@
StudyPairVO studyPairVO = new StudyPairVO();
if (StringUtils.hasLength(tStudyPair.getSubject())) {
for (String s : tStudyPair.getSubject().split(",")) {
- TSubject byId = subjectService.getById(s);
- names.append(byId.getName()).append(",");
+
+ TSubject byId = list9.stream().filter(e -> e.getId().equals(Integer.valueOf(s))).findFirst().orElse(null);
+ if (byId!=null){
+ names.append(byId.getName()).append(",");
+ }
}
String string = names.toString();
studyPairVO.setName(string.substring(0, string.length() - 1));
@@ -816,6 +861,9 @@
}
List<TStoryListen> list6 = storyListenService.list(new QueryWrapper<TStoryListen>()
.eq("week", week));
+ List<TStory> list10 = storyService.list();
+
+
for (TStoryListen tStory : list6) {
StoryVO storyVO = new StoryVO();
storyVO.setStory(tStory.getStory());
@@ -826,14 +874,19 @@
StringBuilder sort1 = new StringBuilder();
if (StringUtils.hasLength(tStory.getStory())) {
for (String s : tStory.getStory().split(",")) {
- TStory byId = storyService.getById(s);
- names.append(byId.getName()).append(",");
+ TStory byId = list10.stream().filter(e -> e.getId().equals(Integer.valueOf(s))).findFirst().orElse(null);
+ if (byId!=null){
+ names.append(byId.getName()).append(",");
+ }
}
}
if (StringUtils.hasLength(tStory.getLookStory())) {
for (String s : tStory.getLookStory().split(",")) {
- TStory byId = storyService.getById(s);
- names1.append(byId.getName()).append(",");
+
+ TStory byId = list10.stream().filter(e -> e.getId().equals(Integer.valueOf(s))).findFirst().orElse(null);
+ if (byId!=null){
+ names1.append(byId.getName()).append(",");
+ }
}
}
if (StringUtils.hasLength(tStory.getSort())) {
@@ -1261,6 +1314,7 @@
@RequestParam Integer day) {
// 判断当前登录用户是否为 会员
Boolean isVip = userService.isVip();
+
// 非会员只能查看非会员题目,会员可以查看所有题目
List<TStudyListen> studyListens = studyListenService.listenSelectPicture(quarter, week, day);
for (TStudyListen studyListen : studyListens) {
@@ -1272,7 +1326,7 @@
}
}
}
- return R.ok(studyService.listenSelectPicture(week, day, studyListens));
+ return R.ok(studyService.listenSelectPicture(week, day, studyListens,tokenService.getLoginUserStudy().getUserid()));
}
/**
@@ -1303,7 +1357,7 @@
}
}
}
- return R.ok(studyService.pictureSelectVoice(week, day, lookList));
+ return R.ok(studyService.pictureSelectVoice(week, day, lookList,tokenService.getLoginUserStudy().getUserid()));
}
/**
@@ -1334,7 +1388,7 @@
}
}
}
- return R.ok(studyService.induceExclude(week, day, inductionList));
+ return R.ok(studyService.induceExclude(week, day, inductionList,tokenService.getLoginUserStudy().getUserid()));
}
/**
@@ -1365,7 +1419,7 @@
}
}
}
- return R.ok(studyService.questionsAndAnswers(week, day, answerList));
+ return R.ok(studyService.questionsAndAnswers(week, day, answerList,tokenService.getLoginUserStudy().getUserid()));
}
/**
@@ -1396,10 +1450,53 @@
}
}
}
- return R.ok(studyService.pictureMateVoice(week, day, pairList));
+ return R.ok(studyService.pictureMateVoice(week, day, pairList,tokenService.getLoginUserStudy().getUserid()));
}
/**
+ * 2.0新增-记录答题状态
+ *
+ */
+ @PostMapping("/answerQuestion")
+ @ApiOperation(value = "2.0新增-记录答题状态", tags = {"学习端-听-自主学习"})
+ public R answerQuestion(@RequestBody @Validated AnswerQuestionDTO answerQuestionDTO) {
+ LoginUserParent userStudy = tokenService.getLoginUserStudy();
+ if (null == userStudy) {
+ return R.tokenError("登录失效!");
+ }
+ TSubjectRecordDetail byId = subjectRecordDetailService.getById(answerQuestionDTO.getId());
+ byId.setUserId(null);
+ byId.setStatus(answerQuestionDTO.getStatus());
+ subjectRecordDetailService.updateById(byId);
+ return R.ok();
+ }
+ /**
+ * 2.0新增-重新开始
+ *
+ */
+ @PostMapping("/restart")
+ @ApiOperation(value = "2.0新增-重新开始", tags = {"学习端-听-自主学习"})
+ public R restart(@RequestBody RestartDTO restartDTO) {
+ LoginUserParent userStudy = tokenService.getLoginUserStudy();
+ if (null == userStudy) {
+ return R.tokenError("登录失效!");
+ }
+ List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery()
+ .eq(TSubjectRecordDetail::getUserId, userStudy.getUserid())
+ .eq(TSubjectRecordDetail::getWeek, restartDTO.getWeek())
+ .eq(TSubjectRecordDetail::getDay, restartDTO.getDay())
+ .eq(TSubjectRecordDetail::getType, restartDTO.getType())
+ .list();
+ for (TSubjectRecordDetail tSubjectRecordDetail : list) {
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setUserId(null);
+ }
+ subjectRecordDetailService.updateBatchById(list);
+ return R.ok();
+ }
+
+
+ /**
* 学习完成,生成学习记录,积分明细记录
*
* @param completeStudy 完成学习信息
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecordDetail.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecordDetail.java
new file mode 100644
index 0000000..cc3bf1b
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TSubjectRecordDetail.java
@@ -0,0 +1,90 @@
+package com.ruoyi.study.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.ruoyi.common.core.web.domain.BaseModel;
+import com.ruoyi.study.config.ToLongDeserializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ * 用户学习记录
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Data
+@TableName("t_subject_record_detail")
+public class TSubjectRecordDetail extends BaseModel {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 主键id
+ */
+ @TableId(value = "id", type = IdType.NONE)
+ @JsonSerialize(using = ToStringSerializer.class)
+ @JsonDeserialize(using = ToLongDeserializer.class)
+ private Long id;
+ /**
+ * 用户id
+ */
+ @ApiModelProperty(value = "用户id")
+ private Integer userId;
+ /**
+ * /**
+ * 所属周目
+ */
+ @ApiModelProperty(value = "所属周目")
+ private Integer week;
+ /**
+ * 学习进度dayXX
+ */
+ @ApiModelProperty(value = "学习进度dayXX ")
+ private Integer day;
+ /**
+ * 根据类型 对应题组id
+ */
+ @ApiModelProperty(value = "对应题组id ")
+ private Integer objectId;
+ /**
+ * 根据类型 对应题组id
+ */
+ @ApiModelProperty(value = "one ")
+ private Integer one;
+ /**
+ * 根据类型 对应题组id
+ */
+ @ApiModelProperty(value = "two ")
+ private Integer two;
+ /**
+ * 根据类型 对应题组id
+ */
+ @ApiModelProperty(value = "three ")
+ private Integer three;
+ /**
+ * 根据类型 对应题组id
+ */
+ @ApiModelProperty(value = "four ")
+ private Integer four;
+ /**
+
+ /**
+ * 类型1听音选图2看图选音3归纳排除4有问有答5音图相配
+ */
+ @ApiModelProperty(value = "类型1:听音选图,2:看图选音,3:归纳排除,4:有问有答,5:音图相配")
+ private Integer type;
+ /**
+ * 状态1灰色未答题 2绿色正确 3红色错误
+ */
+ @ApiModelProperty(value = "状态1灰色未答题 2绿色正确 3红色错误")
+ private Integer status;
+
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/AnswerQuestionDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/AnswerQuestionDTO.java
new file mode 100644
index 0000000..ab8457d
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/AnswerQuestionDTO.java
@@ -0,0 +1,50 @@
+package com.ruoyi.study.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-05-20 14:04
+ */
+@Data
+public class AnswerQuestionDTO {
+
+// /**
+// * 题目id数组
+// */
+// @ApiModelProperty("题目类型(1:听音选图;2:看图选音;3:归纳排除;4:有问有答;5:音图相配)")
+// private Integer type;
+
+ /**
+ * 答题记录id
+ */
+ @ApiModelProperty("答题记录id")
+ @NotNull(message = "答题记录id不能为空")
+
+ private Long id;
+
+ /**
+ * 状态1灰色未答题 2绿色正确 3红色错误
+ */
+ @ApiModelProperty("状态1灰色未答题 2绿色正确 3红色错误")
+ @NotNull(message = "状态不能为空")
+ private Integer status;
+
+// /**
+// * 周目
+// */
+// @ApiModelProperty("周目")
+// private Integer week;
+//
+// /**
+// * 所属day
+// */
+// @ApiModelProperty("所属day")
+// private Integer day;
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/RestartDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/RestartDTO.java
new file mode 100644
index 0000000..8126aed
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/RestartDTO.java
@@ -0,0 +1,35 @@
+package com.ruoyi.study.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-05-20 14:04
+ */
+@Data
+public class RestartDTO {
+
+ /**
+ * 题目id数组
+ */
+ @ApiModelProperty("题目类型(1:听音选图;2:看图选音;3:归纳排除;4:有问有答;5:音图相配)")
+ private Integer type;
+
+ /**
+ * 周目
+ */
+ @ApiModelProperty("周目")
+ private Integer week;
+
+ /**
+ * 所属day
+ */
+ @ApiModelProperty("所属day")
+ private Integer day;
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TSubjectRecordDetailMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TSubjectRecordDetailMapper.java
new file mode 100644
index 0000000..be5ff99
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TSubjectRecordDetailMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.study.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.study.domain.TSubjectRecord;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
+
+/**
+ * <p>
+ * 自主游戏 Mapper 接口
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+public interface TSubjectRecordDetailMapper extends BaseMapper<TSubjectRecordDetail> {
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java
index f38fa45..5f6fa56 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITStudyService.java
@@ -44,7 +44,7 @@
* @param studyListens 数据集合
* @return 单个题组下所包含的所有图片及语音
*/
- StudyListenResultVO listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens);
+ StudyListenResultVO listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens,Integer userId);
/**
* 自主游戏1-超级听力
@@ -64,7 +64,7 @@
* @param lookList 数据集合
* @return 单个题组下所包含的所有图片及语音
*/
- StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList);
+ StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList,Integer userId);
/**
* 自主学习3-归纳排除
@@ -74,7 +74,7 @@
* @param inductionList 归纳排除
* @return 题目信息
*/
- StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList);
+ StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList,Integer userId);
/**
* 自主学习4-有问有答
@@ -84,7 +84,7 @@
* @param answerList 有问有答
* @return 题目信息
*/
- StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList);
+ StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList,Integer userId);
/**
* 自主学习5-音图相配
@@ -94,7 +94,7 @@
* @param pair 音图相配
* @return 题目信息
*/
- StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair);
+ StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair,Integer userId);
/**
* 计算用户当前week的学习进度
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITSubjectRecordDetailService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITSubjectRecordDetailService.java
new file mode 100644
index 0000000..748832c
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITSubjectRecordDetailService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.study.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.study.domain.TSubjectRecord;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
+import com.ruoyi.study.vo.ExitLearnVO;
+
+/**
+ * <p>
+ * 自主游戏 服务类
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+public interface ITSubjectRecordDetailService extends IService<TSubjectRecordDetail> {
+
+
+
+}
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 49ce7df..b418d5c 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
@@ -11,6 +11,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -45,6 +47,8 @@
private ITGameService gameService;
@Resource
private ITStoryListenService storyListenService;
+ @Resource
+ private ITSubjectRecordDetailService subjectRecordDetailService;
private final static Map<Integer, Integer> GAME_DIFFICULTY_MAP = new HashMap<>();
@@ -418,7 +422,7 @@
}
@Override
- public StudyListenResultVO listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens) {
+ public StudyListenResultVO listenSelectPicture(Integer week, Integer day, List<TStudyListen> studyListens, Integer userid) {
if (studyListens.isEmpty()) {
throw new GlobalException("当前学习周目题目数量不足!");
}
@@ -436,22 +440,82 @@
learnStudy.setIntegral(total);
// 语音及图片
List<List<TSubject>> subjectList = new ArrayList<>();
- for (TStudyListen studyListen : studyListens) {
- List<String> subjectIds = Arrays.stream(studyListen.getSubject().split(",")).collect(Collectors.toList());
- List<TSubject> list = new ArrayList<>();
- // 图片及语音集合
- for (String id : subjectIds) {
- TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
- .eq(TSubject::getDisabled, 0).one();
- list.add(data);
+
+ StudyListenResultVO studyListenResultVO = new StudyListenResultVO(learnStudy, subjectList);
+
+ List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid)
+ .eq(TSubjectRecordDetail::getWeek, week)
+ .eq(TSubjectRecordDetail::getDay, day)
+ .eq(TSubjectRecordDetail::getType, 1).list();
+ if (list.isEmpty()) {
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyListen studyListen : studyListens) {
+ List<String> subjectIds = Arrays.stream(studyListen.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subs = new ArrayList<>();
+ // 图片及语音集合
+ for (String id : subjectIds) {
+ TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
+ .eq(TSubject::getDisabled, 0).one();
+ subs.add(data);
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(1);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(studyListen.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ }
+ subjectList.add(subs);
}
- subjectList.add(list);
+ subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setAccuracy(new BigDecimal("0.00"));
+
+ } else {
+
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyListen studyListen : studyListens) {
+ List<String> subjectIds = Arrays.stream(studyListen.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subs = new ArrayList<>();
+ // 图片及语音集合
+ for (String id : subjectIds) {
+ TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
+ .eq(TSubject::getDisabled, 0).one();
+ subs.add(data);
+ }
+ subjectList.add(subs);
+ 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++) {
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(1);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(studyListen.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ }
+ subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
+ }else{
+ tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
+ }
+ }
+
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ // 计算正确率
+ BigDecimal accuracy = new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
+ .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP);
+ studyListenResultVO.setAccuracy(accuracy);
}
- return new StudyListenResultVO(learnStudy, subjectList);
+ studyListenResultVO.setSubjectList(subjectList);
+ return studyListenResultVO;
}
@Override
- public StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList) {
+ public StudyLookResultVO pictureSelectVoice(Integer week, Integer day, List<TStudyLook> lookList, Integer userid) {
if (lookList.isEmpty()) {
throw new GlobalException("当前学习周目题目数量不足!");
}
@@ -469,26 +533,91 @@
learnStudy.setIntegral(total);
// 语音及图片
List<List<TSubject>> subjectList = new ArrayList<>();
- for (TStudyLook studyLook : lookList) {
- List<String> sortList = Arrays.stream(studyLook.getSort().split(",")).collect(Collectors.toList());
- List<String> subjectIds = Arrays.stream(studyLook.getSubject().split(",")).collect(Collectors.toList());
- List<TSubject> list = new ArrayList<>();
- // 图片及语音集合
- for (int i = 0; i < subjectIds.size(); i++) {
- TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, subjectIds.get(i))
- .eq(TSubject::getDisabled, 0).one();
- data.setSort(Integer.parseInt(sortList.get(i)));
- list.add(data);
+
+ StudyLookResultVO studyListenResultVO = new StudyLookResultVO(learnStudy, subjectList);
+
+ List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid)
+ .eq(TSubjectRecordDetail::getWeek, week)
+ .eq(TSubjectRecordDetail::getDay, day)
+ .eq(TSubjectRecordDetail::getType, 2).list();
+ if (list.isEmpty()) {
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyLook studyLook : lookList) {
+ List<String> sortList = Arrays.stream(studyLook.getSort().split(",")).collect(Collectors.toList());
+ List<String> subjectIds = Arrays.stream(studyLook.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subjects = new ArrayList<>();
+ // 图片及语音集合
+ for (int i = 0; i < subjectIds.size(); i++) {
+ TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, subjectIds.get(i))
+ .eq(TSubject::getDisabled, 0).one();
+ data.setSort(Integer.parseInt(sortList.get(i)));
+ subjects.add(data);
+ }
+ // 根据顺序排序
+ subjects.sort(Comparator.comparingInt(TSubject::getSort));
+ subjectList.add(subjects);
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(2);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(studyLook.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
}
- // 根据顺序排序
- list.sort(Comparator.comparingInt(TSubject::getSort));
- subjectList.add(list);
+
+ studyListenResultVO.setSubjectList(subjectList);
+ subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setAccuracy(new BigDecimal("0.00"));
+
+ } else {
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ List<Integer> collect1 = lookList.stream().map(TStudyLook::getId).collect(Collectors.toList());
+ List<TSubjectRecordDetail> collect3 = list.stream().filter(e -> !collect1.contains(e.getObjectId())).collect(Collectors.toList());
+ subjectRecordDetailService.removeBatchByIds(collect3);
+ for (TStudyLook studyLook : lookList) {
+ List<String> sortList = Arrays.stream(studyLook.getSort().split(",")).collect(Collectors.toList());
+ List<String> subjectIds = Arrays.stream(studyLook.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subjects = new ArrayList<>();
+ // 图片及语音集合
+ for (int i = 0; i < subjectIds.size(); i++) {
+ TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, subjectIds.get(i))
+ .eq(TSubject::getDisabled, 0).one();
+ data.setSort(Integer.parseInt(sortList.get(i)));
+ subjects.add(data);
+ }
+ // 根据顺序排序
+ subjects.sort(Comparator.comparingInt(TSubject::getSort));
+ subjectList.add(subjects);
+ List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(studyLook.getId())).collect(Collectors.toList());
+ if (tSubjectRecordDetail1.isEmpty()){
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(3);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(studyLook.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ subjectRecordDetailService.save(tSubjectRecordDetail);
+ }else{
+ tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
+ }
+
+
+ }
+
+ studyListenResultVO.setAccuracy(new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
+ .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setSubjectList(subjectList);
}
- return new StudyLookResultVO(learnStudy, subjectList);
+ return studyListenResultVO;
}
@Override
- public StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList) {
+ public StudyInductionResultVO induceExclude(Integer week, Integer day, List<TStudyInduction> inductionList, Integer userid) {
if (inductionList.isEmpty()) {
throw new GlobalException("当前学习周目题目数量不足!");
}
@@ -506,45 +635,128 @@
learnStudy.setIntegral(total);
// 语音及图片
List<List<TSubject>> subjectList = new ArrayList<>();
- for (TStudyInduction data : inductionList) {
- List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
- List<TSubject> subjectLists = new ArrayList<>();
- // 第一组题 固定下标为0,1,2的题
- for (int i = 0; i < Constants.THREE; i++) {
- String id = subjectIds.get(i);
- if (!id.startsWith("-")) {
- subjectLists.add(subjectService.getById(id));
+
+ StudyInductionResultVO studyListenResultVO = new StudyInductionResultVO(learnStudy, subjectList);
+
+ List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid)
+ .eq(TSubjectRecordDetail::getWeek, week)
+ .eq(TSubjectRecordDetail::getDay, day)
+ .eq(TSubjectRecordDetail::getType, 3).list();
+ if (list.isEmpty()) {
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyInduction data : inductionList) {
+ List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subjectLists = new ArrayList<>();
+ // 第一组题 固定下标为0,1,2的题
+ for (int i = 0; i < Constants.THREE; i++) {
+ String id = subjectIds.get(i);
+ if (!id.startsWith("-")) {
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ for (int i = 0; i < Constants.THREE; i++) {
+ String id = subjectIds.get(i);
+ if (id.startsWith("-")) {
+ id = id.replace("-", "");
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ // 第二组题,固定下标为3,4的题
+ for (int i = Constants.THREE; i < Constants.FIVE; i++) {
+ String id = subjectIds.get(i);
+ if (!id.startsWith("-")) {
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ for (int i = Constants.THREE; i < Constants.FIVE; i++) {
+ String id = subjectIds.get(i);
+ if (id.startsWith("-")) {
+ id = id.replace("-", "");
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ subjectLists.add(subjectService.getById(subjectIds.get(subjectIds.size() - 1).replace("-", "")));
+ subjectList.add(subjectLists);
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setObjectId(data.getId());
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(3);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ }
+ studyListenResultVO.setSubjectList(subjectList);
+
+ subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setAccuracy(new BigDecimal("0.00"));
+
+ } else {
+ List<Integer> collect1 = inductionList.stream().map(TStudyInduction::getId).collect(Collectors.toList());
+ List<TSubjectRecordDetail> collect3 = list.stream().filter(e -> !collect1.contains(e.getObjectId())).collect(Collectors.toList());
+ subjectRecordDetailService.removeBatchByIds(collect3);
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyInduction data : inductionList) {
+ List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subjectLists = new ArrayList<>();
+ // 第一组题 固定下标为0,1,2的题
+ for (int i = 0; i < Constants.THREE; i++) {
+ String id = subjectIds.get(i);
+ if (!id.startsWith("-")) {
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ for (int i = 0; i < Constants.THREE; i++) {
+ String id = subjectIds.get(i);
+ if (id.startsWith("-")) {
+ id = id.replace("-", "");
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ // 第二组题,固定下标为3,4的题
+ for (int i = Constants.THREE; i < Constants.FIVE; i++) {
+ String id = subjectIds.get(i);
+ if (!id.startsWith("-")) {
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ for (int i = Constants.THREE; i < Constants.FIVE; i++) {
+ String id = subjectIds.get(i);
+ if (id.startsWith("-")) {
+ id = id.replace("-", "");
+ subjectLists.add(subjectService.getById(id));
+ }
+ }
+ subjectLists.add(subjectService.getById(subjectIds.get(subjectIds.size() - 1).replace("-", "")));
+ subjectList.add(subjectLists);
+
+ TSubjectRecordDetail tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(data.getId())).findFirst().orElse(null);
+ if (tSubjectRecordDetail1==null){
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(3);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(data.getId());
+ subjectRecordDetailService.save(tSubjectRecordDetail);
+
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ }else{
+ tSubjectRecordDetails.add(tSubjectRecordDetail1);
}
}
- for (int i = 0; i < Constants.THREE; i++) {
- String id = subjectIds.get(i);
- if (id.startsWith("-")) {
- id = id.replace("-", "");
- subjectLists.add(subjectService.getById(id));
- }
- }
- // 第二组题,固定下标为3,4的题
- for (int i = Constants.THREE; i < Constants.FIVE; i++) {
- String id = subjectIds.get(i);
- if (!id.startsWith("-")) {
- subjectLists.add(subjectService.getById(id));
- }
- }
- for (int i = Constants.THREE; i < Constants.FIVE; i++) {
- String id = subjectIds.get(i);
- if (id.startsWith("-")) {
- id = id.replace("-", "");
- subjectLists.add(subjectService.getById(id));
- }
- }
- subjectLists.add(subjectService.getById(subjectIds.get(subjectIds.size() - 1).replace("-", "")));
- subjectList.add(subjectLists);
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setAccuracy(new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
+ .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
}
- return new StudyInductionResultVO(learnStudy, subjectList);
+ studyListenResultVO.setSubjectList(subjectList);
+ return studyListenResultVO;
}
@Override
- public StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList) {
+ public StudyAnswerResultVO questionsAndAnswers(Integer week, Integer day, List<TStudyAnswer> answerList, Integer userid) {
if (answerList.isEmpty()) {
throw new GlobalException("当前学习周目题目数量不足!");
}
@@ -562,16 +774,94 @@
learnStudy.setIntegral(total);
// 题目语音及图片信息
List<List<QuestionsAnswersSubjectVO>> subjectList = new ArrayList<>();
- for (int i = 0; i < answerList.size(); i += Constants.TWO) {
- List<QuestionsAnswersSubjectVO> voList = new ArrayList<>();
- // 一组题目为四道题,
- TStudyAnswer one = answerList.get(i);
- TStudyAnswer two = answerList.get(i + 1);
- voAdd(voList, one);
- voAdd(voList, two);
- subjectList.add(voList);
+
+ StudyAnswerResultVO studyListenResultVO = new StudyAnswerResultVO(learnStudy, subjectList);
+
+ List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid)
+ .eq(TSubjectRecordDetail::getWeek, week)
+ .eq(TSubjectRecordDetail::getDay, day)
+ .eq(TSubjectRecordDetail::getType, 4).list();
+ if (list.isEmpty()) {
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (int i = 0; i < answerList.size(); i += Constants.TWO) {
+ List<QuestionsAnswersSubjectVO> voList = new ArrayList<>();
+ // 一组题目为四道题,
+ TStudyAnswer one = answerList.get(i);
+ TStudyAnswer two = answerList.get(i + 1);
+ 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);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(4);
+ 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> tSubjectRecordDetails = new ArrayList<>();
+ for (int i = 0; i < answerList.size(); i += Constants.TWO) {
+ List<QuestionsAnswersSubjectVO> voList = new ArrayList<>();
+ // 一组题目为四道题,
+ TStudyAnswer one = answerList.get(i);
+ TStudyAnswer two = answerList.get(i + 1);
+ 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.setOne(one.getId());
+ tSubjectRecordDetail.setTwo(two.getId());
+ tSubjectRecordDetail.setThree(three.getId());
+ tSubjectRecordDetail.setFour(four.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ tSubjectRecordDetails1.add(tSubjectRecordDetail);
+ }
+ List<Long> collect = list.stream().map(TSubjectRecordDetail::getId).collect(Collectors.toList());
+ subjectRecordDetailService.removeBatchByIds(collect);
+ subjectRecordDetailService.saveBatch(tSubjectRecordDetails1);
+
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setAccuracy(new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
+ .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
}
- return new StudyAnswerResultVO(learnStudy, subjectList);
+ studyListenResultVO.setSubjectList(subjectList);
+ return studyListenResultVO;
}
private void voAdd(List<QuestionsAnswersSubjectVO> voList, TStudyAnswer one) {
@@ -613,7 +903,7 @@
}
@Override
- public StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair) {
+ public StudyPairResultVO pictureMateVoice(Integer week, Integer day, List<TStudyPair> pair, Integer userid) {
if (pair.isEmpty()) {
throw new GlobalException("当前学习周目题目数量不足!");
}
@@ -631,18 +921,77 @@
learnStudy.setIntegral(total);
// 语音及图片
List<List<TSubject>> subjectList = new ArrayList<>();
- for (TStudyPair data : pair) {
- List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
- List<TSubject> subjectLists = new ArrayList<>();
- for (String id : subjectIds) {
- if (id.startsWith("-")) {
- id = id.replace("-", "");
+
+ StudyPairResultVO studyListenResultVO = new StudyPairResultVO(learnStudy, subjectList);
+
+ List<TSubjectRecordDetail> list = subjectRecordDetailService.lambdaQuery().eq(TSubjectRecordDetail::getUserId, userid)
+ .eq(TSubjectRecordDetail::getWeek, week)
+ .eq(TSubjectRecordDetail::getDay, day)
+ .eq(TSubjectRecordDetail::getType, 5).list();
+ if (list.isEmpty()) {
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyPair data : pair) {
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(5);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(data.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+
+ List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subjectLists = new ArrayList<>();
+ for (String id : subjectIds) {
+ if (id.startsWith("-")) {
+ id = id.replace("-", "");
+ }
+ subjectLists.add(subjectService.getById(id));
}
- subjectLists.add(subjectService.getById(id));
+ subjectList.add(subjectLists);
}
- subjectList.add(subjectLists);
+ studyListenResultVO.setSubjectList(subjectList);
+ subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setAccuracy(new BigDecimal("0.00"));
+
+ } else {
+ List<Integer> collect1 = pair.stream().map(TStudyPair::getId).collect(Collectors.toList());
+ List<TSubjectRecordDetail> collect3 = list.stream().filter(e -> !collect1.contains(e.getObjectId())).collect(Collectors.toList());
+ subjectRecordDetailService.removeBatchByIds(collect3);
+ List<TSubjectRecordDetail> tSubjectRecordDetails = new ArrayList<>();
+ for (TStudyPair data : pair) {
+ List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
+ List<TSubject> subjectLists = new ArrayList<>();
+ for (String id : subjectIds) {
+ if (id.startsWith("-")) {
+ id = id.replace("-", "");
+ }
+ subjectLists.add(subjectService.getById(id));
+ }
+ subjectList.add(subjectLists);
+ List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(data.getId())).collect(Collectors.toList());
+
+ if (tSubjectRecordDetail1.isEmpty()){
+ TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
+ tSubjectRecordDetail.setUserId(userid);
+ tSubjectRecordDetail.setWeek(week);
+ tSubjectRecordDetail.setDay(day);
+ tSubjectRecordDetail.setType(5);
+ tSubjectRecordDetail.setStatus(1);
+ tSubjectRecordDetail.setObjectId(data.getId());
+ tSubjectRecordDetails.add(tSubjectRecordDetail);
+ subjectRecordDetailService.save(tSubjectRecordDetail);
+ }else{
+ tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
+ }
+ }
+ studyListenResultVO.setList(tSubjectRecordDetails);
+ studyListenResultVO.setSubjectList(subjectList);
+ studyListenResultVO.setAccuracy(new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
+ .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
}
- return new StudyPairResultVO(learnStudy, subjectList);
+ return studyListenResultVO;
}
@Override
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TSubjectRecordDetailServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TSubjectRecordDetailServiceImpl.java
new file mode 100644
index 0000000..cc9ed7a
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TSubjectRecordDetailServiceImpl.java
@@ -0,0 +1,26 @@
+package com.ruoyi.study.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.study.domain.TSubjectRecord;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
+import com.ruoyi.study.mapper.TSubjectRecordDetailMapper;
+import com.ruoyi.study.mapper.TSubjectRecordMapper;
+import com.ruoyi.study.service.ITSubjectRecordDetailService;
+import com.ruoyi.study.service.ITSubjectRecordService;
+import com.ruoyi.study.vo.ExitLearnVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 自主游戏 服务实现类
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Service
+public class TSubjectRecordDetailServiceImpl extends ServiceImpl<TSubjectRecordDetailMapper, TSubjectRecordDetail> implements ITSubjectRecordDetailService {
+
+
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java
index 05c0c2f..5f67efc 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyAnswerResultVO.java
@@ -1,9 +1,11 @@
package com.ruoyi.study.vo;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -20,7 +22,16 @@
*/
@ApiModelProperty("自主学习题目信息")
private LearnStudyVO data;
-
+ /**
+ * 2.0新增答题记录
+ */
+ @ApiModelProperty("2.0新增答题记录")
+ private List<TSubjectRecordDetail> list;
+ /**
+ * 正确率
+ */
+ @ApiModelProperty("正确率")
+ private BigDecimal accuracy;
/**
* 自主学习题目所包含录音图片等
*/
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java
index 48ff009..cc713b9 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyInductionResultVO.java
@@ -1,11 +1,13 @@
package com.ruoyi.study.vo;
import com.ruoyi.study.domain.TSubject;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -23,7 +25,16 @@
*/
@ApiModelProperty("自主学习题目信息")
private LearnStudyVO data;
-
+ /**
+ * 2.0新增答题记录
+ */
+ @ApiModelProperty("2.0新增答题记录")
+ private List<TSubjectRecordDetail> list;
+ /**
+ * 正确率
+ */
+ @ApiModelProperty("正确率")
+ private BigDecimal accuracy;
public StudyInductionResultVO(LearnStudyVO data, List<List<TSubject>> subjectList) {
this.data = data;
super.setSubjectList(subjectList);
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java
index 7daaae7..0d616f0 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyListenResultVO.java
@@ -1,11 +1,13 @@
package com.ruoyi.study.vo;
import com.ruoyi.study.domain.TSubject;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -23,6 +25,16 @@
*/
@ApiModelProperty("自主学习题目信息")
private LearnStudyVO data;
+ /**
+ * 2.0新增答题记录
+ */
+ @ApiModelProperty("2.0新增答题记录")
+ private List<TSubjectRecordDetail> list;
+ /**
+ * 正确率
+ */
+ @ApiModelProperty("正确率")
+ private BigDecimal accuracy;
public StudyListenResultVO(LearnStudyVO data, List<List<TSubject>> subjectList) {
this.data = data;
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java
index 6332626..619de75 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyLookResultVO.java
@@ -1,11 +1,13 @@
package com.ruoyi.study.vo;
import com.ruoyi.study.domain.TSubject;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -23,7 +25,16 @@
*/
@ApiModelProperty("自主学习题目信息")
private LearnStudyVO data;
-
+ /**
+ * 正确率
+ */
+ @ApiModelProperty("正确率")
+ private BigDecimal accuracy;
+ /**
+ * 2.0新增答题记录
+ */
+ @ApiModelProperty("2.0新增答题记录")
+ private List<TSubjectRecordDetail> list;
public StudyLookResultVO(LearnStudyVO data, List<List<TSubject>> subjectList) {
this.data = data;
super.setSubjectList(subjectList);
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java
index 8a21334..f5f3d92 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/StudyPairResultVO.java
@@ -1,10 +1,12 @@
package com.ruoyi.study.vo;
import com.ruoyi.study.domain.TSubject;
+import com.ruoyi.study.domain.TSubjectRecordDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -21,7 +23,16 @@
*/
@ApiModelProperty("自主学习题目信息")
private LearnStudyVO data;
-
+ /**
+ * 2.0新增答题记录
+ */
+ @ApiModelProperty("2.0新增答题记录")
+ private List<TSubjectRecordDetail> list;
+ /**
+ * 正确率
+ */
+ @ApiModelProperty("正确率")
+ private BigDecimal accuracy;
public StudyPairResultVO(LearnStudyVO data, List<List<TSubject>> subjectList) {
this.data = data;
super.setSubjectList(subjectList);
diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TSubjectRecordDetailMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TSubjectRecordDetailMapper.xml
new file mode 100644
index 0000000..b3eb576
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TSubjectRecordDetailMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.study.mapper.TSubjectRecordDetailMapper">
+
+
+
+</mapper>
--
Gitblit v1.7.1