Project reconfiguration

This commit is contained in:
JiaJu Zhuang
2023-06-22 13:33:42 +08:00
parent b7a333f2cb
commit 099a3e17eb
456 changed files with 5 additions and 5 deletions

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>ai.chat2db</groupId>
<artifactId>chat2db-server-domain</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>chat2db-server-domain-api</artifactId>
<dependencies>
<dependency>
<groupId>ai.chat2db</groupId>
<artifactId>chat2db-server-tools-base</artifactId>
</dependency>
<dependency>
<groupId>ai.chat2db</groupId>
<artifactId>chat2db-server-domain-support</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,58 @@
package ai.chat2db.server.domain.api.enums;
import java.util.HashMap;
import java.util.Map;
import ai.chat2db.server.domain.support.dialect.MetaSchema;
import ai.chat2db.server.tools.base.enums.BaseEnum;
import lombok.Getter;
/**
* AI SQL选择的AI模型类型
*
* @author moji
*/
@Getter
public enum AiSqlSourceEnum implements BaseEnum<String> {
/**
* 使用OPENAI接口
*/
OPENAI( "使用OPENAI接口"),
/**
* 自定义RESTAI接口
*/
RESTAI("自定义RESTAI接口"),
;
final String description;
private static Map<AiSqlSourceEnum, MetaSchema> META_SCHEMA_MAP = new HashMap<>();
AiSqlSourceEnum(String description) {
this.description = description;
}
/**
* 通过名称获取枚举
*
* @param name
* @return
*/
public static AiSqlSourceEnum getByName(String name) {
for (AiSqlSourceEnum dbTypeEnum : AiSqlSourceEnum.values()) {
if (dbTypeEnum.name().equals(name)) {
return dbTypeEnum;
}
}
return null;
}
@Override
public String getCode() {
return this.name();
}
}

View File

@ -0,0 +1,36 @@
package ai.chat2db.server.domain.api.enums;
import ai.chat2db.server.tools.base.enums.BaseEnum;
import lombok.Getter;
/**
* 状态
*
* @author 是仪
*/
@Getter
public enum OperationStatusEnum implements BaseEnum<String> {
/**
* 草稿
*/
DRAFT("草稿"),
/**
* 已发布
*/
RELEASE("已发布"),
;
final String description;
OperationStatusEnum(String description) {
this.description = description;
}
@Override
public String getCode() {
return this.name();
}
}

View File

@ -0,0 +1,79 @@
package ai.chat2db.server.domain.api.model;
import java.time.LocalDateTime;
import lombok.Data;
/**
* @author moji
* @version Chart.java, v 0.1 2023年06月09日 15:37 moji Exp $
* @date 2023/06/09
*/
@Data
public class Chart {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 图表名称
*/
private String name;
/**
* 图表描述
*/
private String description;
/**
* 图表信息
*/
private String schema;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* 数据源名称
*/
private String dataSourceName;
/**
* 数据库类型
*/
private String type;
/**
* db名称
*/
private String databaseName;
/**
* ddl内容
*/
private String ddl;
/**
* 是否被删除,y表示删除,n表示未删除
*/
private String deleted;
/**
* 用户id
*/
private Long userId;
}

View File

@ -0,0 +1,50 @@
package ai.chat2db.server.domain.api.model;
import ai.chat2db.server.domain.api.enums.AiSqlSourceEnum;
import lombok.Data;
/**
* @author moji
* @version ChatGptConfig.java, v 0.1 2023年05月09日 13:47 moji Exp $
* @date 2023/05/09
*/
@Data
public class ChatGptConfig {
/**
* OpenAi APIKEY
*/
private String apiKey;
/**
* OpenAi APIHOST
*/
private String apiHost;
/**
* http代理Host
*/
private String httpProxyHost;
/**
* http代理Port
*/
private String httpProxyPort;
/**
* AI类型
* @see AiSqlSourceEnum
*/
private String aiSqlSource;
/**
* 自定义AI接口
*/
private String restAiUrl;
/**
* Rest接口是否流式输出
* 非必填默认值为TRUE
*/
private Boolean restAiStream = Boolean.TRUE;
}

View File

@ -0,0 +1,51 @@
/**
* alibaba.com Inc.
* Copyright (c) 2004-2023 All Rights Reserved.
*/
package ai.chat2db.server.domain.api.model;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* @author jipengfei
* @version : Config.java
*/
@Data
public class Config implements Serializable {
@Serial
private static final long serialVersionUID = 8377899386569086415L;
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 配置项code
*/
private String code;
/**
* 配置项内容
*/
private String content;
/**
* 配置摘要
*/
private String summary;
}

View File

@ -0,0 +1,61 @@
package ai.chat2db.server.domain.api.model;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;
/**
* @author moji
* @version Dashboard.java, v 0.1 2023年06月09日 15:32 moji Exp $
* @date 2023/06/09
*/
@Data
public class Dashboard {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 报表名称
*/
private String name;
/**
* 报表描述
*/
private String description;
/**
* 报表布局信息
*/
private String schema;
/**
* 是否被删除,y表示删除,n表示未删除
*/
private String deleted;
/**
* 用户id
*/
private Long userId;
/**
* 图表ID列表
*/
private List<Long> chartIds;
}

