|
@@ -1,9 +1,10 @@
|
|
package cn.com.qmth.stmms.admin.thread;
|
|
package cn.com.qmth.stmms.admin.thread;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
|
|
|
+import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
@@ -22,7 +23,7 @@ public class QuestionDeleteThread implements Runnable {
|
|
|
|
|
|
private LockService lockService;
|
|
private LockService lockService;
|
|
|
|
|
|
- private Map<Integer, String> map;
|
|
|
|
|
|
+ private Set<String> set;
|
|
|
|
|
|
public QuestionDeleteThread(List<ExamQuestion> list, MarkService markService, LockService lockService) {
|
|
public QuestionDeleteThread(List<ExamQuestion> list, MarkService markService, LockService lockService) {
|
|
this.list = list;
|
|
this.list = list;
|
|
@@ -37,9 +38,9 @@ public class QuestionDeleteThread implements Runnable {
|
|
}
|
|
}
|
|
int examId = list.get(0).getExamId();
|
|
int examId = list.get(0).getExamId();
|
|
String subjectCode = list.get(0).getSubjectCode();
|
|
String subjectCode = list.get(0).getSubjectCode();
|
|
- map = new HashMap<Integer, String>();
|
|
|
|
- for (ExamQuestion examQuestion : list) {
|
|
|
|
- map.put(examQuestion.getMainNumber(), examQuestion.getSubNumber());
|
|
|
|
|
|
+ set = new HashSet<String>();
|
|
|
|
+ for (ExamQuestion question : list) {
|
|
|
|
+ set.add(getKey(question));
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
@@ -49,10 +50,17 @@ public class QuestionDeleteThread implements Runnable {
|
|
log.error("delete group error", e);
|
|
log.error("delete group error", e);
|
|
} finally {
|
|
} finally {
|
|
lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
|
|
- for (Integer mainNumber : map.keySet()) {
|
|
|
|
- lockService.unlock(LockType.QUESTION_DELETE, examId, subjectCode, mainNumber, map.get(mainNumber));
|
|
|
|
|
|
+ for (String key : set) {
|
|
|
|
+ String s[] = key.split("\t");
|
|
|
|
+ Integer mainNumber = Integer.parseInt(s[3]);
|
|
|
|
+ String subNumber = StringUtils.trimToEmpty(s[4]);
|
|
|
|
+ lockService.unlock(LockType.QUESTION_DELETE, examId, subjectCode, mainNumber, subNumber);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ protected String getKey(ExamQuestion question) {
|
|
|
|
+ return question.getExamId() + "\t" + question.getSubjectCode() + "\t" + question.isObjective() + "\t"
|
|
|
|
+ + question.getMainNumber() + "\t" + question.getSubNumber();
|
|
|
|
+ }
|
|
}
|
|
}
|