Browse Source

feat: 添加驿站人员时手机号查重

zhangying 1 year ago
parent
commit
32f6eb5a66

+ 4 - 1
src/main/java/com/hz/employmentsite/mapper/PcSiteUserMapper.java

@@ -2,9 +2,10 @@ package com.hz.employmentsite.mapper;
 
 import com.hz.employmentsite.model.PcSiteUser;
 import com.hz.employmentsite.model.PcSiteUserExample;
-import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface PcSiteUserMapper {
     long countByExample(PcSiteUserExample example);
 
@@ -20,6 +21,8 @@ public interface PcSiteUserMapper {
 
     PcSiteUser selectByPrimaryKey(String siteUserID);
 
+    List<String> selectByMobile(@Param("mobile") String mobile);
+
     int updateByExampleSelective(@Param("row") PcSiteUser row, @Param("example") PcSiteUserExample example);
 
     int updateByExample(@Param("row") PcSiteUser row, @Param("example") PcSiteUserExample example);

+ 18 - 3
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java

@@ -2,6 +2,7 @@ package com.hz.employmentsite.services.impl.baseSettings;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.mapper.PcSiteUserMapper;
 import com.hz.employmentsite.mapper.SysRoleMapper;
 import com.hz.employmentsite.mapper.SysUserMapper;
@@ -90,14 +91,23 @@ public class SiteUserImpl implements SiteUserService {
     @Override
     public Integer save(SiteUserVo data, String userId) {
         int result = 0;
+
+        // 手机号查重
+        List<String> byMobileSiteId = pcSiteUserMapper.selectByMobile(data.mobile);
+
         SiteUserVo record = get(data.siteUserID);
-        PcSiteUser dbData = record ==null ? null : pcSiteUserMapper.selectByPrimaryKey(record.siteUserID);
+        PcSiteUser dbData = record == null ? null : pcSiteUserMapper.selectByPrimaryKey(record.siteUserID);
         Boolean isExist = dbData != null;
-        SysUser curSysUserData = data.userID != null ? sysUserMapper.selectByPrimaryKey(data.userID):null;
+        SysUser curSysUserData = data.userID != null ? sysUserMapper.selectByPrimaryKey(data.userID) : null;
         Boolean isLinkUser = curSysUserData != null;
         SysRoleExample roleExp = null;
         /*注意:这里的data.roleID为用户类型ID*/
         if (!isExist) {
+            // 添加时有重复手机号立即报错
+            if (!byMobileSiteId.isEmpty()) {
+                throw new BaseException("500", "该手机号已绑定其他驿站人员");
+            }
+
             //添加
             //处理用户表
             curSysUserData = new SysUser();
@@ -125,9 +135,14 @@ public class SiteUserImpl implements SiteUserService {
             dbData.setCreateTime(new Date());
             result += pcSiteUserMapper.insert(dbData);
         } else {
+            // 修改时,ID列表中没有参数中的ID才报错
+            if (!byMobileSiteId.isEmpty() && !byMobileSiteId.contains(data.siteID)) {
+                throw new BaseException("500", "该手机号已绑定其他驿站人员");
+            }
+
             //修改
             //处理用户表
-            if(isLinkUser){
+            if (isLinkUser) {
                 curSysUserData.setName(data.siteUserName);
                 curSysUserData.setUserTypeID(data.roleID);
                 curSysUserData.setLoginID(StrToPinYin(data.siteUserName));

+ 17 - 11
src/main/resources/mapping/PcSiteUserMapper.xml

@@ -322,17 +322,23 @@
   <update id="updateByPrimaryKey" parameterType="com.hz.employmentsite.model.PcSiteUser">
     update pc_site_user
     set SiteUserName = #{siteUserName,jdbcType=VARCHAR},
-      UserID = #{userID,jdbcType=VARCHAR},
-      SiteID = #{siteID,jdbcType=VARCHAR},
-      Gender = #{gender,jdbcType=INTEGER},
-      Mobile = #{mobile,jdbcType=VARCHAR},
-      RoleID = #{roleID,jdbcType=INTEGER},
-      CreateUserID = #{createUserID,jdbcType=VARCHAR},
-      CreateTime = #{createTime,jdbcType=TIMESTAMP},
-      UpdateBy = #{updateBy,jdbcType=VARCHAR},
-      UpdateTime = #{updateTime,jdbcType=TIMESTAMP},
-      UserNo = #{userNo,jdbcType=VARCHAR},
-      IDCard = #{IDCard,jdbcType=VARCHAR}
+        UserID       = #{userID,jdbcType=VARCHAR},
+        SiteID       = #{siteID,jdbcType=VARCHAR},
+        Gender       = #{gender,jdbcType=INTEGER},
+        Mobile       = #{mobile,jdbcType=VARCHAR},
+        RoleID       = #{roleID,jdbcType=INTEGER},
+        CreateUserID = #{createUserID,jdbcType=VARCHAR},
+        CreateTime   = #{createTime,jdbcType=TIMESTAMP},
+        UpdateBy     = #{updateBy,jdbcType=VARCHAR},
+        UpdateTime   = #{updateTime,jdbcType=TIMESTAMP},
+        UserNo       = #{userNo,jdbcType=VARCHAR},
+        IDCard       = #{IDCard,jdbcType=VARCHAR}
     where SiteUserID = #{siteUserID,jdbcType=VARCHAR}
   </update>
+
+  <select id="selectByMobile" resultType="String">
+    select SiteID
+    from pc_site_user
+    where mobile = #{mobile,jdbcType=VARCHAR}
+  </select>
 </mapper>