View File

@ -0,0 +1,106 @@
package ai.chat2db.server.domain.api.model;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import ai.chat2db.server.domain.support.model.KeyValue;
import ai.chat2db.server.domain.support.model.SSHInfo;
import ai.chat2db.server.domain.support.model.SSLInfo;
import lombok.Data;
/**
* @author moji
* @version DataSourceDTO.java, v 0.1 2022年09月23日 15:39 moji Exp $
* @date 2022/09/23
*/
@Data
public class DataSource {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 别名
*/
private String alias;
/**
* 连接地址
*/
private String url;
/**
* 用户名
*/
private String userName;
/**
* 密码
*/
private String password;
/**
* 数据库类型
*/
private String type;
/**
* 环境类型
*/
private String envType;
/**
* host
*/
private String host;
/**
* port
*/
private String port;
/**
* ssh
*/
private SSHInfo ssh;
/**
* ssh
*/
private SSLInfo ssl;
/**
* sid
*/
private String sid;
/**
* driver
*/
private String driver;
/**
* jdbc版本
*/
private String jdbc;
/**
* 扩展信息
*/
private List<KeyValue> extendInfo;
}

View File

@ -0,0 +1,77 @@
package ai.chat2db.server.domain.api.model;
import java.time.LocalDateTime;
import lombok.Data;
/**
* <p>
* 我的保存表
* </p>
*
* @author ali-dbhub
* @since 2022-09-18
*/
@Data
public class Operation {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* 数据源名称
*/
private String dataSourceName;
/**
* db名称
*/
private String databaseName;
/**
* 表所在空间
*/
private String schemaName;
/**
* 保存名称
*/
private String name;
/**
* 数据库类型
*/
private String type;
/**
* ddl语句状态:DRAFT/RELEASE
*/
private String status;
/**
* ddl内容
*/
private String ddl;
/**
* 是否在tab中被打开,y表示打开,n表示未打开
*/
private String tabOpened;
}

View File

@ -0,0 +1,57 @@
package ai.chat2db.server.domain.api.model;
import java.time.LocalDateTime;
import lombok.Data;
/**
* <p>
* 我的执行记录
* </p>
*
* @author ali-dbhub
* @since 2022-09-18
*/
@Data
public class OperationLog {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* 数据源
*/
private String dataSourceName;
/**
* db名称
*/
private String databaseName;
/**
* 数据库类型
*/
private String type;
/**
* ddl内容
*/
private String ddl;
}

View File

@ -0,0 +1,43 @@
package ai.chat2db.server.domain.api.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 用户信息
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class User {
/**
* 主键
*/
private Long id;
/**
* 用户名
*/
private String userName;
/**
* 密码
*/
private String password;
/**
* 昵称
*/
private String nickName;
/**
* 邮箱
*/
private String email;
}

View File

@ -0,0 +1,64 @@
package ai.chat2db.server.domain.api.param;
import java.time.LocalDateTime;
import lombok.Data;
/**
* @author moji
* @version ChartCreateParam.java, v 0.1 2023年06月09日 15:38 moji Exp $
* @date 2023/06/09
*/
@Data
public class ChartCreateParam {
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 图表名称
*/
private String name;
/**
* 图表信息
*/
private String schema;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* 数据库类型
*/
private String type;
/**
* db名称
*/
private String databaseName;
/**
* ddl内容
*/
private String ddl;
/**
* 是否被删除,y表示删除,n表示未删除
*/
private String deleted;
/**
* 用户id
*/
private Long userId;
}

View File

@ -0,0 +1,25 @@
package ai.chat2db.server.domain.api.param;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.Data;
/**
* @author moji
* @version UserSavedDdlPageQueryParam.java, v 0.1 2022年09月25日 14:05 moji Exp $
* @date 2022/09/25
*/
@Data
public class ChartPageQueryParam extends PageQueryParam {
/**
* 报表ID
*/
private Long dashboardId;
/**
* 搜索关键词
*/
private String searchKey;
}

View File

@ -0,0 +1,64 @@
package ai.chat2db.server.domain.api.param;
import java.time.LocalDateTime;
import lombok.Data;
/**
* @author moji
* @version ChartUpdateParam.java, v 0.1 2023年06月09日 15:39 moji Exp $
* @date 2023/06/09
*/
@Data
public class ChartUpdateParam {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 图表名称
*/
private String name;
/**
* 图表信息
*/
private String schema;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* 数据库类型
*/
private String type;
/**
* db名称
*/
private String databaseName;
/**
* ddl内容
*/
private String ddl;
/**
* 用户id
*/
private Long userId;
}

View File

@ -0,0 +1,32 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 控制台关闭参数
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ConsoleCloseParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 控制台的id ,确保全局唯一
*/
@NotNull
private Long consoleId;
}

