瀏覽代碼

新增手机号判断

tsurumure 8 月之前
父節點
當前提交
0744029bd3
共有 1 個文件被更改,包括 14 次插入0 次删除
  1. 14 0
      src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java

+ 14 - 0
src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java

@@ -15,6 +15,7 @@ import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageInfoResult;
 import com.backendsys.utils.v2.PageUtils;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -134,12 +135,19 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
         RLock lock = redissonClient.getLock("insertUser");
         try { lock.tryLock(3, TimeUnit.SECONDS);
 
+            // 判断手机号码是否存在
+            if (sysUserDTO.getPhone() != null) {
+                SysUser sysUser = sysUserDao.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhone, sysUserDTO.getPhone()));
+                if (sysUser != null) throw new CustException("手机号码已存在");
+            }
+
             // 密码二次加密
             String password = sysUserDTO.getPassword();
             BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
             String encodedPassword = encoder.encode(password);
             sysUserDTO.setPassword(encodedPassword);
 
+            // 创建用户
             sysUserDao.insertUser(sysUserDTO);
 
             return Map.of("user_id", sysUserDTO.getId());
@@ -160,6 +168,12 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
             // 判断记录是否存在
             MybatisUtil.checkExists(sysUserDao, "id", sysUserDTO.getUser_id(), "用户不存在");
 
+            // 判断手机号码是否存在
+            if (sysUserDTO.getPhone() != null) {
+                SysUser sysUser = sysUserDao.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhone, sysUserDTO.getPhone()));
+                if (sysUser != null) throw new CustException("手机号码已存在");
+            }
+
             // 当 status 状态为 -1(禁用) 时,同时清除登录状态
             Integer status = sysUserDTO.getStatus();
             if (status != null && status == -1) {