Просмотр исходного кода

fix:修复批改时出现多次批改的情况

lalala 1 год назад
Родитель
Сommit
389b34c8b8

+ 2 - 0
src/main/java/com/njuzr/eaibackend/service/impl/AiSpeakingAssignmentServiceImpl.java

@@ -68,6 +68,8 @@ public class AiSpeakingAssignmentServiceImpl extends ServiceImpl<AiSpeakingAssig
         assignment.setCourseId(courseId);
         assignment.setTeacherId(user.getId());
         assignment.setCreateTime(new Date());
+        assignment.setEngageNumber(0);
+        assignment.setCorrectNumber(0);
         try {
             assignmentMapper.insert(assignment);
             Long assignmentId = assignment.getAssignmentId();

+ 4 - 5
src/main/java/com/njuzr/eaibackend/service/impl/AssignmentServiceImpl.java

@@ -364,13 +364,12 @@ public class AssignmentServiceImpl implements AssignmentService {
         if (!Objects.equals(assignment.getTeacherId(), teacherId))
             throw MyException.create(HttpStatus.BAD_REQUEST, "无权限批改");
 
-        engagement.setStatus(AssignmentCompletionStatus.CORRECTED); // 第一步,修改状态,改为已批改
+        if(engagement.getStatus() != AssignmentCompletionStatus.CORRECTED){
+            assignment.setCorrectNumber(assignment.getCorrectNumber() + 1);
+            engagement.setStatus(AssignmentCompletionStatus.CORRECTED);
+        }
         engagement.setScore(correctDTO.getScore());
         engagement.setRemark(correctDTO.getRemark());
-
-        assignment.setCorrectNumber(assignment.getCorrectNumber() + 1);
-
-
         try {
             int code = studentAssignmentMapper.updateById(engagement);
             int code1 = assignmentMapper.updateById(assignment);