|
@@ -3,8 +3,10 @@ package cn.com.qmth.stmms.admin.exam;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
@@ -40,8 +42,10 @@ import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkTrackService;
|
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
|
+import cn.com.qmth.stmms.common.auth.annotation.RoleRequire;
|
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
|
+import cn.com.qmth.stmms.common.enums.Role;
|
|
|
import cn.com.qmth.stmms.common.utils.PictureUrlBuilder;
|
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
|
|
@@ -87,6 +91,9 @@ public class InspectedController extends BaseExamController {
|
|
|
@RequestParam Integer groupNumber) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
if (examId > 0) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ releaseByUser(wu.getUser().getId());
|
|
|
+
|
|
|
ModelAndView view = new ModelAndView("modules/exam/inspected");
|
|
|
List<Integer> ids = new ArrayList<Integer>();
|
|
|
MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
|
|
@@ -176,6 +183,19 @@ public class InspectedController extends BaseExamController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping("/clear")
|
|
|
+ @ResponseBody
|
|
|
+ @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
|
+ public Object clear(HttpServletRequest request, @RequestParam(required = false) Integer libraryId) {
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
+ if (libraryId != null) {
|
|
|
+ releaseTask(libraryId);
|
|
|
+ } else {
|
|
|
+ releaseByUser(wu.getUser().getId());
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
private boolean setCurrent(Integer taskId, Integer userId) {
|
|
|
Integer value = currentTaskMap.get(taskId);
|
|
|
if (value == null) {
|
|
@@ -198,4 +218,17 @@ public class InspectedController extends BaseExamController {
|
|
|
currentTaskMap.remove(taskId);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void releaseByUser(Integer userId) {
|
|
|
+ Set<Integer> taskIds = new HashSet<>();
|
|
|
+ taskIds.addAll(currentTaskMap.keySet());
|
|
|
+ synchronized (currentTaskMap) {
|
|
|
+ for (Integer taskId : taskIds) {
|
|
|
+ Integer value = currentTaskMap.get(taskId);
|
|
|
+ if (value != null && value.equals(userId)) {
|
|
|
+ currentTaskMap.remove(taskId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|