Explorar el Código

微信登录绑定手机号后查询到member存在该手机号用户,则遗弃掉当前登录的这条

ZhangWenQiang hace 6 años
padre
commit
887ddd5ce5

+ 7 - 1
src/main/java/com/jeeplus/modules/api/hpuser/entity/HpResumeAPI.java

@@ -6,6 +6,7 @@ package com.jeeplus.modules.api.hpuser.entity;
 
 import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
+import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 import com.jeeplus.modules.hpuser.entity.HpResumeWorkExperience;
@@ -164,7 +165,12 @@ public class HpResumeAPI extends DataEntity<HpResumeAPI> {
     }
 
     public String getHeadImg() {
-        return Global.getAliyunUrl() + headImg;
+        if (StringUtils.isNotBlank(headImg)) {
+            if (!headImg.contains("http")) {
+                return Global.getAliyunUrl() + headImg;
+            }
+        }
+        return headImg;
     }
 
     public void setHeadImg(String headImg) {

+ 150 - 101
src/main/java/com/jeeplus/modules/sys/service/HpUserService.java

@@ -1333,6 +1333,28 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
         String userIds = requestMap.get("userIds");//废弃的用户id集
         String loginType = requestMap.get("login_type");   //0:小程序;1:微信授权;2:手机号
         HpUser hpUser = this.get(userId);
+        //更新用户新信息
+        hpUser = upDateHpUser(hpUser, userIds, loginType);
+        //合并用户信息
+        HpMember hpMember = checkMember(hpUser, phone, userIds);
+        returnMap.put("hpUser", hpUser);
+        returnMap.put("hpMember", hpMember);
+        //返回用户简历信息
+        HpResume hpResume = this.getResume(hpMember);
+        returnMap.put("userResume", hpResume);
+        //返回用户的企业信息
+        DpEnterpriseAuthentication dpEnterpriseAuthentication = this.getDpEnterpriseAuthentication(hpMember);
+        returnMap.put("dpEnterpriseAuthentication", dpEnterpriseAuthentication);
+        return returnMap;
+    }
+
+    /**
+     * 选择之后更新用户信息到选中的用户
+     *
+     * @param hpUser
+     * @param userIds
+     */
+    private HpUser upDateHpUser(HpUser hpUser, String userIds, String loginType) {
         //没有微信unionid等信息则从废弃的数据里获取
         if (StringUtils.isBlank(hpUser.getUnionid())) {
             String[] userIdArray = userIds.split(",");
@@ -1375,7 +1397,6 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                 }
             }
         }
-        //更新用户信息
         switch (loginType) {
             case "0":
                 //如果登录方式不包含小程序授权,则添加
@@ -1410,17 +1431,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
             hpUser.setUserType("0");
         }
         this.save(hpUser);
