Przeglądaj źródła

选择用户信息时,判断条件恢复,memberid存在时的数据合并重新独立出来

ZhangWenQiang 6 lat temu
rodzic
commit
95aa12fdf4

+ 118 - 20
src/main/java/com/jeeplus/modules/sys/service/HpUserService.java

@@ -1112,9 +1112,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
             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 (this.checkUser(hpUserList.get(i))) {
                         //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                         if (i == 0) {
                             HpUser hpUserOth = hpUserList.get(1);
@@ -1286,6 +1284,27 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
     }
 
     /**
+     * 检查用户是否存在数据
+     * true:不存在用户信息
+     * false:存在用户信息
+     *
+     * @param hpUser
+     * @return
+     */
+    private Boolean checkUser(HpUser hpUser) {
+        //获取用户简历信息
+        Map map = getUserLists(hpUser);
+        HpResume hpResume = (HpResume) map.get("hpResume");
+        //获取用户认证信息
+        String idCardNumber = hpUser.getIdCardNumber();
+        //1:简历是否存在;2:用户是否提交了实名认证;作为判断该账号下是否存在数据的标准
+        if (StringUtils.isBlank(idCardNumber) && hpResume == null) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
      * 判断member表是否存在该手机号用户
      */
     @Transactional(readOnly = false)
@@ -1357,6 +1376,94 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
      */
     private HpUser upDateHpUser(HpUser hpUser, String userIds, String loginType) {
         //没有微信unionid等信息则从废弃的数据里获取
+        if (StringUtils.isBlank(hpUser.getUnionid())) {
+            String[] userIdArray = userIds.split(",");
+            for (int i = 0; i < userIdArray.length; i++) {
+                HpUser hpUser1 = this.get(userIdArray[i]);
+                if (StringUtils.isNotBlank(hpUser1.getUnionid())) {
+                    hpUser.setUnionid(hpUser1.getUnionid());
+                }
+                if (StringUtils.isNotBlank(hpUser1.getWxOpenid())) {
+                    hpUser.setWxOpenid(hpUser1.getWxOpenid());
+                }
+                if (StringUtils.isNotBlank(hpUser1.getMinaOpenid())) {
+                    hpUser.setMinaOpenid(hpUser1.getMinaOpenid());
+                }
+            }
+        }
+        //如果没有accesstoken等信息
+        if (StringUtils.isBlank(hpUser.getAccessToken())) {
+            String[] userIdArray1 = userIds.split(",");
+            for (int i = 0; i < userIdArray1.length; i++) {
+                HpUser hpUser1 = this.get(userIdArray1[i]);
+                if (StringUtils.isNotBlank(hpUser1.getAccessToken())) {
+                    hpUser.setAccessToken(hpUser1.getAccessToken());
+                }
+                if (hpUser1.getAccessTokenEndtime() != null) {
+                    hpUser.setAccessTokenEndtime(hpUser1.getAccessTokenEndtime());
+                }
+                if (StringUtils.isNotBlank(hpUser1.getRefreshToken())) {
+                    hpUser.setRefreshToken(hpUser1.getRefreshToken());
+                }
+            }
+        }
+        //如果没有小程序SessionKey信息
+        if (StringUtils.isBlank(hpUser.getMinaSessionKey())) {
+            String[] userIdArray2 = userIds.split(",");
+            for (int i = 0; i < userIdArray2.length; i++) {
+                HpUser hpUser1 = this.get(userIdArray2[i]);
+                if (StringUtils.isNotBlank(hpUser1.getMinaSessionKey())) {
+                    hpUser.setMinaSessionKey(hpUser1.getMinaSessionKey());
+                }
+            }
+        }
+        switch (loginType) {
+            case "0":
+                //如果登录方式不包含小程序授权,则添加
+                if (!hpUser.getLoginType().contains(AppLoginsEnum.MINA.getType())) {
+                    String loginType1 = hpUser.getLoginType() + "," + AppLoginsEnum.MINA.getType();
+                    hpUser.setLoginType(loginType1);
+                }
+                break;
+            case "1":
+                //如果登录方式不包含微信授权,则添加
+                if (!hpUser.getLoginType().contains(AppLoginsEnum.WX_AUTH.getType())) {
+                    String loginType1 = hpUser.getLoginType() + "," + AppLoginsEnum.WX_AUTH.getType();
+                    hpUser.setLoginType(loginType1);
+                }
+                break;
+            case "2":
+                //如果登录方式不包含app,则添加
+                if (!hpUser.getLoginType().contains(AppLoginsEnum.APP.getType())) {
+                    String loginType1 = hpUser.getLoginType() + "," + AppLoginsEnum.APP.getType();
+                    hpUser.setLoginType(loginType1);
+                }
+                break;
+        }
+        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");
+        }
+        this.save(hpUser);
+        return hpUser;
+    }
+
+    /**
+     * 当memberId存在时更新数据
+     *
+     * @param hpUser
+     * @param userIds
+     * @param loginType
+     * @return
+     */
+    private HpUser upDateHpUserForMember(HpUser hpUser, String userIds, String loginType) {
+        //没有微信unionid等信息则从废弃的数据里获取
         String[] userIdArray = userIds.split(",");
         for (int i = 0; i < userIdArray.length; i++) {
             HpUser hpUser1 = this.get(userIdArray[i]);
@@ -1482,10 +1589,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     if (hpUserList.size() > 1) {
                         for (int i = 0; i < hpUserList.size(); i++) {
                             Map map = getUserLists(hpUserList.get(i));
-                            HpResume hpResume = (HpResume) map.get("hpResume");
-                            logger.info("hpResume===================" + hpResume);
-                            //以简历是否存在作为判断该账号下是否存在数据的标准
-                            if (hpResume == null) {
+                            if (this.checkUser(hpUserList.get(i))) {
                                 //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                                 if (i == 0) {
                                     HpUser hpUserOth = hpUserList.get(1);
@@ -1635,7 +1739,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     //该手机号存在于member表中,以此用户为唯一
                     hpUser = this.get(hpMemberList.get(0).getHpUser().getId());
                     //进行数据合并
-                    hpUser = upDateHpUser(hpUser, userIds, "1");
+                    hpUser = upDateHpUserForMember(hpUser, userIds, "1");
                     //逻辑删除掉当前登录的用户
                     if (StringUtils.isNotBlank(userIds)) {
                         String[] arr = userIds.split(",");
@@ -1652,8 +1756,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                         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 (this.checkUser(hpUserList.get(i))) {
                                     //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                                     if (i == 0) {
                                         HpUser hpUserOth = hpUserList.get(1);
@@ -1706,8 +1809,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                         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 (this.checkUser(hpUserList.get(i))) {
                                     //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                                     if (i == 0) {
                                         HpUser hpUserOth = hpUserList.get(1);
@@ -2026,9 +2128,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                         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 (this.checkUser(hpUserList.get(i))) {
                                     //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                                     if (i == 0) {
                                         HpUser hpUserOth = hpUserList.get(1);
@@ -2158,7 +2258,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     //该手机号存在于member表中,以此用户为唯一
                     hpUser = this.get(hpMemberList.get(0).getHpUser().getId());
                     //进行数据合并
-                    hpUser = upDateHpUser(hpUser, userIds, "1");
+                    hpUser = upDateHpUserForMember(hpUser, userIds, "1");
                     //逻辑删除掉当前登录的用户
                     if (StringUtils.isNotBlank(userIds)) {
                         String[] arr = userIds.split(",");
@@ -2175,8 +2275,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                         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 (this.checkUser(hpUserList.get(i))) {
                                     //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                                     if (i == 0) {
                                         HpUser hpUserOth = hpUserList.get(1);
@@ -2229,8 +2328,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                         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 (this.checkUser(hpUserList.get(i))) {
                                     //没有简历,该条用户记录自动被视为放弃,数据绑定到另外的用户上
                                     if (i == 0) {
                                         HpUser hpUserOth = hpUserList.get(1);