View File

@ -0,0 +1,27 @@
package ai.chat2db.server.domain.api.param;
import lombok.Data;
/**
* @author moji
* @version ConsoleConnectParam.java, v 0.1 2022年10月30日 15:53 moji Exp $
* @date 2022/10/30
*/
@Data
public class ConsoleConnectParam {
/**
* 数据源id
*/
private Long dataSourceId;
/**
* 数据库db名称
*/
private String databaseName;
/**
* 控制台id
*/
private Long consoleId;
}

View File

@ -0,0 +1,39 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 控制台创建参数
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ConsoleCreateParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 控制台的id ,确保全局唯一
* 确保不要重复,重复的情况下会弃用以前的连接,并重新创建
*/
@NotNull
private Long consoleId;
/**
* 对应的连接数据库名称
* 支持多个database的数据库会调用use xx;来切换来数据库
*/
@NotNull
private String databaseName;
}

View File

@ -0,0 +1,55 @@
package ai.chat2db.server.domain.api.param;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;
/**
* @author moji
* @version DashboardSaveParam.java, v 0.1 2023年06月09日 15:29 moji Exp $
* @date 2023/06/09
*/
@Data
public class DashboardCreateParam {
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 报表名称
*/
private String name;
/**
* 描述
*/
private String description;
/**
* 报表布局信息
*/
private String schema;
/**
* 是否被删除,y表示删除,n表示未删除
*/
private String deleted;
/**
* 用户id
*/
private Long userId;
/**
* 图表ID列表
*/
private List<Long> chartIds;
}

View File

@ -0,0 +1,20 @@
package ai.chat2db.server.domain.api.param;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.Data;
/**
* @author moji
* @version UserSavedDdlPageQueryParam.java, v 0.1 2022年09月25日 14:05 moji Exp $
* @date 2022/09/25
*/
@Data
public class DashboardPageQueryParam extends PageQueryParam {
/**
* 搜索关键词
*/
private String searchKey;
}

View File

@ -0,0 +1,60 @@
package ai.chat2db.server.domain.api.param;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;
/**
* @author moji
* @version DashboardSaveParam.java, v 0.1 2023年06月09日 15:29 moji Exp $
* @date 2023/06/09
*/
@Data
public class DashboardUpdateParam {
/**
* 主键
*/
private Long id;
/**
* 创建时间
*/
private LocalDateTime gmtCreate;
/**
* 修改时间
*/
private LocalDateTime gmtModified;
/**
* 报表名称
*/
private String name;
/**
* 描述
*/
private String description;
/**
* 报表布局信息
*/
private String schema;
/**
* 是否被删除,y表示删除,n表示未删除
*/
private String deleted;
/**
* 用户id
*/
private Long userId;
/**
* 图表ID列表
*/
private List<Long> chartIds;
}

View File

@ -0,0 +1,26 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 数据源关闭
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceCloseParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
}

View File

@ -0,0 +1,92 @@
package ai.chat2db.server.domain.api.param;
import java.util.List;
import java.util.Map;
import ai.chat2db.server.domain.support.model.KeyValue;
import ai.chat2db.server.domain.support.model.SSHInfo;
import ai.chat2db.server.domain.support.model.SSLInfo;
import lombok.Data;
/**
* @author moji
* @version DataSourceCreateParam.java, v 0.1 2022年09月23日 15:23 moji Exp $
* @date 2022/09/23
*/
@Data
public class DataSourceCreateParam {
/**
* 别名
*/
private String alias;
/**
* 连接地址
*/
private String url;
/**
* 用户名
*/
private String userName;
/**
* 密码
*/
private String password;
/**
* 数据库类型
*/
private String type;
/**
* 环境类型
*/
private String envType;
/**
* host
*/
private String host;
/**
* port
*/
private String port;
/**
* ssh
*/
private SSHInfo ssh;
/**
* ssh
*/
private SSLInfo ssl;
/**
* sid
*/
private String sid;
/**
* driver
*/
private String driver;
/**
* jdbc版本
*/
private String jdbc;
/**
* 扩展信息
*/
private List<KeyValue> extendInfo;
}

View File

@ -0,0 +1,19 @@
package ai.chat2db.server.domain.api.param;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.Data;
/**
* @author moji
* @version DataSourcePageQueryParam.java, v 0.1 2022年09月23日 15:27 moji Exp $
* @date 2022/09/23
*/
@Data
public class DataSourcePageQueryParam extends PageQueryParam {
/**
* 搜索关键词
*/
private String searchKey;
}

View File

