Browse Source

查验填写的邮箱、号码、工号是否已存在

buzhanyi 2 years ago
parent
commit
18dc66631f

+ 3 - 3
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/entity/UserInfoEntity.java

@@ -34,7 +34,7 @@ public class UserInfoEntity {
     private Date updateTime;
     private int deletedFlag;
     private String region;
-    private Integer jobNumber;
+    private String jobNumber;
 
     @Id
     @Column(name = "user_id")
@@ -198,11 +198,11 @@ public class UserInfoEntity {
 
     @Basic
     @Column(name = "job_number")
-    public Integer getJobNumber() {
+    public String getJobNumber() {
         return jobNumber;
     }
 
-    public void setJobNumber(Integer jobNumber) {
+    public void setJobNumber(String jobNumber) {
         this.jobNumber = jobNumber;
     }
 

+ 2 - 2
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/controller/SysDeptController.java

@@ -137,7 +137,7 @@ public class SysDeptController {
         SysDept sysDeptFilter = MyModelUtil.copyTo(sysDeptDtoFilter, SysDept.class);
         List<SysDept> sysDeptList = sysDeptService.getSysDeptListWithRelation(sysDeptFilter);
         for (SysDept sysDept : sysDeptList) {
-            List<UserInfoEntity> userList = sysUserService.getSysUsersByDeptId(sysDept.getDeptId());
+            List<SysUser> userList = sysUserService.getSysUsersByDeptId(sysDept.getDeptId());
             sysDept.setUserList(userList);
         }
         return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(sysDeptList, SysDept.INSTANCE));
@@ -156,7 +156,7 @@ public class SysDeptController {
         //全部  公司--部门
         List<SysDept> sysDeptList = sysDeptService.getSysDeptListWithRelation(sysDeptFilter);
         for (SysDept sysDept : sysDeptList) {
-            List<UserInfoEntity> userList = sysUserService.getSysUsersByDeptId(sysDept.getDeptId());
+            List<SysUser> userList = sysUserService.getSysUsersByDeptId(sysDept.getDeptId());
             sysDept.setUserList(userList);
         }
         //分级别:父级公司--子级公司--部门--用户

+ 10 - 0
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/controller/SysUserController.java

@@ -79,6 +79,11 @@ public class SysUserController {
         if (errorMessage != null) {
             return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
         }
+        //查验填写的邮箱、号码、工号是否已存在
+        String contactData = sysUserService.verifyContactData(sysUserDto.getEmail(), sysUserDto.getMobile(), sysUserDto.getJobNumber());
+        if (contactData != null) {
+            return ResponseResult.error(ErrorCodeEnum.DUPLICATED_UNIQUE_KEY, contactData);
+        }
         SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
         CallResult result = sysUserService.verifyRelatedData(
                 sysUser, null, roleIdListString, deptPostIdListString, dataPermIdListString);
@@ -120,6 +125,11 @@ public class SysUserController {
             return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
         }
         SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
+        //查验填写的邮箱、号码、工号是否已存在
+        String contactData = sysUserService.verifyContactDataOfTheir(sysUserDto.getEmail(), sysUserDto.getMobile(), sysUserDto.getJobNumber(), sysUser.getUserId());
+        if (contactData != null) {
+            return ResponseResult.error(ErrorCodeEnum.DUPLICATED_UNIQUE_KEY, contactData);
+        }
         //角色是查看全部,前台已取消对角色的控制   这里直接写死
         String roleIdListString = "1575681957692444672";
         //逗号分隔的数据权限Id列表,角色和权限都是只留了一个查看全部,直接写死

+ 52 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/dao/SysUserMapper.java

@@ -158,7 +158,58 @@ public interface SysUserMapper extends BaseDaoMapper<SysUser> {
      * @param deptId
      * @return
      */
-    List<UserInfoEntity> getSysUsersByDeptId(@Param("deptId") String deptId);
+    List<SysUser> getSysUsersByDeptId(@Param("deptId") String deptId);
+
+    /**
+     * 查询使用该号码的用户
+     *
+     * @param mobile 电话号码
+     * @return
+     */
+    List<SysUser> getSysUsersByMobile(@Param("mobile") String mobile);
+
+    /**
+     * 查询使用该号码的用户(除用户本身)
+     *
+     * @param mobile 电话号码
+     * @param userId 用户id
+     * @return
+     */
+    List<SysUser> getSysUsersByMobileOfTheir(@Param("mobile") String mobile, @Param("userId") String userId);
+
+    /**
+     * 查询使用该工号的用户
+     *
+     * @param jobNumber 工号
+     * @return
+     */
+    List<SysUser> getSysUsersByJobNumber(@Param("jobNumber") String jobNumber);
+
+    /**
+     * 查询使用该工号的用户(除用户本身)
+     *
+     * @param jobNumber 工号
+     * @param userId    用户id
+     * @return
+     */
+    List<SysUser> getSysUsersByJobNumberOfTheir(@Param("jobNumber") String jobNumber, @Param("userId") String userId);
+
+    /**
+     * 查询使用该邮箱的用户
+     *
+     * @param email 邮箱
+     * @return
+     */
+    List<SysUser> getSysUsersByEmail(@Param("email") String email);
+
+    /**
+     * 查询使用该邮箱的用户(除用户本身)
+     *
+     * @param email  邮箱
+     * @param userId 用户id
+     * @return
+     */
+    List<SysUser> getSysUsersByEmailOfTheir(@Param("email") String email, @Param("userId") String userId);
 
 }
 

+ 69 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/dao/mapper/SysUserMapper.xml

@@ -18,7 +18,7 @@
         <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
         <result column="region" jdbcType="VARCHAR" property="region"/>
-        <result column="job_number" jdbcType="BIGINT" property="jobNumber"/>
+        <result column="job_number" jdbcType="VARCHAR" property="jobNumber"/>
     </resultMap>
 
     <insert id="insertList">
@@ -311,4 +311,72 @@
         and deleted_flag ='1'
         ORDER BY create_time desc
     </select>
+
+    <select id="getSysUsersByMobile" resultMap="BaseResultMap">
+        SELECT
+        work_sys_user.*
+        FROM
+        work_sys_user
+        <where>
+            work_sys_user.mobile = #{mobile}
+        </where>
+        and deleted_flag ='1'
+    </select>
+
+    <select id="getSysUsersByMobileOfTheir" resultMap="BaseResultMap">
+        SELECT
+        work_sys_user.*
+        FROM
+        work_sys_user
+        <where>
+            work_sys_user.mobile = #{mobile}
+        </where>
+        and deleted_flag ='1' and user_id != #{userId}
+    </select>
+
+    <select id="getSysUsersByJobNumber" resultMap="BaseResultMap">
+        SELECT
+        work_sys_user.*
+        FROM
+        work_sys_user
+        <where>
+            work_sys_user.job_number = #{jobNumber}
+        </where>
+        and deleted_flag ='1'
+    </select>
+
+    <select id="getSysUsersByJobNumberOfTheir" resultMap="BaseResultMap">
+        SELECT
+        work_sys_user.*
+        FROM
+        work_sys_user
+        <where>
+            work_sys_user.job_number = #{jobNumber}
+        </where>
+        and deleted_flag ='1' and user_id != #{userId}
+    </select>
+
+    <select id="getSysUsersByEmail" resultMap="BaseResultMap">
+        SELECT
+        work_sys_user.*
+        FROM
+        work_sys_user
+        <where>
+            work_sys_user.email = #{email}
+        </where>
+        and deleted_flag ='1'
+    </select>
+
+    <select id="getSysUsersByEmailOfTheir" resultMap="BaseResultMap">
+        SELECT
+        work_sys_user.*
+        FROM
+        work_sys_user
+        <where>
+            work_sys_user.email = #{email}
+        </where>
+        and deleted_flag ='1' and user_id != #{userId}
+    </select>
+
+
 </mapper>

+ 6 - 0
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/dto/SysUserDto.java

@@ -94,6 +94,12 @@ public class SysUserDto extends MyPageParam {
     @ApiModelProperty(value = "用户手机")
     private String mobile;
 
+    /**
+     * 工号。
+     */
+    @ApiModelProperty(value = "job_number")
+    private String jobNumber;
+
     /**
      * 创建者Id。
      */

+ 1 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/model/SysDept.java

@@ -81,7 +81,7 @@ public class SysDept {
      * 部门下用户
      */
     @TableField(exist = false)
-    private List<UserInfoEntity> userList;
+    private List<SysUser> userList;
 
     /**
      * 部门下子部门

+ 2 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/model/SysUser.java

@@ -121,11 +121,12 @@ public class SysUser {
      */
     @TableField(value = "region")
     private String region;
+
     /**
      * 工号。
      */
     @TableField(value = "job_number")
-    private Integer jobNumber;
+    private String jobNumber;
 
     /**
      * createTime 范围过滤起始值(>=)。

+ 23 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/service/SysUserService.java

@@ -208,5 +208,27 @@ public interface SysUserService extends IBaseService<SysUser, String> {
      * @param deptId 部门id
      * @return
      */
-    List<UserInfoEntity> getSysUsersByDeptId(String deptId);
+    List<SysUser> getSysUsersByDeptId(String deptId);
+
+    /**
+     * 查询填写的邮箱、号码、工号是否已存在
+     *
+     * @param email     邮箱
+     * @param mobile    号码
+     * @param jobNumber 工号
+     * @return
+     */
+    String verifyContactData(String email, String mobile, String jobNumber);
+
+    /**
+     * 查询填写的邮箱、号码、工号是否已存在
+     *
+     * @param email     邮箱
+     * @param mobile    号码
+     * @param jobNumber 工号
+     * @param userId    用户Id。
+     * @return
+     */
+    String verifyContactDataOfTheir(String email, String mobile, String jobNumber, String userId);
+
 }

+ 32 - 2
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/service/impl/SysUserServiceImpl.java

@@ -422,8 +422,38 @@ public class SysUserServiceImpl extends BaseService<SysUser, String> implements
     }
 
     @Override
-    public List<UserInfoEntity> getSysUsersByDeptId(String deptId) {
-        List<UserInfoEntity> userList = sysUserMapper.getSysUsersByDeptId(deptId);
+    public List<SysUser> getSysUsersByDeptId(String deptId) {
+        List<SysUser> userList = sysUserMapper.getSysUsersByDeptId(deptId);
         return userList;
     }
+
+    @Override
+    public String verifyContactData(String email, String mobile, String jobNumber) {
+        if (sysUserMapper.getSysUsersByEmail(email).size() > 0) {
+            return "该邮箱已被使用,请确认邮箱无误!";
+        }
+        if (sysUserMapper.getSysUsersByMobile(mobile).size() > 0) {
+            return "该号码已被使用,请确认号码无误!";
+        }
+        if (sysUserMapper.getSysUsersByJobNumber(jobNumber).size() > 0) {
+            return "该工号已绑定用户,请确认工号无误!";
+        }
+        return null;
+    }
+
+    @Override
+    public String verifyContactDataOfTheir(String email, String mobile, String jobNumber, String userId) {
+        if (sysUserMapper.getSysUsersByEmailOfTheir(email, userId).size() > 0) {
+            return "该邮箱已被使用,请确认邮箱无误!";
+        }
+        if (sysUserMapper.getSysUsersByMobileOfTheir(mobile, userId).size() > 0) {
+            return "该号码已被使用,请确认号码无误!";
+        }
+        if (sysUserMapper.getSysUsersByJobNumberOfTheir(jobNumber, userId).size() > 0) {
+            return "该工号已绑定用户,请确认工号无误!";
+        }
+        return null;
+    }
+
+
 }

+ 1 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/vo/SysUserVo.java

@@ -83,7 +83,7 @@ public class SysUserVo {
      * 工号。
      */
     @ApiModelProperty(value = "工号")
-    private Integer jobNumber;
+    private String jobNumber;
 
     /**
      * 创建者Id。