diff --git a/emis-server/pom.xml b/emis-server/pom.xml
new file mode 100644
index 0000000..4392eb1
--- /dev/null
+++ b/emis-server/pom.xml
@@ -0,0 +1,211 @@
+
+
+ 4.0.0
+
+ emis
+ com.xdadan
+ 1.0.0
+ ../pom.xml
+
+ jar
+ emis-server
+ 1.0.0
+
+ emis web 服务入口
+
+
+ 8
+ pub
+
+
+
+
+
+
+ com.xdadan
+ emis-framework
+ 1.0.0
+
+
+
+ com.xdadan
+ emis-system-web
+ 1.0.1
+
+
+
+
+ com.xdadan
+ emis-biz-web
+ 1.0.0
+
+
+
+ io.nats
+ jnats
+ 2.16.14
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.16
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+
+
+
+
+ com.guardsquare
+ proguard-base
+ 7.1.0
+ runtime
+
+
+ com.guardsquare
+ proguard-core
+ 7.1.0
+ runtime
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.1.1.RELEASE
+
+ true
+
+
+
+
+ repackage
+
+
+ true
+ true
+ com.xdadan.erp.LaunchApplication
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ 3.0.0-M1
+
+
+ true
+
+
+
+
+ maven-antrun-plugin
+
+
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 3.1.0
+
+ false
+ ${project.artifactId}
+
+
+
+
+
+ ${project.artifactId}
+
+
+
\ No newline at end of file
diff --git a/emis-server/pom_proguard.xml b/emis-server/pom_proguard.xml
new file mode 100644
index 0000000..50d90a0
--- /dev/null
+++ b/emis-server/pom_proguard.xml
@@ -0,0 +1,253 @@
+
+
+ 4.0.0
+
+ emis
+ com.xdadan
+ 1.0.0
+ ../pom.xml
+
+ jar
+ emis-launcher
+ 1.0.0
+
+ web服务入口
+
+
+ 8
+ pub
+
+
+
+
+
+
+ com.xdadan
+ emis-framework
+ 1.0.0
+
+
+
+ com.xdadan
+ emis-system-web
+ 1.0.0
+
+
+
+
+ com.xdadan
+ emis-biz-web
+ 1.0.0
+
+
+
+ com.alibaba.boot
+ nacos-config-spring-boot-starter
+ 0.2.12
+
+
+
+ com.alibaba.boot
+ nacos-discovery-spring-boot-starter
+ 0.2.12
+
+
+
+ com.alibaba.boot
+ nacos-config-spring-boot-actuator
+ 0.2.12
+
+
+
+ com.alibaba.boot
+ nacos-discovery-spring-boot-actuator
+ 0.2.12
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ com.guardsquare
+ proguard-base
+ 7.1.0
+ runtime
+
+
+ com.guardsquare
+ proguard-core
+ 7.1.0
+ runtime
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+
+ com.github.wvengen
+ proguard-maven-plugin
+ 2.2.0
+
+
+
+ package
+
+ proguard
+
+
+
+
+ ${project.build.finalName}.jar
+
+ ${project.build.finalName}.jar
+
+ true
+ ${project.basedir}/proguard.cfg
+
+
+ ${java.home}/lib/rt.jar
+ ${java.home}/lib/jce.jar
+
+
+
+
+
+ net.sf.proguard
+ proguard-base
+ 6.2.2
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.1.1.RELEASE
+
+ true
+
+
+
+
+ repackage
+
+
+ true
+ true
+ com.xdadan.erp.LaunchApplication
+
+
+
+
+
+
+ maven-antrun-plugin
+
+
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 2.2.1
+
+ ${project.build.finalName}
+ false
+
+ src/main/assembly/assembly.xml
+
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 3.1.0
+
+ false
+ ${project.artifactId}
+
+
+
+
+
+ ${project.artifactId}
+
+
+
\ No newline at end of file
diff --git a/emis-server/proguard.cfg b/emis-server/proguard.cfg
new file mode 100644
index 0000000..265e56b
--- /dev/null
+++ b/emis-server/proguard.cfg
@@ -0,0 +1,52 @@
+#指定Java的版本
+-target 1.8
+#proguard会对代码进行优化压缩,他会删除从未使用的类或者类成员变量等
+-dontshrink
+#是否关闭字节码级别的优化,如果不开启则设置如下配置
+-dontoptimize
+#混淆时不生成大小写混合的类名,默认是可以大小写混合
+-dontusemixedcaseclassnames
+# 对于类成员的命名的混淆采取唯一策略
+-useuniqueclassmembernames
+#混淆时不生成大小写混合的类名,默认是可以大小写混合
+-dontusemixedcaseclassnames
+#混淆类名之后,对使用Class.forName('className')之类的地方进行相应替代
+-adaptclassstrings
+
+#对异常、注解信息予以保留
+-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
+# 此选项将保存接口中的所有原始名称(不混淆)-->
+-keepnames interface ** { *; }
+# 此选项将保存所有软件包中的所有原始接口文件(不进行混淆)
+#-keep interface * extends * { *; }
+#保留参数名,因为控制器,或者Mybatis等接口的参数如果混淆会导致无法接受参数,xml文件找不到参数
+-keepparameternames
+# 保留枚举成员及方法
+-keepclassmembers enum * { *; }
+
+# 不混淆所有的set/get方法
+-keepclassmembers public class * {void set*(***);*** get*();}
+
+# 指定要保留在输出文件内的目录(解决 spring autowire 装配失败的问题)
+-keepdirectories
+#-keepdirectories target\classes\cn\XXX\busi\online\cgform\business\RestBusiness.class
+#-keepdirectories cn.XXX.busi.online.cgform.business.*
+
+# 不混淆所有类,保存原始定义的注释-
+-keepclassmembers class * {
+ @org.springframework.context.annotation.Bean *;
+ @org.springframework.beans.factory.annotation.Autowired *;
+ @org.springframework.beans.factory.annotation.Value *;
+ @org.springframework.stereotype.Service *;
+ @org.springframework.stereotype.Component *;
+ }
+
+#忽略warn消息
+-ignorewarnings
+#忽略note消息
+-dontnote
+#打印配置信息
+-printconfiguration
+-keep public class com.xdadan.erp.LaunchApplication {
+ public static void main(java.lang.String[]);
+ }
\ No newline at end of file
diff --git a/emis-server/src/main/java/com/xdadan/erp/LaunchApplication.java b/emis-server/src/main/java/com/xdadan/erp/LaunchApplication.java
new file mode 100644
index 0000000..b33c2c6
--- /dev/null
+++ b/emis-server/src/main/java/com/xdadan/erp/LaunchApplication.java
@@ -0,0 +1,73 @@
+package com.xdadan.erp;
+
+import com.xdadan.erp.common.utils.PropertyUtil;
+import org.springframework.boot.WebApplicationType;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+import java.io.File;
+
+/**
+ * 启动程序
+ *
+ * @author xdadan
+ */
+@EnableScheduling
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+public class LaunchApplication extends SpringBootServletInitializer {
+
+ public static void main(String[] args) throws Exception {
+ initByLocal(args);
+ }
+
+ /**
+ * 通过本地配置文件运行
+ * @param args
+ */
+ private static void initByLocal(String[] args){
+ String configFile = "";
+ try {
+ File directory = new File(".");
+ System.out.println(directory.getCanonicalPath());
+ System.out.println(directory.getAbsolutePath());
+
+ configFile = PropertyUtil.getPropertyValue("config.properties", "config.file");
+ System.out.println("use config file:" + configFile);
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ new SpringApplicationBuilder(
+ LaunchApplication.class)
+ .properties("spring.config.location=" + configFile)
+ .web(WebApplicationType.SERVLET).run(args);
+ }
+
+
+
+// @Override
+// public void onStartup(ServletContext servletContext) throws ServletException {
+// super.onStartup(servletContext);
+// servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));
+// SessionCookieConfig sessionCookieConfig = servletContext.getSessionCookieConfig();
+// sessionCookieConfig.setHttpOnly(true);
+// }
+
+
+// @Bean
+// public DefaultWebSessionManager sessionManager() {
+// DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
+// defaultWebSessionManager.setGlobalSessionTimeout(60 * 30 * 1000);
+// defaultWebSessionManager.setDeleteInvalidSessions(true);
+// defaultWebSessionManager.setSessionValidationSchedulerEnabled(true);
+// defaultWebSessionManager.setSessionIdCookieEnabled(true);
+// // tomcat的JESSIONID自动生成模块
+// defaultWebSessionManager.setSessionIdUrlRewritingEnabled(false);
+// return defaultWebSessionManager;
+// }
+}
diff --git a/emis-server/src/main/java/com/xdadan/erp/LaunchServletInitializer.java b/emis-server/src/main/java/com/xdadan/erp/LaunchServletInitializer.java
new file mode 100644
index 0000000..226ed37
--- /dev/null
+++ b/emis-server/src/main/java/com/xdadan/erp/LaunchServletInitializer.java
@@ -0,0 +1,18 @@
+package com.xdadan.erp;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * web容器中进行部署
+ *
+ * @author xdadan
+ */
+public class LaunchServletInitializer extends SpringBootServletInitializer
+{
+ @Override
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
+ {
+ return application.sources(LaunchApplication.class);
+ }
+}
diff --git a/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsConfig.java b/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsConfig.java
new file mode 100644
index 0000000..5ae918e
--- /dev/null
+++ b/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsConfig.java
@@ -0,0 +1,46 @@
+package com.xdadan.erp.mq.nats;
+
+
+import com.xdadan.erp.common.utils.StringUtils;
+import io.nats.client.Connection;
+import io.nats.client.Nats;
+import io.nats.client.Options;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.IOException;
+import java.time.Duration;
+
+@Configuration
+public class NatsConfig {
+
+ /**
+ * nats 连接
+ * @param properties nats 配置文件类
+ * @return nats 连接
+ * @throws IOException
+ * @throws InterruptedException
+ */
+ @Bean(name = "natsConnection")
+ public Connection natsConnection(NatsProperties properties) throws IOException, InterruptedException {
+ String[] str = properties.getNatsUrls().split(",");
+ Options.Builder builder = new Options.Builder()
+ .servers(str)
+ .connectionListener(new NatsMessageListener()) // 指定监听器
+ .maxReconnects(properties.getMaxReconnect())
+ .reconnectWait(Duration.ofSeconds(properties.getReconnectWait()))
+ .connectionTimeout(Duration.ofSeconds(properties.getConnectionTimeout()));
+
+ // 配置用户名和密码
+ if (!StringUtils.isEmpty(properties.getUserName()) && !StringUtils.isEmpty(properties.getPassword())) {
+ builder.userInfo(properties.getUserName().toCharArray(),properties.getPassword().toCharArray());
+ }
+
+ if (!StringUtils.isEmpty(properties.getToken())) {
+ builder.token(properties.getToken().toCharArray());
+ }
+
+ return Nats.connect(builder.build());
+
+ }
+}
\ No newline at end of file
diff --git a/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsMessageListener.java b/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsMessageListener.java
new file mode 100644
index 0000000..3161ca6
--- /dev/null
+++ b/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsMessageListener.java
@@ -0,0 +1,26 @@
+package com.xdadan.erp.mq.nats;
+
+import com.xdadan.erp.common.utils.spring.SpringUtils;
+import io.nats.client.Connection;
+import io.nats.client.ConnectionListener;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.annotation.Resource;
+import java.nio.charset.StandardCharsets;
+
+@Slf4j
+public class NatsMessageListener implements ConnectionListener {
+
+ @Override
+ public void connectionEvent(Connection conn, Events events) {
+ log.info(String.format("nats connection status: %s", conn.getStatus()));
+
+ // 连接成功后进行消息订阅
+ if(Connection.Status.CONNECTED.equals(conn.getStatus())){
+ log.info("NATS conneted");
+ }
+ }
+
+
+
+}
diff --git a/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsProperties.java b/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsProperties.java
new file mode 100644
index 0000000..b25ba13
--- /dev/null
+++ b/emis-server/src/main/java/com/xdadan/erp/mq/nats/NatsProperties.java
@@ -0,0 +1,35 @@
+package com.xdadan.erp.mq.nats;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ #nats 相关配置
+nats.nats-urls=nats://xxx:4222
+nats.max-reconnect=60
+nats.reconnect-wait=2
+nats.connection-timeout=2
+nats.user-name=nats
+nats.password=nats
+ */
+@Component
+@ConfigurationProperties(prefix = "nats")
+@Data
+public class NatsProperties {
+
+ private String natsUrls;
+
+ private String token = null;
+
+ private int maxReconnect = 60;
+
+ private int reconnectWait = 2;
+
+ private int connectionTimeout = 2;
+
+ private String userName;
+
+ private String password;
+
+}
diff --git a/emis-server/src/main/java/com/xdadan/erp/tst/TestController.java b/emis-server/src/main/java/com/xdadan/erp/tst/TestController.java
new file mode 100644
index 0000000..376b14d
--- /dev/null
+++ b/emis-server/src/main/java/com/xdadan/erp/tst/TestController.java
@@ -0,0 +1,48 @@
+package com.xdadan.erp.tst;
+
+
+import com.xdadan.erp.common.core.controller.BaseController;
+import com.xdadan.erp.common.utils.spring.SpringUtils;
+import io.nats.client.Connection;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.nio.charset.StandardCharsets;
+
+@Slf4j
+@RestController
+@RequestMapping("/tst/mq/nats")
+public class TestController extends BaseController
+{
+ @Resource(name="natsConnection")
+ private Connection natsConnection;
+
+ @GetMapping("/publish")
+ public void publish(String subject,String msg)
+ {
+ // 发送测试消息
+// sendMqMsg("IM-BINDGROUP","111,1");
+ sendMqMsg(subject,msg);
+ }
+
+ private void sendMqMsg(String subject,String msg){
+
+ if(natsConnection==null) {
+ log.info("NATS服务器未连接!!!");
+ return;
+ }
+
+ try {
+ log.info("发送 MQ NATS 消息: subject:{} , msg:{}",subject,msg);
+ natsConnection.publish(subject, msg.getBytes(StandardCharsets.UTF_8));
+ } catch (Exception e) {
+ log.info("发送 MQ NATS 异常: subject:{} , msg:{}, e:",subject,msg,e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/emis-server/src/main/resources/META-INF/spring-devtools.properties b/emis-server/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..2b23f85
--- /dev/null
+++ b/emis-server/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.json=/com.alibaba.fastjson.*.jar
\ No newline at end of file
diff --git a/emis-server/src/main/resources/application_local.yml b/emis-server/src/main/resources/application_local.yml
new file mode 100644
index 0000000..e5235aa
--- /dev/null
+++ b/emis-server/src/main/resources/application_local.yml
@@ -0,0 +1,183 @@
+# 项目相关配置
+pay:
+ # 名称
+ name: ddoms2
+ # 版本
+ version: 1.0.0
+ # 版权年份
+ copyrightYear: 2022
+ # 实例演示开关
+ demoEnabled: false
+# profile: xdadan/uploadPath
+ # 获取ip地址开关
+ addressEnabled: false
+ # 验证码类型 math 数组计算 char 字符验证
+ captchaType: char
+
+# 开发环境配置
+#server:
+# # 服务器的HTTP端口,默认为8080
+# port: 8080
+# servlet:
+# # 应用的访问路径
+# context-path: /
+# tomcat:
+# # tomcat的URI编码
+# uri-encoding: UTF-8
+# # 连接数满后的排队数,默认为100
+# accept-count: 1000
+# threads:
+# # tomcat最大线程数,默认为200
+# max: 800
+# # Tomcat启动初始化的线程数,默认值10
+# min-spare: 100
+
+# 日志配置
+logging:
+ level:
+ com.xdadan: debug
+ org.springframework: warn
+
+# Spring配置
+spring:
+ # 资源信息
+ messages:
+ # 国际化资源文件路径
+ basename: i18n/messages
+# profiles:
+# active: druid
+ # 文件上传
+ servlet:
+ multipart:
+ # 单个文件大小
+ max-file-size: 1000MB
+ # 设置总上传的文件大小
+ max-request-size: 20000MB
+ cache:
+# 指定所使用的缓存管理器
+ type: REDIS
+ cache-names: redisCache
+ redis:
+ cache-null-values: true
+ use-key-prefix: true
+ time-to-live: 0
+ # 服务模块
+ devtools:
+ restart:
+ # 热部署开关
+ enabled: true
+
+# token配置
+token:
+ # 令牌自定义标识
+ header: X-Token
+ # 令牌密钥
+ secret: 10942fd6f30d45a567e7ec84b18f9ca7c1
+ # 令牌有效期(默认30分钟)
+ expireTime: 30
+
+# MyBatis配置
+#mybatis:
+# # 搜索指定包别名
+# typeAliasesPackage: com.xdadan.**.domain
+# # 配置mapper的扫描,找到所有的mapper.xml映射文件
+# mapperLocations: classpath*:mapper/**/*Mapper.xml
+# # 加载全局的配置文件
+# configLocation: classpath:mybatis/mybatis-config.xml
+
+mybatis-plus:
+ type-aliases-package: com.xdadan.**.domain
+ mapper-locations: classpath*:mapper/**/*Mapper.xml
+ config-location: classpath:mybatis/mybatis-config.xml
+ global-config:
+ #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
+ id-type: 1
+ #驼峰下划线转换
+ db-column-underline: true
+ configuration:
+ #配置打印sql
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+saas:
+ tenant:
+ enable: true
+ column: tenant_id
+ filterTables:
+ ignoreTables:
+ - sys_account
+ - sys_account_log
+ - sys_api_log
+ - sys_appinfo
+ - sys_config
+ - sys_cost_time
+ - sys_dept
+ - sys_dict_data
+ - sys_dict_type
+ - sys_domain
+ - sys_dynamic_ds
+ - sys_dynamic_sql
+ - sys_file_info
+ - sys_i18n
+ - sys_im_friend
+ - sys_im_group
+ - sys_im_group_user
+ - sys_im_message
+ - sys_job
+ - sys_job_log
+ - sys_logininfor
+ - sys_mail_queue
+ - sys_menu
+ - sys_merchant
+ - sys_merchant_service
+ - sys_merchant_user_rel
+ - sys_mq_queues
+ - sys_notice
+ - sys_oper_log
+ - sys_post
+ - sys_role
+ - sys_role_dept
+ - sys_role_menu
+ - sys_role_merchant
+ - sys_role_tenant
+ - sys_sequence
+ - sys_service
+ - sys_storage
+ - sys_tenant
+ - sys_tenant_domain_apply
+ - sys_upapi_log
+ - sys_user
+ - sys_user_copy1
+ - sys_user_post
+ - sys_user_role
+ - sys_validate_record
+ - sys_zone_banner
+ - sys_zone_config
+ - sys_zone_nav
+ ignoreLoginNames:
+ - padmin
+
+# PageHelper分页插件
+pagehelper:
+ helperDialect: mysql
+ supportMethodsArguments: true
+ params: count=countSql
+
+# Knife4j配置
+knife4j:
+ # 是否开启增强模式
+ enable: true
+ basic:
+ enable: true
+ username: admin
+ password: 654321
+ setting:
+ language: zh-CN
+
+# 防止XSS攻击
+xss:
+ # 过滤开关
+ enabled: true
+ # 排除链接(多个用逗号分隔)
+ excludes: /system/notice
+ # 匹配链接
+ urlPatterns: /system/*,/monitor/*,/tool/*
diff --git a/emis-server/src/main/resources/banner.txt b/emis-server/src/main/resources/banner.txt
new file mode 100644
index 0000000..3433519
--- /dev/null
+++ b/emis-server/src/main/resources/banner.txt
@@ -0,0 +1,2 @@
+Application Version: ${pay.version}
+Spring Boot Version: ${spring-boot.version}
\ No newline at end of file
diff --git a/emis-server/src/main/resources/i18n/messages.properties b/emis-server/src/main/resources/i18n/messages.properties
new file mode 100644
index 0000000..759cfe8
--- /dev/null
+++ b/emis-server/src/main/resources/i18n/messages.properties
@@ -0,0 +1,38 @@
+#错误消息
+not.null=* 必须填写
+user.jcaptcha.error=验证码错误
+user.jcaptcha.expire=验证码已失效
+user.smscode.expire=验证码已失效
+user.not.exists=用户不存在/密码错误
+user.password.not.match=用户不存在/密码错误
+user.password.retry.limit.count=密码输入错误{0}次
+user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟
+user.password.delete=对不起,您的账号已被删除
+user.blocked=用户已封禁,请联系管理员
+role.blocked=角色已封禁,请联系管理员
+user.logout.success=退出成功
+
+length.not.valid=长度必须在{min}到{max}个字符之间
+
+user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
+user.password.not.valid=* 5-50个字符
+
+user.email.not.valid=邮箱格式错误
+user.mobile.phone.number.not.valid=手机号格式错误
+user.login.success=登录成功
+user.register.success=注册成功
+user.notfound=请重新登录
+user.forcelogout=管理员强制退出,请重新登录
+user.unknown.error=未知错误,请重新登录
+
+##文件上传消息
+upload.exceed.maxSize=上传的文件大小超出限制的文件大小!
允许的文件最大大小是:{0}MB!
+upload.filename.exceed.length=上传的文件名最长{0}个字符
+
+##权限
+no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
+no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
+no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
+no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
+no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
+no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
diff --git a/emis-server/src/main/resources/logback.xml b/emis-server/src/main/resources/logback.xml
new file mode 100644
index 0000000..6e79f91
--- /dev/null
+++ b/emis-server/src/main/resources/logback.xml
@@ -0,0 +1,52 @@
+
+
+ allinone-server
+
+
+
+ UTF-8
+ [%contextName][%p][%d{yyyy-MM-dd HH:mm:ss}][%t][%C{3}.%M\(line:%L\)]:> %m%n
+
+
+
+
+ ERROR
+ ACCEPT
+ DENY
+
+ ./logs/app_all_error.log
+
+ ./logs/app_all_error.%i.log
+ 1
+ 10
+
+
+ 10MB
+
+
+ [%contextName][%p][%d{yyyy-MM-dd HH:mm:ss}][%t][%C{3}.%M\(line:%L\)]:> %m%n
+
+
+
+
+ INFO
+
+ ./logs/app_all_info.log
+
+ ./logs/app_all_info.%i.log
+ 1
+ 10
+
+
+ 10MB
+
+
+ [%contextName][%p][%d{yyyy-MM-dd HH:mm:ss}][%t][%C{3}.%M\(line:%L\)]:> %m%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/emis-server/src/main/resources/mybatis/mybatis-config.xml b/emis-server/src/main/resources/mybatis/mybatis-config.xml
new file mode 100644
index 0000000..ac47c03
--- /dev/null
+++ b/emis-server/src/main/resources/mybatis/mybatis-config.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/emis-server/src/main/resources/static/images/slidepic_1.jpg b/emis-server/src/main/resources/static/images/slidepic_1.jpg
new file mode 100644
index 0000000..f115d5a
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_1.jpg differ
diff --git a/emis-server/src/main/resources/static/images/slidepic_2.jpg b/emis-server/src/main/resources/static/images/slidepic_2.jpg
new file mode 100644
index 0000000..2604468
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_2.jpg differ
diff --git a/emis-server/src/main/resources/static/images/slidepic_3.jpg b/emis-server/src/main/resources/static/images/slidepic_3.jpg
new file mode 100644
index 0000000..4dd0c28
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_3.jpg differ
diff --git a/emis-server/src/main/resources/static/images/slidepic_4.jpg b/emis-server/src/main/resources/static/images/slidepic_4.jpg
new file mode 100644
index 0000000..bfa16cd
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_4.jpg differ
diff --git a/emis-server/src/main/resources/static/images/slidepic_5.jpg b/emis-server/src/main/resources/static/images/slidepic_5.jpg
new file mode 100644
index 0000000..6bdd2ef
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_5.jpg differ
diff --git a/emis-server/src/main/resources/static/images/slidepic_6.jpg b/emis-server/src/main/resources/static/images/slidepic_6.jpg
new file mode 100644
index 0000000..69a92cf
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_6.jpg differ
diff --git a/emis-server/src/main/resources/static/images/slidepic_7.jpg b/emis-server/src/main/resources/static/images/slidepic_7.jpg
new file mode 100644
index 0000000..492bf52
Binary files /dev/null and b/emis-server/src/main/resources/static/images/slidepic_7.jpg differ