@ -0,0 +1,93 @@
package ai.chat2db.server.domain.api.param;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.model.KeyValue;
import ai.chat2db.server.domain.support.model.SSHInfo;
import ai.chat2db.server.domain.support.model.SSLInfo;
import lombok.Data;
/**
* @author moji
* @version ConnectionCreateRequest.java, v 0.1 2022年09月16日 14:23 moji Exp $
* @date 2022/09/16
*/
@Data
public class DataSourcePreConnectParam {
/**
* 连接别名
*/
private String alias;
/**
* 连接地址
*/
@NotNull
private String url;
/**
* 连接用户
*/
private String user;
/**
* 密码
*/
@NotNull
private String password;
/**
* 连接类型
* @see DbTypeEnum
*/
@NotNull
private String type;
/**
* host
*/
private String host;
/**
* port
*/
private String port;
/**
* ssh
*/
private SSHInfo ssh;
/**
* ssh
*/
private SSLInfo ssl;
/**
* sid
*/
private String sid;
/**
* driver
*/
private String driver;
/**
* jdbc版本
*/
private String jdbc;
/**
* 扩展信息
*/
private List<KeyValue> extendInfo;
}

View File

@ -0,0 +1,13 @@
package ai.chat2db.server.domain.api.param;
import lombok.Data;
/**
* @author moji
* @version DataSourceSelector.java, v 0.1 2022年09月23日 15:28 moji Exp $
* @date 2022/09/23
*/
@Data
public class DataSourceSelector {
}

View File

@ -0,0 +1,93 @@
package ai.chat2db.server.domain.api.param;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.model.KeyValue;
import ai.chat2db.server.domain.support.model.SSHInfo;
import ai.chat2db.server.domain.support.model.SSLInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 数据源测试参数
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceTestParam {
/**
* 数据库类型
*
* @see DbTypeEnum
*/
@NotNull
private String dbType;
/**
* 请求连接
*/
@NotNull
private String url;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* host
*/
private String host;
/**
* port
*/
private String port;
/**
* ssh
*/
private SSHInfo ssh;
/**
* ssh
*/
private SSLInfo ssl;
/**
* sid
*/
private String sid;
/**
* driver
*/
private String driver;
/**
* jdbc版本
*/
private String jdbc;
/**
* 扩展信息
*/
private List<KeyValue> extendInfo;
}

View File

@ -0,0 +1,101 @@
package ai.chat2db.server.domain.api.param;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.support.model.KeyValue;
import ai.chat2db.server.domain.support.model.SSHInfo;
import ai.chat2db.server.domain.support.model.SSLInfo;
import lombok.Data;
/**
* @author moji
* @version DataSourceCreateParam.java, v 0.1 2022年09月23日 15:23 moji Exp $
* @date 2022/09/23
*/
@Data
public class DataSourceUpdateParam {
/**
* 主键
*/
@NotNull
private Long id;
/**
* 别名
*/
private String alias;
/**
* 连接地址
*/
private String url;
/**
* 用户名
*/
private String userName;
/**
* 密码
*/
private String password;
/**
* 数据库类型
*/
private String type;
/**
* 环境类型
*/
private String envType;
/**
* host
*/
private String host;
/**
* port
*/
private String port;
/**
* ssh
*/
private SSHInfo ssh;
/**
* ssh
*/
private SSLInfo ssl;
/**
* sid
*/
private String sid;
/**
* driver
*/
private String driver;
/**
* jdbc版本
*/
private String jdbc;
/**
* 扩展信息
*/
private List<KeyValue> extendInfo;
}

View File

@ -0,0 +1,25 @@
/**
* alibaba.com Inc.
* Copyright (c) 2004-2023 All Rights Reserved.
*/
package ai.chat2db.server.domain.api.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jipengfei
* @version : DatabaseOperationParam.java
*/
@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class DatabaseOperationParam {
private String databaseName;
private String newDatabaseName;
}

View File

@ -0,0 +1,25 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 展示数据库信息
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DatabaseQueryAllParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
}

View File

@ -0,0 +1,38 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* 统计数量
*
* @author 是仪
*/
@Data
public class DlCountParam {
/**
* sql语句
*/
@NotNull
private String sql;
/**
* 控制台id
*/
@NotNull
private Long consoleId;
/**
* 数据源id
*/
@NotNull
private Long dataSourceId;
/**
* DB名称
*/
@NotNull
private String databaseName;
}

View File

@ -0,0 +1,56 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* @author moji
* @version DataSourceExecuteParam.java, v 0.1 2022年10月14日 13:53 moji Exp $
* @date 2022/10/14
*/
@Data
public class DlExecuteParam {
/**
* sql语句
*/
@NotNull
private String sql;
/**
* 控制台id
*/
@NotNull
private Long consoleId;
/**
* 数据源id
*/
@NotNull
private Long dataSourceId;
/**
* DB名称
*/
@NotNull
private String databaseName;
/**
* 分页编码
* 只有select语句才有
*/
private Integer pageNo;
/**
* 分页大小
* 只有select语句才有
*/
private Integer pageSize;
/**
* 返回全部数据
* 只有select语句才有
*/
private Boolean pageSizeAll;
}

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 删除表结构
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DropParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 对应的连接数据库名称
*/
@NotNull
private String databaseName;
/**
* 表名
*/
private String tableName;
/**
*
*/
private String tableSchema;
}

