Procházet zdrojové kódy

2022-1-31 修改教职工校验工号时候,需要排除自己后校验唯一,卡号需要校验唯一。

chaiyunlong před 2 roky
rodič
revize
c4febd35d8

+ 1 - 1
zd-modules/zd-modules-system/src/main/java/com/zd/system/controller/SysTeacherController.java

@@ -203,7 +203,7 @@ public class SysTeacherController extends BaseController {
         } else if (StringUtils.isNotEmpty(user.getEmail())
                 && UserConstants.NOT_UNIQUE.equals(sysTeacherService.checkEmailUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-        }else if (UserConstants.NOT_UNIQUE.equals(sysTeacherService.checkUserNameUnique(user.getUserName()))) {
+        }else if (UserConstants.NOT_UNIQUE.equals(sysTeacherService.checkUserNameUniqueNotOwn(user.getUserId(),user.getUserName()))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,账号已存在");
         }
         user.setUpdateBy(SecurityUtils.getUsername());

+ 16 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/mapper/SysUserMapper.java

@@ -185,6 +185,22 @@ public interface SysUserMapper {
     public int checkUserNameUnique(String userName);
 
     /**
+     * 校验用户名称是否唯一
+     *
+     * @param user 用户实体对象
+     * @return 结果
+     */
+    public int checkUserNameUniqueNotOwn(SysUser user);
+
+    /**
+     * 校验卡号是否唯一
+     *
+     * @param user 用户实体对象
+     * @return 结果
+     */
+    public int checkCardUnique(SysUser user);
+
+    /**
      * 校验手机号码是否唯一
      *
      * @param phonenumber 手机号码

+ 8 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/service/ISysTeacherService.java

@@ -93,6 +93,14 @@ public interface ISysTeacherService {
     public String checkUserNameUnique(String userName);
 
     /**
+     * 校验用户名称是否唯一
+     *
+     * @param userId 用户id,userName 用户名称
+     * @return 结果
+     */
+    public String checkUserNameUniqueNotOwn(Long userId,String userName);
+
+    /**
      * 校验手机号码是否唯一
      *
      * @param user 用户信息

+ 23 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/service/impl/SysTeacherServiceImpl.java

@@ -9,6 +9,7 @@ import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.laboratory.api.feign.RemoteMessageContentService;
 import com.zd.model.constant.UserConstants;
+import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.per.PerPrefix;
 import com.zd.model.entity.SysDept;
 import com.zd.model.entity.SysRole;
@@ -208,6 +209,24 @@ public class SysTeacherServiceImpl implements ISysTeacherService {
     /**
      * 校验用户名称是否唯一
      *
+     * @param userId 用户id,userName 用户名称
+     * @return 结果
+     */
+    @Override
+    public String checkUserNameUniqueNotOwn(Long userId,String userName) {
+        SysUser user = new SysUser();
+        user.setUserId(userId);
+        user.setUserName(userName);
+        int count = userMapper.checkUserNameUniqueNotOwn(user);
+        if (count > 0) {
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+
+    /**
+     * 校验用户名称是否唯一
+     *
      * @param user 用户信息
      * @return
      */
@@ -379,6 +398,10 @@ public class SysTeacherServiceImpl implements ISysTeacherService {
             // 插入最新用户绑定的权限数据
             sysPermitMenuService.insertSysPermitMenuList(null,user.getUserId(),newPermitMenus);
         }
+        if (userMapper.checkCardUnique(user)>0) {
+            throw new ServiceException("卡号重复,请重新录入!");
+        }
+
         int count = userMapper.updateUser(user);
 
         SysUser oldUser = userMapper.selectUserById(user.getUserId());

+ 8 - 0
zd-modules/zd-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -334,6 +334,14 @@
 		select count(1) from sys_user where user_name = #{userName} and del_flag=0 limit 1
 	</select>
 
+    <select id="checkUserNameUniqueNotOwn" parameterType="com.zd.model.entity.SysUser" resultType="int">
+		select count(1) from sys_user where user_name = #{userName} and del_flag=0 and user_id != #{userId} limit 1
+	</select>
+
+    <select id="checkCardUnique" parameterType="com.zd.model.entity.SysUser" resultType="int">
+		select count(1) from sys_user where card_num = #{cardNum} and del_flag=0 limit 1
+	</select>
+
     <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} limit 1
 	</select>