From 711c855e134edc75faf03d96ec8b3dd0e269fb0a Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 30 Nov 2023 11:22:08 +0800
Subject: [PATCH] 微信登录修改

---
 src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java |   55 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 40 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java b/src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java
index 3cfb20e..64b9aa4 100644
--- a/src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java
+++ b/src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java
@@ -18,6 +18,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import me.zhyd.oauth.model.AuthCallback;
 import me.zhyd.oauth.model.AuthResponse;
@@ -30,14 +31,13 @@
 import org.springblade.core.social.props.SocialProperties;
 import org.springblade.core.social.utils.SocialUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.*;
 import org.springblade.modules.auth.enums.UserEnum;
 import org.springblade.modules.auth.provider.ITokenGranter;
 import org.springblade.modules.auth.provider.TokenParameter;
 import org.springblade.modules.auth.utils.TokenUtil;
-import org.springblade.modules.system.entity.Tenant;
-import org.springblade.modules.system.entity.UserInfo;
-import org.springblade.modules.system.entity.UserOauth;
+import org.springblade.modules.system.entity.*;
 import org.springblade.modules.system.service.ITenantService;
 import org.springblade.modules.system.service.IUserService;
 import org.springframework.stereotype.Component;
@@ -45,10 +45,7 @@
 import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 微信小程序 TokenGranter
@@ -77,17 +74,14 @@
 		// 判断用户是否存在
 		UserInfo userInfo = userService.getUserByPhone(phone);
 		if (null==userInfo){
-			throw new ServiceException("用户不存在!");
+			User user = new User();
+			user.setPhone(phone);
+			UserInfo userInfo1 = buildUserInfo(user, UserEnum.WEB);
+			return userInfo1;
 		}else {
-			//判断是否为保安员
-			//判断是否已报名
-			boolean flag = userService.getUserIsApply(userInfo.getUser().getId());
-			if (!flag){
-				throw new ServiceException("没有报名不能进行刷题!");
-			}
+			return userInfo;
 		}
 		// 返回UserInfo
-		return userInfo;
 	}
 
 	/**
@@ -126,4 +120,35 @@
 		return accessToken;
 	}
 
+	private UserInfo buildUserInfo(User user, UserEnum userEnum) {
+		if (ObjectUtil.isEmpty(user)) {
+			return null;
+		}
+		UserInfo userInfo = new UserInfo();
+		userInfo.setUser(user);
+		// 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段
+		Kv detail = Kv.create().set("type", userEnum.getName());
+		if (userEnum == UserEnum.WEB) {
+			UserWeb userWeb = new UserWeb();
+			UserWeb query = userWeb.selectOne(Wrappers.<UserWeb>lambdaQuery().eq(UserWeb::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				detail.set("ext", query.getUserExt());
+			}
+		} else if (userEnum == UserEnum.APP) {
+			UserApp userApp = new UserApp();
+			UserApp query = userApp.selectOne(Wrappers.<UserApp>lambdaQuery().eq(UserApp::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				detail.set("ext", query.getUserExt());
+			}
+		} else {
+			UserOther userOther = new UserOther();
+			UserOther query = userOther.selectOne(Wrappers.<UserOther>lambdaQuery().eq(UserOther::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				detail.set("ext", query.getUserExt());
+			}
+		}
+		userInfo.setDetail(detail);
+		return userInfo;
+	}
+
 }

--
Gitblit v1.9.3