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