|
@@ -40,6 +40,7 @@ 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.MarkGroupService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
|
|
import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.UserExamService;
|
|
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.biz.user.service.query.UserSearchQuery;
|
|
@@ -56,7 +57,7 @@ import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
@RequestMapping("/admin/user")
|
|
@RequestMapping("/admin/user")
|
|
public class UserController extends BaseExamController {
|
|
public class UserController extends BaseExamController {
|
|
|
|
|
|
- public static final String SUBJECT_CODE_SPLIT = ",";
|
|
|
|
|
|
+ public static final String SPLIT = ",";
|
|
|
|
|
|
public static Role[] ROLE_LIST = { Role.SCANNER, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.MARKER,
|
|
public static Role[] ROLE_LIST = { Role.SCANNER, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.MARKER,
|
|
Role.SCHOOL_VIEWER, Role.SCHOOL_ADMIN, Role.COLLEGE_ADMIN };
|
|
Role.SCHOOL_VIEWER, Role.SCHOOL_ADMIN, Role.COLLEGE_ADMIN };
|
|
@@ -67,6 +68,9 @@ public class UserController extends BaseExamController {
|
|
@Autowired
|
|
@Autowired
|
|
private SubjectUserService subjectUserService;
|
|
private SubjectUserService subjectUserService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserExamService userExamService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private MarkerService markerService;
|
|
private MarkerService markerService;
|
|
|
|
|
|
@@ -122,7 +126,8 @@ public class UserController extends BaseExamController {
|
|
if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR
|
|
if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR
|
|
|| user.getRole() == Role.COLLEGE_ADMIN) {
|
|
|| user.getRole() == Role.COLLEGE_ADMIN) {
|
|
view.addObject("subjectCodeString",
|
|
view.addObject("subjectCodeString",
|
|
- StringUtils.join(subjectUserService.findSubjectCode(user.getId()), SUBJECT_CODE_SPLIT));
|
|
|
|
|
|
+ StringUtils.join(subjectUserService.findSubjectCode(user.getId()), SPLIT));
|
|
|
|
+ view.addObject("examIdString", StringUtils.join(userExamService.findExamIds(user.getId()), SPLIT));
|
|
}
|
|
}
|
|
view.addObject("query", query);
|
|
view.addObject("query", query);
|
|
return view;
|
|
return view;
|
|
@@ -136,6 +141,7 @@ public class UserController extends BaseExamController {
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
public String save(HttpServletRequest request, Model model, User user,
|
|
public String save(HttpServletRequest request, Model model, User user,
|
|
@RequestParam(required = false) String subjectCodeString,
|
|
@RequestParam(required = false) String subjectCodeString,
|
|
|
|
+ @RequestParam(required = false) String examIdString,
|
|
@RequestParam(required = false, defaultValue = "1") int pageNumber,
|
|
@RequestParam(required = false, defaultValue = "1") int pageNumber,
|
|
@RequestParam(required = false) UserSource querySource, @RequestParam(required = false) Role queryRole,
|
|
@RequestParam(required = false) UserSource querySource, @RequestParam(required = false) Role queryRole,
|
|
@RequestParam(required = false) String queryLoginName, @RequestParam(required = false) String queryName,
|
|
@RequestParam(required = false) String queryLoginName, @RequestParam(required = false) String queryName,
|
|
@@ -146,7 +152,7 @@ public class UserController extends BaseExamController {
|
|
previous = userService.findById(user.getId());
|
|
previous = userService.findById(user.getId());
|
|
}
|
|
}
|
|
if (previous == null) {
|
|
if (previous == null) {
|
|
- String message = validate(user, subjectCodeString);
|
|
|
|
|
|
+ String message = validate(user, subjectCodeString, examIdString);
|
|
if (message == null) {
|
|
if (message == null) {
|
|
String password = StringEscapeUtils.unescapeHtml(user.getPassword());
|
|
String password = StringEscapeUtils.unescapeHtml(user.getPassword());
|
|
user.setPassword(EncryptUtils.md5(password));
|
|
user.setPassword(EncryptUtils.md5(password));
|
|
@@ -158,6 +164,9 @@ public class UserController extends BaseExamController {
|
|
if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
|
|
if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
|
|
subjectUserService.updateByUserId(user.getId(), getSubjectCodeSet(subjectCodeString));
|
|
subjectUserService.updateByUserId(user.getId(), getSubjectCodeSet(subjectCodeString));
|
|
}
|
|
}
|
|
|
|
+ if (user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
|
+ userExamService.updateByUserId(user.getId(), getExamIdSet(examIdString));
|
|
|
|
+ }
|
|
if (user.getRole() == Role.COLLEGE_ADMIN) {
|
|
if (user.getRole() == Role.COLLEGE_ADMIN) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
subjectUserService.updateByUserId(user.getId(),
|
|
subjectUserService.updateByUserId(user.getId(),
|
|
@@ -179,11 +188,14 @@ public class UserController extends BaseExamController {
|
|
}
|
|
}
|
|
previous.setEnable(user.isEnable());
|
|
previous.setEnable(user.isEnable());
|
|
previous.setDescription(user.getDescription());
|
|
previous.setDescription(user.getDescription());
|
|
- String message = validate(previous, subjectCodeString);
|
|
|
|
|
|
+ String message = validate(previous, subjectCodeString, examIdString);
|
|
if (message == null) {
|
|
if (message == null) {
|
|
if (previous.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
|
|
if (previous.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
|
|
subjectUserService.updateByUserId(previous.getId(), getSubjectCodeSet(subjectCodeString));
|
|
subjectUserService.updateByUserId(previous.getId(), getSubjectCodeSet(subjectCodeString));
|
|
}
|
|
}
|
|
|
|
+ if (user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
|
+ userExamService.updateByUserId(user.getId(), getExamIdSet(examIdString));
|
|
|
|
+ }
|
|
if (user.getRole() == Role.COLLEGE_ADMIN) {
|
|
if (user.getRole() == Role.COLLEGE_ADMIN) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
subjectUserService.updateByUserId(user.getId(),
|
|
subjectUserService.updateByUserId(user.getId(),
|
|
@@ -216,7 +228,7 @@ public class UserController extends BaseExamController {
|
|
+ "&loginName=" + queryLoginName + "&name=" + queryName + "&enable=" + enable;
|
|
+ "&loginName=" + queryLoginName + "&name=" + queryName + "&enable=" + enable;
|
|
}
|
|
}
|
|
|
|
|
|
- private String validate(User user, String subjectCodeString) {
|
|
|
|
|
|
+ private String validate(User user, String subjectCodeString, String examIdString) {
|
|
String message = null;
|
|
String message = null;
|
|
if (StringUtils.isBlank(user.getLoginName())) {
|
|
if (StringUtils.isBlank(user.getLoginName())) {
|
|
message = "登录名不能为空";
|
|
message = "登录名不能为空";
|
|
@@ -232,6 +244,9 @@ public class UserController extends BaseExamController {
|
|
message = "复核员必须绑定科目代码";
|
|
message = "复核员必须绑定科目代码";
|
|
} else if (user.getRole() == Role.COLLEGE_ADMIN && StringUtils.isBlank(user.getDescription())) {
|
|
} else if (user.getRole() == Role.COLLEGE_ADMIN && StringUtils.isBlank(user.getDescription())) {
|
|
message = "学院管理员必须绑定学院";
|
|
message = "学院管理员必须绑定学院";
|
|
|
|
+ } else if (user.getRole() == Role.SCHOOL_VIEWER
|
|
|
|
+ && (StringUtils.isBlank(subjectCodeString) || StringUtils.isBlank(examIdString))) {
|
|
|
|
+ message = "学校查询员必须绑定考试ID和科目代码";
|
|
}
|
|
}
|
|
return message;
|
|
return message;
|
|
}
|
|
}
|
|
@@ -239,7 +254,7 @@ public class UserController extends BaseExamController {
|
|
private Set<String> getSubjectCodeSet(String subjectCodeString) {
|
|
private Set<String> getSubjectCodeSet(String subjectCodeString) {
|
|
Set<String> set = new HashSet<>();
|
|
Set<String> set = new HashSet<>();
|
|
try {
|
|
try {
|
|
- String[] values = StringUtils.split(subjectCodeString, SUBJECT_CODE_SPLIT);
|
|
|
|
|
|
+ String[] values = StringUtils.split(subjectCodeString, SPLIT);
|
|
for (String value : values) {
|
|
for (String value : values) {
|
|
value = StringUtils.trimToNull(value);
|
|
value = StringUtils.trimToNull(value);
|
|
if (value != null) {
|
|
if (value != null) {
|
|
@@ -252,6 +267,22 @@ public class UserController extends BaseExamController {
|
|
return set;
|
|
return set;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private Set<Integer> getExamIdSet(String examIdString) {
|
|
|
|
+ Set<Integer> set = new HashSet<>();
|
|
|
|
+ try {
|
|
|
|
+ String[] values = StringUtils.split(examIdString, SPLIT);
|
|
|
|
+ for (String value : values) {
|
|
|
|
+ value = StringUtils.trimToNull(value);
|
|
|
|
+ if (value != null) {
|
|
|
|
+ set.add(Integer.parseInt(value));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return set;
|
|
|
|
+ }
|
|
|
|
+
|
|
private Set<String> getSubjectCodeSetByCollege(int examId, String college) {
|
|
private Set<String> getSubjectCodeSetByCollege(int examId, String college) {
|
|
Set<String> set = new HashSet<>();
|
|
Set<String> set = new HashSet<>();
|
|
try {
|
|
try {
|