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