1
0
Quellcode durchsuchen

InspectedController.锁

xiatian vor 1 Jahr
Ursprung
Commit
1925d263d2

+ 5 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -257,11 +257,12 @@ public class InspectedController extends BaseExamController {
     @ResponseBody
     public Object save(HttpServletRequest request, @RequestParam Integer studentId) {
         WebUser wu = RequestUtils.getWebUser(request);
-        ExamStudent student = studentService.findById(studentId);
         JSONObject obj = new JSONObject();
+        ExamStudent student = studentService.findById(studentId);
         try {
-            if (student != null && lockService.trylock(LockType.STUDENT, studentId)
-                    && inspectedService.inspect(student, wu.getId())) {
+        	lockService.watch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
+        	lockService.waitlock(LockType.STUDENT, studentId);
+            if (student != null && inspectedService.inspect(student, wu.getId())) {
                 inspectedService.releaseByStudent(student);
                 obj.accumulate("success", true);
             } else {
@@ -273,6 +274,7 @@ public class InspectedController extends BaseExamController {
             log.error("inspected save error", e);
         } finally {
             lockService.unlock(LockType.STUDENT, studentId);
+            lockService.unwatch(LockType.EXAM_SUBJECT, student.getExamId(), student.getSubjectCode());
         }
         return obj;
     }