diff --git a/ds-base/src/main/resource/undertow_dev.properties b/ds-base/src/main/resource/undertow_dev.properties
index f48fea02..07d613d9 100644
--- a/ds-base/src/main/resource/undertow_dev.properties
+++ b/ds-base/src/main/resource/undertow_dev.properties
@@ -1,6 +1,6 @@
# true 值支持热加载
undertow.devMode=true
-undertow.port=9000
+undertow.port=8001
undertow.host=0.0.0.0
#undertow.resourcePath =/root/dsBase/WebRoot,classpath:static
undertow.resourcePath =D:/dsWork/dsExam/ds-base/WebRoot,classpath:static
diff --git a/ds-base/src/main/resource/undertow_pro.properties b/ds-base/src/main/resource/undertow_pro.properties
index 1f7adf15..67b5bb38 100644
--- a/ds-base/src/main/resource/undertow_pro.properties
+++ b/ds-base/src/main/resource/undertow_pro.properties
@@ -1,6 +1,6 @@
# true 值支持热加载
undertow.devMode=true
-undertow.port=9000
+undertow.port=8000
undertow.host=0.0.0.0
undertow.resourcePath =/root/WebRoot,classpath:static
diff --git a/ds-gw/pom.xml b/ds-gw/pom.xml
index fc8c61d5..0dbcca00 100644
--- a/ds-gw/pom.xml
+++ b/ds-gw/pom.xml
@@ -8,4 +8,56 @@
ds-gw
ds-gw
+
+
+
+
+ com.jfinal
+ jfinal
+ ${jfinal.version}
+
+
+
+ com.jfinal
+ jfinal-undertow
+ ${jfinal-undertow.version}
+
+
+
+ com.jfinal
+ cos
+ ${jfinal-cos.version}
+
+
+
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.5.6
+
+
+ commons-io
+ commons-io
+ 2.14.0
+
+
+ org.apache.commons
+ commons-email
+ 1.5
+
+
+ org.apache.commons
+ commons-lang3
+ 3.12.0
+
+
+
diff --git a/ds-gw/src/main/java/com/dsideal/gw/GwApplication.java b/ds-gw/src/main/java/com/dsideal/gw/GwApplication.java
new file mode 100644
index 00000000..4c8eff9c
--- /dev/null
+++ b/ds-gw/src/main/java/com/dsideal/gw/GwApplication.java
@@ -0,0 +1,85 @@
+package com.dsideal.gw;
+
+
+import cn.hutool.core.io.FileUtil;
+import com.jfinal.config.*;
+import com.jfinal.kit.PropKit;
+import com.jfinal.plugin.redis.RedisPlugin;
+import com.jfinal.server.undertow.UndertowServer;
+import com.jfinal.template.Engine;
+
+import java.io.File;
+
+public class GwApplication extends JFinalConfig {
+
+ public static String getEnvPrefix() {
+ String myEnvVar = System.getenv("WORKING_ENV");
+ return myEnvVar == null ? "dev" : "pro";
+ }
+
+ public static void main(String[] args) {
+ System.out.println("当前环境: " + getEnvPrefix());
+ String configFile = "undertow_{?}.properties".replace("{?}", getEnvPrefix());
+ UndertowServer.create(GwApplication.class, configFile).start();
+ }
+
+ /**
+ * 配置常量
+ */
+ @Override
+ public void configConstant(Constants me) {
+ //加载配置文件
+ String configFile = "application_{?}.properties".replace("{?}", getEnvPrefix());
+ PropKit.use(configFile);
+ }
+
+ /**
+ * 配置路由
+ */
+ @Override
+ public void configRoute(Routes me) {
+ //默认页面
+ //me.add("/", IndexController.class);
+
+ }
+
+ @Override
+ public void configEngine(Engine engine) {
+
+ }
+
+
+ @Override
+ public void configPlugin(Plugins me) {
+ // 用于缓存模块的redis服务
+ //RedisPlugin redis = new RedisPlugin("Redis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000);
+ //启动redis组件
+ //me.add(redis);
+ }
+
+ /**
+ * 配置全局拦截器
+ */
+ @Override
+ public void configInterceptor(Interceptors me) {
+
+ }
+
+ /**
+ * 配置处理器
+ */
+ @Override
+ public void configHandler(Handlers me) {
+ }
+
+ /**
+ * 在jfinal启动完成后马上执行
+ */
+ @Override
+ public void onStart() {
+ //打印 启动Logo
+ String path = GwApplication.class.getClassLoader().getResource("logo.txt").getPath();
+ File file = new File(path);
+ System.out.println(FileUtil.readUtf8String(file));
+ }
+}
diff --git a/ds-gw/src/main/resources/META-INF/maven/archetype.xml b/ds-gw/src/main/resources/META-INF/maven/archetype.xml
deleted file mode 100644
index 26e78195..00000000
--- a/ds-gw/src/main/resources/META-INF/maven/archetype.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
- ds-gw
-
- src/main/java/App.java
-
-
- src/test/java/AppTest.java
-
-
diff --git a/ds-gw/src/main/resources/application_dev.properties b/ds-gw/src/main/resources/application_dev.properties
new file mode 100644
index 00000000..47201e3c
--- /dev/null
+++ b/ds-gw/src/main/resources/application_dev.properties
@@ -0,0 +1,17 @@
+# 数据库信息
+driverClassName=com.mysql.cj.jdbc.Driver
+user=root
+password=DsideaL147258369
+jdbcUrl=jdbc:mysql://10.10.14.210:22066/ds_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+# redis
+redis_ip=10.10.14.210
+redis_port=18890
+redis_password=
+# ==============================================================
+# 生成Token的密码
+CookieMd5SingPwd=DsideaL4r5t6y7u
+# 导出excel 的模板配置路径
+excelExportTemplatePathSuffix=/ExcelExportTemplate/
+# 导入excel 的模板配置路径
+ExcelImportTemplatePathSuffix=/ExcelImportTemplate/
+
diff --git a/ds-gw/src/main/resources/application_pro.properties b/ds-gw/src/main/resources/application_pro.properties
new file mode 100644
index 00000000..62447393
--- /dev/null
+++ b/ds-gw/src/main/resources/application_pro.properties
@@ -0,0 +1,16 @@
+# 数据库信息
+driverClassName=com.mysql.cj.jdbc.Driver
+user=ylt
+password=Ycharge666
+jdbcUrl=jdbc:mysql://rm-bp1ux6tuk49er80t9.mysql.rds.aliyuncs.com:3306/ds_db?useUnicode=true&characterEncoding=UTF-8
+# redis
+redis_ip=r-bp14c1p5j5lkpw1jc2.redis.rds.aliyuncs.com
+redis_port=6379
+redis_password=Ycharge666
+# ==============================================================
+# 生成Token的密码
+CookieMd5SingPwd=DsideaL4r5t6y7u
+# 导出excel 的模板配置路径
+excelExportTemplatePathSuffix=/ExcelExportTemplate/
+# 导入excel 的模板配置路径
+ExcelImportTemplatePathSuffix=/ExcelImportTemplate/
\ No newline at end of file
diff --git a/ds-gw/src/main/resources/archetype-resources/pom.xml b/ds-gw/src/main/resources/archetype-resources/pom.xml
deleted file mode 100644
index 5e486025..00000000
--- a/ds-gw/src/main/resources/archetype-resources/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
- 4.0.0
- $dsideal
- $ds-gw
- $1.0
-
-
- junit
- junit
- 3.8.1
- test
-
-
-
diff --git a/ds-gw/src/main/resources/archetype-resources/src/main/java/App.java b/ds-gw/src/main/resources/archetype-resources/src/main/java/App.java
deleted file mode 100644
index b26935e1..00000000
--- a/ds-gw/src/main/resources/archetype-resources/src/main/java/App.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package $dsideal;
-
-/**
- * Hello world!
- *
- */
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
-}
diff --git a/ds-gw/src/main/resources/archetype-resources/src/test/java/AppTest.java b/ds-gw/src/main/resources/archetype-resources/src/test/java/AppTest.java
deleted file mode 100644
index 864bbc32..00000000
--- a/ds-gw/src/main/resources/archetype-resources/src/test/java/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package $dsideal;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/ds-gw/src/main/resources/logo.txt b/ds-gw/src/main/resources/logo.txt
new file mode 100644
index 00000000..6e39f853
--- /dev/null
+++ b/ds-gw/src/main/resources/logo.txt
@@ -0,0 +1,12 @@
+
+ _______ ______ __ __
+/ \ / \ / | _ / |
+$$$$$$$ | _______ /$$$$$$ |$$ | / \ $$ |
+$$ | $$ | / |$$ | _$$/ $$ |/$ \$$ |
+$$ | $$ |/$$$$$$$/ $$ |/ |$$ /$$$ $$ |
+$$ | $$ |$$ \ $$ |$$$$ |$$ $$/$$ $$ |
+$$ |__$$ | $$$$$$ |$$ \__$$ |$$$$/ $$$$ |
+$$ $$/ / $$/ $$ $$/ $$$/ $$$ |
+$$$$$$$/ $$$$$$$/ $$$$$$/ $$/ $$/
+
+power by http://patorjk.com/software/taag/
\ No newline at end of file
diff --git a/ds-gw/src/main/resources/undertow_dev.properties b/ds-gw/src/main/resources/undertow_dev.properties
new file mode 100644
index 00000000..9610eb37
--- /dev/null
+++ b/ds-gw/src/main/resources/undertow_dev.properties
@@ -0,0 +1,36 @@
+# true 值支持热加载
+undertow.devMode=true
+undertow.port=8000
+undertow.host=0.0.0.0
+#undertow.resourcePath =/root/dsGw/WebRoot,classpath:static
+undertow.resourcePath =D:/dsWork/dsExam/ds-gw/WebRoot,classpath:static
+
+# 目录名称
+undertow.contextPath=/dsGw
+
+# 设定I/O线程数.
+server.undertow.io-threads=8
+
+# 设定工作线程数
+server.undertow.worker-threads=60
+
+# 查询当前某程序的线程或进程数
+# yum install psmisc -y
+# ps -e | grep java | awk '{print $1}
+# pstree -p 15453 | wc -l
+
+# gzip 压缩开关
+undertow.gzip.enable=true
+# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率
+undertow.gzip.level=-1
+# 触发压缩的最小内容长度
+undertow.gzip.minLength=1024
+
+# 开启access日志
+server.undertow.accesslog.enabled=true
+server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)
+
+# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2
+#undertow.http2.enable=true
+
+#http://www.jfinal.com/doc/1-4
diff --git a/ds-gw/src/main/resources/undertow_pro.properties b/ds-gw/src/main/resources/undertow_pro.properties
new file mode 100644
index 00000000..dbe0be27
--- /dev/null
+++ b/ds-gw/src/main/resources/undertow_pro.properties
@@ -0,0 +1,35 @@
+# true 值支持热加载
+undertow.devMode=true
+undertow.port=8001
+undertow.host=0.0.0.0
+undertow.resourcePath =/root/WebRoot,classpath:static
+
+# 目录名称
+undertow.contextPath=/dsBase
+
+# 设定I/O线程数.
+server.undertow.io-threads=8
+
+# 设定工作线程数
+server.undertow.worker-threads=60
+
+# 查询当前某程序的线程或进程数
+# yum install psmisc -y
+# ps -e | grep java | awk '{print $1}
+# pstree -p 15453 | wc -l
+
+# gzip 压缩开关
+undertow.gzip.enable=true
+# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率
+undertow.gzip.level=-1
+# 触发压缩的最小内容长度
+undertow.gzip.minLength=1024
+
+# 开启access日志
+server.undertow.accesslog.enabled=true
+server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)
+
+# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2
+#undertow.http2.enable=true
+
+#http://www.jfinal.com/doc/1-4
diff --git a/ds-gw/target/classes/application_dev.properties b/ds-gw/target/classes/application_dev.properties
new file mode 100644
index 00000000..47201e3c
--- /dev/null
+++ b/ds-gw/target/classes/application_dev.properties
@@ -0,0 +1,17 @@
+# 数据库信息
+driverClassName=com.mysql.cj.jdbc.Driver
+user=root
+password=DsideaL147258369
+jdbcUrl=jdbc:mysql://10.10.14.210:22066/ds_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+# redis
+redis_ip=10.10.14.210
+redis_port=18890
+redis_password=
+# ==============================================================
+# 生成Token的密码
+CookieMd5SingPwd=DsideaL4r5t6y7u
+# 导出excel 的模板配置路径
+excelExportTemplatePathSuffix=/ExcelExportTemplate/
+# 导入excel 的模板配置路径
+ExcelImportTemplatePathSuffix=/ExcelImportTemplate/
+
diff --git a/ds-gw/target/classes/application_pro.properties b/ds-gw/target/classes/application_pro.properties
new file mode 100644
index 00000000..62447393
--- /dev/null
+++ b/ds-gw/target/classes/application_pro.properties
@@ -0,0 +1,16 @@
+# 数据库信息
+driverClassName=com.mysql.cj.jdbc.Driver
+user=ylt
+password=Ycharge666
+jdbcUrl=jdbc:mysql://rm-bp1ux6tuk49er80t9.mysql.rds.aliyuncs.com:3306/ds_db?useUnicode=true&characterEncoding=UTF-8
+# redis
+redis_ip=r-bp14c1p5j5lkpw1jc2.redis.rds.aliyuncs.com
+redis_port=6379
+redis_password=Ycharge666
+# ==============================================================
+# 生成Token的密码
+CookieMd5SingPwd=DsideaL4r5t6y7u
+# 导出excel 的模板配置路径
+excelExportTemplatePathSuffix=/ExcelExportTemplate/
+# 导入excel 的模板配置路径
+ExcelImportTemplatePathSuffix=/ExcelImportTemplate/
\ No newline at end of file
diff --git a/ds-gw/target/classes/logo.txt b/ds-gw/target/classes/logo.txt
new file mode 100644
index 00000000..6e39f853
--- /dev/null
+++ b/ds-gw/target/classes/logo.txt
@@ -0,0 +1,12 @@
+
+ _______ ______ __ __
+/ \ / \ / | _ / |
+$$$$$$$ | _______ /$$$$$$ |$$ | / \ $$ |
+$$ | $$ | / |$$ | _$$/ $$ |/$ \$$ |
+$$ | $$ |/$$$$$$$/ $$ |/ |$$ /$$$ $$ |
+$$ | $$ |$$ \ $$ |$$$$ |$$ $$/$$ $$ |
+$$ |__$$ | $$$$$$ |$$ \__$$ |$$$$/ $$$$ |
+$$ $$/ / $$/ $$ $$/ $$$/ $$$ |
+$$$$$$$/ $$$$$$$/ $$$$$$/ $$/ $$/
+
+power by http://patorjk.com/software/taag/
\ No newline at end of file
diff --git a/ds-gw/target/classes/undertow_dev.properties b/ds-gw/target/classes/undertow_dev.properties
new file mode 100644
index 00000000..9610eb37
--- /dev/null
+++ b/ds-gw/target/classes/undertow_dev.properties
@@ -0,0 +1,36 @@
+# true 值支持热加载
+undertow.devMode=true
+undertow.port=8000
+undertow.host=0.0.0.0
+#undertow.resourcePath =/root/dsGw/WebRoot,classpath:static
+undertow.resourcePath =D:/dsWork/dsExam/ds-gw/WebRoot,classpath:static
+
+# 目录名称
+undertow.contextPath=/dsGw
+
+# 设定I/O线程数.
+server.undertow.io-threads=8
+
+# 设定工作线程数
+server.undertow.worker-threads=60
+
+# 查询当前某程序的线程或进程数
+# yum install psmisc -y
+# ps -e | grep java | awk '{print $1}
+# pstree -p 15453 | wc -l
+
+# gzip 压缩开关
+undertow.gzip.enable=true
+# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率
+undertow.gzip.level=-1
+# 触发压缩的最小内容长度
+undertow.gzip.minLength=1024
+
+# 开启access日志
+server.undertow.accesslog.enabled=true
+server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)
+
+# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2
+#undertow.http2.enable=true
+
+#http://www.jfinal.com/doc/1-4
diff --git a/ds-gw/target/classes/undertow_pro.properties b/ds-gw/target/classes/undertow_pro.properties
new file mode 100644
index 00000000..dbe0be27
--- /dev/null
+++ b/ds-gw/target/classes/undertow_pro.properties
@@ -0,0 +1,35 @@
+# true 值支持热加载
+undertow.devMode=true
+undertow.port=8001
+undertow.host=0.0.0.0
+undertow.resourcePath =/root/WebRoot,classpath:static
+
+# 目录名称
+undertow.contextPath=/dsBase
+
+# 设定I/O线程数.
+server.undertow.io-threads=8
+
+# 设定工作线程数
+server.undertow.worker-threads=60
+
+# 查询当前某程序的线程或进程数
+# yum install psmisc -y
+# ps -e | grep java | awk '{print $1}
+# pstree -p 15453 | wc -l
+
+# gzip 压缩开关
+undertow.gzip.enable=true
+# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率
+undertow.gzip.level=-1
+# 触发压缩的最小内容长度
+undertow.gzip.minLength=1024
+
+# 开启access日志
+server.undertow.accesslog.enabled=true
+server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)
+
+# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2
+#undertow.http2.enable=true
+
+#http://www.jfinal.com/doc/1-4