View File

@ -0,0 +1,37 @@
package ai.chat2db.server.domain.api.param;
import lombok.Data;
/**
* @author moji
* @version UserExecutedDdlCreateParam.java, v 0.1 2022年09月25日 11:08 moji Exp $
* @date 2022/09/25
*/
@Data
public class OperationLogCreateParam {
/**
* 主键
*/
private Long id;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* db名称
*/
private String databaseName;
/**
* 数据库类型
*/
private String type;
/**
* ddl内容
*/
private String ddl;
}

View File

@ -0,0 +1,19 @@
package ai.chat2db.server.domain.api.param;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.Data;
/**
* @author moji
* @version UserExecutedDdlPageQueryParam.java, v 0.1 2022年09月25日 14:05 moji Exp $
* @date 2022/09/25
*/
@Data
public class OperationLogPageQueryParam extends PageQueryParam {
/**
* 搜索关键词
*/
private String searchKey;
}

View File

@ -0,0 +1,39 @@
package ai.chat2db.server.domain.api.param;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.Data;
/**
* @author moji
* @version UserSavedDdlPageQueryParam.java, v 0.1 2022年09月25日 14:05 moji Exp $
* @date 2022/09/25
*/
@Data
public class OperationPageQueryParam extends PageQueryParam {
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* db名称
*/
private String databaseName;
/**
* ddl语句状态:DRAFT/RELEASE
*/
private String status;
/**
* 搜索关键词
*/
private String searchKey;
/**
* 是否在tab中被打开,y表示打开,n表示未打开
*/
private String tabOpened;
}

View File

@ -0,0 +1,52 @@
package ai.chat2db.server.domain.api.param;
import lombok.Data;
/**
* @author moji
* @version UserSavedDdlCreateParam.java, v 0.1 2022年09月25日 15:40 moji Exp $
* @date 2022/09/25
*/
@Data
public class OperationSavedParam {
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* db名称
*/
private String databaseName;
/**
* 表所在空间
*/
private String schemaName;
/**
* 保存名称
*/
private String name;
/**
* 数据库类型
*/
private String type;
/**
* ddl语句状态:DRAFT/RELEASE
*/
private String status;
/**
* ddl内容
*/
private String ddl;
/**
* 是否在tab中被打开,y表示打开,n表示未打开
*/
private String tabOpened;
}

View File

@ -0,0 +1,60 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
* @author moji
* @version UserSavedDdlCreateParam.java, v 0.1 2022年09月25日 15:40 moji Exp $
* @date 2022/09/25
*/
@Data
public class OperationUpdateParam {
/**
* 主键
*/
@NotNull
private Long id;
/**
* 数据源连接ID
*/
private Long dataSourceId;
/**
* db名称
*/
private String databaseName;
/**
* 表所在空间
*/
private String schemaName;
/**
* 保存名称
*/
private String name;
/**
* 数据库类型
*/
private String type;
/**
* ddl语句状态:DRAFT/RELEASE
*/
private String status;
/**
* ddl内容
*/
private String ddl;
/**
* 是否在tab中被打开,y表示打开,n表示未打开
*/
private String tabOpened;
}

View File

@ -0,0 +1,24 @@
/**
* alibaba.com Inc.
* Copyright (c) 2004-2023 All Rights Reserved.
*/
package ai.chat2db.server.domain.api.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jipengfei
* @version : SchemaOperationParam.java
*/
@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class SchemaOperationParam {
String databaseName;
String schemaName;
String newSchemaName;
}

View File

@ -0,0 +1,29 @@
/**
* alibaba.com Inc.
* Copyright (c) 2004-2023 All Rights Reserved.
*/
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author jipengfei
* @version : SchemaQueryParam.java
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class SchemaQueryParam {
@NotNull
private Long dataSourceId;
@NotNull
private String dataBaseName;
}

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 查询建表语句
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ShowCreateTableParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 对应的连接数据库名称
*/
@NotNull
private String databaseName;
/**
* 表名
*/
private String tableName;
/**
* 表所属schema
*/
private String schemaName;
}

View File

@ -0,0 +1,31 @@
package ai.chat2db.server.domain.api.param;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* Sql解析参数
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class SqlAnalyseParam {
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 需要解析的sql 可能是一个复杂的sql
*/
private String sql;
}

View File

@ -0,0 +1,42 @@
/**
* alibaba.com Inc.
* Copyright (c) 2004-2023 All Rights Reserved.
*/
package ai.chat2db.server.domain.api.param;
import java.io.Serial;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author jipengfei
* @version : SystemConfigParam.java
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class SystemConfigParam implements Serializable {
@Serial
private static final long serialVersionUID = 7969235263543844658L;
/**
* 配置项code
*/
private String code;
/**
* 配置项内容
*/
private String content;
/**
* 配置摘要
*/
private String summary;
}

View File

