Browse Source

Merge remote-tracking branch 'origin/develop' into develop

liyang 3 years ago
parent
commit
41f7b46eef

+ 27 - 0
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/config/InterceptorAdapterConfig.java

@@ -0,0 +1,27 @@
+package com.persagy.adm.diagram.config;
+
+
+import com.persagy.adm.diagram.frame.BdtpInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * 拦截器配置
+ */
+@Configuration
+public class InterceptorAdapterConfig implements WebMvcConfigurer {
+
+	@Bean
+	public BdtpInterceptor bdtpInterceptor() {
+		return new BdtpInterceptor();
+	}
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		//TODO 设置优先级
+		registry.addInterceptor(bdtpInterceptor());
+	}
+
+}

+ 3 - 3
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/controller/CommonController.java

@@ -30,17 +30,17 @@ public class CommonController {
 
 	@RequestMapping("equipTypes")
 	public CommonResult<List<ObjectNode>> equipTypes(){
-		return CommonResult.success(bdtpDataService.getEquipTypeList(new BdtpRequest(), null));
+		return CommonResult.success(bdtpDataService.getEquipTypeList(BdtpRequest.getCurrent(), null));
 	}
 
 	@RequestMapping("relTypes")
 	public CommonResult<List<Map<String, Object>>> relTypes(){
-		return CommonResult.success(bdtpDataService.getRelTypeTree(new BdtpRequest()));
+		return CommonResult.success(bdtpDataService.getRelTypeTree(BdtpRequest.getCurrent()));
 	}
 
 	@RequestMapping("majSys")
 	public CommonResult<List<ObjectNode>> majSys(){
-		BdtpRequest req = new BdtpRequest();
+		BdtpRequest req = BdtpRequest.getCurrent();
 		List<ObjectNode> majList = bdtpDataService.getMajorList(req);
 		List<ObjectNode> sysList = bdtpDataService.getSystemList(req);
 

+ 3 - 3
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/demo/DemoDataStrategy.java

@@ -349,7 +349,7 @@ public class DemoDataStrategy implements DataStrategy {
 
 	@Override
 	public List<ObjectNode> loadObjectsByType(List<String> equipmentTypes, String projectId, String systemId, String groupCode) {
-		BdtpRequest req = new BdtpRequest();
+		BdtpRequest req = BdtpRequest.getCurrent();
 		req.setProjectId(projectId);
 		req.setGroupCode(groupCode);
 		return dataService.queryObjectsByType(req, equipmentTypes, systemId);
@@ -357,7 +357,7 @@ public class DemoDataStrategy implements DataStrategy {
 
 	@Override
 	public List<ObjectNode> loadRelationsByType(List<String[]> relationTypes, List<String> objectIds, String projectId, String groupCode) {
-		BdtpRequest req = new BdtpRequest();
+		BdtpRequest req = BdtpRequest.getCurrent();
 		req.setProjectId(projectId);
 		req.setGroupCode(groupCode);
 		return dataService.queryRelsByTypeAndObj(req, relationTypes, objectIds);
@@ -365,7 +365,7 @@ public class DemoDataStrategy implements DataStrategy {
 
 	@Override
 	public List<ObjectNode> loadObjectsById(List<String> objectIds, String projectId, String groupCode) {
-		BdtpRequest req = new BdtpRequest();
+		BdtpRequest req = BdtpRequest.getCurrent();
 		req.setProjectId(projectId);
 		req.setGroupCode(groupCode);
 		return dataService.queryObjectsById(req, objectIds);

+ 28 - 0
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/frame/BdtpInterceptor.java

@@ -0,0 +1,28 @@
+package com.persagy.adm.diagram.frame;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 处理bdtp请求参数,创建/销毁请求对象封装
+ */
+@Component
+public class BdtpInterceptor extends HandlerInterceptorAdapter {
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+		BdtpRequest req = BdtpRequest.get(request.getParameter("groupCode"), request.getParameter("projectId"), request.getParameter("userId"));
+		BdtpRequest.setCurrent(req);
+		return true;
+	}
+
+	@Override
+	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+		BdtpRequest.removeCurrent();
+	}
+
+}

+ 21 - 0
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/frame/BdtpRequest.java

@@ -16,6 +16,10 @@ public class BdtpRequest {
 
 	private String projectId = "0";
 
+	private BdtpRequest(){
+
+	}
+
 	public static BdtpRequest get(String groupCode, String projectId, String userId){
 		BdtpRequest req = new BdtpRequest();
 		req.setGroupCode(groupCode);
@@ -24,4 +28,21 @@ public class BdtpRequest {
 		return req;
 	}
 
+	/**
+	 * 线程变量,方便过程中使用请求对象
+	 */
+	private static ThreadLocal<BdtpRequest> threadLocal = new ThreadLocal<>();
+
+	public static void setCurrent(BdtpRequest bdtpRequest){
+		threadLocal.set(bdtpRequest);
+	}
+
+	public static BdtpRequest getCurrent(){
+		return threadLocal.get();
+	}
+
+	public static void removeCurrent(){
+		threadLocal.remove();
+	}
+
 }

+ 1 - 1
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/frame/ExceptionAspect.java

@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
 @Slf4j
 public class ExceptionAspect {
 
-    @Pointcut("execution(public * com.persagy.diagram.controller.*Controller.*(..))")
+    @Pointcut("execution(public * com.persagy.adm.diagram.controller.*Controller.*(..))")
     public void handle(){
 
     }

+ 1 - 1
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/manage/DemoDiagramManager.java

@@ -52,7 +52,7 @@ public class DemoDiagramManager {
 			buildDiagram(diagram, true);
 		}
 
-		BdtpRequest req = new BdtpRequest();
+		BdtpRequest req = BdtpRequest.getCurrent();
 //		List<ObjectNode> maj = bdtpDataService.getMajorList(req);
 //		List<ObjectNode> sys = bdtpDataService.getSystemList(req);
 		//TODO debug

+ 1 - 1
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/manage/TemplateManager.java

@@ -57,7 +57,7 @@ public class TemplateManager {
 			buildTemplate(template);
 		}
 
-		BdtpRequest req = new BdtpRequest();
+		BdtpRequest req = BdtpRequest.getCurrent();
 //		List<ObjectNode> maj = bdtpDataService.getMajorList(req);
 //		List<ObjectNode> sys = bdtpDataService.getSystemList(req);
 		//TODO debug