From b642d244b6df736ecd390368a9ffff72ddad56e5 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期三, 17 五月 2023 21:57:11 +0800
Subject: [PATCH] 以及发布webservice接口功能搭建,将通通用接口移植过来

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java |   99 ++++++++++++++++++++++++
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/config/AppAutoConfigure.java         |  113 ++++++++++++++++++++++++++++
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java                |    7 +
 3 files changed, 219 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/config/AppAutoConfigure.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/config/AppAutoConfigure.java
index e69de29..c5b2ab7 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/config/AppAutoConfigure.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/config/AppAutoConfigure.java
@@ -0,0 +1,113 @@
+package com.vci.ubcs.starter.web.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 搴旂敤淇℃伅閰嶇疆
+ * @author weidy
+ */
+@Configuration
+@ConfigurationProperties(prefix = "app")
+public class AppAutoConfigure {
+    /**
+     * 鎵�灞炵粍缁�
+     */
+    private String group;
+    /**
+     * 搴旂敤鍚嶇О
+     */
+    private String name;
+    /**
+     * 搴旂敤鎻忚堪
+     */
+    private String description;
+    /**
+     * 浣滆��
+     */
+    private String author;
+    /**
+     * 閭欢
+     */
+    private String email;
+    /**
+     * 閾炬帴鍦板潃
+     */
+    private String url;
+
+    /**
+     * 搴旂敤绉侀挜
+     */
+    private String privateTokenKey;
+
+
+
+    public String getGroup() {
+        return group;
+    }
+
+    public void setGroup(String group) {
+        this.group = group;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getPrivateTokenKey() {
+        return privateTokenKey;
+    }
+
+    public void setPrivateTokenKey(String privateTokenKey) {
+        this.privateTokenKey = privateTokenKey;
+    }
+
+    @Override
+    public String toString() {
+        return "AppAutoConfigure{" +
+                "group='" + group + '\'' +
+                ", name='" + name + '\'' +
+                ", description='" + description + '\'' +
+                ", author='" + author + '\'' +
+                ", email='" + email + '\'' +
+                ", url='" + url + '\'' +
+                ", privateTokenKey='" + privateTokenKey + '\'' +
+                '}';
+    }
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java
index e69de29..7fedeb5 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java
@@ -0,0 +1,99 @@
+package com.vci.ubcs.starter.web.util;
+
+import com.vci.ubcs.starter.web.config.AppAutoConfigure;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * spring鐨勪笂涓嬫枃宸ュ叿锛�
+ * 娉ㄦ剰springmvc涓殑controller涓嶅簲璇ュ湪杩欓噷鑾峰彇锛屽洜涓簊pringmvc鍙簲璇ヨ鍓嶇璋冪敤
+ * 娌℃湁浣跨敤springboot鐨刴ain鍑芥暟閲岃缃苟鑾峰彇鏄洜涓哄彲鑳戒細璁╁涓湇鍔″悎骞跺埌涓�璧峰惎鍔�
+ * @author weidy
+ * @date 2019/10/31 9:02 AM
+ */
+@RestController
+@RequestMapping("/application")
+public class ApplicationContextProvider implements ApplicationContextAware {
+
+    /**
+     * 鏈嶅姟鐨勯厤缃�
+     */
+    @Autowired
+    private AppAutoConfigure appAutoConfigure;
+
+    /**
+     * 搴旂敤鐨勪笂涓嬫枃
+     */
+    private static ApplicationContext applicationContext ;
+
+    /**
+     * 璁剧疆搴旂敤鐨勪笂涓嬫枃
+     * @param applicationContext 涓婁笅鏂�
+     * @throws BeansException 鍑虹幇閿欒鏃堕渶瑕佹姏鍑哄紓甯哥粰spring瀹瑰櫒
+     */
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        ApplicationContextProvider.applicationContext = applicationContext;
+    }
+
+    /**
+     * 鑾峰彇搴旂敤鐨勪笂涓嬫枃
+     * @return 涓婁笅鏂�
+     */
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    /**
+     * 鑾峰彇瀵硅薄
+     * @param name bean鐨勫悕绉�
+     * @return Object bean鐨勫璞�
+     * @throws BeansException 濡傛灉涓嶅瓨鍦ㄤ細鎶涘嚭寮傚父
+     */
+    public static Object getBean(String name) throws BeansException {
+        return applicationContext.getBean(name);
+    }
+
+    /**
+     * 鑾峰彇瀵硅薄
+     * @param c bean鐨勬帴鍙g被
+     * @param <T> bean鎵�灞炵被鐨勭被鍨�
+     * @return bean瀵硅薄
+     * @throws BeansException 濡傛灉涓嶅瓨鍦ㄤ細鎶涘嚭寮傚父
+     */
+    public static <T> T getBean(Class<T> c) throws BeansException{
+        return applicationContext.getBean(c);
+    }
+
+    /**
+     * 鍏虫満
+     * @return 鎵ц瀹屾垚
+     */
+    @PostMapping("/shutDownContext")
+    public R shutDownContext(String privateKey){
+        if( appAutoConfigure.getPrivateTokenKey().equalsIgnoreCase(privateKey)) {
+            ConfigurableApplicationContext ctx = (ConfigurableApplicationContext) applicationContext;
+            ctx.close();
+            return R.success("鍏抽棴鏈嶅姟鎴愬姛");
+        }else{
+            return  R.fail("鎮ㄦ病鏈夋潈闄愬叧闂湇鍔�");
+        }
+    }
+
+    /**
+     * 妫�鏌ユ槸鍚﹀畬鎴�
+     * @return 璋冪敤灏辫鏄庢垚鍔熶簡
+     */
+    @PostMapping("/checkOnline")
+    public R checkOnline(){
+        return R.success("鍚姩瀹屾垚");
+    }
+
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
index bf83190..a4e1111 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -87,6 +87,13 @@
 			return si;
 		}
 	}
+	/**
+	 * 璁剧疆褰撳墠绾跨▼涓殑鐢ㄦ埛瀵硅薄
+	 * @param sessionInfo 鐢ㄦ埛瀵硅薄
+	 */
+	public static void setCurrentUserSessionInfo(SessionInfo sessionInfo){
+		WebThreadLocalUtil.getCurrentUserSessionInfoInThread().set(sessionInfo);
+	}
 	public static long getLong(String s) {
 		long l = 0L;
 		if (s == null) {

--
Gitblit v1.9.3