|
@@ -1,41 +1,63 @@
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
package cn.com.qmth.stmms.admin.exam;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.Set;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+
|
|
|
|
+import net.sf.json.JSONArray;
|
|
|
|
+import net.sf.json.JSONObject;
|
|
|
|
+
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
|
+import org.springframework.ui.Model;
|
|
|
|
+import org.springframework.web.bind.annotation.PathVariable;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
+import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
+
|
|
import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
|
|
import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
|
|
-import cn.com.qmth.stmms.biz.exam.service.*;
|
|
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkerClassService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
|
|
+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.MarkService;
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
|
|
+import cn.com.qmth.stmms.biz.user.service.query.UserSearchQuery;
|
|
|
|
+import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
|
|
+import cn.com.qmth.stmms.common.enums.LogType;
|
|
import cn.com.qmth.stmms.common.enums.MarkerExcelError;
|
|
import cn.com.qmth.stmms.common.enums.MarkerExcelError;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
import cn.com.qmth.stmms.common.utils.ImportExcel;
|
|
import cn.com.qmth.stmms.common.utils.ImportExcel;
|
|
|
|
+import cn.com.qmth.stmms.common.utils.Md5EncryptUtils;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
-import com.google.common.collect.Lists;
|
|
|
|
-import net.sf.json.JSONArray;
|
|
|
|
-import net.sf.json.JSONObject;
|
|
|
|
-import org.apache.commons.lang.StringUtils;
|
|
|
|
-import org.slf4j.Logger;
|
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
|
-import org.springframework.stereotype.Controller;
|
|
|
|
-import org.springframework.ui.Model;
|
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
-import org.springframework.web.servlet.ModelAndView;
|
|
|
|
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
-import java.util.*;
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
|
|
@Controller("examMarkerController")
|
|
@Controller("examMarkerController")
|
|
@RequestMapping("/admin/exam/marker")
|
|
@RequestMapping("/admin/exam/marker")
|
|
@@ -43,6 +65,8 @@ public class MarkerController extends BaseExamController {
|
|
|
|
|
|
protected static Logger log = LoggerFactory.getLogger(MarkerController.class);
|
|
protected static Logger log = LoggerFactory.getLogger(MarkerController.class);
|
|
|
|
|
|
|
|
+ public static final String USER_PASSWORD = "123456";
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private UserService userService;
|
|
private UserService userService;
|
|
|
|
|
|
@@ -73,9 +97,10 @@ public class MarkerController extends BaseExamController {
|
|
@Autowired
|
|
@Autowired
|
|
private ExamQuestionService questionService;
|
|
private ExamQuestionService questionService;
|
|
|
|
|
|
- @Value("${marker.showBtnImportAndBtnUpdateImport}")
|
|
|
|
- private String showBtnImport;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private MarkLibraryService libraryService;
|
|
|
|
|
|
|
|
+ @Logging(menu = "评卷员查询", type = LogType.QUERY)
|
|
@RequestMapping
|
|
@RequestMapping
|
|
public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
|
|
public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
@@ -83,13 +108,16 @@ public class MarkerController extends BaseExamController {
|
|
query.setExamId(examId);
|
|
query.setExamId(examId);
|
|
query.orderById();
|
|
query.orderById();
|
|
subjectFilter(query, wu);
|
|
subjectFilter(query, wu);
|
|
|
|
+ if (StringUtils.isNotBlank(query.getLoginName())) {
|
|
|
|
+ User user = userService.findByLoginNameAndSchoolId(query.getLoginName(), wu.getUser().getSchoolId());
|
|
|
|
+ query.setUserId(user == null ? null : user.getId());
|
|
|
|
+ }
|
|
query = markerService.findByQuery(query);
|
|
query = markerService.findByQuery(query);
|
|
for (Marker marker : query.getResult()) {
|
|
for (Marker marker : query.getResult()) {
|
|
marker.setSubject(subjectService.find(marker.getExamId(), marker.getSubjectCode()));
|
|
marker.setSubject(subjectService.find(marker.getExamId(), marker.getSubjectCode()));
|
|
MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
|
|
MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
|
|
- group.setQuestionList(questionService
|
|
|
|
- .findByExamAndSubjectAndObjectiveAndGroupNumber(examId, marker.getSubjectCode(), false,
|
|
|
|
- group.getNumber()));
|
|
|
|
|
|
+ group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
|
|
|
|
+ marker.getSubjectCode(), false, group.getNumber()));
|
|
marker.setGroup(group);
|
|
marker.setGroup(group);
|
|
marker.setMarkedCount(markService.markedCount(marker));
|
|
marker.setMarkedCount(markService.markedCount(marker));
|
|
marker.setCurrentCount(markService.applyCount(marker));
|
|
marker.setCurrentCount(markService.applyCount(marker));
|
|
@@ -97,7 +125,6 @@ public class MarkerController extends BaseExamController {
|
|
}
|
|
}
|
|
model.addAttribute("query", query);
|
|
model.addAttribute("query", query);
|
|
model.addAttribute("subjectList", getExamSubject(examId, wu));
|
|
model.addAttribute("subjectList", getExamSubject(examId, wu));
|
|
- model.addAttribute("showBtnImport", showBtnImport);
|
|
|
|
return "modules/exam/markerList";
|
|
return "modules/exam/markerList";
|
|
}
|
|
}
|
|
|
|
|
|
@@ -109,16 +136,17 @@ public class MarkerController extends BaseExamController {
|
|
JSONArray array = new JSONArray();
|
|
JSONArray array = new JSONArray();
|
|
List<Marker> list = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
List<Marker> list = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
for (Marker marker : list) {
|
|
for (Marker marker : list) {
|
|
- User user = userService.findById(marker.getUserId());
|
|
|
|
JSONObject obj = new JSONObject();
|
|
JSONObject obj = new JSONObject();
|
|
obj.accumulate("id", marker.getId());
|
|
obj.accumulate("id", marker.getId());
|
|
- obj.accumulate("loginName", user.getAccount());
|
|
|
|
|
|
+ User user = userService.findById(marker.getUserId());
|
|
|
|
+ obj.accumulate("loginName", user.getLoginName());
|
|
obj.accumulate("name", user.getName());
|
|
obj.accumulate("name", user.getName());
|
|
array.add(obj);
|
|
array.add(obj);
|
|
}
|
|
}
|
|
return array;
|
|
return array;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Logging(menu = "评卷员回收任务", type = LogType.UPDATE)
|
|
@RequestMapping("/release")
|
|
@RequestMapping("/release")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@@ -142,67 +170,48 @@ public class MarkerController extends BaseExamController {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
- @RequestMapping("/batch-create")
|
|
|
|
- @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
|
- public String createInit(Model model, HttpServletRequest request,
|
|
|
|
- @RequestParam(required = false) String subjectCode, @RequestParam(required = false) Integer groupNumber) {
|
|
|
|
- int examId = getSessionExamId(request);
|
|
|
|
- model.addAttribute("subjectList", getExamSubject(examId, RequestUtils.getWebUser(request)));
|
|
|
|
- if (subjectCode != null) {
|
|
|
|
- model.addAttribute("subjectCode", subjectCode);
|
|
|
|
- model.addAttribute("groupList", groupService.findByExamAndSubject(examId, subjectCode));
|
|
|
|
- if (groupNumber != null) {
|
|
|
|
- model.addAttribute("groupNumber", groupNumber);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- model.addAttribute("groupList", new ArrayList<MarkGroup>());
|
|
|
|
- }
|
|
|
|
- return "modules/exam/markerCreate";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RequestMapping(value = "/batch-create", method = RequestMethod.POST)
|
|
|
|
- @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
|
- public ModelAndView create(HttpServletRequest request, @RequestParam String subjectCode,
|
|
|
|
- @RequestParam Integer groupNumber, @RequestParam Integer count,
|
|
|
|
- @RequestParam(required = false) String password) {
|
|
|
|
- int examId = getSessionExamId(request);
|
|
|
|
- ExamSubject subject = subjectService.find(examId, subjectCode);
|
|
|
|
- ModelAndView view = new ModelAndView("redirect:/admin/exam/marker");
|
|
|
|
- if (subject != null && count > 0) {
|
|
|
|
- markerService.batchCreate(subject, groupNumber, count, password);
|
|
|
|
- }
|
|
|
|
- view.addObject("subjectCode", subjectCode);
|
|
|
|
- if (groupNumber > 0) {
|
|
|
|
- view.addObject("groupNumber", groupNumber);
|
|
|
|
- }
|
|
|
|
- return view;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RequestMapping(value = "/reset")
|
|
|
|
- @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
|
- public String resetMarker(@RequestParam Integer id, Model model, RedirectAttributes redirectAttributes) {
|
|
|
|
- Marker marker = markerService.findById(id);
|
|
|
|
- if (marker != null) {
|
|
|
|
- try {
|
|
|
|
- lockService
|
|
|
|
- .waitlock(LockType.GROUP, marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
|
- lockService.waitlock(LockType.MARKER, marker.getId());
|
|
|
|
-
|
|
|
|
- markService.resetMarker(marker);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("reset marker error", e);
|
|
|
|
- throw new RuntimeException("重置评卷员失败", e);
|
|
|
|
- } finally {
|
|
|
|
- lockService.unlock(LockType.MARKER, marker.getId());
|
|
|
|
- lockService
|
|
|
|
- .unlock(LockType.GROUP, marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- redirectAttributes.addAttribute("subjectCode", marker.getSubjectCode());
|
|
|
|
- redirectAttributes.addAttribute("groupNumber", marker.getGroupNumber());
|
|
|
|
- return "redirect:/admin/exam/marker";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ // @RequestMapping("/batch-create")
|
|
|
|
+ // @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
|
+ // public String createInit(Model model, HttpServletRequest request,
|
|
|
|
+ // @RequestParam(required = false) String subjectCode,
|
|
|
|
+ // @RequestParam(required = false) Integer groupNumber) {
|
|
|
|
+ // int examId = getSessionExamId(request);
|
|
|
|
+ // model.addAttribute("subjectList", getExamSubject(examId,
|
|
|
|
+ // RequestUtils.getWebUser(request)));
|
|
|
|
+ // if (subjectCode != null) {
|
|
|
|
+ // model.addAttribute("subjectCode", subjectCode);
|
|
|
|
+ // model.addAttribute("groupList", groupService.findByExamAndSubject(examId,
|
|
|
|
+ // subjectCode));
|
|
|
|
+ // if (groupNumber != null) {
|
|
|
|
+ // model.addAttribute("groupNumber", groupNumber);
|
|
|
|
+ // }
|
|
|
|
+ // } else {
|
|
|
|
+ // model.addAttribute("groupList", new ArrayList<MarkGroup>());
|
|
|
|
+ // }
|
|
|
|
+ // return "modules/exam/markerCreate";
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // @Logging(menu = "创建评卷员", type = LogType.ADD)
|
|
|
|
+ // @RequestMapping(value = "/batch-create", method = RequestMethod.POST)
|
|
|
|
+ // @RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
|
+ // public ModelAndView create(HttpServletRequest request, @RequestParam
|
|
|
|
+ // String subjectCode,
|
|
|
|
+ // @RequestParam Integer groupNumber, @RequestParam Integer count,
|
|
|
|
+ // @RequestParam(required = false) String password) {
|
|
|
|
+ // int examId = getSessionExamId(request);
|
|
|
|
+ // ExamSubject subject = subjectService.find(examId, subjectCode);
|
|
|
|
+ // ModelAndView view = new ModelAndView("redirect:/admin/exam/marker");
|
|
|
|
+ // if (subject != null && count > 0) {
|
|
|
|
+ // // markerService.batchCreate(subject, groupNumber, count, password);
|
|
|
|
+ // }
|
|
|
|
+ // view.addObject("subjectCode", subjectCode);
|
|
|
|
+ // if (groupNumber > 0) {
|
|
|
|
+ // view.addObject("groupNumber", groupNumber);
|
|
|
|
+ // }
|
|
|
|
+ // return view;
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ @Logging(menu = "评卷员重置", type = LogType.UPDATE)
|
|
@RequestMapping(value = "/reset", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/reset", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@@ -211,8 +220,8 @@ public class MarkerController extends BaseExamController {
|
|
JSONObject obj = new JSONObject();
|
|
JSONObject obj = new JSONObject();
|
|
if (marker != null) {
|
|
if (marker != null) {
|
|
try {
|
|
try {
|
|
- lockService
|
|
|
|
- .waitlock(LockType.GROUP, marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
|
|
|
+ lockService.waitlock(LockType.GROUP, marker.getExamId(), marker.getSubjectCode(),
|
|
|
|
+ marker.getGroupNumber());
|
|
lockService.waitlock(LockType.MARKER, marker.getId());
|
|
lockService.waitlock(LockType.MARKER, marker.getId());
|
|
|
|
|
|
markService.resetMarker(marker);
|
|
markService.resetMarker(marker);
|
|
@@ -233,6 +242,7 @@ public class MarkerController extends BaseExamController {
|
|
return obj;
|
|
return obj;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Logging(menu = "评卷员禁用/启用", type = LogType.UPDATE)
|
|
@RequestMapping(value = "/toggle", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/toggle", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@@ -250,45 +260,69 @@ public class MarkerController extends BaseExamController {
|
|
return obj;
|
|
return obj;
|
|
}
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/export", method = RequestMethod.POST)
|
|
|
|
- public String exportFile(MarkerSearchQuery query, HttpServletRequest request, HttpServletResponse response,
|
|
|
|
- RedirectAttributes redirectAttributes) {
|
|
|
|
- WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
- int examId = getSessionExamId(request);
|
|
|
|
- query.setExamId(examId);
|
|
|
|
- try {
|
|
|
|
- query.setPageNumber(1);
|
|
|
|
- query.setPageSize(Integer.MAX_VALUE);
|
|
|
|
- query.setExamId(examId);
|
|
|
|
- query.orderById();
|
|
|
|
- subjectFilter(query, wu);
|
|
|
|
- String fileName = "评卷员账号.xlsx";
|
|
|
|
- query = markerService.findByQuery(query);
|
|
|
|
- for (Marker marker : query.getResult()) {
|
|
|
|
- ExamSubject subject = subjectService.find(examId, marker.getSubjectCode());
|
|
|
|
- if (subject != null) {
|
|
|
|
- marker.setSubjectName(subject.getCode() + "-" + subject.getName());
|
|
|
|
- } else {
|
|
|
|
- marker.setSubjectName("");
|
|
|
|
- }
|
|
|
|
- MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
|
- if (group != null) {
|
|
|
|
- group.setQuestionList(questionService
|
|
|
|
- .findByExamAndSubjectAndObjectiveAndGroupNumber(examId, group.getSubjectCode(), false,
|
|
|
|
- group.getNumber()));
|
|
|
|
- marker.setGroupName(group.getNumber() + "-" + group.getTitle());
|
|
|
|
- } else {
|
|
|
|
- marker.setGroupName("");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- new ExportExcel("评卷员数据", Marker.class).setDataList(query.getResult()).write(response, fileName).dispose();
|
|
|
|
- return null;
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- addMessage(redirectAttributes, "导出评卷员失败!" + e.getMessage());
|
|
|
|
|
|
+ // @Logging(menu = "评卷员导出", type = LogType.EXPORT)
|
|
|
|
+ // @RequestMapping(value = "/export", method = RequestMethod.POST)
|
|
|
|
+ // public String exportFile(MarkerSearchQuery query, HttpServletRequest
|
|
|
|
+ // request, HttpServletResponse response,
|
|
|
|
+ // RedirectAttributes redirectAttributes) {
|
|
|
|
+ // WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ // int examId = getSessionExamId(request);
|
|
|
|
+ // query.setExamId(examId);
|
|
|
|
+ // try {
|
|
|
|
+ // query.setPageNumber(1);
|
|
|
|
+ // query.setPageSize(Integer.MAX_VALUE);
|
|
|
|
+ // query.setExamId(examId);
|
|
|
|
+ // query.orderById();
|
|
|
|
+ // subjectFilter(query, wu);
|
|
|
|
+ // String fileName = "评卷员账号.xlsx";
|
|
|
|
+ // query = markerService.findByQuery(query);
|
|
|
|
+ // for (Marker marker : query.getResult()) {
|
|
|
|
+ // ExamSubject subject = subjectService.find(examId,
|
|
|
|
+ // marker.getSubjectCode());
|
|
|
|
+ // if (subject != null) {
|
|
|
|
+ // marker.setSubjectName(subject.getCode() + "-" + subject.getName());
|
|
|
|
+ // } else {
|
|
|
|
+ // marker.setSubjectName("");
|
|
|
|
+ // }
|
|
|
|
+ // MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(),
|
|
|
|
+ // marker.getGroupNumber());
|
|
|
|
+ // if (group != null) {
|
|
|
|
+ // group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
|
|
|
|
+ // group.getSubjectCode(), false, group.getNumber()));
|
|
|
|
+ // marker.setGroupName(group.getNumber() + "-" + group.getTitle());
|
|
|
|
+ // } else {
|
|
|
|
+ // marker.setGroupName("");
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // new ExportExcel("评卷员数据",
|
|
|
|
+ // Marker.class).setDataList(query.getResult()).write(response,
|
|
|
|
+ // fileName).dispose();
|
|
|
|
+ // return null;
|
|
|
|
+ // } catch (Exception e) {
|
|
|
|
+ // addMessage(redirectAttributes, "导出评卷员失败!" + e.getMessage());
|
|
|
|
+ // }
|
|
|
|
+ // return "redirect:/admin/exam/marker?repage";
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ @Logging(menu = "评卷员重置密码", type = LogType.UPDATE)
|
|
|
|
+ @RequestMapping(value = "/reSetPassword", method = RequestMethod.POST)
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public JSONObject reSetPassword(@RequestParam Integer id, @RequestParam String password) {
|
|
|
|
+ Marker marker = markerService.findById(id);
|
|
|
|
+ User user = userService.findById(marker.getUserId());
|
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
|
+ if (user != null) {
|
|
|
|
+ user.setPassword(Md5EncryptUtils.md5(password));
|
|
|
|
+ user = userService.save(user);
|
|
|
|
+ obj.accumulate("success", true);
|
|
|
|
+ } else {
|
|
|
|
+ obj.accumulate("success", false);
|
|
|
|
+ obj.accumulate("message", "该评卷员不存在");
|
|
}
|
|
}
|
|
- return "redirect:/admin/exam/marker?repage";
|
|
|
|
|
|
+ return obj;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Logging(menu = "评卷员设置任务数量", type = LogType.UPDATE)
|
|
@RequestMapping(value = "/setTaskCount", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/setTaskCount", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public JSONObject setTaskCount(@RequestParam Integer id, @RequestParam Integer taskCount) {
|
|
public JSONObject setTaskCount(@RequestParam Integer id, @RequestParam Integer taskCount) {
|
|
@@ -319,68 +353,77 @@ public class MarkerController extends BaseExamController {
|
|
return "redirect:" + "/admin/exam/marker";
|
|
return "redirect:" + "/admin/exam/marker";
|
|
}
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/updateLoginNameTemplate")
|
|
|
|
- public String updateLoginNameTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
|
|
|
|
- try {
|
|
|
|
- String fileName = "评卷员账号修改导入模板.xlsx";
|
|
|
|
- List<MarkerDTO> list = Lists.newArrayList();
|
|
|
|
- list.add(new MarkerDTO());
|
|
|
|
- new ExportExcel("评卷员账号修改数据", MarkerDTO.class, 2).setDataList(list).write(response, fileName).dispose();
|
|
|
|
- return null;
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- addMessage(redirectAttributes, "导入模板下载失败!失败信息:" + e.getMessage());
|
|
|
|
- }
|
|
|
|
- return "redirect:" + "/admin/exam/marker";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ @Logging(menu = "评卷员导入", type = LogType.IMPORT_FILE)
|
|
@RequestMapping(value = "/import", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/import", method = RequestMethod.POST)
|
|
public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes,
|
|
public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes,
|
|
@RequestParam String subjectCode) {
|
|
@RequestParam String subjectCode) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
|
|
+ WebUser wu = RequestUtils.getWebUser(request);
|
|
|
|
+ Integer schoolId = wu.getUser().getSchoolId();
|
|
try {
|
|
try {
|
|
int successNum = 0;
|
|
int successNum = 0;
|
|
int failureNum = 0;
|
|
int failureNum = 0;
|
|
StringBuilder failureMsg = new StringBuilder();
|
|
StringBuilder failureMsg = new StringBuilder();
|
|
ImportExcel ei = new ImportExcel(file, 1, 0);
|
|
ImportExcel ei = new ImportExcel(file, 1, 0);
|
|
List<Marker> list = ei.getDataList(Marker.class);
|
|
List<Marker> list = ei.getDataList(Marker.class);
|
|
- List<Marker> saveList = new LinkedList<Marker>();
|
|
|
|
- Map<String, Marker> saveMap = new HashMap<String, Marker>();
|
|
|
|
- Map<String, ExamSubject> current = null;
|
|
|
|
- current = new HashMap<String, ExamSubject>();
|
|
|
|
- List<ExamSubject> list2 = subjectService.list(examId);
|
|
|
|
- for (ExamSubject s : list2) {
|
|
|
|
- current.put(s.getCode(), s);
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ Map<String, User> userMap = new HashMap<String, User>();
|
|
|
|
+ Map<String, ExamSubject> subjectMap = new HashMap<String, ExamSubject>();
|
|
|
|
+ Map<String, MarkGroup> groupMap = new HashMap<String, MarkGroup>();
|
|
|
|
+ List<Marker> saveList = new ArrayList<Marker>();
|
|
|
|
+
|
|
for (Marker marker : list) {
|
|
for (Marker marker : list) {
|
|
- String password = "";
|
|
|
|
- if (StringUtils.isBlank(marker.getSubjectCode()) || StringUtils.isBlank(marker.getLoginName())) {
|
|
|
|
|
|
+ if (StringUtils.isBlank(marker.getLoginName())) {
|
|
|
|
+ failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode()
|
|
|
|
+ + MarkerExcelError.MARKERNAMENULL.getName());
|
|
|
|
+ failureNum++;
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- marker.setExamId(examId);
|
|
|
|
- marker.setName(marker.getLoginName());
|
|
|
|
- marker.setEnable(true);
|
|
|
|
- marker.setClassCount(0);
|
|
|
|
- if (StringUtils.isBlank(marker.getPassword())) {
|
|
|
|
- Random random = new Random();
|
|
|
|
- for (int i = 0; i < 6; i++) {
|
|
|
|
- password += random.nextInt(10);
|
|
|
|
|
|
+ ExamSubject examSubject = subjectMap.get(marker.getSubjectCode());
|
|
|
|
+ if (examSubject == null) {
|
|
|
|
+ examSubject = subjectService.find(examId, marker.getSubjectCode());
|
|
|
|
+ if (examSubject == null) {
|
|
|
|
+ failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode()
|
|
|
|
+ + MarkerExcelError.MARKERNOTCODE.getName());
|
|
|
|
+ failureNum++;
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
- marker.setPassword(password);
|
|
|
|
}
|
|
}
|
|
- MarkerExcelError markerExcelError = checkLongNameAndPassword(marker, current, saveMap);
|
|
|
|
- if (markerExcelError.equals(MarkerExcelError.MARKER)) {
|
|
|
|
- saveList.add(marker);
|
|
|
|
- saveMap.put(marker.getLoginName(), marker);
|
|
|
|
- } else {
|
|
|
|
- failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + markerExcelError.getName());
|
|
|
|
- failureNum++;
|
|
|
|
|
|
+ MarkGroup markGroup = groupMap.get(marker.getSubjectCode() + "-" + marker.getNumber());
|
|
|
|
+ if (markGroup == null) {
|
|
|
|
+ markGroup = groupService.findOne(examId, marker.getSubjectCode(), marker.getNumber());
|
|
|
|
+ if (markGroup == null) {
|
|
|
|
+ failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode() + ","
|
|
|
|
+ + marker.getNumber() + MarkerExcelError.MARKERNOTGROUP.getName());
|
|
|
|
+ failureNum++;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ User user = userMap.get(marker.getLoginName().trim());
|
|
|
|
+ if (user == null) {
|
|
|
|
+ user = userService.findByLoginName(marker.getLoginName().trim());
|
|
|
|
+ if (user != null && !schoolId.equals(user.getSchoolId())) {
|
|
|
|
+ failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode()
|
|
|
|
+ + MarkerExcelError.MARKERNAMEUSED.getName());
|
|
|
|
+ failureNum++;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (user == null) {
|
|
|
|
+ user = getUser(userMap, marker.getLoginName().trim(), schoolId);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ subjectMap.put(examSubject.getCode(), examSubject);
|
|
|
|
+ groupMap.put(markGroup.getSubjectCode() + "-" + markGroup.getNumber(), markGroup);
|
|
|
|
+ marker = getMarker(examId, examSubject.getCode(), markGroup.getNumber(), user.getId());
|
|
|
|
+ saveList.add(marker);
|
|
}
|
|
}
|
|
successNum = markerService.batchSave(saveList);
|
|
successNum = markerService.batchSave(saveList);
|
|
if (failureNum > 0) {
|
|
if (failureNum > 0) {
|
|
failureMsg.insert(0, ",失败 " + failureNum + " 条记录!");
|
|
failureMsg.insert(0, ",失败 " + failureNum + " 条记录!");
|
|
}
|
|
}
|
|
- addMessage(redirectAttributes, "已成功导入 " + successNum + " 条评卷员" + failureMsg);
|
|
|
|
|
|
+ String message = "已成功导入 " + successNum + " 条评卷员 ";
|
|
|
|
+ addMessage(redirectAttributes, message + failureMsg);
|
|
|
|
+ RequestUtils.setLog(request, message);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("Batch import marker error!", e);
|
|
log.error("Batch import marker error!", e);
|
|
addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
|
|
addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
|
|
@@ -388,122 +431,85 @@ public class MarkerController extends BaseExamController {
|
|
return "redirect:" + "/admin/exam/marker?subjectCode=" + subjectCode;
|
|
return "redirect:" + "/admin/exam/marker?subjectCode=" + subjectCode;
|
|
}
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/importUpdate", method = RequestMethod.POST)
|
|
|
|
- public String importUpdateFile(HttpServletRequest request, MultipartFile file,
|
|
|
|
- RedirectAttributes redirectAttributes) {
|
|
|
|
- try {
|
|
|
|
- int successNum = 0;
|
|
|
|
- int failureNum = 0;
|
|
|
|
- StringBuilder failureMsg = new StringBuilder();
|
|
|
|
- ImportExcel ei = new ImportExcel(file, 1, 0);
|
|
|
|
- List<MarkerDTO> list = ei.getDataList(MarkerDTO.class);
|
|
|
|
- List<Marker> saveList = new LinkedList<Marker>();
|
|
|
|
- Map<String, Marker> current = null;
|
|
|
|
- List<Marker> list2 = markerService.findMode("common");
|
|
|
|
- if (list2.size() < 10000) {
|
|
|
|
- current = new HashMap<String, Marker>();
|
|
|
|
- for (Marker s : list2) {
|
|
|
|
- current.put(s.getLoginName(), s);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- for (MarkerDTO markerDTO : list) {
|
|
|
|
- if (StringUtils.isBlank(markerDTO.getSubjectCode()) || StringUtils.isBlank(markerDTO.getLoginName())
|
|
|
|
- || StringUtils.isBlank(markerDTO.getNewLoginName()) || StringUtils
|
|
|
|
- .isBlank(markerDTO.getPassword())) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- MarkerExcelError markerExcelError = checkExcelData(markerDTO, current);
|
|
|
|
- if (markerExcelError.equals(MarkerExcelError.MARKER)) {
|
|
|
|
- Marker marker = null;
|
|
|
|
- if (current != null) {
|
|
|
|
- marker = current.get(markerDTO.getLoginName());
|
|
|
|
- } else {
|
|
|
|
- marker = markerService.findByLoginName(markerDTO.getLoginName());
|
|
|
|
- }
|
|
|
|
- marker.setLoginName(markerDTO.getNewLoginName());
|
|
|
|
- marker.setPassword(markerDTO.getPassword());
|
|
|
|
- saveList.add(marker);
|
|
|
|
- } else {
|
|
|
|
- failureMsg.append("<br/>科目代码(" + markerDTO.getSubjectCode() + ")原评卷员(" + markerDTO.getLoginName()
|
|
|
|
- + ")更换新评卷员为(" + markerDTO.getNewLoginName() + ")失败!");
|
|
|
|
- failureMsg.append("---->失败原因:(" + markerExcelError.getName() + ")");
|
|
|
|
- failureNum++;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- successNum = markerService.batchSave(saveList);
|
|
|
|
- if (failureNum > 0) {
|
|
|
|
- failureMsg.insert(0, ",失败 " + failureNum + " 条记录!");
|
|
|
|
- }
|
|
|
|
- addMessage(redirectAttributes, "已成功导入 " + successNum + " 条" + failureMsg);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("Batch import marker error!", e);
|
|
|
|
- addMessage(redirectAttributes, "导入修改评卷员账号失败!失败信息:" + e.getMessage());
|
|
|
|
|
|
+ private Marker getMarker(int examId, String subjectCode, Integer number, Integer userId) {
|
|
|
|
+ Marker marker = markerService.findByExamAndSubjectAndNumberAndUserId(examId, subjectCode, number, userId);
|
|
|
|
+ if (marker == null) {
|
|
|
|
+ marker = new Marker();
|
|
|
|
+ marker.setExamId(examId);
|
|
|
|
+ marker.setSubjectCode(subjectCode);
|
|
|
|
+ marker.setUserId(userId);
|
|
|
|
+ marker.setEnable(true);
|
|
}
|
|
}
|
|
- return "redirect:" + "/admin/exam/marker";
|
|
|
|
|
|
+ return marker;
|
|
}
|
|
}
|
|
|
|
|
|
- private MarkerExcelError checkLongNameAndPassword(Marker marker, Map<String, ExamSubject> current,
|
|
|
|
- Map<String, Marker> saveMap) {
|
|
|
|
- Marker previous = null;
|
|
|
|
-
|
|
|
|
- if (current != null && current.get(marker.getSubjectCode()) == null) {
|
|
|
|
- return MarkerExcelError.MARKERNOTCODE;
|
|
|
|
- }
|
|
|
|
- MarkGroup group = groupService
|
|
|
|
- .findOne(marker.getExamId(), marker.getSubjectCode(), Integer.valueOf(marker.getGroupName()));
|
|
|
|
- if (group == null) {
|
|
|
|
- return MarkerExcelError.MARKERNOTGROUP;
|
|
|
|
- } else {
|
|
|
|
- marker.setGroupNumber(Integer.valueOf(marker.getGroupName()));
|
|
|
|
- }
|
|
|
|
- if (saveMap != null) {
|
|
|
|
- previous = saveMap.get(marker.getLoginName());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (previous != null) {
|
|
|
|
- return MarkerExcelError.MARKERED;
|
|
|
|
|
|
+ private User getUser(Map<String, User> saveMap, String loginName, Integer schoolId) {
|
|
|
|
+ User user = saveMap.get(loginName);
|
|
|
|
+ if (user == null) {
|
|
|
|
+ user = new User();
|
|
|
|
+ user.setLoginName(loginName);
|
|
|
|
+ user.setName(loginName);
|
|
|
|
+ user.setPassword(Md5EncryptUtils.md5(USER_PASSWORD));
|
|
|
|
+ user.setRole(Role.MARKER);
|
|
|
|
+ user.setSchoolId(schoolId);
|
|
|
|
+ user.setEnable(true);
|
|
|
|
+ user.setCreatedTime(new Date());
|
|
|
|
+ userService.save(user);
|
|
|
|
+ saveMap.put(loginName, user);
|
|
}
|
|
}
|
|
|
|
+ return user;
|
|
|
|
+ }
|
|
|
|
|
|
- previous = markerService.findByLoginName(marker.getLoginName());
|
|
|
|
-
|
|
|
|
- if (marker.getPassword().length() > 0 && marker.getPassword().length() < 4) {
|
|
|
|
- return MarkerExcelError.MARKERPWERROR;
|
|
|
|
|
|
+ @RequestMapping("/save")
|
|
|
|
+ public String add(Model model, HttpServletRequest request, UserSearchQuery query, @RequestParam String subjectCode) {
|
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
|
+ if (examId > 0) {
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ query.setSchoolId(exam.getSchoolId());
|
|
|
|
+ query.setRole(Role.MARKER);
|
|
|
|
+ query = userService.findByQuery(query);
|
|
|
|
+ model.addAttribute("query", query);
|
|
|
|
+ model.addAttribute("subject", subjectService.find(examId, subjectCode));
|
|
|
|
+ return "modules/exam/markerSubject";
|
|
|
|
+ } else {
|
|
|
|
+ return "redirect:/admin/exam/list";
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- if (previous == null) {
|
|
|
|
- return MarkerExcelError.MARKER;
|
|
|
|
|
|
+ @Logging(menu = "评卷员绑定", type = LogType.ADD)
|
|
|
|
+ @RequestMapping(value = "/add", method = RequestMethod.POST)
|
|
|
|
+ public String save(@RequestParam String subjectCode, @RequestParam Integer groupNumber,
|
|
|
|
+ @RequestParam Integer[] userIds, HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
|
|
+ int examId = getSessionExamId(request);
|
|
|
|
+ if (examId > 0) {
|
|
|
|
+ MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
|
|
|
|
+ if (group != null) {
|
|
|
|
+ markerService.save(group, userIds);
|
|
|
|
+ addMessage(redirectAttributes, subjectCode + "设置成功");
|
|
|
|
+ return "redirect:/admin/exam/marker?subjectCode=" + subjectCode + "&groupNumber=" + groupNumber;
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "科目不存在");
|
|
|
|
+ return "redirect:/admin/exam/marker";
|
|
|
|
+ } else {
|
|
|
|
+ return "redirect:/admin/exam/list";
|
|
}
|
|
}
|
|
- return MarkerExcelError.MARKERED;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- // 校验excel中数据
|
|
|
|
- public MarkerExcelError checkExcelData(MarkerDTO markerDTO, Map<String, Marker> current) {
|
|
|
|
- if (markerDTO != null) {
|
|
|
|
- Marker marker = null;
|
|
|
|
- if (current == null) {
|
|
|
|
- marker = markerService.findByLoginName(markerDTO.getLoginName());
|
|
|
|
- } else {
|
|
|
|
- marker = current.get(markerDTO.getLoginName());
|
|
|
|
- }
|
|
|
|
- if (markerDTO.getPassword().length() < 4) {
|
|
|
|
- return MarkerExcelError.MARKERPWERROR;
|
|
|
|
- }
|
|
|
|
- if (marker != null) {
|
|
|
|
- if (marker.getSubjectCode().equals(markerDTO.getSubjectCode())) {
|
|
|
|
- if (markerService.countByLoginName(markerDTO.getNewLoginName()) > 0) {
|
|
|
|
- return MarkerExcelError.MARKERNEWMISS;
|
|
|
|
- } else {
|
|
|
|
- return MarkerExcelError.MARKER;
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- return MarkerExcelError.MARKERCODEMISS;
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- return MarkerExcelError.MARKERMISS;
|
|
|
|
- }
|
|
|
|
|
|
+ @RequestMapping("/delete")
|
|
|
|
+ public String delete(@RequestParam Integer markerId, RedirectAttributes redirectAttributes) {
|
|
|
|
+ Marker marker = markerService.findById(markerId);
|
|
|
|
+ if (marker == null) {
|
|
|
|
+ return "redirect:/admin/exam/marker";
|
|
|
|
+ }
|
|
|
|
+ long count = libraryService.countByMarker(markerId);
|
|
|
|
+ String subjectCode = marker.getSubjectCode();
|
|
|
|
+ Integer groupNumber = marker.getGroupNumber();
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ addMessage(redirectAttributes, "删除评卷员失败,该评卷员已开始评卷");
|
|
} else {
|
|
} else {
|
|
- return MarkerExcelError.MARKERNOTINFO;
|
|
|
|
|
|
+ markerService.deleteById(markerId);
|
|
}
|
|
}
|
|
|
|
+ return "redirect:/admin/exam/marker?subjectCode=" + subjectCode + "&groupNumber=" + groupNumber;
|
|
}
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/class/{markerId}", method = RequestMethod.GET)
|
|
@RequestMapping(value = "/class/{markerId}", method = RequestMethod.GET)
|
|
@@ -522,61 +528,67 @@ public class MarkerController extends BaseExamController {
|
|
return "redirect:/admin/exam/marker";
|
|
return "redirect:/admin/exam/marker";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Logging(menu = "评卷员班级绑定", type = LogType.UPDATE)
|
|
@RequestMapping(value = "/class/{markerId}", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/class/{markerId}", method = RequestMethod.POST)
|
|
public String classSave(@PathVariable Integer markerId, @RequestParam(required = false) String[] classes,
|
|
public String classSave(@PathVariable Integer markerId, @RequestParam(required = false) String[] classes,
|
|
Model model, RedirectAttributes redirectAttributes) {
|
|
Model model, RedirectAttributes redirectAttributes) {
|
|
Marker marker = markerService.findById(markerId);
|
|
Marker marker = markerService.findById(markerId);
|
|
if (marker != null) {
|
|
if (marker != null) {
|
|
classService.save(marker, classes);
|
|
classService.save(marker, classes);
|
|
- addMessage(redirectAttributes, "保存'" + marker.getLoginName() + "'成功");
|
|
|
|
- return "redirect:" + "/admin/exam/marker?subjectCode=" + marker.getSubjectCode() + "&groupNumber=" + marker
|
|
|
|
- .getGroupNumber();
|
|
|
|
- }
|
|
|
|
- addMessage(redirectAttributes, "评卷员不存在");
|
|
|
|
- return "redirect:/admin/exam/marker";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RequestMapping(value = "/account/{markerId}")
|
|
|
|
- public String editAccount(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
|
|
|
|
- @PathVariable Integer markerId) {
|
|
|
|
- Exam exam = examService.findById(getSessionExamId(request));
|
|
|
|
- Marker marker = markerService.findById(markerId);
|
|
|
|
- if (exam != null && marker != null && exam.getId().equals(marker.getExamId())) {
|
|
|
|
- model.addAttribute("marker", marker);
|
|
|
|
- model.addAttribute("openAccountList", userService
|
|
|
|
- .listUnbindOpenAccount(exam.getSchoolId(), marker.getExamId(), marker.getSubjectCode(),
|
|
|
|
- marker.getGroupNumber()));
|
|
|
|
- return "modules/exam/markerAccount";
|
|
|
|
|
|
+ addMessage(redirectAttributes, "保存成功");
|
|
|
|
+ return "redirect:" + "/admin/exam/marker?subjectCode=" + marker.getSubjectCode() + "&groupNumber="
|
|
|
|
+ + marker.getGroupNumber();
|
|
}
|
|
}
|
|
addMessage(redirectAttributes, "评卷员不存在");
|
|
addMessage(redirectAttributes, "评卷员不存在");
|
|
return "redirect:/admin/exam/marker";
|
|
return "redirect:/admin/exam/marker";
|
|
}
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/account/bind", method = RequestMethod.POST)
|
|
|
|
- @ResponseBody
|
|
|
|
- @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
|
|
- public boolean bindAccount(@RequestParam Integer markerId, @RequestParam Integer accountId) {
|
|
|
|
- Marker marker = markerService.findById(markerId);
|
|
|
|
- if (marker == null) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- OpenAccount oa = userService.findOpenAccount(accountId);
|
|
|
|
- if (oa == null || !oa.isEnable()) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- if (markerService.countByExamAndSubjectAndGroupAndOpenAccount(marker.getExamId(), marker.getSubjectCode(),
|
|
|
|
- marker.getGroupNumber(), accountId) == 0) {
|
|
|
|
- markerService.updateOpenAccountById(markerId, accountId);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RequestMapping(value = "/account/unbind", method = RequestMethod.POST)
|
|
|
|
- @ResponseBody
|
|
|
|
- @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
|
|
- public boolean unbindOpenAccount(@RequestParam Integer markerId) {
|
|
|
|
- markerService.updateOpenAccountById(markerId, null);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
|
|
+ // @RequestMapping(value = "/account/{markerId}")
|
|
|
|
+ // public String editAccount(HttpServletRequest request, Model model,
|
|
|
|
+ // RedirectAttributes redirectAttributes,
|
|
|
|
+ // @PathVariable Integer markerId) {
|
|
|
|
+ // Exam exam = examService.findById(getSessionExamId(request));
|
|
|
|
+ // Marker marker = markerService.findById(markerId);
|
|
|
|
+ // if (exam != null && marker != null &&
|
|
|
|
+ // exam.getId().equals(marker.getExamId())) {
|
|
|
|
+ // model.addAttribute("marker", marker);
|
|
|
|
+ // model.addAttribute("openAccountList",
|
|
|
|
+ // userService.listUnbindOpenAccount(exam.getSchoolId(),
|
|
|
|
+ // marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber()));
|
|
|
|
+ // return "modules/exam/markerAccount";
|
|
|
|
+ // }
|
|
|
|
+ // addMessage(redirectAttributes, "评卷员不存在");
|
|
|
|
+ // return "redirect:/admin/exam/marker";
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // @RequestMapping(value = "/account/bind", method = RequestMethod.POST)
|
|
|
|
+ // @ResponseBody
|
|
|
|
+ // @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
|
|
+ // public boolean bindAccount(@RequestParam Integer markerId, @RequestParam
|
|
|
|
+ // Integer accountId) {
|
|
|
|
+ // Marker marker = markerService.findById(markerId);
|
|
|
|
+ // if (marker == null) {
|
|
|
|
+ // return false;
|
|
|
|
+ // }
|
|
|
|
+ // OpenAccount oa = userService.findOpenAccount(accountId);
|
|
|
|
+ // if (oa == null || !oa.isEnable()) {
|
|
|
|
+ // return false;
|
|
|
|
+ // }
|
|
|
|
+ // if
|
|
|
|
+ // (markerService.countByExamAndSubjectAndGroupAndOpenAccount(marker.getExamId(),
|
|
|
|
+ // marker.getSubjectCode(),
|
|
|
|
+ // marker.getGroupNumber(), accountId) == 0) {
|
|
|
|
+ // markerService.updateOpenAccountById(markerId, accountId);
|
|
|
|
+ // return true;
|
|
|
|
+ // }
|
|
|
|
+ // return false;
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // @RequestMapping(value = "/account/unbind", method = RequestMethod.POST)
|
|
|
|
+ // @ResponseBody
|
|
|
|
+ // @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
|
|
+ // public boolean unbindOpenAccount(@RequestParam Integer markerId) {
|
|
|
|
+ // markerService.updateOpenAccountById(markerId, null);
|
|
|
|
+ // return true;
|
|
|
|
+ // }
|
|
}
|
|
}
|