|
@@ -1,10 +1,6 @@
|
|
|
package cn.com.qmth.stmms.biz.user.service.impl;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.LinkedList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
@@ -19,16 +15,8 @@ import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-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.MarkGroup;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.SubjectUser;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
-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.MarkerService;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.*;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.*;
|
|
|
import cn.com.qmth.stmms.biz.user.dao.UserDao;
|
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
@@ -161,8 +149,8 @@ public class UserServiceImpl implements UserService {
|
|
|
predicates.add(cb.equal(root.get("role"), role));
|
|
|
}
|
|
|
}
|
|
|
- return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
|
|
|
- .size()]));
|
|
|
+ return predicates.isEmpty() ? cb.conjunction()
|
|
|
+ : cb.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
}
|
|
|
}, query);
|
|
|
if (result != null) {
|
|
@@ -232,32 +220,35 @@ public class UserServiceImpl implements UserService {
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random,String prefix) {
|
|
|
+ public int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random,
|
|
|
+ String prefix) {
|
|
|
int successNum = 0;
|
|
|
if (subjectCodes.size() == 0) {
|
|
|
List<ExamSubject> subjects = subjectService.list(examId);
|
|
|
for (ExamSubject subject : subjects) {
|
|
|
- successNum = successNum + saveMarkerBySubject(examId, number, password, subject.getCode(), random,prefix);
|
|
|
+ successNum = successNum
|
|
|
+ + saveMarkerBySubject(examId, number, password, subject.getCode(), random, prefix);
|
|
|
}
|
|
|
} else {
|
|
|
for (String subjectCode : subjectCodes) {
|
|
|
- successNum = successNum + saveMarkerBySubject(examId, number, password, subjectCode, random,prefix);
|
|
|
+ successNum = successNum + saveMarkerBySubject(examId, number, password, subjectCode, random, prefix);
|
|
|
}
|
|
|
}
|
|
|
return successNum;
|
|
|
}
|
|
|
|
|
|
- private int saveMarkerBySubject(int examId, Integer number, String password, String subjectCode, boolean random,String cusPrefix) {
|
|
|
+ private int saveMarkerBySubject(int examId, Integer number, String password, String subjectCode, boolean random,
|
|
|
+ String cusPrefix) {
|
|
|
Exam exam = examService.findById(examId);
|
|
|
List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subjectCode);
|
|
|
int successNum = 0;
|
|
|
for (MarkGroup group : groups) {
|
|
|
List<Marker> saveList = new ArrayList<Marker>();
|
|
|
String prefix;
|
|
|
- if(StringUtils.isNotBlank(cusPrefix)) {
|
|
|
- prefix = cusPrefix + "-" + subjectCode + "-" + group.getNumber() + "-";
|
|
|
- }else {
|
|
|
- prefix = exam.getSchoolId() + "-" + subjectCode + "-" + group.getNumber() + "-";
|
|
|
+ if (StringUtils.isNotBlank(cusPrefix)) {
|
|
|
+ prefix = cusPrefix + "-" + subjectCode + "-" + group.getNumber() + "-";
|
|
|
+ } else {
|
|
|
+ prefix = exam.getSchoolId() + "-" + subjectCode + "-" + group.getNumber() + "-";
|
|
|
}
|
|
|
int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
|
|
|
int createNumber = 1;
|
|
@@ -281,8 +272,10 @@ public class UserServiceImpl implements UserService {
|
|
|
} else {
|
|
|
if (StringUtils.isNotBlank(password)) {
|
|
|
user.setPassword(EncryptUtils.md5(password));
|
|
|
+ user.setRandomPassword(password);
|
|
|
} else {
|
|
|
user.setPassword(EncryptUtils.md5(USER_PASSWORD));
|
|
|
+ user.setRandomPassword(USER_PASSWORD);
|
|
|
}
|
|
|
}
|
|
|
userDao.save(user);
|
|
@@ -305,42 +298,43 @@ public class UserServiceImpl implements UserService {
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public int batchSaveSubjectUser(int examId, Role role, Set<String> subjectCodes, Integer number, String password,
|
|
|
- boolean random,String cusPrefix) {
|
|
|
+ boolean random, String cusPrefix) {
|
|
|
int successNum = 0;
|
|
|
if (subjectCodes.size() == 0) {
|
|
|
List<ExamSubject> subjects = subjectService.list(examId);
|
|
|
for (ExamSubject subject : subjects) {
|
|
|
- successNum = successNum
|
|
|
- + saveSubjectUserBySubject(examId, number, role, subject.getCode(), password, random,cusPrefix);
|
|
|
+ successNum = successNum + saveSubjectUserBySubject(examId, number, role, subject.getCode(), password,
|
|
|
+ random, cusPrefix);
|
|
|
}
|
|
|
} else {
|
|
|
for (String subjectCode : subjectCodes) {
|
|
|
- successNum = successNum + saveSubjectUserBySubject(examId, number, role, subjectCode, password, random,cusPrefix);
|
|
|
+ successNum = successNum
|
|
|
+ + saveSubjectUserBySubject(examId, number, role, subjectCode, password, random, cusPrefix);
|
|
|
}
|
|
|
}
|
|
|
return successNum;
|
|
|
}
|
|
|
|
|
|
private int saveSubjectUserBySubject(int examId, Integer number, Role role, String subjectCode, String password,
|
|
|
- boolean random,String cusPrefix) {
|
|
|
+ boolean random, String cusPrefix) {
|
|
|
Exam exam = examService.findById(examId);
|
|
|
List<SubjectUser> saveList = new ArrayList<SubjectUser>();
|
|
|
int successNum = 0;
|
|
|
int createNumber = 1;
|
|
|
- String prefix ;
|
|
|
+ String prefix;
|
|
|
if (role.equals(Role.INSPECTOR)) {
|
|
|
- if(StringUtils.isNotBlank(cusPrefix)) {
|
|
|
- prefix = cusPrefix + "-FH-" + subjectCode + "-";
|
|
|
- }else {
|
|
|
- prefix = exam.getSchoolId() + "-FH-" + subjectCode + "-";
|
|
|
- }
|
|
|
-
|
|
|
- }else {
|
|
|
- if(StringUtils.isNotBlank(cusPrefix)) {
|
|
|
- prefix = cusPrefix + "-" + subjectCode + "-";
|
|
|
- }else {
|
|
|
- prefix = exam.getSchoolId() + "-" + subjectCode + "-";
|
|
|
- }
|
|
|
+ if (StringUtils.isNotBlank(cusPrefix)) {
|
|
|
+ prefix = cusPrefix + "-FH-" + subjectCode + "-";
|
|
|
+ } else {
|
|
|
+ prefix = exam.getSchoolId() + "-FH-" + subjectCode + "-";
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotBlank(cusPrefix)) {
|
|
|
+ prefix = cusPrefix + "-" + subjectCode + "-";
|
|
|
+ } else {
|
|
|
+ prefix = exam.getSchoolId() + "-" + subjectCode + "-";
|
|
|
+ }
|
|
|
}
|
|
|
int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
|
|
|
while (saveList.size() < number) {
|
|
@@ -358,8 +352,10 @@ public class UserServiceImpl implements UserService {
|
|
|
} else {
|
|
|
if (StringUtils.isNotBlank(password)) {
|
|
|
user.setPassword(EncryptUtils.md5(password));
|
|
|
+ user.setRandomPassword(password);
|
|
|
} else {
|
|
|
user.setPassword(EncryptUtils.md5(USER_PASSWORD));
|
|
|
+ user.setRandomPassword(USER_PASSWORD);
|
|
|
}
|
|
|
}
|
|
|
user.setRole(role);
|