|
@@ -20,6 +20,7 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.core.task.AsyncTaskExecutor;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -114,6 +115,9 @@ public class MarkGroupController extends BaseExamController {
|
|
|
@Autowired
|
|
|
private AsyncTaskExecutor taskExecutor;
|
|
|
|
|
|
+ @Value("${mark.group.delete}")
|
|
|
+ private String markDeleteCode;
|
|
|
+
|
|
|
@Logging(menu = "大题管理查询", type = LogType.QUERY)
|
|
|
@RequestMapping
|
|
|
public String list(HttpServletRequest request, Model model, @RequestParam(required = false) String subjectCode) {
|
|
@@ -402,13 +406,19 @@ public class MarkGroupController extends BaseExamController {
|
|
|
@RequestMapping("/delete")
|
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.COLLEGE_ADMIN })
|
|
|
public String delete(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
|
|
|
- @RequestParam String subjectCode, @RequestParam Integer number) {
|
|
|
+ @RequestParam String subjectCode, @RequestParam Integer number,
|
|
|
+ @RequestParam(required = false) String deleteCode) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, number);
|
|
|
if (group == null) {
|
|
|
redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
return "redirect:/admin/exam/group";
|
|
|
}
|
|
|
+ if (group.getLibraryCount() == group.getMarkedCount() && !markDeleteCode.equals(deleteCode)) {
|
|
|
+ addMessage(redirectAttributes, "删除分组授权码不正确");
|
|
|
+ redirectAttributes.addAttribute("subjectCode", subjectCode);
|
|
|
+ return "redirect:/admin/exam/group";
|
|
|
+ }
|
|
|
if (lockService.trylock(LockType.GROUP_DELETE, group.getExamId(), group.getSubjectCode(), group.getNumber())) {
|
|
|
taskExecutor.submit(new MarkGroupDeleteThread(group, markService, lockService));
|
|
|
RequestUtils.setLog(request, "开始删除分组,subjectCode:" + subjectCode + " number:" + number);
|