Bladeren bron

优化APP授权登录,处理重复插入数据

yjwang 3 weken geleden
bovenliggende
commit
3652c0fa41

+ 20 - 6
fs-user-app/src/main/java/com/fs/app/controller/AppLoginController.java

@@ -308,9 +308,9 @@ public class AppLoginController extends AppBaseController{
             return R.error("账号或密码不能为空");
         }
 
-        Map result = WxUtil.getAccessToken(param.getCode(), openProperties.getAppId(), openProperties.getSecret());
-        String unionid = result.get("unionid").toString();
-        FsUser user = findUserByPhoneAndUnionId(param.getPhone(),unionid);
+//        Map result = WxUtil.getAccessToken(param.getCode(), openProperties.getAppId(), openProperties.getSecret());
+//        String unionid = result.get("unionid").toString();
+        FsUser user = findUserByPhone(param.getPhone());
 
         // 校验用户是否存在及账号状态
         if (user == null) {
@@ -349,7 +349,7 @@ public class AppLoginController extends AppBaseController{
         String openid = String.valueOf(tokenResult.get("openid"));
 
         // 根据手机号查用户
-        FsUser user = findUserByPhoneAndUnionId(phone,unionid);
+        FsUser user = findUserByPhone(phone);
 
         // 获取微信用户信息
         Map userInfo = WxUtil.getUserInfo(accessToken, openid);
@@ -362,6 +362,9 @@ public class AppLoginController extends AppBaseController{
         if (tokenResult == null || tokenResult.get("access_token") == null) {
             return R.error("微信授权失败");
         }
+        param.setUnionid(unionid);
+        param.setNickName(nickname);
+        param.setAvatar(avatar);
         // 手机号不存在,根据unionid查询
         if (user == null) {
             // 根据unionid查询不到,创建新用户
@@ -405,11 +408,22 @@ public class AppLoginController extends AppBaseController{
         FsUser newUser = new FsUser();
         newUser.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
         newUser.setSource(param.getSource() != null ? param.getSource() : null );
-        newUser.setNickName("匿名用户**");
+        if(StringUtils.isNotBlank(param.getNickName())){
+            newUser.setNickName(param.getNickName());
+        }else {
+            newUser.setNickName("匿名用户**");
+        }
         newUser.setPhone(param.getPhone());
         newUser.setCreateTime(new Date());
         newUser.setStatus(1);
-        newUser.setAvatar("https://cos.his.cdwjyyh.com/fs/20240926/420728ee06e54575ba82665dedb4756b.png");
+        if(StringUtils.isNotBlank(param.getUnionid())){
+            newUser.setUnionId(param.getUnionid());
+        }
+       if(StringUtils.isNotBlank(param.getAvatar())){
+           newUser.setAvatar(param.getAvatar());
+       }else {
+           newUser.setAvatar("https://cos.his.cdwjyyh.com/fs/20240926/420728ee06e54575ba82665dedb4756b.png");
+       }
         if (StringUtils.isNotEmpty(param.getJpushId())) {
             newUser.setJpushId(param.getJpushId());
         }

+ 5 - 0
fs-user-app/src/main/java/com/fs/app/param/FsUserLoginParam.java

@@ -23,5 +23,10 @@ public class FsUserLoginParam implements Serializable {
 
     private String loginDevice;
     private String source;
+    //唯一标识
     private String unionid;
+    //昵称
+    private String nickName;
+    //头像
+    private String avatar;
 }