Explorar o código

监考员导入时,可以自定义密码进行导入

wangliang %!s(int64=3) %!d(string=hai) anos
pai
achega
845679f41d

+ 33 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/RoomCodeImportDto.java

@@ -25,12 +25,45 @@ public class RoomCodeImportDto implements Serializable {
     @ExcelNote(value = "监考账号1")
     private String teacher1; //监考帐号1
 
+    @ExcelNote(value = "监考账号1密码")
+    private String teacher1Pwd; //监考帐号1密码
+
     @ExcelNote(value = "监考帐号2")
     private String teacher2; //监考帐号2
 
+    @ExcelNote(value = "监考账号2密码")
+    private String teacher2Pwd; //监考帐号2密码
+
     @ExcelNote(value = "监考帐号3")
     private String teacher3; //监考帐号3
 
+    @ExcelNote(value = "监考账号3密码")
+    private String teacher3Pwd; //监考帐号3密码
+
+    public String getTeacher1Pwd() {
+        return teacher1Pwd;
+    }
+
+    public void setTeacher1Pwd(String teacher1Pwd) {
+        this.teacher1Pwd = teacher1Pwd;
+    }
+
+    public String getTeacher2Pwd() {
+        return teacher2Pwd;
+    }
+
+    public void setTeacher2Pwd(String teacher2Pwd) {
+        this.teacher2Pwd = teacher2Pwd;
+    }
+
+    public String getTeacher3Pwd() {
+        return teacher3Pwd;
+    }
+
+    public void setTeacher3Pwd(String teacher3Pwd) {
+        this.teacher3Pwd = teacher3Pwd;
+    }
+
     public String getRoomCode() {
         return roomCode;
     }

+ 15 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBUser.java

@@ -5,10 +5,12 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.base.BaseEntity;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.util.Base64Util;
 import com.qmth.themis.business.util.UidUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.io.UnsupportedEncodingException;
 import java.util.Objects;
 
 /**
@@ -63,6 +65,19 @@ public class TBUser extends BaseEntity {
         this.password = SystemConstant.DEFAULT_PASSWORD;
     }
 
+    public TBUser(Long orgId, String loginName, String name, Long createId, String password) throws UnsupportedEncodingException {
+        setId(UidUtil.nextId());
+        this.orgId = orgId;
+        this.loginName = loginName;
+        this.name = name;
+        setCreateId(createId);
+        if (Objects.nonNull(password) && !Objects.equals(password.trim(), "")) {
+            this.password = Base64Util.encode(password.trim().getBytes(SystemConstant.CHARSET_NAME));
+        } else {
+            this.password = SystemConstant.DEFAULT_PASSWORD;
+        }
+    }
+
     public String getName() {
         return name;
     }

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/templete/service/TempleteLogicService.java

@@ -31,7 +31,7 @@ public interface TempleteLogicService {
      * @param map
      * @return
      */
-    public Map<String, Object> execImportRoomCodeLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map);
+    public Map<String, Object> execImportRoomCodeLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws UnsupportedEncodingException;
 
     /**
      * 考场导出逻辑

+ 34 - 19
themis-business/src/main/java/com/qmth/themis/business/templete/service/impl/TempleteLogicServiceImpl.java

@@ -19,6 +19,7 @@ import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.exception.BusinessException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 
 import javax.annotation.Resource;
@@ -202,8 +203,12 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     max = size;
                 }
             }
-            teStudentMapper.insertOrUpdateBath(teStudentList);
-            teExamStudentMapper.insertOrUpdateBath(teExamStudentList);
+            if (!CollectionUtils.isEmpty(teStudentList)) {
+                teStudentMapper.insertOrUpdateBath(teStudentList);
+            }
+            if (!CollectionUtils.isEmpty(teExamStudentList)) {
+                teExamStudentMapper.insertOrUpdateBath(teExamStudentList);
+            }
         }
         map.put("line", line);
         //考场创建
@@ -219,7 +224,9 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     count.getAndIncrement();
                 }
             });
-            tbExamInvigilateUserMapper.insertOrUpdateBath(tbExamInvigilateUserList);
+            if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
+                tbExamInvigilateUserMapper.insertOrUpdateBath(tbExamInvigilateUserList);
+            }
             if (count.get() > 0) {
                 txtList.add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->创建了" + count + "条考场数据");
             }
@@ -236,7 +243,7 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
      */
     @Override
     @Transactional