@ -0,0 +1,47 @@
package ai.chat2db.server.domain.api.param;
import java.io.Serial;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 分页查询表信息
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class TablePageQueryParam extends PageQueryParam {
private static final long serialVersionUID = 8054519332890887747L;
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 对应的连接数据库名称
*/
@NotNull
private String databaseName;
/**
* 表名
*/
private String tableName;
/**
*
*/
private String schemaName;
}

View File

@ -0,0 +1,47 @@
package ai.chat2db.server.domain.api.param;
import java.io.Serial;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.tools.base.wrapper.param.QueryParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 查询表信息
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class TableQueryParam extends QueryParam {
@Serial
private static final long serialVersionUID = -8918610899872508804L;
/**
* 对应数据库存储的来源id
*/
@NotNull
private Long dataSourceId;
/**
* 对应的连接数据库名称
*/
@NotNull
private String databaseName;
/**
* 表名
*/
private String tableName;
/**
* 空间名
*/
private String schemaName;
}

View File

@ -0,0 +1,28 @@
package ai.chat2db.server.domain.api.param;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 表结构选择器
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class TableSelector {
/**
* 列列表
*/
private Boolean columnList;
/**
* 索引列表
*/
private Boolean indexList;
}

View File

@ -0,0 +1,28 @@
package ai.chat2db.server.domain.api.param;
import java.io.Serial;
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* 用户查询参数
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class UserQueryParam extends PageQueryParam {
@Serial
private static final long serialVersionUID = 7341467383637825621L;
/**
* 用户名
*/
private String keyWord;
}

View File

@ -0,0 +1,61 @@
package ai.chat2db.server.domain.api.service;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.api.model.Chart;
import ai.chat2db.server.domain.api.param.ChartCreateParam;
import ai.chat2db.server.domain.api.param.ChartUpdateParam;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
/**
* @author moji
* @version ChartService.java, v 0.1 2023年06月09日 15:28 moji Exp $
* @date 2023/06/09
*/
public interface ChartService {
/**
* 保存报表
*
* @param param
* @return
*/
DataResult<Long> create(ChartCreateParam param);
/**
* 更新报表
*
* @param param
* @return
*/
ActionResult update(ChartUpdateParam param);
/**
* 根据id查询
*
* @param id
* @return
*/
DataResult<Chart> find(@NotNull Long id);
/**
* 通过ID查询图表列表
*
* @param ids
* @return
*/
ListResult<Chart> queryByIds(@NotEmpty List<Long> ids);
/**
* 删除
*
* @param id
* @return
*/
ActionResult delete(@NotNull Long id);
}

View File

@ -0,0 +1,58 @@
/**
* alibaba.com Inc.
* Copyright (c) 2004-2023 All Rights Reserved.
*/
package ai.chat2db.server.domain.api.service;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.api.model.Config;
import ai.chat2db.server.domain.api.param.SystemConfigParam;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
/**
* @author jipengfei
* @version : SystemConfigService.java
*/
public interface ConfigService {
/**
* 创建配置
*
* @param param
* @return
*/
ActionResult create(SystemConfigParam param);
/**
* 修改配置
*
* @param param
* @return
*/
ActionResult update(SystemConfigParam param);
/**
* 插入或者更新
* @param param
* @return
*/
ActionResult createOrUpdate(SystemConfigParam param);
/**
* 根据code查询
*
* @param code
* @return
*/
DataResult<Config> find(@NotNull String code);
/**
* 删除
*
* @param code
* @return
*/
ActionResult delete(@NotNull String code);
}

View File

@ -0,0 +1,32 @@
package ai.chat2db.server.domain.api.service;
import ai.chat2db.server.domain.api.param.ConsoleConnectParam;
import ai.chat2db.server.domain.api.param.ConsoleCloseParam;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
/**
* 数据源管理服务
*
* @author moji
* @version DataSourceCoreService.java, v 0.1 2022年09月23日 15:22 moji Exp $
* @date 2022/09/23
*/
public interface ConsoleService {
/**
* 创建console链接
*
* @param param
* @return
*/
ActionResult createConsole(ConsoleConnectParam param);
/**
* 关闭连接
*
* @param param
* @return
*/
ActionResult closeConsole(ConsoleCloseParam param);
}

View File

@ -0,0 +1,59 @@
package ai.chat2db.server.domain.api.service;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.api.model.Dashboard;
import ai.chat2db.server.domain.api.param.DashboardPageQueryParam;
import ai.chat2db.server.domain.api.param.DashboardCreateParam;
import ai.chat2db.server.domain.api.param.DashboardUpdateParam;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
/**
* @author moji
* @version DashboardService.java, v 0.1 2023年06月09日 15:28 moji Exp $
* @date 2023/06/09
*/
public interface DashboardService {
/**
* 保存报表
*
* @param param
* @return
*/
DataResult<Long> create(DashboardCreateParam param);
/**
* 更新报表
*
* @param param
* @return
*/
ActionResult update(DashboardUpdateParam param);
/**
* 根据id查询
*
* @param id
* @return
*/
DataResult<Dashboard> find(@NotNull Long id);
/**
* 删除
*
* @param id
* @return
*/
ActionResult delete(@NotNull Long id);
/**
* 查询报表列表
*
* @param param
* @return
*/
PageResult<Dashboard> queryPage(DashboardPageQueryParam param);
}

