Browse Source

校验手机号码唯一

lyhzzz 2 years ago
parent
commit
f28bfd32ad

+ 1 - 0
src/main/java/com/fdkankan/tk/common/ResultCode.java

@@ -16,6 +16,7 @@ public enum ResultCode {
     WX_LOGIN_ERROR(6001,"微信登录失败,请重新授权登录"),
     WX_OPENID_ERROr(6002,"微信登录失败,存在重复openid"),
     WX_PHONE_ERROR(6003,"微信获取手机号码失败"),
+    WX_PHONE_EXIST(6004,"手机号码已存在"),
 
     UPLOAD_ERROR(7001,"文件上传失败"),
     UPLOAD_FILE_NO_EXIST(7002,"上传文件不存在"),

+ 16 - 0
src/main/java/com/fdkankan/tk/service/impl/WxUserServiceImpl.java

@@ -20,6 +20,7 @@ import com.fdkankan.tk.service.IWxService;
 import com.fdkankan.tk.service.IWxUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.tk.util.MD5Utils;
+import jdk.nashorn.internal.ir.LabelNode;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -30,6 +31,8 @@ import javax.annotation.Resource;
 import java.security.spec.ECField;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -100,6 +103,13 @@ public class WxUserServiceImpl extends ServiceImpl<IWxUserMapper, WxUser> implem
         if(StringUtils.isBlank(param.getWxUserId())){
             throw new BusinessException(ResultCode.PARAM_MISS);
         }
+        if(StringUtils.isNotBlank(param.getPhoneNumber())){
+            List<WxUser> wxUsers = this.getByPhone(param.getPhoneNumber());
+            List<String> collect = wxUsers.stream().map(WxUser::getWxUserId).collect(Collectors.toList());
+            if(!collect.contains(param.getWxUserId()) || collect.size() != 1){
+                throw new BusinessException(ResultCode.WX_PHONE_EXIST);
+            }
+        }
         WxUser wxUser = new WxUser();
         BeanUtils.copyProperties(param,wxUser);
         wxUser.setUpdateTime(new Date());
@@ -110,6 +120,12 @@ public class WxUserServiceImpl extends ServiceImpl<IWxUserMapper, WxUser> implem
         this.updateById(wxUser);
     }
 
+    private List<WxUser> getByPhone(String phoneNumber) {
+        LambdaQueryWrapper<WxUser> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(WxUser::getPhoneNumber,phoneNumber);
+        return this.list(wrapper);
+    }
+
 
     @Override
     public Object getPhone(String code,Integer reCount) {