jk-GitHub-coder 4 years ago
parent
commit
5fb252cff3

+ 66 - 17
YijiaRestful/src/main/java/com/platform/yijia/controller/AppUserInfoController.java

@@ -488,32 +488,81 @@ public class AppUserInfoController {
                 String userType = request.getUserType();
                 appUserInfo.setUserType(userType);
                 switch (userType){
-                    case "1":
+                    case "1":       //当为微信用户时
                         AppUserInfo wxInfo = new AppUserInfo();
-                        wxInfo.setUnionId(request.getUnionId());
                         wxInfo.setStationId(request.getStationId());
-                        AppUserInfo wxInfoResult = appUserInfoService.getAppUserInfo(wxInfo);
-                        if(wxInfoResult !=null){
-                            //如果存在微信用户
-                            appUserInfoService.updateAppUserInfo(appUserInfo);
+                        //判断当前登录是否存在手机号
+                        if(StringUtils.isNotBlank(request.getMobilePhone())){
+                            wxInfo.setMobilePhone(request.getMobilePhone());
+                            AppUserInfo wxInfoResult = appUserInfoService.getAppUserInfo(wxInfo);
+                            if(wxInfoResult !=null){
+                                //如果不为空,则说明存在支付宝小程序用户信息;
+                                appUserInfoService.updateAppUserInfo(appUserInfo);
+                                //获取客户公众号的openId,将微信公众号的openId添加到已存在的支付宝小程序用户信息上
+                                //1.获取openId
+
+                                //2.更新
+
+                                //3.删除改用户已存在公众号信息
+
+                            }else {
+                                //否则,根据unionID查询用户信息
+                                wxInfo.setUnionId(request.getUnionId());
+                                wxInfo.setMobilePhone(null);
+                                AppUserInfo appUserInfoByUnionID = appUserInfoService.getAppUserInfo(wxInfo);
+                                if(appUserInfoByUnionID !=null){
+                                    //如果不为空,则说明存在公众号用户信息
+                                    appUserInfoService.updateAppUserInfo(appUserInfo);
+                                }else {
+                                    //否则,新增用户信息
+                                    appUserInfoService.AddAppUserInfo(appUserInfo);
+                                }
+                            }
                         }else {
-                            //如果不存在微信用户
-                            appUserInfoService.AddAppUserInfo(appUserInfo);
+                            //如果没有手机号,则说明是用户公众号登录
+                            wxInfo.setUnionId(request.getUnionId());
+                            AppUserInfo appUserInfoNoPhone = appUserInfoService.getAppUserInfo(wxInfo);
+                            if(appUserInfoNoPhone !=null){
+                                appUserInfoService.updateAppUserInfo(appUserInfo);
+                            }else {
+                                appUserInfoService.AddAppUserInfo(appUserInfo);
+                            }
                         }
                         break;
                     case "2":
                         AppUserInfo aLiInfo  =new AppUserInfo();
                         aLiInfo.setStationId(request.getStationId());
-                        aLiInfo.setALiId(request.getUnionId());
-                        AppUserInfo aLiInfoResult = appUserInfoService.getAppUserInfo(aLiInfo);
-                        if(aLiInfoResult !=null){
-                            //如果存在支付宝用户信息
-                            appUserInfo.setALiId(request.getALiId());
-                            appUserInfoService.updateAppUserInfo(appUserInfo);
-
+                        if(StringUtils.isNotBlank(request.getMobilePhone())){
+                            //如果手机号不为空,则说明是支付宝小程序登录
+                            aLiInfo.setMobilePhone(request.getMobilePhone());
+                            AppUserInfo appUserInfos = appUserInfoService.getAppUserInfo(aLiInfo);
+                            if(appUserInfos !=null){
+                                //如果不为空,则说明用户存在微信小程序用户信息
+                                appUserInfoService.updateAppUserInfo(appUserInfo);
+                                //删除用户支付宝的公众号信息
+                                //appUserInfoService.delAliInfo();
+                            }else {
+                                //如果为空
+                                aLiInfo.setALiId(request.getALiId());
+                                AppUserInfo appUserInfoByAliId = appUserInfoService.getAppUserInfo(aLiInfo);
+                                if(appUserInfoByAliId !=null){
+                                    //如果不为空则说明存在支付宝公众号
+                                    appUserInfoService.updateAppUserInfo(appUserInfo);
+                                }else {
+                                    appUserInfoService.AddAppUserInfo(appUserInfo);
+                                }
+                            }
                         }else {
-                            appUserInfo.setALiId(request.getALiId());
-                            appUserInfoService.AddAppUserInfo(appUserInfo);
+                            //如果手机号为空,则说明是公众号登录
+                            aLiInfo.setALiId(request.getALiId());
+                            AppUserInfo appUserInfoNoPhone = appUserInfoService.getAppUserInfo(aLiInfo);
+                            if(appUserInfoNoPhone !=null){
+                                //说明存在支付宝小程序用户信息
+                                appUserInfoService.updateAppUserInfo(appUserInfo);
+                            }else {
+                                //不存在
+                                appUserInfoService.AddAppUserInfo(appUserInfo);
+                            }
                         }
                         break;
                 }