-        //合并用户信息
-        HpMember hpMember = checkMember(hpUser, phone, userIds);
-        returnMap.put("hpUser", hpUser);
-        returnMap.put("hpMember", hpMember);
-        //返回用户简历信息
-        HpResume hpResume = this.getResume(hpMember);
-        returnMap.put("userResume", hpResume);
-        //返回用户的企业信息
-        DpEnterpriseAuthentication dpEnterpriseAuthentication = this.getDpEnterpriseAuthentication(hpMember);
-        returnMap.put("dpEnterpriseAuthentication", dpEnterpriseAuthentication);
-        return returnMap;
+        return hpUser;
     }
 
     /**
@@ -1611,58 +1622,77 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     }
                 }
                 hpUser.setPhone(phone);
-                //判断手机号是否存在
-                hpUserList = this.findByPhone_new(hpUser);
-                hpUserList.add(hpUser);//将当前准备绑定手机号的用户添加到该集合去做合并处理
-                if (hpUserList != null && hpUserList.size() > 0) {
-                    //如果该用户有多条记录,则提示选择一条用户,其余则遗弃不再使用
-                    if (hpUserList.size() > 1) {
-                        for (int i = 0; i < hpUserList.size(); i++) {
-                            Map map = getUserLists(hpUserList.get(i));
-                            HpResume hpResume = (HpResume) map.get("hpResume");
-                            if (hpResume == null) {
-                                //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
-                                if (i == 0) {
-                                    HpUser hpUserOth = hpUserList.get(1);
-                                    HpUser hpUserOld = hpUserList.get(0);
-                                    hpUser = changeHpUserData(hpUserOth, hpUserOld);
-                                    userIds = hpUserOld.getId();
+                //查看member表是否存在该手机号用户
+                HpMember hpMember = new HpMember();
+                hpMember.setPhone(phone);
+                List<HpMember> hpMemberList = hpMemberService.findListByPhone(hpMember);
+                if (hpMemberList != null && hpMemberList.size() > 0) {
+                    userIds = hpUser.getId();//此登录的微信用户自动被遗弃
+                    //该手机号存在于member表中,以此用户为唯一
+                    hpUser = hpMemberList.get(0).getHpUser();
+                    //进行数据合并
+                    hpUser = upDateHpUser(hpUser, userIds, "1");
+                    //逻辑删除掉当前登录的用户
+                    if (StringUtils.isNotBlank(userIds)) {
+                        String[] arr = userIds.split(",");
+                        for (int i = 0; i < arr.length; i++) {
+                            this.deleteByUserId(arr[i]);
+                        }
+                    }
+                } else {
+                    //判断手机号是否存在
+                    hpUserList = this.findByPhone_new(hpUser);
+                    hpUserList.add(hpUser);//将当前准备绑定手机号的用户添加到该集合去做合并处理
+                    if (hpUserList != null && hpUserList.size() > 0) {
+                        //如果该用户有多条记录,则提示选择一条用户,其余则遗弃不再使用
+                        if (hpUserList.size() > 1) {
+                            for (int i = 0; i < hpUserList.size(); i++) {
+                                Map map = getUserLists(hpUserList.get(i));
+                                HpResume hpResume = (HpResume) map.get("hpResume");
+                                if (hpResume == null) {
+                                    //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
+                                    if (i == 0) {
+                                        HpUser hpUserOth = hpUserList.get(1);
+                                        HpUser hpUserOld = hpUserList.get(0);
+                                        hpUser = changeHpUserData(hpUserOth, hpUserOld);
+                                        userIds = hpUserOld.getId();
+                                    } else {
+                                        HpUser hpUserOth = hpUserList.get(0);
+                                        HpUser hpUserOld = hpUserList.get(1);
+                                        hpUser = changeHpUserData(hpUserOth, hpUserOld);
+                                        userIds = hpUserOld.getId();
+                                    }
+                                    break;
                                 } else {
-                                    HpUser hpUserOth = hpUserList.get(0);
-                                    HpUser hpUserOld = hpUserList.get(1);
-                                    hpUser = changeHpUserData(hpUserOth, hpUserOld);
-                                    userIds = hpUserOld.getId();
+                                    list2.add(map);
                                 }
-                                break;
-                            } else {
-                                list2.add(map);
                             }
+                        } else {
+                            hpUser = hpUserList.get(0);
+                        }
+                        if (StringUtils.isBlank(hpUser.getWxOpenid())) {
+                            hpUser.setWxOpenid(openId);
+                        }
+                        if (StringUtils.isBlank(hpUser.getUnionid())) {
+                            hpUser.setUnionid(unionId);
                         }
-                    } else {
-                        hpUser = hpUserList.get(0);
                     }
-                    if (StringUtils.isBlank(hpUser.getWxOpenid())) {
-                        hpUser.setWxOpenid(openId);
+
+                    //如果登录方式不包含微信授权,则添加
+                    if (!hpUser.getLoginType().contains(AppLoginsEnum.WX_AUTH.getType())) {
+                        String loginType = hpUser.getLoginType() + "," + AppLoginsEnum.WX_AUTH.getType();
+                        hpUser.setLoginType(loginType);
                     }
-                    if (StringUtils.isBlank(hpUser.getUnionid())) {
-                        hpUser.setUnionid(unionId);
+                    if (StringUtils.isBlank(hpUser.getUserToken())) {
+                        //用户token作为请求的标准
+                        long t1 = System.currentTimeMillis();
+                        String timestamp = String.valueOf(t1);
+                        String user_token = Md5Encrypt.md5(hpUser.getId() + timestamp);
+                        hpUser.setUserToken(user_token);
+                    }
+                    if (StringUtils.isBlank(hpUser.getUserType())) {
+                        hpUser.setUserType("0");
                     }
-                }
-
-                //如果登录方式不包含微信授权,则添加
-                if (!hpUser.getLoginType().contains(AppLoginsEnum.WX_AUTH.getType())) {
-                    String loginType = hpUser.getLoginType() + "," + AppLoginsEnum.WX_AUTH.getType();
-                    hpUser.setLoginType(loginType);
-                }
-                if (StringUtils.isBlank(hpUser.getUserToken())) {
-                    //用户token作为请求的标准
-                    long t1 = System.currentTimeMillis();
-                    String timestamp = String.valueOf(t1);
-                    String user_token = Md5Encrypt.md5(hpUser.getId() + timestamp);
-                    hpUser.setUserToken(user_token);
-                }
-                if (StringUtils.isBlank(hpUser.getUserType())) {
-                    hpUser.setUserType("0");
                 }
             } else {
                 //绑不绑定手机号
@@ -2120,57 +2150,76 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     }
                 }
                 hpUser.setPhone(phone);
-                //判断手机号是否存在
-                hpUserList = this.findByPhone_new(hpUser);
-                hpUserList.add(hpUser);//将当前准备绑定手机号的用户添加到该集合去做合并处理
-                if (hpUserList != null && hpUserList.size() > 0) {
-                    //如果该用户有多条记录,则提示选择一条用户,其余则遗弃不再使用
-                    if (hpUserList.size() > 1) {
-                        for (int i = 0; i < hpUserList.size(); i++) {
-                            Map map = getUserLists(hpUserList.get(i));
-                            HpResume hpResume = (HpResume) map.get("hpResume");
-                            if (hpResume == null) {
-                                //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
-                                if (i == 0) {
-                                    HpUser hpUserOth = hpUserList.get(1);
-                                    HpUser hpUserOld = hpUserList.get(0);
-                                    hpUser = changeHpUserData(hpUserOth, hpUserOld);
-                                    userIds = hpUserOld.getId();
+                //查看member表是否存在该手机号用户
+                HpMember hpMember = new HpMember();
+                hpMember.setPhone(phone);
+                List<HpMember> hpMemberList = hpMemberService.findListByPhone(hpMember);
+                if (hpMemberList != null && hpMemberList.size() > 0) {
+                    userIds = hpUser.getId();//此登录的微信用户自动被遗弃
+                    //该手机号存在于member表中,以此用户为唯一
+                    hpUser = hpMemberList.get(0).getHpUser();
+                    //进行数据合并
+                    hpUser = upDateHpUser(hpUser, userIds, "1");
+                    //逻辑删除掉当前登录的用户
+                    if (StringUtils.isNotBlank(userIds)) {
+                        String[] arr = userIds.split(",");
+                        for (int i = 0; i < arr.length; i++) {
+                            this.deleteByUserId(arr[i]);
+                        }
+                    }
+                } else {
+                    //判断手机号是否存在
+                    hpUserList = this.findByPhone_new(hpUser);
+                    hpUserList.add(hpUser);//将当前准备绑定手机号的用户添加到该集合去做合并处理
+                    if (hpUserList != null && hpUserList.size() > 0) {
+                        //如果该用户有多条记录,则提示选择一条用户,其余则遗弃不再使用
+                        if (hpUserList.size() > 1) {
+                            for (int i = 0; i < hpUserList.size(); i++) {
+                                Map map = getUserLists(hpUserList.get(i));
+                                HpResume hpResume = (HpResume) map.get("hpResume");
+                                if (hpResume == null) {
+                                    //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
+                                    if (i == 0) {
+                                        HpUser hpUserOth = hpUserList.get(1);
+                                        HpUser hpUserOld = hpUserList.get(0);
+                                        hpUser = changeHpUserData(hpUserOth, hpUserOld);
+                                        userIds = hpUserOld.getId();
+                                    } else {
+                                        HpUser hpUserOth = hpUserList.get(0);
+                                        HpUser hpUserOld = hpUserList.get(1);
+                                        hpUser = changeHpUserData(hpUserOth, hpUserOld);
+                                        userIds = hpUserOld.getId();
+                                    }
+                                    break;
                                 } else {
-                                    HpUser hpUserOth = hpUserList.get(0);
-                                    HpUser hpUserOld = hpUserList.get(1);
-                                    hpUser = changeHpUserData(hpUserOth, hpUserOld);
-                                    userIds = hpUserOld.getId();
+                                    list2.add(map);
                                 }
-                                break;
-                            } else {
-                                list2.add(map);
                             }
+                        } else {
+                            hpUser = hpUserList.get(0);
+                        }
+                        if (StringUtils.isBlank(hpUser.getMinaOpenid())) {
+                            hpUser.setMinaOpenid(openId);
+                        }
+                        if (StringUtils.isBlank(hpUser.getUnionid())) {
+                            hpUser.setUnionid(unionId);
                         }
-                    } else {
-                        hpUser = hpUserList.get(0);
                     }
-                    if (StringUtils.isBlank(hpUser.getMinaOpenid())) {
-                        hpUser.setMinaOpenid(openId);
+                    //如果登录方式不包含小程序授权,则添加
+                    if (!hpUser.getLoginType().contains(AppLoginsEnum.MINA.getType())) {
+                        String loginType = hpUser.getLoginType() + "," + AppLoginsEnum.MINA.getType();
+                        hpUser.setLoginType(loginType);
                     }
-                    if (StringUtils.isBlank(hpUser.getUnionid())) {
-                        hpUser.setUnionid(unionId);
+                    if (StringUtils.isBlank(hpUser.getUserToken())) {
+                        //用户token作为请求的标准
+                        long t1 = System.currentTimeMillis();
+                        String timestamp = String.valueOf(t1);
+                        String user_token = Md5Encrypt.md5(hpUser.getId() + timestamp);
+                        hpUser.setUserToken(user_token);
+                    }
+                    if (StringUtils.isBlank(hpUser.getUserType())) {
+                        hpUser.setUserType("0");
                     }
-                }
-                //如果登录方式不包含小程序授权,则添加
-                if (!hpUser.getLoginType().contains(AppLoginsEnum.MINA.getType())) {
-                    String loginType = hpUser.getLoginType() + "," + AppLoginsEnum.MINA.getType();
-                    hpUser.setLoginType(loginType);
-                }
-                if (StringUtils.isBlank(hpUser.getUserToken())) {
-                    //用户token作为请求的标准
-                    long t1 = System.currentTimeMillis();
-                    String timestamp = String.valueOf(t1);
-                    String user_token = Md5Encrypt.md5(hpUser.getId() + timestamp);
-                    hpUser.setUserToken(user_token);
-                }
-                if (StringUtils.isBlank(hpUser.getUserType())) {
-                    hpUser.setUserType("0");
                 }
             } else {
                 //绑不绑定手机号