|
@@ -125,12 +125,7 @@ public class BehaviorRecordServiceImpl implements BehaviorRecordService {
|
|
|
int accumulatedLongPauseCount = 0;
|
|
int accumulatedLongPauseCount = 0;
|
|
|
Long lastEndStamp = 0L;
|
|
Long lastEndStamp = 0L;
|
|
|
|
|
|
|
|
- for (int i = 0; i < records.size(); i++) {
|
|
|
|
|
- BehaviorRecord record = records.get(i);
|
|
|
|
|
- BehaviorRecordVersionsVO.VersionEvents version = new BehaviorRecordVersionsVO.VersionEvents();
|
|
|
|
|
- version.setVersion(i + 1);
|
|
|
|
|
- version.setCreatedAt(record.getCreatedAt());
|
|
|
|
|
-
|
|
|
|
|
|
|
+ for (BehaviorRecord record : records) {
|
|
|
List<BehaviorRecord.BehaviorEvent> events = record.getEvents();
|
|
List<BehaviorRecord.BehaviorEvent> events = record.getEvents();
|
|
|
if (events == null) {
|
|
if (events == null) {
|
|
|
events = new java.util.ArrayList<>();
|
|
events = new java.util.ArrayList<>();
|
|
@@ -198,14 +193,26 @@ public class BehaviorRecordServiceImpl implements BehaviorRecordService {
|
|
|
accumulatedCopyCharacterCount += copyCharacterCount;
|
|
accumulatedCopyCharacterCount += copyCharacterCount;
|
|
|
accumulatedLongPauseCount += longPauseCount;
|
|
accumulatedLongPauseCount += longPauseCount;
|
|
|
|
|
|
|
|
- version.setEvents(new java.util.ArrayList<>(accumulatedEvents));
|
|
|
|
|
- version.setInsertCount(accumulatedInsertCount);
|
|
|
|
|
- version.setDeleteCount(accumulatedDeleteCount);
|
|
|
|
|
- version.setCopyCount(accumulatedCopyCount);
|
|
|
|
|
- version.setCopyCharacterCount(accumulatedCopyCharacterCount);
|
|
|
|
|
- version.setLongPauseCount(accumulatedLongPauseCount);
|
|
|
|
|
-
|
|
|
|
|
- versions.add(version);
|
|
|
|
|
|
|
+ if ("SUBMIT".equalsIgnoreCase(record.getRecordType())) {
|
|
|
|
|
+ BehaviorRecordVersionsVO.VersionEvents version = new BehaviorRecordVersionsVO.VersionEvents();
|
|
|
|
|
+ version.setVersion(versions.size() + 1);
|
|
|
|
|
+ version.setCreatedAt(record.getCreatedAt());
|
|
|
|
|
+ version.setEvents(new java.util.ArrayList<>(accumulatedEvents));
|
|
|
|
|
+ version.setInsertCount(accumulatedInsertCount);
|
|
|
|
|
+ version.setDeleteCount(accumulatedDeleteCount);
|
|
|
|
|
+ version.setCopyCount(accumulatedCopyCount);
|
|
|
|
|
+ version.setCopyCharacterCount(accumulatedCopyCharacterCount);
|
|
|
|
|
+ version.setLongPauseCount(accumulatedLongPauseCount);
|
|
|
|
|
+ versions.add(version);
|
|
|
|
|
+
|
|
|
|
|
+ accumulatedEvents = new java.util.ArrayList<>();
|
|
|
|
|
+ accumulatedInsertCount = 0;
|
|
|
|
|
+ accumulatedDeleteCount = 0;
|
|
|
|
|
+ accumulatedCopyCount = 0;
|
|
|
|
|
+ accumulatedCopyCharacterCount = 0;
|
|
|
|
|
+ accumulatedLongPauseCount = 0;
|
|
|
|
|
+ lastEndStamp = 0L;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
vo.setVersions(versions);
|
|
vo.setVersions(versions);
|
|
@@ -302,7 +309,7 @@ public class BehaviorRecordServiceImpl implements BehaviorRecordService {
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
- public String upload(Long assignmentId, Long studentId, MultipartFile file) {
|
|
|
|
|
|
|
+ public String upload(Long assignmentId, Long studentId, MultipartFile file, String recordType) {
|
|
|
try {
|
|
try {
|
|
|
// 解析JSON文件
|
|
// 解析JSON文件
|
|
|
List<BehaviorRecord.BehaviorEvent> events = parseBehaviorEvents(file);
|
|
List<BehaviorRecord.BehaviorEvent> events = parseBehaviorEvents(file);
|
|
@@ -311,6 +318,7 @@ public class BehaviorRecordServiceImpl implements BehaviorRecordService {
|
|
|
BehaviorRecord record = new BehaviorRecord();
|
|
BehaviorRecord record = new BehaviorRecord();
|
|
|
record.setStudentId(studentId);
|
|
record.setStudentId(studentId);
|
|
|
record.setAssignmentId(assignmentId);
|
|
record.setAssignmentId(assignmentId);
|
|
|
|
|
+ record.setRecordType(recordType == null ? "STAGE" : recordType);
|
|
|
record.setEvents(events);
|
|
record.setEvents(events);
|
|
|
|
|
|
|
|
// 保存到MongoDB (behaviorRecords集合)
|
|
// 保存到MongoDB (behaviorRecords集合)
|