-    public Map<String, Object> execImportRoomCodeLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) {
+    public Map<String, Object> execImportRoomCodeLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws UnsupportedEncodingException {
         Long orgId = null;
         if (Objects.nonNull(map.get(SystemConstant.ORG_ID))) {
             orgId = Long.parseLong(String.valueOf(map.get(SystemConstant.ORG_ID)));
@@ -267,9 +274,9 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     RoomCodeImportDto roomCodeImportDto = (RoomCodeImportDto) subList.get(y);
                     roomCodeSet.add(roomCodeImportDto.getRoomCode());
                     roomNameSet.add(roomCodeImportDto.getRoomName());
-                    dataVerify(examId, roomCodeImportDto.getTeacher1(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
-                    dataVerify(examId, roomCodeImportDto.getTeacher2(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
-                    dataVerify(examId, roomCodeImportDto.getTeacher3(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
+                    dataVerify(examId, roomCodeImportDto.getTeacher1(), roomCodeImportDto.getTeacher1Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
+                    dataVerify(examId, roomCodeImportDto.getTeacher2(), roomCodeImportDto.getTeacher2Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
+                    dataVerify(examId, roomCodeImportDto.getTeacher3(), roomCodeImportDto.getTeacher3Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
                 }
                 txtList = this.importProgress(max, min, size, txtList, tbTaskHistory);
                 if (max == size) {
@@ -281,9 +288,6 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     max = size;
                 }
             }
-//            tbUserService.saveOrUpdateBatch(tbUserList);
-//            tbUserRoleService.saveOrUpdateBatch(tbUserRoleList);
-//            tbExamInvigilateUserService.saveOrUpdateBatch(tbExamInvigilateUserList);
         }
         QueryWrapper<TBExamInvigilateUser> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(TBExamInvigilateUser::getOrgId, orgId)
@@ -292,9 +296,15 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                 .in(TBExamInvigilateUser::getRoomName, roomNameSet);
         tbExamInvigilateUserService.remove(wrapper);
 
-        tbUserMapper.insertOrUpdateBath(tbUserList);
-        tbUserRoleMapper.insertOrUpdateBath(tbUserRoleList);
-        tbExamInvigilateUserMapper.insertOrUpdateBath(tbExamInvigilateUserList);
+        if (!CollectionUtils.isEmpty(tbUserList)) {
+            tbUserMapper.insertOrUpdateBath(tbUserList);
+        }
+        if (!CollectionUtils.isEmpty(tbUserRoleList)) {
+            tbUserRoleMapper.insertOrUpdateBath(tbUserRoleList);
+        }
+        if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
+            tbExamInvigilateUserMapper.insertOrUpdateBath(tbExamInvigilateUserList);
+        }
         map.put("line", line);
         return map;
     }
@@ -339,12 +349,13 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
      *
      * @param examId
      * @param userName
+     * @param password
      * @param roomCode
      * @param roomName
      * @param orgId
      * @param createId
      */
-    public void dataVerify(Long examId, String userName, String roomCode, String roomName, Long orgId, Long createId, Set<TBUser> tbUserList, Set<TBUserRole> tbUserRoleList, Set<TBExamInvigilateUser> tbExamInvigilateUserList) {
+    public void dataVerify(Long examId, String userName, String password, String roomCode, String roomName, Long orgId, Long createId, Set<TBUser> tbUserList, Set<TBUserRole> tbUserRoleList, Set<TBExamInvigilateUser> tbExamInvigilateUserList) throws UnsupportedEncodingException {
         if (checkRoomCodeExist(examId, roomCode, orgId)) {
             throw new BusinessException("考场代码 " + roomCode + " 不存在");
         }
@@ -355,14 +366,18 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
             TBUser tbUser = tbUserService.getOne(tbUserQueryWrapper);
             if (Objects.isNull(tbUser)) {
                 //新增用户
-                tbUser = new TBUser(orgId, userName, userName, createId);
-                tbUserList.add(tbUser);
-//                tbUserService.save(tbUser);
-
+                tbUser = new TBUser(orgId, userName, userName, createId, password);
                 TBUserRole tbUserRole = new TBUserRole(tbUser.getId(), RoleEnum.INVIGILATE.name());
                 tbUserRoleList.add(tbUserRole);
-//                tbUserRoleService.save(tbUserRole);
+            } else {
+                if (Objects.nonNull(password) && !Objects.equals(password.trim(), "")) {
+                    tbUser.setPassword(Base64Util.encode(password.trim().getBytes(SystemConstant.CHARSET_NAME)));
+                } else {
+                    tbUser.setPassword(SystemConstant.DEFAULT_PASSWORD);
+                }
             }
+            tbUserList.add(tbUser);
+
             QueryWrapper<TBExamInvigilateUser> tbExamInvigilateUserQueryWrapper = new QueryWrapper<>();
             tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, orgId)
                     .eq(TBExamInvigilateUser::getUserId, tbUser.getId())