1
0
Эх сурвалжийг харах

批量建账号自定义前缀

xiatian 1 жил өмнө
parent
commit
a9a913ef10

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/UserService.java

@@ -30,10 +30,10 @@ public interface UserService {
 
 
     User findByAccount(Integer schoolId, String account);
     User findByAccount(Integer schoolId, String account);
 
 
-    int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random);
+    int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random,String cusPrefix);
 
 
     int batchSaveSubjectUser(int examId, Role role, Set<String> subjectCodes, Integer number, String password,
     int batchSaveSubjectUser(int examId, Role role, Set<String> subjectCodes, Integer number, String password,
-            boolean random);
+            boolean random,String cusPrefix);
 
 
     public int findMaxNumberByLoginNameStart(String prefix);
     public int findMaxNumberByLoginNameStart(String prefix);
 
 

+ 27 - 15
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/impl/UserServiceImpl.java

@@ -25,7 +25,6 @@ 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.model.SubjectUser;
 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.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.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;
@@ -66,9 +65,6 @@ public class UserServiceImpl implements UserService {
     @Autowired
     @Autowired
     private ExamSubjectService subjectService;
     private ExamSubjectService subjectService;
 
 
-    @Autowired
-    private ExamStudentService studentService;
-
     @Override
     @Override
     @Transactional
     @Transactional
     public User save(User user) {
     public User save(User user) {
@@ -236,28 +232,33 @@ public class UserServiceImpl implements UserService {
 
 
     @Transactional
     @Transactional
     @Override
     @Override
-    public int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random) {
+    public int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random,String prefix) {
         int successNum = 0;
         int successNum = 0;
         if (subjectCodes.size() == 0) {
         if (subjectCodes.size() == 0) {
             List<ExamSubject> subjects = subjectService.list(examId);
             List<ExamSubject> subjects = subjectService.list(examId);
             for (ExamSubject subject : subjects) {
             for (ExamSubject subject : subjects) {
-                successNum = successNum + saveMarkerBySubject(examId, number, password, subject.getCode(), random);
+                successNum = successNum + saveMarkerBySubject(examId, number, password, subject.getCode(), random,prefix);
             }
             }
         } else {
         } else {
             for (String subjectCode : subjectCodes) {
             for (String subjectCode : subjectCodes) {
-                successNum = successNum + saveMarkerBySubject(examId, number, password, subjectCode, random);
+                successNum = successNum + saveMarkerBySubject(examId, number, password, subjectCode, random,prefix);
             }
             }
         }
         }
         return successNum;
         return successNum;
     }
     }
 
 
-    private int saveMarkerBySubject(int examId, Integer number, String password, String subjectCode, boolean random) {
+    private int saveMarkerBySubject(int examId, Integer number, String password, String subjectCode, boolean random,String cusPrefix) {
         Exam exam = examService.findById(examId);
         Exam exam = examService.findById(examId);
         List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subjectCode);
         List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subjectCode);
         int successNum = 0;
         int successNum = 0;
         for (MarkGroup group : groups) {
         for (MarkGroup group : groups) {
             List<Marker> saveList = new ArrayList<Marker>();
             List<Marker> saveList = new ArrayList<Marker>();
-            String prefix = exam.getSchoolId() + "-" + subjectCode + "-" + group.getNumber() + "-";
+            String prefix;
+            if(StringUtils.isNotBlank(cusPrefix)) {
+            	prefix = cusPrefix + "-" + subjectCode + "-" + group.getNumber() + "-";
+            }else {
+            	prefix = exam.getSchoolId() + "-" + subjectCode + "-" + group.getNumber() + "-";
+            }
             int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
             int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
             int createNumber = 1;
             int createNumber = 1;
             while (saveList.size() < number) {
             while (saveList.size() < number) {
@@ -304,31 +305,42 @@ public class UserServiceImpl implements UserService {
     @Transactional
     @Transactional
     @Override
     @Override
     public int batchSaveSubjectUser(int examId, Role role, Set<String> subjectCodes, Integer number, String password,
     public int batchSaveSubjectUser(int examId, Role role, Set<String> subjectCodes, Integer number, String password,
-            boolean random) {
+            boolean random,String cusPrefix) {
         int successNum = 0;
         int successNum = 0;
         if (subjectCodes.size() == 0) {
         if (subjectCodes.size() == 0) {
             List<ExamSubject> subjects = subjectService.list(examId);
             List<ExamSubject> subjects = subjectService.list(examId);
             for (ExamSubject subject : subjects) {
             for (ExamSubject subject : subjects) {
                 successNum = successNum
                 successNum = successNum
-                        + saveSubjectUserBySubject(examId, number, role, subject.getCode(), password, random);
+                        + saveSubjectUserBySubject(examId, number, role, subject.getCode(), password, random,cusPrefix);
             }
             }
         } else {
         } else {
             for (String subjectCode : subjectCodes) {
             for (String subjectCode : subjectCodes) {
-                successNum = successNum + saveSubjectUserBySubject(examId, number, role, subjectCode, password, random);
+                successNum = successNum + saveSubjectUserBySubject(examId, number, role, subjectCode, password, random,cusPrefix);
             }
             }
         }
         }
         return successNum;
         return successNum;
     }
     }
 
 
     private int saveSubjectUserBySubject(int examId, Integer number, Role role, String subjectCode, String password,
     private int saveSubjectUserBySubject(int examId, Integer number, Role role, String subjectCode, String password,
-            boolean random) {
+            boolean random,String cusPrefix) {
         Exam exam = examService.findById(examId);
         Exam exam = examService.findById(examId);
         List<SubjectUser> saveList = new ArrayList<SubjectUser>();
         List<SubjectUser> saveList = new ArrayList<SubjectUser>();
         int successNum = 0;
         int successNum = 0;
         int createNumber = 1;
         int createNumber = 1;
-        String prefix = exam.getSchoolId() + "-" + subjectCode + "-";
+        String prefix ;
         if (role.equals(Role.INSPECTOR)) {
         if (role.equals(Role.INSPECTOR)) {
-            prefix = exam.getSchoolId() + "-FH-" + 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);
         int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
         while (saveList.size() < number) {
         while (saveList.size() < number) {

+ 38 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/UserController.java

@@ -1,6 +1,12 @@
 package cn.com.qmth.stmms.admin.user;
 package cn.com.qmth.stmms.admin.user;
 
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
@@ -22,6 +28,8 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 import cn.com.qmth.stmms.admin.dto.MarkerDTO;
 import cn.com.qmth.stmms.admin.dto.MarkerDTO;
 import cn.com.qmth.stmms.admin.dto.SubjectUserDTO;
 import cn.com.qmth.stmms.admin.dto.SubjectUserDTO;
 import cn.com.qmth.stmms.admin.exam.BaseExamController;
 import cn.com.qmth.stmms.admin.exam.BaseExamController;
+import cn.com.qmth.stmms.biz.config.model.SystemAuth;
+import cn.com.qmth.stmms.biz.config.service.SystemAuthService;
 import cn.com.qmth.stmms.biz.exam.bean.AddStudentInfo;
 import cn.com.qmth.stmms.biz.exam.bean.AddStudentInfo;
 import cn.com.qmth.stmms.biz.exam.bean.UserStudentVo;
 import cn.com.qmth.stmms.biz.exam.bean.UserStudentVo;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
@@ -29,7 +37,15 @@ 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.model.SubjectUser;
 import cn.com.qmth.stmms.biz.exam.model.SubjectUser;
 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.MarkerService;
+import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
+import cn.com.qmth.stmms.biz.exam.service.UserExamService;
+import cn.com.qmth.stmms.biz.exam.service.UserStudentService;
 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;
@@ -37,6 +53,7 @@ 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.enums.LogType;
 import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.enums.Role;
+import cn.com.qmth.stmms.common.enums.SystemAuthType;
 import cn.com.qmth.stmms.common.enums.UserSource;
 import cn.com.qmth.stmms.common.enums.UserSource;
 import cn.com.qmth.stmms.common.utils.EncryptUtils;
 import cn.com.qmth.stmms.common.utils.EncryptUtils;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
@@ -82,6 +99,9 @@ public class UserController extends BaseExamController {
 
 
     @Autowired
     @Autowired
     private UserStudentService userStudentService;
     private UserStudentService userStudentService;
+    
+    @Autowired
+    private SystemAuthService systemAuthService;
 
 
     @Logging(menu = "查询用户", type = LogType.QUERY)
     @Logging(menu = "查询用户", type = LogType.QUERY)
     @RequestMapping("/list")
     @RequestMapping("/list")
@@ -510,6 +530,9 @@ public class UserController extends BaseExamController {
         view.addObject("roleList", roleList);
         view.addObject("roleList", roleList);
         int examId = getSessionExamId(request);
         int examId = getSessionExamId(request);
         view.addObject("exam", examService.findById(examId));
         view.addObject("exam", examService.findById(examId));
+        systemAuthService.findOne();
+        SystemAuth systemAuth = systemAuthService.findOne();
+        view.addObject("authType", systemAuth.getType());
         return view;
         return view;
     }
     }
 
 
@@ -518,16 +541,26 @@ public class UserController extends BaseExamController {
     @RoleRequire(Role.SCHOOL_ADMIN)
     @RoleRequire(Role.SCHOOL_ADMIN)
     public String batchSave(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
     public String batchSave(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
             @RequestParam Role role, @RequestParam(required = false) String password, @RequestParam Integer number,
             @RequestParam Role role, @RequestParam(required = false) String password, @RequestParam Integer number,
-            @RequestParam String subjectCodeString, @RequestParam(required = false) Boolean random) {
+            @RequestParam String subjectCodeString, @RequestParam(required = false) Boolean random
+            ,@RequestParam(required = false) String prefix) {
+    	SystemAuth systemAuth = systemAuthService.findOne();
+    	if(SystemAuthType.OFFLINE.equals(systemAuth.getType())) {
+    		if(StringUtils.isBlank(prefix)) {
+        		addErrMessage(redirectAttributes,null, "请填写自定义前缀");
+        		return "redirect:/admin/user/batchAdd";
+        	}
+    	}else {
+    		prefix=null;
+    	}
         int examId = getSessionExamId(request);
         int examId = getSessionExamId(request);
         if (Role.MARKER.equals(role)) {
         if (Role.MARKER.equals(role)) {
             int successNum = userService.batchSaveMarker(examId, getSubjectCodeSet(subjectCodeString), number, password,
             int successNum = userService.batchSaveMarker(examId, getSubjectCodeSet(subjectCodeString), number, password,
-                    random == null ? false : random);
+                    random == null ? false : random,prefix);
             String message = "已成功新增 " + successNum + " 条用户";
             String message = "已成功新增 " + successNum + " 条用户";
             addMessage(redirectAttributes, message);
             addMessage(redirectAttributes, message);
         } else {
         } else {
             int successNum = userService.batchSaveSubjectUser(examId, role, getSubjectCodeSet(subjectCodeString),
             int successNum = userService.batchSaveSubjectUser(examId, role, getSubjectCodeSet(subjectCodeString),
-                    number, password, random == null ? false : random);
+                    number, password, random == null ? false : random,prefix);
             String message = "已成功新增 " + successNum + " 条用户";
             String message = "已成功新增 " + successNum + " 条用户";
             addMessage(redirectAttributes, message);
             addMessage(redirectAttributes, message);
         }
         }

+ 25 - 6
stmms-web/src/main/webapp/WEB-INF/views/modules/user/userAdd.jsp

@@ -16,10 +16,14 @@
                 errorContainer: "#messageBox",
                 errorContainer: "#messageBox",
                 errorPlacement: function (error, element) {
                 errorPlacement: function (error, element) {
                     $("#messageBox").text("输入有误,请先更正。");
                     $("#messageBox").text("输入有误,请先更正。");
-                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
-                        error.appendTo(element.parent().parent());
-                    } else {
-                        error.insertAfter(element);
+                    if(element.attr('name')=="prefix"){
+                    	error.insertAfter(element.next());
+                    }else{
+	                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
+	                        error.appendTo(element.parent().parent());
+	                    } else {
+	                        error.insertAfter(element);
+	                    }
                     }
                     }
                 }
                 }
             });
             });
@@ -61,6 +65,7 @@
 </ul>
 </ul>
 <form:form id="inputForm" action="${ctx}/admin/user/batchSave" method="post" class="form-horizontal">
 <form:form id="inputForm" action="${ctx}/admin/user/batchSave" method="post" class="form-horizontal">
     <tags:message content="${message}"/>
     <tags:message content="${message}"/>
+    <tags:message content="${errmsg}" type="error" />
     <div class="control-group">
     <div class="control-group">
         <label class="control-label">考试名称</label>
         <label class="control-label">考试名称</label>
         <div class="controls">
         <div class="controls">
@@ -79,12 +84,26 @@
             </select>
             </select>
         </div>
         </div>
     </div>
     </div>
-	<div class="control-group">
+    <c:if test="${authType=='ONLINE' }">
+   	<div class="control-group">
             <label class="control-label">命名规则</label>
             <label class="control-label">命名规则</label>
             <div class="controls"  id="subject-div">机构ID+科目代码+流水号</div>
             <div class="controls"  id="subject-div">机构ID+科目代码+流水号</div>
             <div class="controls"  id="marker-div">机构ID+科目代码+分组号+流水号</div>
             <div class="controls"  id="marker-div">机构ID+科目代码+分组号+流水号</div>
             <div class="controls"  id="inspector-div">机构ID+FH+科目代码+流水号</div>
             <div class="controls"  id="inspector-div">机构ID+FH+科目代码+流水号</div>
 	</div>
 	</div>
+	</c:if>
+	<c:if test="${authType=='OFFLINE' }">
+	<div class="control-group">
+            <label class="control-label">命名规则</label>
+            <div class="controls">
+            	<input name="prefix" type="text"  placeholder="自定义前缀" class="required"/>
+	            <span id="subject-div">+科目代码+流水号</span>
+	            <span id="marker-div">+科目代码+分组号+流水号</span>
+	            <span id="inspector-div">+FH+科目代码+流水号</span>
+         	</div>
+            
+	</div>
+	</c:if>
     <div class="control-group">
     <div class="control-group">
         <label class="control-label">每分组账号数</label>
         <label class="control-label">每分组账号数</label>
         <div class="controls">
         <div class="controls">
@@ -114,7 +133,7 @@
     <div class="form-actions">
     <div class="form-actions">
         <input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
         <input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
         &nbsp;
         &nbsp;
-        <a href="javascript:" onclick="history.go(-1);"  class="btn">返回</a>
+        <a href="${ctx}/admin/user/list" class="btn">返回</a>
     </div>
     </div>
 </form:form>
 </form:form>
 </body>
 </body>