From 9703057956549369444720e429a1bda75a1c1178 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Tue, 15 Apr 2025 16:14:38 +0800
Subject: [PATCH] 1.0

---
 oying-system/src/main/resources/config/application-dev.yml  |    2 
 /dev/null                                                   |   47 -----------------------
 .idea/inspectionProfiles/Project_Default.xml                |    8 ++++
 .idea/sqldialects.xml                                       |    7 +++
 .idea/compiler.xml                                          |    1 
 .idea/dataSources.xml                                       |   18 +++++++++
 oying-system/src/main/resources/config/application-prod.yml |    6 +-
 README.md                                                   |   26 ++++++-------
 8 files changed, 50 insertions(+), 65 deletions(-)

diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 2bf07b9..8f29a85 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -2,6 +2,7 @@
 <project version="4">
   <component name="CompilerConfiguration">
     <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
       <profile name="Maven default annotation processors profile" enabled="true">
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..6e24ddc
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+    <data-source source="LOCAL" name="oying" uuid="ae90bd7e-992f-4e9a-bff6-a82171b032ef">
+      <driver-ref>mysql.8</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
+      <jdbc-url>jdbc:mysql://118.145.136.116:3306/oying</jdbc-url>
+      <jdbc-additional-properties>
+        <property name="com.intellij.clouds.kubernetes.db.host.port" />
+        <property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
+        <property name="com.intellij.clouds.kubernetes.db.resource.type" value="Deployment" />
+        <property name="com.intellij.clouds.kubernetes.db.container.port" />
+      </jdbc-additional-properties>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..68ce32a
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="JavadocDeclaration" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ADDITIONAL_TAGS" value="date,description" />
+    </inspection_tool>
+  </profile>
+</component>
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000..539d872
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="SqlDialectMappings">
+    <file url="file://$PROJECT_DIR$" dialect="MySQL" />
+    <file url="PROJECT" dialect="MySQL" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/README.md b/README.md
index 39b9451..61434f7 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@
         - FileUtil 文件工具类
 - oying-system 系统核心模块(系统启动入口)
     - sysrunner 程序启动后处理数据
-	- modules 系统相关模块(登录授权、系统监控、定时任务、系统模块、运维模块)
+	- modules 系统相关模块(登录授权、系统监控、定时任务、系统模块)
 - oying-logging 系统日志模块
 - oying-tools 系统第三方工具模块
     - email 邮件工具
@@ -54,29 +54,27 @@
 一、*基础信息*
 1. **用户(User)**:包括所有用户角色(商户、消费者、骑手、代货商、拉新代理等),需要通过角色字段区分。
 
-2. **商户(Merchant)**:普通商户、大型商户,大型商户可以管理多个门店。
+2. **门店(Store)**:商户可以拥有多个门店,每个门店有独立的信息。
 
-3. **门店(Store)**:商户可以拥有多个门店,每个门店有独立的信息。
+3. **商品(Product)**:由商户或代货商发布,需要包含商品名称、价格、库存等信息,可能关联到分类和参数。
 
-4. **商品(Product)**:由商户或代货商发布,需要包含商品名称、价格、库存等信息,可能关联到分类和参数。
+4. **商品分类(Category)**:后台统一维护的商品分类。
 
-5. **商品分类(Category)**:后台统一维护的商品分类。
+5. **订单(Order)**:消费者下单生成的订单和明细,包含订单状态、商品列表、价格、配送信息等。
 
-6. **订单(Order)**:消费者下单生成的订单和明细,包含订单状态、商品列表、价格、配送信息等。
+6. **骑手(Rider)**:负责配送订单的骑手信息。
 
-7. **骑手(Rider)**:负责配送订单的骑手信息。
+7. **配送(Delivery)**:订单的配送信息,关联骑手和订单。
 
-8. **配送(Delivery)**:订单的配送信息,关联骑手和订单。
+8. **评价(Review)**:消费者对商品和服务的评价。
 
-9. **评价(Review)**:消费者对商品和服务的评价。
+9. **库存(Inventory)**:<font color="red">(库存维护)</font>商品的库存信息,可能关联到门店。
 
-10. **库存(Inventory)**:<font color="red">(库存维护)</font>商品的库存信息,可能关联到门店。
+10. **提现记录(Withdrawal)**:商户和骑手的提现记录。<font color="red">(分成规则)</font>
 
-11. **提现记录(Withdrawal)**:商户和骑手的提现记录。<font color="red">(分成规则)</font>
+11. **消息(Message)**:系统消息、订单消息、顾客留言等。
 
