Browse Source

fix 网页授权首次登录注册环境

zoujiajian 3 năm trước cách đây
mục cha
commit
8295512e83

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/user/UserService.java

@@ -14,7 +14,7 @@ import java.util.List;
  */
 public interface UserService extends IService<User> {
 
-    User saveAuth(GzhOAuth2UserInfo userinfo, Long sharedId, Integer dsType, Long pid);
+    User saveAuth(GzhOAuth2UserInfo userinfo, Long sharedId, Integer dsType, Long pid, User.RegisterEnv registerEnv);
 
     UserWhoami whoami(long userId);
 

+ 7 - 7
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -67,11 +67,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 	private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@Override
-    public User saveAuth(GzhOAuth2UserInfo info, Long sharedId, Integer dsType, Long pid) {
-        final String unionid = info.getUnionid();
-        if (StrUtil.isEmpty(unionid)) {
-            throw BusinessRuntimeException.getInstance("授权操作异常,请刷新页面");
-        }
+	public User saveAuth(GzhOAuth2UserInfo info, Long sharedId, Integer dsType, Long pid, User.RegisterEnv registerEnv) {
+		final String unionid = info.getUnionid();
+		if (StrUtil.isEmpty(unionid)) {
+			throw BusinessRuntimeException.getInstance("授权操作异常,请刷新页面");
+		}
 
 		User user = getSyncUser(info.getOpenid(), info.getUnionid(), null);
 
@@ -93,7 +93,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 		if (user.getId() == null) {
 			isNewUser = true;
 			user.setPopularizeId(pid);
-			user.setRegisterEnv(User.RegisterEnv.wx.name());
+			user.setRegisterEnv(registerEnv.name());
 			if (!redisService.setNx(RedisService.key.REPEAT_USER_KEY.getNameFormat(user.getUnionid()), user.getUnionid(), RedisService.key.REPEAT_USER_KEY.getTimeout())) {
 				return this.getOne(Wrappers.lambdaQuery(User.class)
 						.eq(User::getUnionid, unionid).last("limit 1"));
@@ -101,7 +101,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 			this.save(user);
 		} else {
 			if (StrUtil.isEmpty(user.getRegisterEnv())) {
-				user.setRegisterEnv(User.RegisterEnv.wx.name());
+				user.setRegisterEnv(registerEnv.name());
 			}
 			this.updateById(user);
 		}

+ 4 - 4
netflix-web/src/main/java/com/cyksj/web/controller/user/AuthorizationController.java

@@ -119,7 +119,7 @@ public class AuthorizationController {
     public void redirect(String code, String state, HttpServletResponse response) throws Exception {
         AuthToken token = weChatService.getAuthToken(code,weChatConfig.getAppid());
 
-        baseRedirect(token, state, response);
+        baseRedirect(token, state, User.RegisterEnv.wx, response);
     }
 
     /**
@@ -219,7 +219,7 @@ public class AuthorizationController {
 
         AuthToken token = weChatService.getAuthToken(code, wxOpenPlatYHLXLoginConfig.getAppId());
         //重定向
-        baseRedirect(token, state, response);
+        baseRedirect(token, state, User.RegisterEnv.pc, response);
     }
 
     /**
@@ -418,7 +418,7 @@ public class AuthorizationController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(loginPhoneRep);
     }
 
-    public void baseRedirect(AuthToken token, String state, HttpServletResponse response) throws Exception {
+    public void baseRedirect(AuthToken token, String state, User.RegisterEnv registerEnv, HttpServletResponse response) throws Exception {
         // 根据openid 与 access_token 获取用户信息
         GzhOAuth2UserInfo userinfo = weChatService.getUserInfo(token.getAccessToken(), token.getOpenid());
 
@@ -426,7 +426,7 @@ public class AuthorizationController {
         String json = Codec.DoBase64.custom().setData(state).decodeAsText();
         AuthRedirect re = Jsons.parseObject(json, AuthRedirect.class);
         //保存用户信息
-        User user = userService.saveAuth(userinfo, re.getSharedId(), re.getDsType(), re.getPid());
+        User user = userService.saveAuth(userinfo, re.getSharedId(), re.getDsType(), re.getPid(), registerEnv);
         if (user == null) {
             throw BusinessRuntimeException.getInstance("系统错误,请重新授权");
         }