From fbb473488a8b7ece88ecba16d8f2ba25c0c35c61 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 18 九月 2023 14:55:05 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java       |   31 +++++++++++++++++++++++++++----
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java    |    8 ++++++--
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java          |    3 ++-
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java               |    2 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java |   15 ++++++++-------
 5 files changed, 45 insertions(+), 14 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
index 59c2c3f..a78732c 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
@@ -40,7 +40,8 @@
 	}
 
 	@Override
-	public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) {
+	public R<Integer> updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels) {
 		return R.fail("鏇存柊鏁版嵁澶辫触");
 	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
index 61bc9e2..b82489f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.controller;
 
 import com.vci.ubcs.code.service.UniversalInterfaceI;
+import org.apache.tools.ant.taskdefs.condition.Http;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.core.tool.api.R;
@@ -13,6 +14,7 @@
 import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.Context;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * 涓婚搴撳垎绫绘帶鍒跺櫒
@@ -43,10 +45,12 @@
 	 * @throws Throwable
 	 */
 	@PostMapping("/applyCode")
-	public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, ServletRequest request)  {
+	public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, HttpServletRequest request)  {
 		String result="";
-		HttpServletRequest httpServletRequest = (HttpServletRequest) request;
 		try {
+			ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>();
+			threadLocal.set(request);
+			universalInterfaceI.setThreadLocal(threadLocal);
 			result = universalInterfaceI.applyCode(dataString, dataType);
 		}catch (Throwable e){
 			e.printStackTrace();
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java
index 5770889..428b3e0 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java
@@ -27,6 +27,8 @@
      */
     public String applyCode(String data, String dataType)throws Throwable;
 
+	public void setThreadLocal(ThreadLocal<HttpServletRequest> threadLocal);
+
 	/****
 	 * 浜哄憳鏁版嵁鍚屾
 	 * @param personData
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
index 1457d0a..7008270 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -11,6 +11,7 @@
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.redis.cache.BladeRedis;
 import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
@@ -84,9 +85,11 @@
 		String ipAddr = request.getRemoteAddr();
 		// 鍏堝皾璇曚粠缂撳瓨褰撲腑鍙栵紝瀛樺湪灏辩洿鎺ヤ粠缂撳瓨涓幏鍙�
 		String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName);
-		BladeUser user = null;
+		// 瑙f瀽token瀛樻斁杩沘ttr涓�
+		String token2 = JwtUtil.getToken(authToken);
+		BladeUser user = this.getUser(token2);
 		//涓嶅瓨鍦ㄥ氨璇锋眰
-		if(Func.isEmpty(authToken)){
+		if(Func.isEmpty(authToken) || Func.isEmpty(user)){
 			// 鍏嶅瘑鐧诲綍鎺ュ彛鍦板潃
 			String loginUrl = "http://localhost:"+this.getGatewayPort("ubcs-gateway")+"/ubcs-auth/oauth/token";
 			// 璇锋眰ubcs-auth鏈嶅姟鑾峰彇token锛屽厛璁剧疆璇锋眰澶�
@@ -118,10 +121,10 @@
 			authToken = "bearer " + tokenUserObject.getAccess_token();
 			// 灏唗oken瀛樺叆缂撳瓨褰撲腑,杩囨湡鏃堕棿涓�24灏忔椂
 			bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName,"bearer "+tokenUserObject.getAccess_token(),tokenRedisExpire);
+			token2 = JwtUtil.getToken(authToken);
+			user = this.getUser(token2);
 		}
-		// 瑙f瀽token瀛樻斁杩沘ttr涓�
-		String token2 = JwtUtil.getToken(authToken);
-		user = this.getUser(token2);
+
 		//request.setAttribute("Blade-Auth",token);
 		request.setAttribute("_BLADE_USER_REQUEST_ATTR_",user);
 		return true;
@@ -186,11 +189,9 @@
 		if (StringUtil.isNotBlank(authToken)) {
 			token = JwtUtil.getToken(authToken);
 		}
-
 		if (StringUtil.isNotBlank(token)) {
 			claims = parseJWT(token);
 		}
-
 		if (ObjectUtil.isNotEmpty(claims) && getJwtProperties().getState()) {
 			tenantId = Func.toStr(claims.get("tenant_id"));
 			String userId = Func.toStr(claims.get("user_id"));
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index 540121c..31b61e1 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -53,6 +53,9 @@
 import com.vci.ubcs.system.vo.DeptVO;
 import com.vci.ubcs.system.vo.RoleVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.tools.ant.taskdefs.condition.Http;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,7 +65,9 @@
 
 import javax.annotation.Resource;
 import javax.jws.WebMethod;
+import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.Context;
 import javax.xml.ws.WebServiceContext;
 import javax.xml.ws.handler.MessageContext;
 import java.util.*;
@@ -161,13 +166,31 @@
 	private  String objerrorCode="0";
 	private String objerrorMsg="鎴愬姛";
 
+	private final ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>();
+
 	@Resource
 	private WebServiceContext webServiceContext;
 
+	@Override
+	public void setThreadLocal(ThreadLocal<HttpServletRequest> requestThreadLocal){
+		this.threadLocal.set(requestThreadLocal.get());
+		requestThreadLocal.remove();
+	}
+
 	@WebMethod
-	public HttpServletRequest getRequest() {
-		// 鑾峰彇HttpServletRequest瀵硅薄
-		HttpServletRequest request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
+	private HttpServletRequest getRequest() {
+		//rest璇锋眰鏂瑰紡鑾峰彇request
+		HttpServletRequest request = this.threadLocal.get();
+		if(Func.isEmpty(request)){
+			try {
+				// webservice璇锋眰鏂瑰紡鑾峰彇HttpServletRequest瀵硅薄
+				request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
+			}catch (Exception e){
+				throw new ServiceException("鑾峰彇httpServletRequest澶辫触锛屽師鍥�:"+e.getMessage());
+			}
+		}else {
+			this.threadLocal.remove();
+		}
 		return request;
 	}
 
@@ -215,6 +238,7 @@
 			UserVO userVo = interParameterVO.getData().getUser();
 			//鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭�
 			passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
+			AuthUtil.getUser();
 			List<ClassfyVO> classVOList = classfysVO.getClassify();
 			InterParameterVO finalInterParameterVO = interParameterVO;
 			//杩欐槸璐﹀彿淇℃伅
@@ -1463,7 +1487,6 @@
 
 	@Override
 	public String queryClassifyRule(String data, String dataType) throws Throwable {
-
 		boolean issucess=false;
 		String resultStr = "";
 		String errorid="0";

--
Gitblit v1.9.3