Parcourir la source

更新用户信息到一条上的时候,判断条件优化

ZhangWenQiang il y a 6 ans
Parent
commit
4244df45ea
1 fichiers modifiés avec 23 ajouts et 100 suppressions
  1. 23 100
      src/main/java/com/jeeplus/modules/sys/service/HpUserService.java

+ 23 - 100
src/main/java/com/jeeplus/modules/sys/service/HpUserService.java

@@ -1352,13 +1352,14 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
     @Transactional(readOnly = false)
     public Map<String, Object> selectInfo(Map<String, String> requestMap) {
         Map<String, Object> returnMap = new HashMap<String, Object>();
+        String currentUser_id = requestMap.get("currentUser_id");//当前登录的用户id
         String userId = requestMap.get("user_id");//选择的用户id
         String phone = requestMap.get("phone");
         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);
+        hpUser = upDateHpUser(hpUser, userIds, currentUser_id, loginType);
         //合并用户信息
         HpMember hpMember = checkMember(hpUser, phone, userIds);
         returnMap.put("hpUser", hpUser);
@@ -1378,9 +1379,9 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
      * @param hpUser
      * @param userIds
      */
-    private HpUser upDateHpUser(HpUser hpUser, String userIds, String loginType) {
-        //没有微信unionid等信息则从废弃的数据里获取
-        if (StringUtils.isBlank(hpUser.getUnionid())) {
+    private HpUser upDateHpUser(HpUser hpUser, String userIds, String currentUserId, String loginType) {
+        //当前用户跟选择的用户不是一个的时候,替换微信参数等
+        if (!currentUserId.equals(hpUser.getId())) {
             String[] userIdArray = userIds.split(",");
             for (int i = 0; i < userIdArray.length; i++) {
                 HpUser hpUser1 = this.get(userIdArray[i]);
@@ -1394,12 +1395,8 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     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]);
+            for (int i = 0; i < userIdArray.length; i++) {
+                HpUser hpUser1 = this.get(userIdArray[i]);
                 if (StringUtils.isNotBlank(hpUser1.getAccessToken())) {
                     hpUser.setAccessToken(hpUser1.getAccessToken());
                 }
@@ -1410,12 +1407,8 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     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]);
+            for (int i = 0; i < userIdArray.length; i++) {
+                HpUser hpUser1 = this.get(userIdArray[i]);
                 if (StringUtils.isNotBlank(hpUser1.getMinaSessionKey())) {
                     hpUser.setMinaSessionKey(hpUser1.getMinaSessionKey());
                 }
@@ -1459,88 +1452,6 @@ public class HpUserService extends CrudService<HpUserMapper, 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]);
-            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等信息
-        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信息
-        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;
-    }
-
-    /**
      * app微信授权登录
      *
      * @param requestMap
@@ -1654,6 +1565,9 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     hpUser.setAccessTokenEndtime(access_token_endtime);
                     this.save(hpUser);
                     if (list2.size() == hpUserList.size() && list2.size() != 0) {
+                        Map map = new HashMap();
+                        map.put("currentUser", hpUser);
+                        list2.add(map);
                         returnMap.put("userList", list2);
                         returnMap.put("success", "2009");
                         return returnMap;
@@ -1743,7 +1657,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     //该手机号存在于member表中,以此用户为唯一
                     hpUser = this.get(hpMemberList.get(0).getHpUser().getId());
                     //进行数据合并
-                    hpUser = upDateHpUserForMember(hpUser, userIds, "1");
+                    hpUser = upDateHpUser(hpUser, userIds, userIds, "1");
                     //逻辑删除掉当前登录的用户
                     if (StringUtils.isNotBlank(userIds)) {
                         String[] arr = userIds.split(",");
@@ -1903,6 +1817,9 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
             hpUser.setAccessTokenEndtime(access_token_endtime);
             this.save(hpUser);
             if (list2.size() == hpUserList.size() && list2.size() != 0) {
+                Map map = new HashMap();
+                map.put("currentUser", hpUser);
+                list2.add(map);
                 returnMap.put("userList", list2);
                 returnMap.put("success", "2009");
                 return returnMap;
@@ -2183,6 +2100,9 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                         hpUser1.setLoginTime(new Date());
                         this.save(hpUser1);
                         if (list2.size() == hpUserList.size() && list2.size() != 0) {
+                            Map map = new HashMap();
+                            map.put("currentUser", hpUser1);
+                            list2.add(map);
                             returnMap.put("userList", list2);
                             returnMap.put("success", "2009");
                             return returnMap;
@@ -2262,7 +2182,7 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
                     //该手机号存在于member表中,以此用户为唯一
                     hpUser = this.get(hpMemberList.get(0).getHpUser().getId());
                     //进行数据合并
-                    hpUser = upDateHpUserForMember(hpUser, userIds, "1");
+                    hpUser = upDateHpUser(hpUser, userIds, userIds, "1");
                     //逻辑删除掉当前登录的用户
                     if (StringUtils.isNotBlank(userIds)) {
                         String[] arr = userIds.split(",");
@@ -2414,6 +2334,9 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
             hpUser.setMinaSessionKey(sessionKey);
             this.save(hpUser);
             if (list2.size() == hpUserList.size() && list2.size() != 0) {
+                Map map = new HashMap();
+                map.put("currentUser", hpUser);
+                list2.add(map);
                 returnMap.put("userList", list2);
                 returnMap.put("success", "2009");
                 return returnMap;