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/endpoint/BladeTokenEndPoint.java | 26 ------------
src/main/java/org/springblade/modules/auth/granter/WxTokenGranter.java | 55 ++++++++++++++++++++-------
2 files changed, 41 insertions(+), 40 deletions(-)
diff --git a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
index e1c813f..1e12306 100644
--- a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
+++ b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
@@ -199,8 +199,8 @@
public Kv token(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId,
@ApiParam(value = "账号", required = true) @RequestParam(required = false) String username,
@ApiParam(value = "编号", required = true) @RequestParam(required = false) String code) {
+
Kv authInfo = Kv.create();
- String s = iZcService.selectType(username);
String grantType = WebUtil.getRequest().getParameter("grant_type");
String refreshToken = WebUtil.getRequest().getParameter("refresh_token");
@@ -212,30 +212,6 @@
ITokenGranter granter = TokenGranterBuilder.getGranter(grantType);
UserInfo userInfo = granter.grant(tokenParameter);
-
- try {
- Long parse = new SimpleDateFormat("yyyy-MM-dd").parse("2023-08-08").getTime();
- long now= System.currentTimeMillis();
- if (parse < now){
- throw new ServiceException("试用已到期");
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
-
-
- //校验
- if (null != s && s.equals("")) {
- if (s.equals("0")) {
- return authInfo.set("error_description", "用户未审核");
- }
- if (s.equals("2")) {
- return authInfo.set("error_description", "审核不通过");
- }
- }
- if (userInfo == null || userInfo.getUser() == null) {
- return authInfo.set("error_code", HttpServletResponse.SC_BAD_REQUEST).set("error_description", "用户不存在");
- }
return TokenUtil.createAuthInfo(userInfo);
}
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