-12. **消息(Message)**:系统消息、订单消息、顾客留言等。
-
-13. **数据统计(Statistics)**:存储各类统计信息,如订单数量、销售额等
+12. **数据统计(Statistics)**:存储各类统计信息,如订单数量、销售额等
 
 二、 *第三方信息*
 1. **支付方式**
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/App.java b/oying-system/src/main/java/com/oying/modules/maint/domain/App.java
deleted file mode 100644
index 9688430..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/App.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.oying.modules.maint.domain;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import com.oying.base.BaseEntity;
-import java.io.Serializable;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Getter
-@Setter
-@TableName("mnt_app")
-public class App extends BaseEntity implements Serializable {
-
-
-	@TableId(value = "app_id", type = IdType.AUTO)
-	@ApiModelProperty(value = "ID", hidden = true)
-    private Long id;
-
-	@ApiModelProperty(value = "名称")
-    private String name;
-
-	@ApiModelProperty(value = "端口")
-	private int port;
-
-	@ApiModelProperty(value = "上传路径")
-	private String uploadPath;
-
-	@ApiModelProperty(value = "部署路径")
-	private String deployPath;
-
-	@ApiModelProperty(value = "备份路径")
-	private String backupPath;
-
-	@ApiModelProperty(value = "启动脚本")
-	private String startScript;
-
-	@ApiModelProperty(value = "部署脚本")
-	private String deployScript;
-
-    public void copy(App source){
-        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/Database.java b/oying-system/src/main/java/com/oying/modules/maint/domain/Database.java
deleted file mode 100644
index 5372440..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/Database.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.oying.modules.maint.domain;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import com.oying.base.BaseEntity;
-
-import java.io.Serializable;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Getter
-@Setter
-@TableName("mnt_database")
-public class Database extends BaseEntity implements Serializable {
-
-    @TableId(value = "db_id", type = IdType.AUTO)
-    @ApiModelProperty(value = "ID", hidden = true)
-    private String id;
-
-    @ApiModelProperty(value = "数据库名称")
-    private String name;
-
-    @ApiModelProperty(value = "数据库连接地址")
-    private String jdbcUrl;
-
-    @ApiModelProperty(value = "数据库密码")
-    private String pwd;
-
-    @ApiModelProperty(value = "用户名")
-    private String userName;
-
-    public void copy(Database source){
-        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/Deploy.java b/oying-system/src/main/java/com/oying/modules/maint/domain/Deploy.java
deleted file mode 100644
index ff9d6f4..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/Deploy.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.oying.modules.maint.domain;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.collection.CollectionUtil;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import com.oying.base.BaseEntity;
-
-import java.io.Serializable;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-
-@Getter
-@Setter
-@TableName("mnt_deploy")
-public class Deploy extends BaseEntity implements Serializable {
-
-	@TableId(value = "deploy_id", type = IdType.AUTO)
-	@ApiModelProperty(value = "ID", hidden = true)
-    private Long id;
-
-	@ApiModelProperty(value = "应用编号")
-	private Long appId;
-
-	@TableField(exist = false)
-	@ApiModelProperty(name = "服务器", hidden = true)
-	private Set<Server> deploys;
-
-	@TableField(exist = false)
-	@ApiModelProperty(value = "应用")
-    private App app;
-
-    public void copy(Deploy source){
-        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
-    }
-
-	public String getServers() {
-		if(CollectionUtil.isNotEmpty(deploys)){
-			return deploys.stream().map(Server::getName).collect(Collectors.joining(","));
-		}
-		return "";
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/DeployHistory.java b/oying-system/src/main/java/com/oying/modules/maint/domain/DeployHistory.java
deleted file mode 100644
index 28046a8..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/DeployHistory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.oying.modules.maint.domain;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-import java.sql.Timestamp;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Getter
-@Setter
-@TableName("mnt_deploy_history")
-public class DeployHistory implements Serializable {
-
-    @TableId(value = "history_id", type = IdType.AUTO)
-    @ApiModelProperty(value = "ID", hidden = true)
-    private String id;
-
-    @ApiModelProperty(value = "应用名称")
-    private String appName;
-
-    @ApiModelProperty(value = "IP")
-    private String ip;
-
-    @ApiModelProperty(value = "部署时间")
-    private Timestamp deployDate;
-
-    @ApiModelProperty(value = "部署者")
-    private String deployUser;
-
-    @ApiModelProperty(value = "部署ID")
-    private Long deployId;
-
-    public void copy(DeployHistory source){
-        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/Server.java b/oying-system/src/main/java/com/oying/modules/maint/domain/Server.java
deleted file mode 100644
index d21cb37..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/Server.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.oying.modules.maint.domain;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import com.oying.base.BaseEntity;
-
-import java.io.Serializable;
-import java.util.Objects;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Getter
-@Setter
-@TableName("mnt_server")
-public class Server extends BaseEntity implements Serializable {
-
-    @TableId(value = "server_id", type = IdType.AUTO)
-    @ApiModelProperty(value = "ID", hidden = true)
-    private Long id;
-
-    @ApiModelProperty(value = "服务器名称")
-    private String name;
-
-    @ApiModelProperty(value = "IP")
-    private String ip;
-
-    @ApiModelProperty(value = "端口")
-    private Integer port;
-
-    @ApiModelProperty(value = "账号")
-    private String account;
-
-    @ApiModelProperty(value = "密码")
-    private String password;
-
-    public void copy(Server source){
-        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-        Server that = (Server) o;
-        return Objects.equals(id, that.id) &&
-                Objects.equals(name, that.name);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(id, name);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/AppQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/maint/domain/dto/AppQueryCriteria.java
deleted file mode 100644
index 2429f46..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/AppQueryCriteria.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.oying.modules.maint.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.sql.Timestamp;
-import java.util.List;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Data
-public class AppQueryCriteria{
-
-    @ApiModelProperty(value = "名称")
-    private String name;
-
-    @ApiModelProperty(value = "创建时间")
-    private List<Timestamp> createTime;
-
-    @ApiModelProperty(value = "页码", example = "1")
-    private Integer page = 1;
-
-    @ApiModelProperty(value = "每页数据量", example = "10")
-    private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DatabaseQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DatabaseQueryCriteria.java
deleted file mode 100644
index 9c2eefb..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DatabaseQueryCriteria.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.oying.modules.maint.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.sql.Timestamp;
-import java.util.List;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Data
-public class DatabaseQueryCriteria{
-
-    @ApiModelProperty(value = "名称")
-    private String name;
-
-    @ApiModelProperty(value = "数据源")
-    private String jdbcUrl;
-
-    @ApiModelProperty(value = "创建时间")
-    private List<Timestamp> createTime;
-
-    @ApiModelProperty(value = "页码", example = "1")
-    private Integer page = 1;
-
-    @ApiModelProperty(value = "每页数据量", example = "10")
-    private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DeployHistoryQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DeployHistoryQueryCriteria.java
deleted file mode 100644
index 33ed5b4..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DeployHistoryQueryCriteria.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.oying.modules.maint.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.sql.Timestamp;
-import java.util.List;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Data
-public class DeployHistoryQueryCriteria{
-
-	@ApiModelProperty(value = "模糊查询")
-	private String blurry;
-
-	@ApiModelProperty(value = "部署ID")
-	private Long deployId;
-
-	@ApiModelProperty(value = "部署时间")
-	private List<Timestamp> deployDate;
-
-	@ApiModelProperty(value = "页码", example = "1")
-	private Integer page = 1;
-
-	@ApiModelProperty(value = "每页数据量", example = "10")
-	private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DeployQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DeployQueryCriteria.java
deleted file mode 100644
index b1c6531..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/DeployQueryCriteria.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.oying.modules.maint.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.sql.Timestamp;
-import java.util.List;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Data
-public class DeployQueryCriteria{
-
-    @ApiModelProperty(value = "应用名称")
-    private String appName;
-
-    @ApiModelProperty(value = "创建时间")
-    private List<Timestamp> createTime;
-
-    @ApiModelProperty(value = "页码", example = "1")
-    private Integer page = 1;
-
-    @ApiModelProperty(value = "每页数据量", example = "10")
-    private Integer size = 10;
-
-    @ApiModelProperty(value = "查询分页偏移量", hidden = true)
-    private Long offset;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/ServerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/maint/domain/dto/ServerQueryCriteria.java
deleted file mode 100644
index c7a3041..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/dto/ServerQueryCriteria.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.oying.modules.maint.domain.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.sql.Timestamp;
-import java.util.List;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Data
-public class ServerQueryCriteria {
-
-    @ApiModelProperty(value = "模糊查询")
-    private String blurry;
-
-    @ApiModelProperty(value = "创建时间")
-    private List<Timestamp> createTime;
-
-    @ApiModelProperty(value = "页码", example = "1")
-    private Integer page = 1;
-
-    @ApiModelProperty(value = "每页数据量", example = "10")
-    private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/enums/DataTypeEnum.java b/oying-system/src/main/java/com/oying/modules/maint/domain/enums/DataTypeEnum.java
deleted file mode 100644
index 9c4b7c2..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/enums/DataTypeEnum.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.oying.modules.maint.domain.enums;
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * @author Z
- */
-@Slf4j
-@SuppressWarnings({"unchecked","all"})
-public enum DataTypeEnum {
-
-    /** mysql */
-    MYSQL("mysql", "mysql", "com.mysql.jdbc.Driver", "`", "`", "'", "'"),
-
-    /** oracle */
-    ORACLE("oracle", "oracle", "oracle.jdbc.driver.OracleDriver", "\"", "\"", "\"", "\""),
-
-    /** sql server */
-    SQLSERVER("sqlserver", "sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "\"", "\"", "\"", "\""),
-
-    /** h2 */
-    H2("h2", "h2", "org.h2.Driver", "`", "`", "\"", "\""),
-
-    /** phoenix */
-    PHOENIX("phoenix", "hbase phoenix", "org.apache.phoenix.jdbc.PhoenixDriver", "", "", "\"", "\""),
-
-    /** mongo */
-    MONGODB("mongo", "mongodb", "mongodb.jdbc.MongoDriver", "`", "`", "\"", "\""),
-
-    /** sql4es */
-    ELASTICSEARCH("sql4es", "elasticsearch", "nl.anchormen.sql4es.jdbc.ESDriver", "", "", "'", "'"),
-
-    /** presto */
-    PRESTO("presto", "presto", "com.facebook.presto.jdbc.PrestoDriver", "", "", "\"", "\""),
-
-    /** moonbox */
-    MOONBOX("moonbox", "moonbox", "moonbox.jdbc.MbDriver", "`", "`", "`", "`"),
-
-    /** cassandra */
-    CASSANDRA("cassandra", "cassandra", "com.github.adejanovski.cassandra.jdbc.CassandraDriver", "", "", "'", "'"),
-
-    /** click house */
-    CLICKHOUSE("clickhouse", "clickhouse", "ru.yandex.clickhouse.ClickHouseDriver", "", "", "\"", "\""),
-
-    /** kylin */
-    KYLIN("kylin", "kylin", "org.apache.kylin.jdbc.Driver", "\"", "\"", "\"", "\""),
-
-    /** vertica */
-    VERTICA("vertica", "vertica", "com.vertica.jdbc.Driver", "", "", "'", "'"),
-
-    /** sap */
-    HANA("sap", "sap hana", "com.sap.db.jdbc.Driver", "", "", "'", "'"),
-
-    /** impala */
-    IMPALA("impala", "impala", "com.cloudera.impala.jdbc41.Driver", "", "", "'", "'");
-
-    private String feature;
-    private String desc;
-    private String driver;
-    private String keywordPrefix;
-    private String keywordSuffix;
-    private String aliasPrefix;
-    private String aliasSuffix;
-
-    private static final String JDBC_URL_PREFIX = "jdbc:";
-
-    DataTypeEnum(String feature, String desc, String driver, String keywordPrefix, String keywordSuffix, String aliasPrefix, String aliasSuffix) {
-        this.feature = feature;
-        this.desc = desc;
-        this.driver = driver;
-        this.keywordPrefix = keywordPrefix;
-        this.keywordSuffix = keywordSuffix;
-        this.aliasPrefix = aliasPrefix;
-        this.aliasSuffix = aliasSuffix;
-    }
-
-    public static DataTypeEnum urlOf(String jdbcUrl) {
-        String url = jdbcUrl.toLowerCase().trim();
-        for (DataTypeEnum dataTypeEnum : values()) {
-            if (url.startsWith(JDBC_URL_PREFIX + dataTypeEnum.feature)) {
-                try {
-                    Class<?> aClass = Class.forName(dataTypeEnum.getDriver());
-                    if (null == aClass) {
-                        throw new RuntimeException("Unable to get driver instance for jdbcUrl: " + jdbcUrl);
-                    }
-                } catch (ClassNotFoundException e) {
-                    throw new RuntimeException("Unable to get driver instance: " + jdbcUrl);
-                }
-                return dataTypeEnum;
-            }
-        }
-        return null;
-    }
-
-    public String getFeature() {
-        return feature;
-    }
-
-    public String getDesc() {
-        return desc;
-    }
-
-    public String getDriver() {
-        return driver;
-    }
-
-    public String getKeywordPrefix() {
-        return keywordPrefix;
-    }
-
-    public String getKeywordSuffix() {
-        return keywordSuffix;
-    }
-
-    public String getAliasPrefix() {
-        return aliasPrefix;
-    }
-
-    public String getAliasSuffix() {
-        return aliasSuffix;
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/domain/enums/MsgType.java b/oying-system/src/main/java/com/oying/modules/maint/domain/enums/MsgType.java
deleted file mode 100644
index 377c448..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/domain/enums/MsgType.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.oying.modules.maint.domain.enums;
-
-/**
- * @author Z
- * @date 2019-08-10 9:56
- */
-public enum MsgType {
-	/** 连接 */
-	CONNECT,
-	/** 关闭 */
-	CLOSE,
-	/** 信息 */
-	INFO,
-	/** 错误 */
-	ERROR
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/mapper/AppMapper.java b/oying-system/src/main/java/com/oying/modules/maint/mapper/AppMapper.java
deleted file mode 100644
index 61bfc29..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/mapper/AppMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.oying.modules.maint.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.App;
-import com.oying.modules.maint.domain.dto.AppQueryCriteria;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author Z
- * @description
- * @date 2023-06-12
- **/
-@Mapper
-public interface AppMapper extends BaseMapper<App> {
-
-    IPage<App> queryAll(@Param("criteria") AppQueryCriteria criteria, Page<Object> page);
-
-    List<App> queryAll(@Param("criteria") AppQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/mapper/DatabaseMapper.java b/oying-system/src/main/java/com/oying/modules/maint/mapper/DatabaseMapper.java
deleted file mode 100644
index 91f6933..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/mapper/DatabaseMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.oying.modules.maint.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.Database;
-import com.oying.modules.maint.domain.dto.DatabaseQueryCriteria;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author Z
- * @description
- * @date 2023-06-12
- **/
-@Mapper
-public interface DatabaseMapper extends BaseMapper<Database> {
-
-    IPage<Database> findAll(@Param("criteria") DatabaseQueryCriteria criteria, Page<Object> page);
-
-    List<Database> findAll(@Param("criteria") DatabaseQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployHistoryMapper.java b/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployHistoryMapper.java
deleted file mode 100644
index c174688..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployHistoryMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.oying.modules.maint.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.dto.DeployHistoryQueryCriteria;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author Z
- * @description
- * @date 2023-06-12
- **/
-@Mapper
-public interface DeployHistoryMapper extends BaseMapper<DeployHistory> {
-
-    IPage<DeployHistory> findAll(@Param("criteria") DeployHistoryQueryCriteria criteria, Page<Object> page);
-
-    List<DeployHistory> findAll(@Param("criteria") DeployHistoryQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployMapper.java b/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployMapper.java
deleted file mode 100644
index 03dc727..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.oying.modules.maint.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.oying.modules.maint.domain.Deploy;
-import com.oying.modules.maint.domain.dto.DeployQueryCriteria;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @author Z
- * @description
- * @date 2023-06-12
- **/
-@Mapper
-public interface DeployMapper extends BaseMapper<Deploy> {
-
-    Long countAll(@Param("criteria") DeployQueryCriteria criteria);
-
-    List<Deploy> findAll(@Param("criteria") DeployQueryCriteria criteria);
-
-    Set<Long> getIdByAppIds(@Param("appIds") Set<Long> appIds);
-
-    Deploy getDeployById(@Param("deployId") Long deployId);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployServerMapper.java b/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployServerMapper.java
deleted file mode 100644
index c224069..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/mapper/DeployServerMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.oying.modules.maint.mapper;
-
-import com.oying.modules.maint.domain.Server;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Set;
-
-/**
- * @author Z
- * @description
- * @date 2023-06-12
- **/
-@Mapper
-public interface DeployServerMapper {
-
-    void insertData(@Param("deployId") Long deployId, @Param("servers") Set<Server> servers);
-
-    void deleteByDeployId(@Param("deployId") Long deployId);
-
-    void deleteByDeployIds(@Param("deployIds") Set<Long> deployIds);
-
-    void deleteByServerIds(@Param("serverIds") Set<Long> serverIds);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/mapper/ServerMapper.java b/oying-system/src/main/java/com/oying/modules/maint/mapper/ServerMapper.java
deleted file mode 100644
index a48b475..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/mapper/ServerMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.oying.modules.maint.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.Server;
-import com.oying.modules.maint.domain.dto.ServerQueryCriteria;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author Z
- * @description
- * @date 2023-06-12
- **/
-@Mapper
-public interface ServerMapper extends BaseMapper<Server> {
-
-    Server findByIp(@Param("ip") String ip);
-
-    IPage<Server> findAll(@Param("criteria") ServerQueryCriteria criteria, Page<Object> page);
-
-    List<Server> findAll(@Param("criteria") ServerQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/rest/AppController.java b/oying-system/src/main/java/com/oying/modules/maint/rest/AppController.java
deleted file mode 100644
index b2398e9..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/rest/AppController.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.oying.modules.maint.rest;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.App;
-import com.oying.modules.maint.domain.dto.AppQueryCriteria;
-import com.oying.modules.maint.service.AppService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import com.oying.annotation.Log;
-import com.oying.utils.PageResult;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "运维:应用管理")
-@RequestMapping("/api/app")
-public class AppController {
-
-    private final AppService appService;
-
-    @ApiOperation("导出应用数据")
-    @GetMapping(value = "/download")
-    @PreAuthorize("@el.check('app:list')")
-    public void exportApp(HttpServletResponse response, AppQueryCriteria criteria) throws IOException {
-        appService.download(appService.queryAll(criteria), response);
-    }
-
-    @ApiOperation(value = "查询应用")
-    @GetMapping
-    @PreAuthorize("@el.check('app:list')")
-    public ResponseEntity<PageResult<App>> queryApp(AppQueryCriteria criteria){
-        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-        return new ResponseEntity<>(appService.queryAll(criteria, page),HttpStatus.OK);
-    }
-
-    @Log("新增应用")
-    @ApiOperation(value = "新增应用")
-    @PostMapping
-    @PreAuthorize("@el.check('app:add')")
-    public ResponseEntity<Object> createApp(@Validated @RequestBody App resources){
-        appService.create(resources);
-        return new ResponseEntity<>(HttpStatus.CREATED);
-    }
-
-    @Log("修改应用")
-    @ApiOperation(value = "修改应用")
-    @PutMapping
-    @PreAuthorize("@el.check('app:edit')")
-    public ResponseEntity<Object> updateApp(@Validated @RequestBody App resources){
-        appService.update(resources);
-        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-    }
-
-    @Log("删除应用")
-    @ApiOperation(value = "删除应用")
-    @DeleteMapping
-    @PreAuthorize("@el.check('app:del')")
-    public ResponseEntity<Object> deleteApp(@RequestBody Set<Long> ids){
-        appService.delete(ids);
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/rest/DatabaseController.java b/oying-system/src/main/java/com/oying/modules/maint/rest/DatabaseController.java
deleted file mode 100644
index 323f914..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/rest/DatabaseController.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.oying.modules.maint.rest;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.Database;
-import com.oying.modules.maint.domain.dto.DatabaseQueryCriteria;
-import com.oying.modules.maint.service.DatabaseService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import com.oying.annotation.Log;
-import com.oying.exception.BadRequestException;
-import com.oying.modules.maint.util.SqlUtils;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Api(tags = "运维:数据库管理")
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/database")
-public class DatabaseController {
-
-	private final String fileSavePath = FileUtil.getTmpDirPath()+"/";
-    private final DatabaseService databaseService;
-
-	@ApiOperation("导出数据库数据")
-	@GetMapping(value = "/download")
-	@PreAuthorize("@el.check('database:list')")
-	public void exportDatabase(HttpServletResponse response, DatabaseQueryCriteria criteria) throws IOException {
-		databaseService.download(databaseService.queryAll(criteria), response);
-	}
-
-    @ApiOperation(value = "查询数据库")
-    @GetMapping
-	@PreAuthorize("@el.check('database:list')")
-    public ResponseEntity<PageResult<Database>> queryDatabase(DatabaseQueryCriteria criteria){
-		Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-		return new ResponseEntity<>(databaseService.queryAll(criteria, page),HttpStatus.OK);
-    }
-
-    @Log("新增数据库")
-    @ApiOperation(value = "新增数据库")
-    @PostMapping
-	@PreAuthorize("@el.check('database:add')")
-    public ResponseEntity<Object> createDatabase(@Validated @RequestBody Database resources){
-		databaseService.create(resources);
-        return new ResponseEntity<>(HttpStatus.CREATED);
-    }
-
-    @Log("修改数据库")
-    @ApiOperation(value = "修改数据库")
-    @PutMapping
-	@PreAuthorize("@el.check('database:edit')")
-    public ResponseEntity<Object> updateDatabase(@Validated @RequestBody Database resources){
-        databaseService.update(resources);
-        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-    }
-
-    @Log("删除数据库")
-    @ApiOperation(value = "删除数据库")
-    @DeleteMapping
-	@PreAuthorize("@el.check('database:del')")
-    public ResponseEntity<Object> deleteDatabase(@RequestBody Set<String> ids){
-        databaseService.delete(ids);
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
-
-	@Log("测试数据库链接")
-	@ApiOperation(value = "测试数据库链接")
-	@PostMapping("/testConnect")
-	@PreAuthorize("@el.check('database:testConnect')")
-	public ResponseEntity<Object> testConnect(@Validated @RequestBody Database resources){
-		return new ResponseEntity<>(databaseService.testConnection(resources),HttpStatus.CREATED);
-	}
-
-	@Log("执行SQL脚本")
-	@ApiOperation(value = "执行SQL脚本")
-	@PostMapping(value = "/upload")
-	@PreAuthorize("@el.check('database:add')")
-	public ResponseEntity<Object> uploadDatabase(@RequestBody MultipartFile file, HttpServletRequest request)throws Exception{
-		String id = request.getParameter("id");
-		Database database = databaseService.getById(id);
-		String fileName;
-		if(database != null){
-			fileName = FileUtil.verifyFilename(file.getOriginalFilename());
-			File executeFile = new File(fileSavePath+fileName);
-			FileUtil.del(executeFile);
-			file.transferTo(executeFile);
-			String result = SqlUtils.executeFile(database.getJdbcUrl(), database.getUserName(), database.getPwd(), executeFile);
-			return new ResponseEntity<>(result,HttpStatus.OK);
-		}else{
-			throw new BadRequestException("Database not exist");
-		}
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/rest/DeployController.java b/oying-system/src/main/java/com/oying/modules/maint/rest/DeployController.java
deleted file mode 100644
index 0b61020..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/rest/DeployController.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.oying.modules.maint.rest;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.Deploy;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.dto.DeployQueryCriteria;
-import com.oying.modules.maint.service.DeployService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import com.oying.annotation.Log;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@RestController
-@Api(tags = "运维:部署管理")
-@RequiredArgsConstructor
-@RequestMapping("/api/deploy")
-public class DeployController {
-
-	private final String fileSavePath = FileUtil.getTmpDirPath()+"/";
-    private final DeployService deployService;
-
-	@ApiOperation("导出部署数据")
-	@GetMapping(value = "/download")
-	@PreAuthorize("@el.check('database:list')")
-	public void exportDeployData(HttpServletResponse response, DeployQueryCriteria criteria) throws IOException {
-		deployService.download(deployService.queryAll(criteria), response);
-	}
-
-    @ApiOperation(value = "查询部署")
-    @GetMapping
-	@PreAuthorize("@el.check('deploy:list')")
-    public ResponseEntity<PageResult<Deploy>> queryDeployData(DeployQueryCriteria criteria){
-		Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-		return new ResponseEntity<>(deployService.queryAll(criteria, page),HttpStatus.OK);
-    }
-
-    @Log("新增部署")
-    @ApiOperation(value = "新增部署")
-    @PostMapping
-	@PreAuthorize("@el.check('deploy:add')")
-    public ResponseEntity<Object> createDeploy(@Validated @RequestBody Deploy resources){
-		deployService.create(resources);
-        return new ResponseEntity<>(HttpStatus.CREATED);
-    }
-
-    @Log("修改部署")
-    @ApiOperation(value = "修改部署")
-    @PutMapping
-	@PreAuthorize("@el.check('deploy:edit')")
-    public ResponseEntity<Object> updateDeploy(@Validated @RequestBody Deploy resources){
-        deployService.update(resources);
-        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-    }
-
-	@Log("删除部署")
-	@ApiOperation(value = "删除部署")
-	@DeleteMapping
-	@PreAuthorize("@el.check('deploy:del')")
-	public ResponseEntity<Object> deleteDeploy(@RequestBody Set<Long> ids){
-		deployService.delete(ids);
-		return new ResponseEntity<>(HttpStatus.OK);
-	}
-
-	@Log("上传文件部署")
-	@ApiOperation(value = "上传文件部署")
-	@PostMapping(value = "/upload")
-	@PreAuthorize("@el.check('deploy:edit')")
-	public ResponseEntity<Object> uploadDeploy(@RequestBody MultipartFile file, HttpServletRequest request)throws Exception{
-		Long id = Long.valueOf(request.getParameter("id"));
-		String fileName = "";
-		if(file != null){
-			fileName = FileUtil.verifyFilename(file.getOriginalFilename());
-			File deployFile = new File(fileSavePath+fileName);
-			FileUtil.del(deployFile);
-			file.transferTo(deployFile);
-			//文件下一步要根据文件名字来
-			deployService.deploy(fileSavePath+fileName ,id);
-		}else{
-			System.out.println("没有找到相对应的文件");
-		}
-		System.out.println("文件上传的原名称为:"+ Objects.requireNonNull(file).getOriginalFilename());
-		Map<String,Object> map = new HashMap<>(2);
-		map.put("errno",0);
-		map.put("id",fileName);
-		return new ResponseEntity<>(map,HttpStatus.OK);
-	}
-
-	@Log("系统还原")
-	@ApiOperation(value = "系统还原")
-	@PostMapping(value = "/serverReduction")
-	@PreAuthorize("@el.check('deploy:edit')")
-	public ResponseEntity<String> serverReduction(@Validated @RequestBody DeployHistory resources){
-		String result = deployService.serverReduction(resources);
-		return new ResponseEntity<>(result,HttpStatus.OK);
-	}
-
-	@Log("服务运行状态")
-	@ApiOperation(value = "服务运行状态")
-	@PostMapping(value = "/serverStatus")
-	@PreAuthorize("@el.check('deploy:edit')")
-	public ResponseEntity<String> serverStatus(@Validated @RequestBody Deploy resources){
-		String result = deployService.serverStatus(resources);
-    	return new ResponseEntity<>(result,HttpStatus.OK);
-	}
-
-	@Log("启动服务")
-	@ApiOperation(value = "启动服务")
-	@PostMapping(value = "/startServer")
-	@PreAuthorize("@el.check('deploy:edit')")
-	public ResponseEntity<String> startServer(@Validated @RequestBody Deploy resources){
-		String result = deployService.startServer(resources);
-		return new ResponseEntity<>(result,HttpStatus.OK);
-	}
-
-	@Log("停止服务")
-	@ApiOperation(value = "停止服务")
-	@PostMapping(value = "/stopServer")
-	@PreAuthorize("@el.check('deploy:edit')")
-	public ResponseEntity<String> stopServer(@Validated @RequestBody Deploy resources){
-		String result = deployService.stopServer(resources);
-		return new ResponseEntity<>(result,HttpStatus.OK);
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/rest/DeployHistoryController.java b/oying-system/src/main/java/com/oying/modules/maint/rest/DeployHistoryController.java
deleted file mode 100644
index 82c9e0a..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/rest/DeployHistoryController.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.oying.modules.maint.rest;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.dto.DeployHistoryQueryCriteria;
-import com.oying.modules.maint.service.DeployHistoryService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import com.oying.annotation.Log;
-import com.oying.utils.PageResult;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "运维:部署历史管理")
-@RequestMapping("/api/deployHistory")
-public class DeployHistoryController {
-
-    private final DeployHistoryService deployhistoryService;
-
-    @ApiOperation("导出部署历史数据")
-    @GetMapping(value = "/download")
-    @PreAuthorize("@el.check('deployHistory:list')")
-    public void exportDeployHistory(HttpServletResponse response, DeployHistoryQueryCriteria criteria) throws IOException {
-        deployhistoryService.download(deployhistoryService.queryAll(criteria), response);
-    }
-
-    @ApiOperation(value = "查询部署历史")
-    @GetMapping
-    @PreAuthorize("@el.check('deployHistory:list')")
-    public ResponseEntity<PageResult<DeployHistory>> queryDeployHistory(DeployHistoryQueryCriteria criteria){
-        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-        return new ResponseEntity<>(deployhistoryService.queryAll(criteria, page),HttpStatus.OK);
-    }
-
-    @Log("删除DeployHistory")
-    @ApiOperation(value = "删除部署历史")
-    @DeleteMapping
-    @PreAuthorize("@el.check('deployHistory:del')")
-    public ResponseEntity<Object> deleteDeployHistory(@RequestBody Set<String> ids){
-        deployhistoryService.delete(ids);
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/rest/ServerController.java b/oying-system/src/main/java/com/oying/modules/maint/rest/ServerController.java
deleted file mode 100644
index 2789b84..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/rest/ServerController.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.oying.modules.maint.rest;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.maint.domain.Server;
-import com.oying.modules.maint.domain.dto.ServerQueryCriteria;
-import com.oying.modules.maint.service.ServerService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import com.oying.annotation.Log;
-import com.oying.utils.PageResult;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@RestController
-@Api(tags = "运维:服务器管理")
-@RequiredArgsConstructor
-@RequestMapping("/api/serverDeploy")
-public class ServerController {
-
-    private final ServerService serverService;
-
-    @ApiOperation("导出服务器数据")
-    @GetMapping(value = "/download")
-    @PreAuthorize("@el.check('serverDeploy:list')")
-    public void exportServerDeploy(HttpServletResponse response, ServerQueryCriteria criteria) throws IOException {
-        serverService.download(serverService.queryAll(criteria), response);
-    }
-
-    @ApiOperation(value = "查询服务器")
-    @GetMapping
-    @PreAuthorize("@el.check('serverDeploy:list')")
-    public ResponseEntity<PageResult<Server>> queryServerDeploy(ServerQueryCriteria criteria){
-        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-        return new ResponseEntity<>(serverService.queryAll(criteria, page),HttpStatus.OK);
-    }
-
-    @Log("新增服务器")
-    @ApiOperation(value = "新增服务器")
-    @PostMapping
-    @PreAuthorize("@el.check('serverDeploy:add')")
-    public ResponseEntity<Object> createServerDeploy(@Validated @RequestBody Server resources){
-        serverService.create(resources);
-        return new ResponseEntity<>(HttpStatus.CREATED);
-    }
-
-    @Log("修改服务器")
-    @ApiOperation(value = "修改服务器")
-    @PutMapping
-    @PreAuthorize("@el.check('serverDeploy:edit')")
-    public ResponseEntity<Object> updateServerDeploy(@Validated @RequestBody Server resources){
-        serverService.update(resources);
-        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-    }
-
-    @Log("删除服务器")
-    @ApiOperation(value = "删除Server")
-    @DeleteMapping
-    @PreAuthorize("@el.check('serverDeploy:del')")
-    public ResponseEntity<Object> deleteServerDeploy(@RequestBody Set<Long> ids){
-        serverService.delete(ids);
-        return new ResponseEntity<>(HttpStatus.OK);
-    }
-
-    @Log("测试连接服务器")
-    @ApiOperation(value = "测试连接服务器")
-    @PostMapping("/testConnect")
-    @PreAuthorize("@el.check('serverDeploy:add')")
-    public ResponseEntity<Object> testConnectServerDeploy(@Validated @RequestBody Server resources){
-        return new ResponseEntity<>(serverService.testConnect(resources),HttpStatus.CREATED);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/AppService.java b/oying-system/src/main/java/com/oying/modules/maint/service/AppService.java
deleted file mode 100644
index 185e0a1..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/AppService.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.oying.modules.maint.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.modules.maint.domain.dto.AppQueryCriteria;
-import com.oying.modules.maint.domain.App;
-import com.oying.utils.PageResult;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-public interface AppService extends IService<App> {
-
-    /**
-     * 分页查询
-     * @param criteria 条件
-     * @param page 分页参数
-     * @return /
-     */
-    PageResult<App> queryAll(AppQueryCriteria criteria, Page<Object> page);
-
-    /**
-     * 查询全部数据
-     *
-     * @param criteria 条件
-     * @return /
-     */
-    List<App> queryAll(AppQueryCriteria criteria);
-
-    /**
-     * 创建
-     * @param resources /
-     */
-    void create(App resources);
-
-    /**
-     * 编辑
-     * @param resources /
-     */
-    void update(App resources);
-
-    /**
-     * 删除
-     * @param ids /
-     */
-    void delete(Set<Long> ids);
-
-    /**
-     * 导出数据
-     * @param apps /
-     * @param response /
-     * @throws IOException /
-     */
-    void download(List<App> apps, HttpServletResponse response) throws IOException;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/DatabaseService.java b/oying-system/src/main/java/com/oying/modules/maint/service/DatabaseService.java
deleted file mode 100644
index ea89a41..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/DatabaseService.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.oying.modules.maint.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.modules.maint.domain.Database;
-import com.oying.modules.maint.domain.dto.DatabaseQueryCriteria;
-import com.oying.utils.PageResult;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @author Z
- * @date 2019-08-24
- */
-public interface DatabaseService extends IService<Database> {
-
-    /**
-     * 分页查询
-     *
-     * @param criteria 条件
-     * @param page     分页参数
-     * @return /
-     */
-    PageResult<Database> queryAll(DatabaseQueryCriteria criteria, Page<Object> page);
-
-    /**
-     * 查询全部
-     * @param criteria 条件
-     * @return /
-     */
-    List<Database> queryAll(DatabaseQueryCriteria criteria);
-
-    /**
-     * 创建
-     * @param resources /
-     */
-    void create(Database resources);
-
-    /**
-     * 编辑
-     * @param resources /
-     */
-    void update(Database resources);
-
-    /**
-     * 删除
-     * @param ids /
-     */
-    void delete(Set<String> ids);
-
-    /**
-     * 测试连接
-     * @param resources /
-     * @return /
-     */
-    boolean testConnection(Database resources);
-
-    /**
-     * 导出数据
-     * @param queryAll /
-     * @param response /
-     * @throws IOException e
-     */
-    void download(List<Database> queryAll, HttpServletResponse response) throws IOException;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/DeployHistoryService.java b/oying-system/src/main/java/com/oying/modules/maint/service/DeployHistoryService.java
deleted file mode 100644
index ed4203f..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/DeployHistoryService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.oying.modules.maint.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.dto.DeployHistoryQueryCriteria;
-import com.oying.utils.PageResult;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @author Z
- */
-public interface DeployHistoryService extends IService<DeployHistory> {
-
-    /**
-     * 分页查询
-     *
-     * @param criteria 条件
-     * @param page     分页参数
-     * @return /
-     */
-    PageResult<DeployHistory> queryAll(DeployHistoryQueryCriteria criteria, Page<Object> page);
-
-    /**
-     * 查询全部
-     *
-     * @param criteria 条件
-     * @return /
-     */
-    List<DeployHistory> queryAll(DeployHistoryQueryCriteria criteria);
-
-    /**
-     * 创建
-     * @param resources /
-     */
-    void create(DeployHistory resources);
-
-    /**
-     * 删除
-     * @param ids /
-     */
-    void delete(Set<String> ids);
-
-    /**
-     * 导出数据
-     * @param queryAll /
-     * @param response /
-     * @throws IOException /
-     */
-    void download(List<DeployHistory> queryAll, HttpServletResponse response) throws IOException;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/DeployService.java b/oying-system/src/main/java/com/oying/modules/maint/service/DeployService.java
deleted file mode 100644
index 82d5271..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/DeployService.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.oying.modules.maint.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.modules.maint.domain.Deploy;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.dto.DeployQueryCriteria;
-import com.oying.utils.PageResult;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-public interface DeployService extends IService<Deploy> {
-
-    /**
-     * 分页查询
-     *
-     * @param criteria 条件
-     * @param page     分页参数
-     * @return /
-     */
-    PageResult<Deploy> queryAll(DeployQueryCriteria criteria, Page<Object> page);
-
-    /**
-     * 查询全部数据
-     * @param criteria 条件
-     * @return /
-     */
-    List<Deploy> queryAll(DeployQueryCriteria criteria);
-
-    /**
-     * 创建
-     * @param resources /
-     */
-    void create(Deploy resources);
-
-
-    /**
-     * 编辑
-     * @param resources /
-     */
-    void update(Deploy resources);
-
-    /**
-     * 删除
-     * @param ids /
-     */
-    void delete(Set<Long> ids);
-
-    /**
-     * 部署服务
-     * @param fileSavePath /
-     * @param appId /
-     */
-    void deploy(String fileSavePath, Long appId);
-
-    /**
-     * 查询部署状态
-     * @param resources /
-     * @return /
-     */
-    String serverStatus(Deploy resources);
-    /**
-     * 启动服务
-     * @param resources /
-     * @return /
-     */
-    String startServer(Deploy resources);
-    /**
-     * 停止服务
-     * @param resources /
-     * @return /
-     */
-    String stopServer(Deploy resources);
-
-    /**
-     * 停止服务
-     * @param resources /
-     * @return /
-     */
-    String serverReduction(DeployHistory resources);
-
-    /**
-     * 导出数据
-     * @param queryAll /
-     * @param response /
-     * @throws IOException /
-     */
-    void download(List<Deploy> queryAll, HttpServletResponse response) throws IOException;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/ServerService.java b/oying-system/src/main/java/com/oying/modules/maint/service/ServerService.java
deleted file mode 100644
index e95359e..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/ServerService.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.oying.modules.maint.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.modules.maint.domain.Server;
-import com.oying.modules.maint.domain.dto.ServerQueryCriteria;
-import com.oying.utils.PageResult;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-public interface ServerService extends IService<Server> {
-
-    /**
-     * 分页查询
-     *
-     * @param criteria 条件
-     * @param page     分页参数
-     * @return /
-     */
-    PageResult<Server> queryAll(ServerQueryCriteria criteria, Page<Object> page);
-
-    /**
-     * 查询全部数据
-     * @param criteria 条件
-     * @return /
-     */
-    List<Server> queryAll(ServerQueryCriteria criteria);
-
-    /**
-     * 创建
-     * @param resources /
-     */
-    void create(Server resources);
-
-    /**
-     * 编辑
-     * @param resources /
-     */
-    void update(Server resources);
-
-    /**
-     * 删除
-     * @param ids /
-     */
-    void delete(Set<Long> ids);
-
-    /**
-     * 根据IP查询
-     *
-     * @param ip /
-     * @return /
-     */
-    Server findByIp(String ip);
-
-    /**
-     * 测试连接
-     * @param resources /
-     * @return /
-     */
-    Boolean testConnect(Server resources);
-
-    /**
-     * 导出数据
-     * @param queryAll /
-     * @param response /
-     * @throws IOException /
-     */
-    void download(List<Server> queryAll, HttpServletResponse response) throws IOException;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/impl/AppServiceImpl.java b/oying-system/src/main/java/com/oying/modules/maint/service/impl/AppServiceImpl.java
deleted file mode 100644
index 2d10b5a..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/impl/AppServiceImpl.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.oying.modules.maint.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.maint.domain.dto.AppQueryCriteria;
-import com.oying.modules.maint.mapper.AppMapper;
-import com.oying.modules.maint.mapper.DeployMapper;
-import com.oying.modules.maint.mapper.DeployServerMapper;
-import lombok.RequiredArgsConstructor;
-import com.oying.exception.BadRequestException;
-import com.oying.modules.maint.domain.App;
-import com.oying.modules.maint.service.AppService;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.*;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Service
-@RequiredArgsConstructor
-public class AppServiceImpl extends ServiceImpl<AppMapper, App> implements AppService {
-
-    private final AppMapper appMapper;
-    private final DeployMapper deployMapper;
-    private final DeployServerMapper deployServerMapper;
-
-    @Override
-    public PageResult<App> queryAll(AppQueryCriteria criteria, Page<Object> page){
-        return PageUtil.toPage(appMapper.queryAll(criteria, page));
-    }
-
-    @Override
-    public List<App> queryAll(AppQueryCriteria criteria){
-        return appMapper.queryAll(criteria);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void create(App resources) {
-        verification(resources);
-        save(resources);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void update(App resources) {
-        verification(resources);
-        App app = getById(resources.getId());
-        app.copy(resources);
-        saveOrUpdate(app);
-    }
-
-    private void verification(App resources){
-        String opt = "/opt";
-        String home = "/home";
-        if (!(resources.getUploadPath().startsWith(opt) || resources.getUploadPath().startsWith(home))) {
-            throw new BadRequestException("文件只能上传在opt目录或者home目录 ");
-        }
-        if (!(resources.getDeployPath().startsWith(opt) || resources.getDeployPath().startsWith(home))) {
-            throw new BadRequestException("文件只能部署在opt目录或者home目录 ");
-        }
-        if (!(resources.getBackupPath().startsWith(opt) || resources.getBackupPath().startsWith(home))) {
-            throw new BadRequestException("文件只能备份在opt目录或者home目录 ");
-        }
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<Long> ids) {
-        // 删除应用
-        removeBatchByIds(ids);
-        // 删除部署
-        Set<Long> deployIds = deployMapper.getIdByAppIds(ids);
-        if(CollUtil.isNotEmpty(deployIds)){
-            deployServerMapper.deleteByDeployIds(deployIds);
-            deployMapper.deleteBatchIds(deployIds);
-        }
-    }
-
-    @Override
-    public void download(List<App> apps, HttpServletResponse response) throws IOException {
-        List<Map<String, Object>> list = new ArrayList<>();
-        for (App app : apps) {
-            Map<String,Object> map = new LinkedHashMap<>();
-            map.put("应用名称", app.getName());
-            map.put("端口", app.getPort());
-            map.put("上传目录", app.getUploadPath());
-            map.put("部署目录", app.getDeployPath());
-            map.put("备份目录", app.getBackupPath());
-            map.put("启动脚本", app.getStartScript());
-            map.put("部署脚本", app.getDeployScript());
-            map.put("创建日期", app.getCreateTime());
-            list.add(map);
-        }
-        FileUtil.downloadExcel(list, response);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/impl/DatabaseServiceImpl.java b/oying-system/src/main/java/com/oying/modules/maint/service/impl/DatabaseServiceImpl.java
deleted file mode 100644
index ebd4814..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/impl/DatabaseServiceImpl.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.oying.modules.maint.service.impl;
-
-import cn.hutool.core.util.IdUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.maint.domain.Database;
-import com.oying.modules.maint.domain.dto.DatabaseQueryCriteria;
-import com.oying.modules.maint.mapper.DatabaseMapper;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import com.oying.modules.maint.service.DatabaseService;
-import com.oying.modules.maint.util.SqlUtils;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.*;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DatabaseServiceImpl extends ServiceImpl<DatabaseMapper, Database> implements DatabaseService {
-
-    private final DatabaseMapper databaseMapper;
-
-    @Override
-    public PageResult<Database> queryAll(DatabaseQueryCriteria criteria, Page<Object> page){
-        return PageUtil.toPage(databaseMapper.findAll(criteria, page));
-    }
-
-    @Override
-    public List<Database> queryAll(DatabaseQueryCriteria criteria){
-        return databaseMapper.findAll(criteria);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void create(Database resources) {
-        resources.setId(IdUtil.simpleUUID());
-        save(resources);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void update(Database resources) {
-        Database database = getById(resources.getId());
-        database.copy(resources);
-        saveOrUpdate(database);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<String> ids) {
-        removeBatchByIds(ids);
-    }
-
-    @Override
-    public boolean testConnection(Database resources) {
-        try {
-            return SqlUtils.testConnection(resources.getJdbcUrl(), resources.getUserName(), resources.getPwd());
-        } catch (Exception e) {
-            log.error(e.getMessage());
-            return false;
-        }
-    }
-
-    @Override
-    public void download(List<Database> databases, HttpServletResponse response) throws IOException {
-        List<Map<String, Object>> list = new ArrayList<>();
-        for (Database database : databases) {
-            Map<String,Object> map = new LinkedHashMap<>();
-            map.put("数据库名称", database.getName());
-            map.put("数据库连接地址", database.getJdbcUrl());
-            map.put("用户名", database.getUserName());
-            map.put("创建日期", database.getCreateTime());
-            list.add(map);
-        }
-        FileUtil.downloadExcel(list, response);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/impl/DeployHistoryServiceImpl.java b/oying-system/src/main/java/com/oying/modules/maint/service/impl/DeployHistoryServiceImpl.java
deleted file mode 100644
index 1feb2e1..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/impl/DeployHistoryServiceImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.oying.modules.maint.service.impl;
-
-import cn.hutool.core.util.IdUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.dto.DeployHistoryQueryCriteria;
-import lombok.RequiredArgsConstructor;
-import com.oying.modules.maint.mapper.DeployHistoryMapper;
-import com.oying.modules.maint.service.DeployHistoryService;
-import com.oying.utils.DateUtil;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.*;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Service
-@RequiredArgsConstructor
-public class DeployHistoryServiceImpl extends ServiceImpl<DeployHistoryMapper, DeployHistory> implements DeployHistoryService {
-
-    private final DeployHistoryMapper deployhistoryMapper;
-
-    @Override
-    public PageResult<DeployHistory> queryAll(DeployHistoryQueryCriteria criteria, Page<Object> page){
-        return PageUtil.toPage(deployhistoryMapper.findAll(criteria, page));
-    }
-
-    @Override
-    public List<DeployHistory> queryAll(DeployHistoryQueryCriteria criteria){
-        return deployhistoryMapper.findAll(criteria);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void create(DeployHistory resources) {
-        resources.setId(IdUtil.simpleUUID());
-        resources.setDeployDate(DateUtil.getTimeStamp());
-        save(resources);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<String> ids) {
-        removeBatchByIds(ids);
-    }
-
-    @Override
-    public void download(List<DeployHistory> deployHistories, HttpServletResponse response) throws IOException {
-        List<Map<String, Object>> list = new ArrayList<>();
-        for (DeployHistory deployHistory : deployHistories) {
-            Map<String,Object> map = new LinkedHashMap<>();
-            map.put("部署编号", deployHistory.getDeployId());
-            map.put("应用名称", deployHistory.getAppName());
-            map.put("部署IP", deployHistory.getIp());
-            map.put("部署时间", deployHistory.getDeployDate());
-            map.put("部署人员", deployHistory.getDeployUser());
-            list.add(map);
-        }
-        FileUtil.downloadExcel(list, response);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/impl/DeployServiceImpl.java b/oying-system/src/main/java/com/oying/modules/maint/service/impl/DeployServiceImpl.java
deleted file mode 100644
index 245f711..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/impl/DeployServiceImpl.java
+++ /dev/null
@@ -1,414 +0,0 @@
-package com.oying.modules.maint.service.impl;
-
-import cn.hutool.core.date.DatePattern;
-import cn.hutool.core.date.DateUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.maint.domain.Deploy;
-import com.oying.modules.maint.domain.DeployHistory;
-import com.oying.modules.maint.domain.Server;
-import com.oying.modules.maint.domain.dto.DeployQueryCriteria;
-import com.oying.modules.maint.domain.enums.MsgType;
-import com.oying.modules.maint.mapper.DeployMapper;
-import com.oying.modules.maint.mapper.DeployServerMapper;
-import com.oying.modules.maint.service.websocket.SocketMsg;
-import com.oying.modules.maint.service.websocket.WebSocketServer;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import com.oying.exception.BadRequestException;
-import com.oying.modules.maint.domain.App;
-import com.oying.modules.maint.service.DeployHistoryService;
-import com.oying.modules.maint.service.DeployService;
-import com.oying.modules.maint.service.ServerService;
-import com.oying.modules.maint.util.ExecuteShellUtil;
-import com.oying.modules.maint.util.ScpClientUtil;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
-import com.oying.utils.SecurityUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * @author Z
- * @date 2019-08-24
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class DeployServiceImpl extends ServiceImpl<DeployMapper, Deploy> implements DeployService {
-
-	private final String FILE_SEPARATOR = "/";
-	private final DeployMapper deployMapper;
-	private final DeployServerMapper deployServerMapper;
-	private final ServerService serverService;
-	private final DeployHistoryService deployHistoryService;
-	/**
-	 * 循环次数
-	 */
-	private final Integer count = 30;
-
-	@Override
-	public PageResult<Deploy> queryAll(DeployQueryCriteria criteria, Page<Object> page) {
-		criteria.setOffset(page.offset());
-		List<Deploy> deploys = deployMapper.findAll(criteria);
-		Long total = deployMapper.countAll(criteria);
-		return PageUtil.toPage(deploys, total);
-	}
-
-	@Override
-	public List<Deploy> queryAll(DeployQueryCriteria criteria) {
-		return deployMapper.findAll(criteria);
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void create(Deploy resources) {
-		resources.setAppId(resources.getApp().getId());
-		save(resources);
-		// 保存关联关系
-		deployServerMapper.insertData(resources.getId(), resources.getDeploys());
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void update(Deploy resources) {
-		Deploy deploy = getById(resources.getId());
-		deploy.copy(resources);
-		saveOrUpdate(deploy);
-		// 更新关联关系
-		deployServerMapper.deleteByDeployId(resources.getId());
-		deployServerMapper.insertData(resources.getId(), resources.getDeploys());
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void delete(Set<Long> ids) {
-		removeBatchByIds(ids);
-		// 删除关联
-		deployServerMapper.deleteByDeployIds(ids);
-	}
-
-	@Override
-	public void deploy(String fileSavePath, Long id) {
-		deployApp(fileSavePath, id);
-	}
-
-	/**
-	 * @param fileSavePath 本机路径
-	 * @param id ID
-	 */
-	private void deployApp(String fileSavePath, Long id) {
-		Deploy deploy = deployMapper.getDeployById(id);
-		if (deploy == null) {
-			sendMsg("部署信息不存在", MsgType.ERROR);
-			throw new BadRequestException("部署信息不存在");
-		}
-		App app = deploy.getApp();
-		if (app == null) {
-			sendMsg("包对应应用信息不存在", MsgType.ERROR);
-			throw new BadRequestException("包对应应用信息不存在");
-		}
-		int port = app.getPort();
-		//这个是服务器部署路径
-		String uploadPath = app.getUploadPath();
-		StringBuilder sb = new StringBuilder();
-		String msg;
-		Set<Server> deploys = deploy.getDeploys();
-		for (Server server : deploys) {
-			String ip = server.getIp();
-			ExecuteShellUtil executeShellUtil = getExecuteShellUtil(ip);
-			//判断是否第一次部署
-			boolean flag = checkFile(executeShellUtil, app);
-			//第一步要确认服务器上有这个目录
-			executeShellUtil.execute("mkdir -p " + app.getUploadPath());
-			executeShellUtil.execute("mkdir -p " + app.getBackupPath());
-			executeShellUtil.execute("mkdir -p " + app.getDeployPath());
-			//上传文件
-			msg = String.format("登陆到服务器:%s", ip);
-			ScpClientUtil scpClientUtil = getScpClientUtil(ip);
-			log.info(msg);
-			sendMsg(msg, MsgType.INFO);
-			msg = String.format("上传文件到服务器:%s<br>目录:%s下,请稍等...", ip, uploadPath);
-			sendMsg(msg, MsgType.INFO);
-			scpClientUtil.putFile(fileSavePath, uploadPath);
-			if (flag) {
-				sendMsg("停止原来应用", MsgType.INFO);
-				//停止应用
-				stopApp(port, executeShellUtil);
-				sendMsg("备份原来应用", MsgType.INFO);
-				//备份应用
-				backupApp(executeShellUtil, ip, app.getDeployPath()+FILE_SEPARATOR, app.getName(), app.getBackupPath()+FILE_SEPARATOR, id);
-			}
-			sendMsg("部署应用", MsgType.INFO);
-			//部署文件,并启动应用
-			String deployScript = app.getDeployScript();
-			executeShellUtil.execute(deployScript);
-			sleep(3);
-			sendMsg("应用部署中,请耐心等待部署结果,或者稍后手动查看部署状态", MsgType.INFO);
-			int i  = 0;
-			boolean result = false;
-			// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
-			while (i++ < count){
-				result = checkIsRunningStatus(port, executeShellUtil);
-				if(result){
-					break;
-				}
-				// 休眠6秒
-				sleep(6);
-			}
-			sb.append("服务器:").append(server.getName()).append("<br>应用:").append(app.getName());
-			sendResultMsg(result, sb);
-			executeShellUtil.close();
-		}
-	}
-
-	private void sleep(int second) {
-		try {
-			Thread.sleep(second * 1000L);
-		} catch (InterruptedException e) {
-			log.error(e.getMessage(),e);
-		}
-	}
-
-	private void backupApp(ExecuteShellUtil executeShellUtil, String ip, String fileSavePath, String appName, String backupPath, Long id) {
-		String deployDate = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN);
-		StringBuilder sb = new StringBuilder();
-		backupPath += appName + FILE_SEPARATOR + deployDate + "\n";
-		sb.append("mkdir -p ").append(backupPath);
-		sb.append("mv -f ").append(fileSavePath);
-		sb.append(appName).append(" ").append(backupPath);
-		log.info("备份应用脚本:" + sb);
-		executeShellUtil.execute(sb.toString());
-		//还原信息入库
-		DeployHistory deployHistory = new DeployHistory();
-		deployHistory.setAppName(appName);
-		deployHistory.setDeployUser(SecurityUtils.getCurrentUsername());
-		deployHistory.setIp(ip);
-		deployHistory.setDeployId(id);
-		deployHistoryService.create(deployHistory);
-	}
-
-	/**
-	 * 停App
-	 *
-	 * @param port 端口
-	 * @param executeShellUtil /
-	 */
-	private void stopApp(int port, ExecuteShellUtil executeShellUtil) {
-		//发送停止命令
-		executeShellUtil.execute(String.format("lsof -i :%d|grep -v \"PID\"|awk '{print \"kill -9\",$2}'|sh", port));
-
-	}
-
-	/**
-	 * 指定端口程序是否在运行
-	 *
-	 * @param port 端口
-	 * @param executeShellUtil /
-	 * @return true 正在运行  false 已经停止
-	 */
-	private boolean checkIsRunningStatus(int port, ExecuteShellUtil executeShellUtil) {
-		String result = executeShellUtil.executeForResult(String.format("fuser -n tcp %d", port));
-		return result.indexOf("/tcp:")>0;
-	}
-
-	private void sendMsg(String msg, MsgType msgType) {
-		try {
-			WebSocketServer.sendInfo(new SocketMsg(msg, msgType), "deploy");
-		} catch (IOException e) {
-			log.error(e.getMessage(),e);
-		}
-	}
-
-	@Override
-	public String serverStatus(Deploy resources) {
-		Set<Server> servers = resources.getDeploys();
-		App app = resources.getApp();
-		for (Server server : servers) {
-			StringBuilder sb = new StringBuilder();
-			ExecuteShellUtil executeShellUtil = getExecuteShellUtil(server.getIp());
-			sb.append("服务器:").append(server.getName()).append("<br>应用:").append(app.getName());
-			boolean result = checkIsRunningStatus(app.getPort(), executeShellUtil);
-			if (result) {
-				sb.append("<br>正在运行");
-				sendMsg(sb.toString(), MsgType.INFO);
-			} else {
-				sb.append("<br>已停止!");
-				sendMsg(sb.toString(), MsgType.ERROR);
-			}
-			log.info(sb.toString());
-			executeShellUtil.close();
-		}
-		return "执行完毕";
-	}
-
-	private boolean checkFile(ExecuteShellUtil executeShellUtil, App app) {
-		String result = executeShellUtil.executeForResult("find " + app.getDeployPath() + " -name " + app.getName());
-		return result.indexOf(app.getName())>0;
-	}
-
-	/**
-	 * 启动服务
-	 * @param resources /
-	 * @return /
-	 */
-	@Override
-	public String startServer(Deploy resources) {
-		Set<Server> deploys = resources.getDeploys();
-		App app = resources.getApp();
-		for (Server deploy : deploys) {
-			StringBuilder sb = new StringBuilder();
-			ExecuteShellUtil executeShellUtil = getExecuteShellUtil(deploy.getIp());
-			//为了防止重复启动,这里先停止应用
-			stopApp(app.getPort(), executeShellUtil);
-			sb.append("服务器:").append(deploy.getName()).append("<br>应用:").append(app.getName());
-			sendMsg("下发启动命令", MsgType.INFO);
-			executeShellUtil.execute(app.getStartScript());
-			sleep(3);
-			sendMsg("应用启动中,请耐心等待启动结果,或者稍后手动查看运行状态", MsgType.INFO);
-			int i  = 0;
-			boolean result = false;
-			// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
-			while (i++ < count){
-				result = checkIsRunningStatus(app.getPort(), executeShellUtil);
-				if(result){
-					break;
-				}
-				// 休眠6秒
-				sleep(6);
-			}
-			sendResultMsg(result, sb);
-			log.info(sb.toString());
-			executeShellUtil.close();
-		}
-		return "执行完毕";
-	}
-
-	/**
-	 * 停止服务
-	 * @param resources /
-	 * @return /
-	 */
-	@Override
-	public String stopServer(Deploy resources) {
-		Set<Server> deploys = resources.getDeploys();
-		App app = resources.getApp();
-		for (Server deploy : deploys) {
-			StringBuilder sb = new StringBuilder();
-			ExecuteShellUtil executeShellUtil = getExecuteShellUtil(deploy.getIp());
-			sb.append("服务器:").append(deploy.getName()).append("<br>应用:").append(app.getName());
-			sendMsg("下发停止命令", MsgType.INFO);
-			//停止应用
-			stopApp(app.getPort(), executeShellUtil);
-			sleep(1);
-			boolean result = checkIsRunningStatus(app.getPort(), executeShellUtil);
-			if (result) {
-				sb.append("<br>关闭失败!");
-				sendMsg(sb.toString(), MsgType.ERROR);
-			} else {
-				sb.append("<br>关闭成功!");
-				sendMsg(sb.toString(), MsgType.INFO);
-			}
-			log.info(sb.toString());
-			executeShellUtil.close();
-		}
-		return "执行完毕";
-	}
-
-	@Override
-	public String serverReduction(DeployHistory resources) {
-		Long deployId = resources.getDeployId();
-		Deploy deployInfo = getById(deployId);
-		String deployDate = DateUtil.format(resources.getDeployDate(), DatePattern.PURE_DATETIME_PATTERN);
-		App app = deployInfo.getApp();
-		if (app == null) {
-			sendMsg("应用信息不存在:" + resources.getAppName(), MsgType.ERROR);
-			throw new BadRequestException("应用信息不存在:" + resources.getAppName());
-		}
-		String backupPath = app.getBackupPath()+FILE_SEPARATOR;
-		backupPath += resources.getAppName() + FILE_SEPARATOR + deployDate;
-		//这个是服务器部署路径
-		String deployPath = app.getDeployPath();
-		String ip = resources.getIp();
-		ExecuteShellUtil executeShellUtil = getExecuteShellUtil(ip);
-		String msg;
-
-		msg = String.format("登陆到服务器:%s", ip);
-		log.info(msg);
-		sendMsg(msg, MsgType.INFO);
-		sendMsg("停止原来应用", MsgType.INFO);
-		//停止应用
-		stopApp(app.getPort(), executeShellUtil);
-		//删除原来应用
-		sendMsg("删除应用", MsgType.INFO);
-		executeShellUtil.execute("rm -rf " + deployPath + FILE_SEPARATOR + resources.getAppName());
-		//还原应用
-		sendMsg("还原应用", MsgType.INFO);
-		executeShellUtil.execute("cp -r " + backupPath + "/. " + deployPath);
-		sendMsg("启动应用", MsgType.INFO);
-		executeShellUtil.execute(app.getStartScript());
-		sendMsg("应用启动中,请耐心等待启动结果,或者稍后手动查看启动状态", MsgType.INFO);
-		int i  = 0;
-		boolean result = false;
-		// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
-		while (i++ < count){
-			result = checkIsRunningStatus(app.getPort(), executeShellUtil);
-			if(result){
-				break;
-			}
-			// 休眠6秒
-			sleep(6);
-		}
-		StringBuilder sb = new StringBuilder();
-		sb.append("服务器:").append(ip).append("<br>应用:").append(resources.getAppName());
-		sendResultMsg(result, sb);
-		executeShellUtil.close();
-		return "";
-	}
-
-	private ExecuteShellUtil getExecuteShellUtil(String ip) {
-		Server server = serverService.findByIp(ip);
-		if (server == null) {
-			sendMsg("IP对应服务器信息不存在:" + ip, MsgType.ERROR);
-			throw new BadRequestException("IP对应服务器信息不存在:" + ip);
-		}
-		return new ExecuteShellUtil(ip, server.getAccount(), server.getPassword(), server.getPort());
-	}
-
-	private ScpClientUtil getScpClientUtil(String ip) {
-		Server server = serverService.findByIp(ip);
-		if (server == null) {
-			sendMsg("IP对应服务器信息不存在:" + ip, MsgType.ERROR);
-			throw new BadRequestException("IP对应服务器信息不存在:" + ip);
-		}
-		return ScpClientUtil.getInstance(ip, server.getPort(), server.getAccount(), server.getPassword());
-	}
-
-	private void sendResultMsg(boolean result, StringBuilder sb) {
-		if (result) {
-			sb.append("<br>启动成功!");
-			sendMsg(sb.toString(), MsgType.INFO);
-		} else {
-			sb.append("<br>启动失败!");
-			sendMsg(sb.toString(), MsgType.ERROR);
-		}
-	}
-
-	@Override
-	public void download(List<Deploy> deploys, HttpServletResponse response) throws IOException {
-		List<Map<String, Object>> list = new ArrayList<>();
-		for (Deploy deploy : deploys) {
-			Map<String,Object> map = new LinkedHashMap<>();
-			map.put("应用名称", deploy.getApp().getName());
-			map.put("服务器", deploy.getServers());
-			map.put("部署日期", deploy.getCreateTime());
-			list.add(map);
-		}
-		FileUtil.downloadExcel(list, response);
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/impl/ServerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/maint/service/impl/ServerServiceImpl.java
deleted file mode 100644
index 5838bbb..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/impl/ServerServiceImpl.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.oying.modules.maint.service.impl;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.maint.domain.Server;
-import com.oying.modules.maint.domain.dto.ServerQueryCriteria;
-import com.oying.modules.maint.mapper.DeployServerMapper;
-import com.oying.modules.maint.mapper.ServerMapper;
-import lombok.RequiredArgsConstructor;
-import com.oying.modules.maint.service.ServerService;
-import com.oying.modules.maint.util.ExecuteShellUtil;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.*;
-
-/**
-* @author Z
-* @date 2019-08-24
-*/
-@Service
-@RequiredArgsConstructor
-public class ServerServiceImpl extends ServiceImpl<ServerMapper, Server> implements ServerService {
-
-    private final ServerMapper serverMapper;
-    private final DeployServerMapper deployServerMapper;
-
-    @Override
-    public PageResult<Server> queryAll(ServerQueryCriteria criteria, Page<Object> page){
-        return PageUtil.toPage(serverMapper.findAll(criteria, page));
-    }
-
-    @Override
-    public List<Server> queryAll(ServerQueryCriteria criteria){
-        return serverMapper.findAll(criteria);
-    }
-
-    @Override
-    public Server findByIp(String ip) {
-        return serverMapper.findByIp(ip);
-    }
-
-    @Override
-    public Boolean testConnect(Server resources) {
-        ExecuteShellUtil executeShellUtil = null;
-        try {
-            executeShellUtil = new ExecuteShellUtil(resources.getIp(), resources.getAccount(), resources.getPassword(),resources.getPort());
-            return executeShellUtil.execute("ls")==0;
-        } catch (Exception e) {
-            return false;
-        }finally {
-            if (executeShellUtil != null) {
-                executeShellUtil.close();
-            }
-        }
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void create(Server resources) {
-        save(resources);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void update(Server resources) {
-        Server server = getById(resources.getId());
-        server.copy(resources);
-        saveOrUpdate(server);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delete(Set<Long> ids) {
-        removeBatchByIds(ids);
-        // 删除与之关联的服务
-        deployServerMapper.deleteByServerIds(ids);
-    }
-
-    @Override
-    public void download(List<Server> servers, HttpServletResponse response) throws IOException {
-        List<Map<String, Object>> list = new ArrayList<>();
-        for (Server deploy : servers) {
-            Map<String,Object> map = new LinkedHashMap<>();
-            map.put("服务器名称", deploy.getName());
-            map.put("服务器IP", deploy.getIp());
-            map.put("端口", deploy.getPort());
-            map.put("账号", deploy.getAccount());
-            map.put("创建日期", deploy.getCreateTime());
-            list.add(map);
-        }
-        FileUtil.downloadExcel(list, response);
-    }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/websocket/SocketMsg.java b/oying-system/src/main/java/com/oying/modules/maint/service/websocket/SocketMsg.java
deleted file mode 100644
index f4a3997..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/websocket/SocketMsg.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.oying.modules.maint.service.websocket;
-
-import com.oying.modules.maint.domain.enums.MsgType;
-import lombok.Data;
-
-/**
- * @author Z
- * @date 2019-08-10 9:55
- */
-@Data
-public class SocketMsg {
-	private String msg;
-	private MsgType msgType;
-
-	public SocketMsg(String msg, MsgType msgType) {
-		this.msg = msg;
-		this.msgType = msgType;
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/service/websocket/WebSocketServer.java b/oying-system/src/main/java/com/oying/modules/maint/service/websocket/WebSocketServer.java
deleted file mode 100644
index ebb4f20..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/service/websocket/WebSocketServer.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package com.oying.modules.maint.service.websocket;
-
-import com.alibaba.fastjson2.JSON;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-import javax.websocket.*;
-import javax.websocket.server.PathParam;
-import javax.websocket.server.ServerEndpoint;
-import java.io.IOException;
-import java.util.Objects;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-/**
- * @author Z
- * @date 2019-08-10 15:46
- */
-@ServerEndpoint("/webSocket/{sid}")
-@Slf4j
-@Component
-public class WebSocketServer {
-
-	/**
-	 * concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
-	 */
-	private static final CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<>();
-
-	/**
-	 * 与某个客户端的连接会话,需要通过它来给客户端发送数据
-	 */
-	private Session session;
-
-	/**
-	 * 接收sid
-	 */
-	private String sid="";
-	/**
-	 * 连接建立成功调用的方法
-	 * */
-	@OnOpen
-	public void onOpen(Session session,@PathParam("sid") String sid) {
-		this.session = session;
-		//如果存在就先删除一个,防止重复推送消息
-		webSocketSet.removeIf(webSocket -> webSocket.sid.equals(sid));
-		webSocketSet.add(this);
-		this.sid=sid;
-	}
-
-	/**
-	 * 连接关闭调用的方法
-	 */
-	@OnClose
-	public void onClose() {
-		webSocketSet.remove(this);
-	}
-
-	/**
-	 * 收到客户端消息后调用的方法
-	 * @param message 客户端发送过来的消息*/
-	@OnMessage
-	public void onMessage(String message, Session session) {
-		log.info("收到来"+sid+"的信息:"+message);
-		//群发消息
-		for (WebSocketServer item : webSocketSet) {
-			try {
-				item.sendMessage(message);
-			} catch (IOException e) {
-				log.error(e.getMessage(),e);
-			}
-		}
-	}
-
-	@OnError
-	public void onError(Session session, Throwable error) {
-		log.error("发生错误", error);
-	}
-	/**
-	 * 实现服务器主动推送
-	 */
-	private void sendMessage(String message) throws IOException {
-		this.session.getBasicRemote().sendText(message);
-	}
-
-
-	/**
-	 * 群发自定义消息
-	 * */
-	public static void sendInfo(SocketMsg socketMsg,@PathParam("sid") String sid) throws IOException {
-		String message = JSON.toJSONString(socketMsg);
-		log.info("推送消息到"+sid+",推送内容:"+message);
-		for (WebSocketServer item : webSocketSet) {
-			try {
-				//这里可以设定只推送给这个sid的,为null则全部推送
-				if(sid==null) {
-					item.sendMessage(message);
-				}else if(item.sid.equals(sid)){
-					item.sendMessage(message);
-				}
-			} catch (IOException ignored) { }
-		}
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (this == o) {
-			return true;
-		}
-		if (o == null || getClass() != o.getClass()) {
-			return false;
-		}
-		WebSocketServer that = (WebSocketServer) o;
-		return Objects.equals(session, that.session) &&
-				Objects.equals(sid, that.sid);
-	}
-
-	@Override
-	public int hashCode() {
-		return Objects.hash(session, sid);
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/util/ExecuteShellUtil.java b/oying-system/src/main/java/com/oying/modules/maint/util/ExecuteShellUtil.java
deleted file mode 100644
index 2c9551b..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/util/ExecuteShellUtil.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.oying.modules.maint.util;
-
-import cn.hutool.core.io.IoUtil;
-import com.jcraft.jsch.ChannelShell;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.Session;
-import lombok.extern.slf4j.Slf4j;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.util.Vector;
-
-/**
- * 执行shell命令
- *
- * @author Z
- * @date 2019/8/10
- */
-@Slf4j
-public class ExecuteShellUtil {
-
-	private Vector<String> stdout;
-
-	Session session;
-
-	public ExecuteShellUtil(final String ipAddress, final String username, final String password,int port) {
-		try {
-			JSch jsch = new JSch();
-			session = jsch.getSession(username, ipAddress, port);
-			session.setPassword(password);
-			session.setConfig("StrictHostKeyChecking", "no");
-			session.connect(3000);
-		} catch (Exception e) {
-			log.error(e.getMessage(),e);
-		}
-
-	}
-
-	public int execute(final String command) {
-		int returnCode = 0;
-		ChannelShell channel = null;
-		PrintWriter printWriter = null;
-		BufferedReader input = null;
-		stdout = new Vector<>();
-		try {
-			channel = (ChannelShell) session.openChannel("shell");
-			channel.connect();
-			input = new BufferedReader(new InputStreamReader(channel.getInputStream()));
-			printWriter = new PrintWriter(channel.getOutputStream());
-			printWriter.println(command);
-			printWriter.println("exit");
-			printWriter.flush();
-			log.info("The remote command is: ");
-			String line;
-			while ((line = input.readLine()) != null) {
-				stdout.add(line);
-				System.out.println(line);
-			}
-		} catch (Exception e) {
-			log.error(e.getMessage(),e);
-			return -1;
-		}finally {
-			IoUtil.close(printWriter);
-			IoUtil.close(input);
-			if (channel != null) {
-				channel.disconnect();
-			}
-		}
-		return returnCode;
-	}
-
-	public void close(){
-		if (session != null) {
-			session.disconnect();
-		}
-	}
-
-	public String executeForResult(String command) {
-		execute(command);
-		StringBuilder sb = new StringBuilder();
-		for (String str : stdout) {
-			sb.append(str);
-		}
-		return sb.toString();
-	}
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/util/ScpClientUtil.java b/oying-system/src/main/java/com/oying/modules/maint/util/ScpClientUtil.java
deleted file mode 100644
index 5db7fea..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/util/ScpClientUtil.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.oying.modules.maint.util;
-
-import ch.ethz.ssh2.Connection;
-import ch.ethz.ssh2.SCPClient;
-import com.google.common.collect.Maps;
-import com.oying.utils.StringUtils;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * 远程执行linux命令
- * @author Z
- * @date 2019-08-10 10:06
- */
-public class ScpClientUtil {
-
-	private final String ip;
-	private final int port;
-	private final String username;
-	private final String password;
-
-	static private final Map<String,ScpClientUtil> instance = Maps.newHashMap();
-
-	static synchronized public ScpClientUtil getInstance(String ip, int port, String username, String password) {
-		instance.computeIfAbsent(ip, i -> new ScpClientUtil(i, port, username, password));
-		return instance.get(ip);
-	}
-
-	public ScpClientUtil(String ip, int port, String username, String password) {
-		this.ip = ip;
-		this.port = port;
-		this.username = username;
-		this.password = password;
-	}
-
-	public void getFile(String remoteFile, String localTargetDirectory) {
-		Connection conn = new Connection(ip, port);
-		try {
-			conn.connect();
-			boolean isAuthenticated = conn.authenticateWithPassword(username, password);
-			if (!isAuthenticated) {
-				System.err.println("authentication failed");
-			}
-			SCPClient client = new SCPClient(conn);
-			client.get(remoteFile, localTargetDirectory);
-		} catch (IOException ex) {
-			Logger.getLogger(SCPClient.class.getName()).log(Level.SEVERE, null, ex);
-		}finally{
-			conn.close();
-		}
-	}
-
-	public void putFile(String localFile, String remoteTargetDirectory) {
-		putFile(localFile, null, remoteTargetDirectory);
-	}
-
-	public void putFile(String localFile, String remoteFileName, String remoteTargetDirectory) {
-		putFile(localFile, remoteFileName, remoteTargetDirectory,null);
-	}
-
-	public void putFile(String localFile, String remoteFileName, String remoteTargetDirectory, String mode) {
-		Connection conn = new Connection(ip, port);
-		try {
-			conn.connect();
-			boolean isAuthenticated = conn.authenticateWithPassword(username, password);
-			if (!isAuthenticated) {
-				System.err.println("authentication failed");
-			}
-			SCPClient client = new SCPClient(conn);
-			if (StringUtils.isBlank(mode)) {
-				mode = "0600";
-			}
-			if (remoteFileName == null) {
-				client.put(localFile, remoteTargetDirectory);
-			} else {
-				client.put(localFile, remoteFileName, remoteTargetDirectory, mode);
-			}
-		} catch (IOException ex) {
-			Logger.getLogger(ScpClientUtil.class.getName()).log(Level.SEVERE, null, ex);
-		}finally{
-			conn.close();
-		}
-	}
-}
diff --git a/oying-system/src/main/java/com/oying/modules/maint/util/SqlUtils.java b/oying-system/src/main/java/com/oying/modules/maint/util/SqlUtils.java
deleted file mode 100644
index 17a3681..0000000
--- a/oying-system/src/main/java/com/oying/modules/maint/util/SqlUtils.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package com.oying.modules.maint.util;
-
-import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.util.StringUtils;
-import com.oying.modules.maint.domain.enums.DataTypeEnum;
-import lombok.extern.slf4j.Slf4j;
-import com.oying.utils.CloseUtil;
-import javax.sql.DataSource;
-import java.io.BufferedReader;
-import java.io.File;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.sql.*;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Z
- */
-@Slf4j
-public class SqlUtils {
-
-	/**
-	 * 获取数据源
-	 *
-	 * @param jdbcUrl /
-	 * @param userName /
-	 * @param password /
-	 * @return DataSource
-	 */
-	private static DataSource getDataSource(String jdbcUrl, String userName, String password) {
-		DruidDataSource druidDataSource = new DruidDataSource();
-		String className;
-		try {
-			className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName();
-		} catch (SQLException e) {
-			throw new RuntimeException("Get class name error: =" + jdbcUrl);
-		}
-		if (StringUtils.isEmpty(className)) {
-			DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl);
-			if (null == dataTypeEnum) {
-				throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl);
-			}
-			druidDataSource.setDriverClassName(dataTypeEnum.getDriver());
-		} else {
-			druidDataSource.setDriverClassName(className);
-		}
-
-		// 去掉不安全的参数
-		jdbcUrl = sanitizeJdbcUrl(jdbcUrl);
-
-		druidDataSource.setUrl(jdbcUrl);
-		druidDataSource.setUsername(userName);
-		druidDataSource.setPassword(password);
-		// 配置获取连接等待超时的时间
-		druidDataSource.setMaxWait(3000);
-		// 配置初始化大小、最小、最大
-		druidDataSource.setInitialSize(1);
-		druidDataSource.setMinIdle(1);
-		druidDataSource.setMaxActive(1);
-
-		// 如果链接出现异常则直接判定为失败而不是一直重试
-		druidDataSource.setBreakAfterAcquireFailure(true);
-		try {
-			druidDataSource.init();
-		} catch (SQLException e) {
-			log.error("Exception during pool initialization", e);
-			throw new RuntimeException(e.getMessage());
-		}
-
-		return druidDataSource;
-	}
-
-	private static Connection getConnection(String jdbcUrl, String userName, String password) {
-		DataSource dataSource = getDataSource(jdbcUrl, userName, password);
-		Connection connection = null;
-		try {
-			connection = dataSource.getConnection();
-		} catch (Exception ignored) {}
-		try {
-			int timeOut = 5;
-			if (null == connection || connection.isClosed() || !connection.isValid(timeOut)) {
-				log.info("connection is closed or invalid, retry get connection!");
-				connection = dataSource.getConnection();
-			}
-		} catch (Exception e) {
-			log.error("create connection error, jdbcUrl: {}", jdbcUrl);
-			throw new RuntimeException("create connection error, jdbcUrl: " + jdbcUrl);
-		} finally {
-			CloseUtil.close(connection);
-		}
-		return connection;
-	}
-
-	private static void releaseConnection(Connection connection) {
-		if (null != connection) {
-			try {
-				connection.close();
-			} catch (Exception e) {
-				log.error(e.getMessage(),e);
-			}
-		}
-	}
-
-	public static boolean testConnection(String jdbcUrl, String userName, String password) {
-		Connection connection = null;
-		try {
-			connection = getConnection(jdbcUrl, userName, password);
-			if (null != connection) {
-				return true;
-			}
-		} catch (Exception e) {
-            log.error("Get connection failed:{}", e.getMessage());
-		} finally {
-			releaseConnection(connection);
-		}
-		return false;
-	}
-
-	public static String executeFile(String jdbcUrl, String userName, String password, File sqlFile) {
-		Connection connection = getConnection(jdbcUrl, userName, password);
-		try {
-			batchExecute(connection, readSqlList(sqlFile));
-		} catch (Exception e) {
-			log.error("sql脚本执行发生异常:{}",e.getMessage());
-			return e.getMessage();
-		}finally {
-			releaseConnection(connection);
-		}
-		return "success";
-	}
-
-	/**
-	 * 批量执行sql
-	 * @param connection /
-	 * @param sqlList /
-	 */
-	public static void batchExecute(Connection connection, List<String> sqlList) {
-		try (Statement st = connection.createStatement()) {
-			for (String sql : sqlList) {
-				// 去除末尾的分号
-				if (sql.endsWith(";")) {
-					sql = sql.substring(0, sql.length() - 1);
-				}
-				// 检查 SQL 语句是否为空
-				if (!sql.trim().isEmpty()) {
-					st.addBatch(sql);
-				}
-			}
-			st.executeBatch();
-		} catch (SQLException e) {
-			log.error("SQL脚本批量执行发生异常: {},错误代码: {}", e.getMessage(), e.getErrorCode());
-		}
-	}
-
-	/**
-	 * 将文件中的sql语句以;为单位读取到列表中
-	 * @param sqlFile /
-	 * @return /
-     */
-	private static List<String> readSqlList(File sqlFile) {
-		List<String> sqlList = new ArrayList<>();
-		StringBuilder sb = new StringBuilder();
-		try (BufferedReader reader = Files.newBufferedReader(sqlFile.toPath(), StandardCharsets.UTF_8)) {
-			String line;
-			while ((line = reader.readLine()) != null) {
-				log.info("line: {}", line);
-				sb.append(line.trim());
-
-				if (line.trim().endsWith(";")) {
-					sqlList.add(sb.toString());
-					// 清空 StringBuilder
-					sb.setLength(0);
-				} else {
-					// 在行之间加一个空格
-					sb.append(" ");
-				}
-			}
-			if (sb.length() > 0) {
-				sqlList.add(sb.toString().trim());
-			}
-		} catch (Exception e) {
-			log.error("读取SQL文件时发生异常: {}", e.getMessage());
-		}
-		return sqlList;
-	}
-
-	/**
-	 * 去除不安全的参数
-	 * @param jdbcUrl /
-	 * @return /
-	 */
-	private static String sanitizeJdbcUrl(String jdbcUrl) {
-		// 定义不安全参数和其安全替代值
-		String[][] unsafeParams = {
-				// allowLoadLocalInfile:允许使用 LOAD DATA LOCAL INFILE,可能导致文件泄露
-				{"allowLoadLocalInfile", "false"},
-				// allowUrlInLocalInfile:允许在 LOAD DATA LOCAL INFILE 中使用 URL,可能导致未经授权的文件访问
-				{"allowUrlInLocalInfile", "false"},
-				// autoDeserialize:允许自动反序列化对象,可能导致反序列化漏洞
-				{"autoDeserialize", "false"},
-				// allowNanAndInf:允许使用 NaN 和 Infinity 作为数字值,可能导致不一致的数据处理
-				{"allowNanAndInf", "false"},
-				// allowMultiQueries:允许在一个语句中执行多个查询,可能导致 SQL 注入攻击
-				{"allowMultiQueries", "false"},
-				// allowPublicKeyRetrieval:允许从服务器检索公钥,可能导致中间人攻击
-				{"allowPublicKeyRetrieval", "false"}
-		};
-
-		// 替换不安全的参数
-		for (String[] param : unsafeParams) {
-			jdbcUrl = jdbcUrl.replaceAll("(?i)" + param[0] + "=true", param[0] + "=" + param[1]);
-		}
-		return jdbcUrl;
-	}
-}
diff --git a/oying-system/src/main/resources/config/application-dev.yml b/oying-system/src/main/resources/config/application-dev.yml
index 7a791fe..f1717d3 100644
--- a/oying-system/src/main/resources/config/application-dev.yml
+++ b/oying-system/src/main/resources/config/application-dev.yml
@@ -62,7 +62,7 @@
   #  验证码
   code:
     #  验证码类型配置 查看 LoginProperties 类
-    code-type: arithmetic
+    code-type: spec
     #  登录图形验证码有效时间/分钟
     expiration: 2
     #  验证码高度
diff --git a/oying-system/src/main/resources/config/application-prod.yml b/oying-system/src/main/resources/config/application-prod.yml
index a00051c..4c783a9 100644
--- a/oying-system/src/main/resources/config/application-prod.yml
+++ b/oying-system/src/main/resources/config/application-prod.yml
@@ -66,7 +66,7 @@
   #  验证码
   code:
     #  验证码类型配置 查看 LoginProperties 类
-    code-type: arithmetic
+    code-type: spec
     #  登录图形验证码有效时间/分钟
     expiration: 2
     #  验证码高度
@@ -119,8 +119,8 @@
     path: ~/file/
     avatar: ~/avatar/
   linux:
-    path: /home/oying/file/
-    avatar: /home/oying/avatar/
+    path: /opt/oying/file/
+    avatar: /opt/oying/avatar/
   windows:
     path: C:\oying\file\
     avatar: C:\oying\avatar\
diff --git a/oying-system/src/main/resources/mapper/maint/AppMapper.xml b/oying-system/src/main/resources/mapper/maint/AppMapper.xml
deleted file mode 100644
index 71f59cf..0000000
--- a/oying-system/src/main/resources/mapper/maint/AppMapper.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.maint.mapper.AppMapper">
-    <resultMap id="BaseResultMap" type="com.oying.modules.maint.domain.App">
-        <id column="app_id" property="id"/>
-        <result column="name" property="name"/>
-        <result column="port" property="port"/>
-        <result column="upload_path" property="uploadPath"/>
-        <result column="deploy_path" property="deployPath"/>
-        <result column="backup_path" property="backupPath"/>
-        <result column="start_script" property="startScript"/>
-        <result column="deploy_script" property="deployScript"/>
-        <result column="create_by" property="createBy"/>
-        <result column="update_by" property="updateBy"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_time" property="updateTime"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        app_id,name,port,upload_path,deploy_path,backup_path,start_script,deploy_script,create_by,update_by,create_time,update_time
-    </sql>
-
-    <select id="queryAll" resultMap="BaseResultMap">
-        select
-        <include refid="Base_Column_List"/>
-        from mnt_app
-        <where>
-            <if test="criteria.name != null and criteria.name != ''">
-                and name like concat('%',#{criteria.name},'%')
-            </if>
-            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
-                and create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
-            </if>
-        </where>
-        order by app_id desc
-    </select>
-</mapper>
diff --git a/oying-system/src/main/resources/mapper/maint/DatabaseMapper.xml b/oying-system/src/main/resources/mapper/maint/DatabaseMapper.xml
deleted file mode 100644
index 06ba262..0000000
--- a/oying-system/src/main/resources/mapper/maint/DatabaseMapper.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.maint.mapper.DatabaseMapper">
-    <resultMap id="BaseResultMap" type="com.oying.modules.maint.domain.Database">
-        <id column="db_id" property="id"/>
-        <result column="name" property="name"/>
-        <result column="jdbc_url" property="jdbcUrl"/>
-        <result column="pwd" property="pwd"/>
-        <result column="user_name" property="userName"/>
-        <result column="create_by" property="createBy"/>
-        <result column="update_by" property="updateBy"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_time" property="updateTime"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        db_id, name, jdbc_url, pwd, user_name, create_by, update_by, create_time, update_time
-    </sql>
-
-    <select id="findAll" resultMap="BaseResultMap">
-        SELECT
-        <include refid="Base_Column_List"/>
-        FROM mnt_database
-        <where>
-            <if test="criteria.name != null and criteria.name != ''">
-                AND name LIKE CONCAT('%',#{criteria.name},'%')
-            </if>
-            <if test="criteria.jdbcUrl != null and criteria.jdbcUrl != ''">
-                AND jdbc_url = #{criteria.jdbcUrl}
-            </if>
-            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
-                AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
-            </if>
-        </where>
-    </select>
-</mapper>
diff --git a/oying-system/src/main/resources/mapper/maint/DeployHistoryMapper.xml b/oying-system/src/main/resources/mapper/maint/DeployHistoryMapper.xml
deleted file mode 100644
index fa0a764..0000000
--- a/oying-system/src/main/resources/mapper/maint/DeployHistoryMapper.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.maint.mapper.DeployHistoryMapper">
-    <resultMap id="BaseResultMap" type="com.oying.modules.maint.domain.DeployHistory">
-        <id column="history_id" property="id"/>
-        <result column="app_name" property="appName"/>
-        <result column="ip" property="ip"/>
-        <result column="deploy_date" property="deployDate"/>
-        <result column="deploy_user" property="deployUser"/>
-        <result column="deploy_id" property="deployId"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        history_id, app_name, ip, deploy_date, deploy_user, deploy_id
-    </sql>
-
-    <select id="findAll" resultMap="BaseResultMap">
-        SELECT
-        <include refid="Base_Column_List"/>
-        FROM mnt_deploy_history
-        <where>
-            <if test="criteria.blurry != null and criteria.blurry != ''">
-                AND (
-                    app_name LIKE CONCAT('%',#{criteria.blurry},'%')
-                    or ip LIKE CONCAT('%',#{criteria.blurry},'%')
-                    or deploy_user LIKE CONCAT('%',#{criteria.blurry},'%')
-                )
-            </if>
-            <if test="criteria.deployId != null">
-                AND deploy_id = #{criteria.deployId}
-            </if>
-            <if test="criteria.deployDate != null and criteria.deployDate.size() != 0">
-                AND deploy_date BETWEEN #{criteria.deployDate[0]} AND #{criteria.deployDate[1]}
-            </if>
-        </where>
-        order by deploy_date desc
-    </select>
-
-</mapper>
diff --git a/oying-system/src/main/resources/mapper/maint/DeployMapper.xml b/oying-system/src/main/resources/mapper/maint/DeployMapper.xml
deleted file mode 100644
index 80d6f6f..0000000
--- a/oying-system/src/main/resources/mapper/maint/DeployMapper.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis_deploy.org//DTD Mapper 3.0//EN" "http://mybatis_deploy.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.maint.mapper.DeployMapper">
-    <resultMap id="BaseResultMap" type="com.oying.modules.maint.domain.Deploy">
-        <id column="d_deploy_id" property="id"/>
-        <result column="d_app_id" property="appId"/>
-        <result column="d_create_by" property="createBy"/>
-        <result column="d_update_by" property="updateBy"/>
-        <result column="d_create_time" property="createTime"/>
-        <result column="d_update_time" property="updateTime"/>
-        <association property="app" javaType="com.oying.modules.maint.domain.App">
-            <id column="a_app_id" property="id"/>
-            <result column="a_name" property="name"/>
-            <result column="a_port" property="port"/>
-            <result column="a_upload_path" property="uploadPath"/>
-            <result column="a_deploy_path" property="deployPath"/>
-            <result column="a_backup_path" property="backupPath"/>
-            <result column="a_start_script" property="startScript"/>
-            <result column="a_deploy_script" property="deployScript"/>
-        </association>
-        <collection property="deploys" ofType="com.oying.modules.maint.domain.Server">
-            <id column="s_server_id" property="id"/>
-            <result column="s_name" property="name"/>
-            <result column="s_ip" property="ip"/>
-            <result column="s_port" property="port"/>
-            <result column="s_account" property="account"/>
-            <result column="s_password" property="password"/>
-        </collection>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        deploy.deploy_id as d_deploy_id, deploy.app_id as d_app_id,deploy.create_by as d_create_by,deploy.update_by as d_update_by,deploy.create_time as d_create_time,deploy.update_time as d_update_time,
-        app.app_id as a_app_id,app.name as a_name,app.port as a_port,app.upload_path as a_upload_path,app.deploy_path as a_deploy_path,app.backup_path as a_backup_path,app.start_script as a_start_script,app.deploy_script as a_deploy_script
-    </sql>
-
-    <sql id="Server_Column_List">
-        server.server_id as s_server_id,server.name as s_name,server.ip as s_ip,server.port as s_port,server.account as s_account,server.password as s_password
-    </sql>
-
-    <sql id="Where_sql">
-        <where>
-            <if test="criteria.appName != null and criteria.appName != ''">
-                and app.name like concat('%',#{criteria.appName},'%')
-            </if>
-            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
-                and deploy.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
-            </if>
-        </where>
-    </sql>
-
-    <select id="findAll" resultMap="BaseResultMap">
-        select t.*,
-        <include refid="Server_Column_List"/>
-        from (
-        select <include refid="Base_Column_List"/>
-        from mnt_deploy deploy
-        left join mnt_app app on deploy.app_id = app.app_id
-        <include refid="Where_sql"/>
-        order by deploy.deploy_id desc
-        <if test="criteria.offset != null">
-            limit #{criteria.offset}, #{criteria.size}
-        </if>
-        ) t
-        left join mnt_deploy_server mds on t.d_deploy_id = mds.deploy_id
-        left join mnt_server server on server.server_id = mds.server_id
-        order by t.d_deploy_id desc
-    </select>
-
-    <select id="countAll" resultType="java.lang.Long">
-        select count(*)
-        from mnt_deploy deploy
-        left join mnt_app app on deploy.app_id = app.app_id
-        <include refid="Where_sql"/>
-    </select>
-
-    <select id="getIdByAppIds" resultType="java.lang.Long">
-        select deploy.deploy_id
-        from mnt_deploy deploy
-        where deploy.app_id in
-        <foreach collection="appIds" item="appId" open="(" separator="," close=")">
-            #{appId}
-        </foreach>
-    </select>
-
-    <select id="getDeployById" resultMap="BaseResultMap">
-        select
-        <include refid="Base_Column_List"/>,
-        <include refid="Server_Column_List"/>
-        from mnt_deploy deploy
-        left join mnt_app app on deploy.app_id = app.app_id
-        left join mnt_deploy_server mds on deploy.deploy_id = mds.deploy_id
-        left join mnt_server server on server.server_id = mds.server_id
-        where deploy.deploy_id = #{deployId}
-    </select>
-</mapper>
diff --git a/oying-system/src/main/resources/mapper/maint/DeployServerMapper.xml b/oying-system/src/main/resources/mapper/maint/DeployServerMapper.xml
deleted file mode 100644
index bfd5e22..0000000
--- a/oying-system/src/main/resources/mapper/maint/DeployServerMapper.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.maint.mapper.DeployServerMapper">
-
-    <insert id="insertData">
-        insert into mnt_deploy_server (deploy_id, server_id)
-        values
-        <foreach collection="servers" item="item" open="(" separator="),(" close=")">
-            #{deployId}, #{item.id}
-        </foreach>
-    </insert>
-
-    <delete id="deleteByDeployId">
-        delete from mnt_deploy_server
-        where deploy_id = #{deployId}
-    </delete>
-
-    <delete id="deleteByDeployIds">
-        delete from mnt_deploy_server
-        where deploy_id in
-        <foreach collection="deployIds" item="id" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
-
-    <delete id="deleteByServerIds">
-        delete from mnt_deploy_server
-        where server_id in
-        <foreach collection="serverIds" item="id" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
-</mapper>
diff --git a/oying-system/src/main/resources/mapper/maint/ServerMapper.xml b/oying-system/src/main/resources/mapper/maint/ServerMapper.xml
deleted file mode 100644
index b7ceaa6..0000000
--- a/oying-system/src/main/resources/mapper/maint/ServerMapper.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatiorg//DTD Mapper 3.0//EN" "http://mybatiorg/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.maint.mapper.ServerMapper">
-    <resultMap id="BaseResultMap" type="com.oying.modules.maint.domain.Server">
-        <id column="server_id" property="id"/>
-        <result column="name" property="name"/>
-        <result column="ip" property="ip"/>
-        <result column="port" property="port"/>
-        <result column="account" property="account"/>
-        <result column="password" property="password"/>
-        <result column="create_by" property="createBy"/>
-        <result column="update_by" property="updateBy"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_time" property="updateTime"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        server_id, name, ip, port, account, password, create_by, update_by, create_time, update_time
-    </sql>
-
-    <select id="findByIp" resultMap="BaseResultMap">
-        SELECT
-        <include refid="Base_Column_List"/>
-        FROM mnt_server
-        <where>
-            ip = #{ip}
-        </where>
-    </select>
-
-    <select id="findAll" resultMap="BaseResultMap">
-        SELECT
-        <include refid="Base_Column_List"/>
-        FROM mnt_server
-        <where>
-            <if test="criteria.blurry != null and criteria.blurry != ''">
-                AND (
-                    name LIKE CONCAT('%',#{criteria.blurry},'%')
-                    or ip LIKE CONCAT('%',#{criteria.blurry},'%')
-                )
-            </if>
-            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
-                AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
-            </if>
-        </where>
-        order by server_id desc
-    </select>
-</mapper>

--
Gitblit v1.9.3