View File

@ -0,0 +1,111 @@
package ai.chat2db.server.domain.api.service;
import java.util.List;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.api.model.DataSource;
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.DataSourcePageQueryParam;
import ai.chat2db.server.domain.api.param.DataSourcePreConnectParam;
import ai.chat2db.server.domain.api.param.DataSourceSelector;
import ai.chat2db.server.domain.api.param.DataSourceUpdateParam;
import ai.chat2db.server.domain.support.model.Database;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
import com.jcraft.jsch.JSchException;
/**
* 数据源管理服务
*
* @author moji
* @version DataSourceCoreService.java, v 0.1 2022年09月23日 15:22 moji Exp $
* @date 2022/09/23
*/
public interface DataSourceService {
/**
* 创建数据源连接
*
* @param param
* @return
*/
DataResult<Long> create(DataSourceCreateParam param);
/**
* 更新数据源连接
*
* @param param
* @return
*/
ActionResult update(DataSourceUpdateParam param);
/**
* 删除数据源连接
*
* @param id
* @return
*/
ActionResult delete(@NotNull Long id);
/**
* 根据id查询数据源连接详情
*
* @param id
* @return
*/
DataResult<DataSource> queryById(@NotNull Long id);
/**
* 克隆连接
*
* @param id
* @return
*/
DataResult<Long> copyById(@NotNull Long id);
/**
* 分页查询数据源列表
*
* @param param
* @param selector
* @return
*/
PageResult<DataSource> queryPage(DataSourcePageQueryParam param, DataSourceSelector selector);
/**
* 通过ID列表查询数据源
*
* @param ids
* @return
*/
ListResult<DataSource> queryByIds(List<Long>ids);
/**
* 数据源连接测试
*
* @param param
* @return
*/
ActionResult preConnect(DataSourcePreConnectParam param);
/**
* 连接数据源
*
* @param id
* @return
*/
ListResult<Database> connect(Long id);
/**
* 关闭数据源连接
*
* @param id
* @return
*/
ActionResult close(Long id);
}

View File

@ -0,0 +1,84 @@
package ai.chat2db.server.domain.api.service;
import ai.chat2db.server.domain.api.param.DatabaseOperationParam;
import ai.chat2db.server.domain.api.param.DatabaseQueryAllParam;
import ai.chat2db.server.domain.api.param.SchemaOperationParam;
import ai.chat2db.server.domain.api.param.SchemaQueryParam;
import ai.chat2db.server.domain.support.model.Database;
import ai.chat2db.server.domain.support.model.Schema;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
/**
* 数据源管理服务
*
* @author moji
* @version DataSourceCoreService.java, v 0.1 2022年09月23日 15:22 moji Exp $
* @date 2022/09/23
*/
public interface DatabaseService {
/**
* 查询数据源下的所有database
*
* @param param
* @return
*/
ListResult<Database> queryAll(DatabaseQueryAllParam param);
/**
* 查询某个database下的schema
* @param param
* @return
*/
ListResult<Schema> querySchema(SchemaQueryParam param);
/**
* 删除数据库
*
* @param param
* @return
*/
public ActionResult deleteDatabase(DatabaseOperationParam param);
/**
* 创建database
*
* @param param
* @return
*/
public ActionResult createDatabase(DatabaseOperationParam param);
/**
* 修改database
*
* @return
*/
public ActionResult modifyDatabase( DatabaseOperationParam param) ;
/**
* 删除schema
*
* @param param
* @return
*/
public ActionResult deleteSchema(SchemaOperationParam param) ;
/**
* 创建schema
*
* @param param
* @return
*/
public ActionResult createSchema( SchemaOperationParam param);
/**
* 修改schema
*
* @param request
* @return
*/
public ActionResult modifySchema( SchemaOperationParam request);
}

View File

@ -0,0 +1,34 @@
package ai.chat2db.server.domain.api.service;
import ai.chat2db.server.domain.api.param.DlCountParam;
import ai.chat2db.server.domain.api.param.DlExecuteParam;
import ai.chat2db.server.domain.support.model.ExecuteResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
/**
* 数据源管理服务
*
* @author moji
* @version DataSourceCoreService.java, v 0.1 2022年09月23日 15:22 moji Exp $
* @date 2022/09/23
*/
public interface DlTemplateService {
/**
* 数据源执行dl
*
* @param param
* @return
*/
ListResult<ExecuteResult> execute(DlExecuteParam param);
/**
* 执行统计sql
*
* @param param
* @return
*/
DataResult<Long> count(DlCountParam param);
}

View File

