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 +++++++++++++++++++++++++++----
 1 files changed, 27 insertions(+), 4 deletions(-)

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