|
@@ -32,6 +32,7 @@ import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkService;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.TaskService;
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.Impl.MarkLockService;
|
|
|
import cn.com.qmth.stmms.common.controller.BaseController;
|
|
|
import cn.com.qmth.stmms.common.enums.ExamSubjectStatus;
|
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
@@ -66,6 +67,9 @@ public class MarkController extends BaseController {
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MarkLockService lockService;
|
|
|
+
|
|
|
@Value("${slice.image.server}")
|
|
|
private String sliceServer;
|
|
|
|
|
@@ -195,7 +199,15 @@ public class MarkController extends BaseController {
|
|
|
@ResponseBody
|
|
|
public Task getTask(HttpServletRequest request) {
|
|
|
Marker marker = RequestUtils.getWebUser(request).getMarker();
|
|
|
- Task task = getTask(marker);
|
|
|
+ Task task = null;
|
|
|
+ try {
|
|
|
+ lockService.lockMarker(marker.getId());
|
|
|
+ task = getTask(marker);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("get task error", e);
|
|
|
+ } finally {
|
|
|
+ lockService.unlockMarker(marker.getId());
|
|
|
+ }
|
|
|
if (task == null) {
|
|
|
task = new Task();
|
|
|
task.setExist(false);
|
|
@@ -248,6 +260,7 @@ public class MarkController extends BaseController {
|
|
|
JSONObject result = new JSONObject();
|
|
|
boolean success = false;
|
|
|
try {
|
|
|
+ lockService.lockMarker(marker.getId());
|
|
|
task.setSpent((new Date().getTime() - task.getSpent()) / 1000);
|
|
|
MarkLibrary library = libraryService.findById(task.getLibraryId());
|
|
|
library.setMarkerId(marker.getId());
|
|
@@ -260,6 +273,8 @@ public class MarkController extends BaseController {
|
|
|
task.getSpecialTagList(library));
|
|
|
} catch (Exception e) {
|
|
|
log.error("save task error", e);
|
|
|
+ } finally {
|
|
|
+ lockService.unlockMarker(marker.getId());
|
|
|
}
|
|
|
result.accumulate("success", success);
|
|
|
result.accumulate("status", status(request));
|