@ -0,0 +1,33 @@
package ai.chat2db.server.domain.api.service;
import ai.chat2db.server.domain.api.param.OperationLogPageQueryParam;
import ai.chat2db.server.domain.api.model.OperationLog;
import ai.chat2db.server.domain.api.param.OperationLogCreateParam;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
/**
* 用户执行ddl
*
* @author moji
* @version UserExecutedDdlCoreService.java, v 0.1 2022年09月23日 17:35 moji Exp $
* @date 2022/09/23
*/
public interface OperationLogService {
/**
* 创建用户执行的ddl记录
*
* @param param
* @return
*/
DataResult<Long> create(OperationLogCreateParam param);
/**
* 查询用户执行的ddl记录
*
* @param param
* @return
*/
PageResult<OperationLog> queryPage(OperationLogPageQueryParam param);
}

View File

@ -0,0 +1,61 @@
package ai.chat2db.server.domain.api.service;
import javax.validation.constraints.NotNull;
import ai.chat2db.server.domain.api.model.Operation;
import ai.chat2db.server.domain.api.param.OperationPageQueryParam;
import ai.chat2db.server.domain.api.param.OperationSavedParam;
import ai.chat2db.server.domain.api.param.OperationUpdateParam;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
/**
* 用户保存ddl
*
* @author moji
* @version UserSavedDdlCoreService.java, v 0.1 2022年09月23日 17:35 moji Exp $
* @date 2022/09/23
*/
public interface OperationService {
/**
* 保存用户的ddl
*
* @param param
* @return
*/
DataResult<Long> create(OperationSavedParam param);
/**
* 更新用户的ddl
*
* @param param
* @return
*/
ActionResult update(OperationUpdateParam param);
/**
* 根据id查询
*
* @param id
* @return
*/
DataResult<Operation> find(@NotNull Long id);
/**
* 删除
*
* @param id
* @return
*/
ActionResult delete(@NotNull Long id);
/**
* 查询用户执行的ddl记录
*
* @param param
* @return
*/
PageResult<Operation> queryPage(OperationPageQueryParam param);
}

View File

@ -0,0 +1,98 @@
package ai.chat2db.server.domain.api.service;
import java.util.List;
import ai.chat2db.server.domain.support.model.Sql;
import ai.chat2db.server.domain.support.model.Table;
import ai.chat2db.server.domain.support.model.TableColumn;
import ai.chat2db.server.domain.support.model.TableIndex;
import ai.chat2db.server.domain.api.param.DropParam;
import ai.chat2db.server.domain.api.param.ShowCreateTableParam;
import ai.chat2db.server.domain.api.param.TablePageQueryParam;
import ai.chat2db.server.domain.api.param.TableQueryParam;
import ai.chat2db.server.domain.api.param.TableSelector;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
/**
* 数据源管理服务
*
* @author moji
* @version DataSourceCoreService.java, v 0.1 2022年09月23日 15:22 moji Exp $
* @date 2022/09/23
*/
public interface TableService {
/**
* 查询表信息
*
* @param param
* @return
*/
DataResult<String> showCreateTable(ShowCreateTableParam param);
/**
* 删除表
*
* @param param
* @return
*/
ActionResult drop(DropParam param);
/**
* 创建表结构的样例
*
* @param dbType
* @return
*/
DataResult<String> createTableExample(String dbType);
/**
* 修改表结构的样例
*
* @param dbType
* @return
*/
DataResult<String> alterTableExample(String dbType);
/**
* 查询表信息
*
* @param param
* @return
*/
DataResult<Table> query(TableQueryParam param, TableSelector selector);
/**
* 构建sql
*
* @param oldTable
* @param newTable
* @return
*/
ListResult<Sql> buildSql(Table oldTable, Table newTable);
/**
* 分页查询表信息
*
* @param param
* @return
*/
PageResult<Table> pageQuery(TablePageQueryParam param, TableSelector selector);
/**
* 查询表包含的字段
* @param param
* @return
*/
List<TableColumn> queryColumns(TableQueryParam param);
/**
* 查询表索引
* @param param
* @return
*/
List<TableIndex> queryIndexes(TableQueryParam param);
}

View File

@ -0,0 +1,58 @@
package ai.chat2db.server.domain.api.service;
import ai.chat2db.server.domain.api.model.User;
import ai.chat2db.server.domain.api.param.UserQueryParam;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
/**
* 用户服务
*
* @author Jiaju Zhuang
*/
public interface UserService {
/**
* 查询用户信息
*
* @param id
* @return
*/
DataResult<User> query(Long id);
/**
* gen
* @param userName
* @return
*/
DataResult<User> query(String userName);
/**
* 查询用户信息
*
* @param param
* @return
*/
PageResult<User> queryPage(UserQueryParam param);
/**
* 更新用户信息
* @param user
* @return
*/
DataResult<Boolean> update(User user);
/**
* 删除用户
* @param id
* @return
*/
DataResult<Boolean> delete(Long id);
/**
* 创建一个用户
* @param user
* @return
*/
DataResult<Long> create(User user);
}