mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-29 10:43:06 +08:00
Add Team Interface
This commit is contained in:
@ -0,0 +1,49 @@
|
||||
<?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-web</artifactId>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>chat2db-server-admin-api</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>chat2db-server-admin-api</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ai.chat2db</groupId>
|
||||
<artifactId>chat2db-server-tools-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ai.chat2db</groupId>
|
||||
<artifactId>chat2db-server-domain-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ai.chat2db</groupId>
|
||||
<artifactId>chat2db-server-domain-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- http -->
|
||||
<dependency>
|
||||
<groupId>com.dtflys.forest</groupId>
|
||||
<artifactId>forest-spring-boot3-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>easyexcel</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,101 @@
|
||||
|
||||
package ai.chat2db.server.admin.api.controller.datasource;
|
||||
|
||||
import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAdminConverter;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCloneRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourcePageQueryRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
|
||||
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
|
||||
import ai.chat2db.server.domain.api.param.DataSourceUpdateParam;
|
||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||
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.web.WebPageResult;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* Data Source Access Management
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@RequestMapping("/api/admin/data/source/access")
|
||||
@RestController
|
||||
public class DataSourceAccessController {
|
||||
|
||||
@Resource
|
||||
private DataSourceService dataSourceService;
|
||||
@Resource
|
||||
private DataSourceAdminConverter dataSourceAdminConverter;
|
||||
|
||||
/**
|
||||
* Pagination query
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @version 2.1.0
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public WebPageResult<DataSourcePageQueryVO> page(@Valid DataSourcePageQueryRequest request) {
|
||||
return dataSourceService.queryPage(dataSourceAdminConverter.request2param(request), null)
|
||||
.mapToWeb(dataSourceAdminConverter::dto2vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* create
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @version 2.1.0
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
public DataResult<Long> create(@RequestBody DataSourceCreateRequest request) {
|
||||
DataSourceCreateParam param = dataSourceAdminConverter.createReq2param(request);
|
||||
return dataSourceService.create(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* update
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @version 2.1.0
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ActionResult update(@RequestBody DataSourceUpdateRequest request) {
|
||||
DataSourceUpdateParam param = dataSourceAdminConverter.updateReq2param(request);
|
||||
return dataSourceService.update(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* clone
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/clone")
|
||||
public DataResult<Long> clone(@RequestBody DataSourceCloneRequest request) {
|
||||
return dataSourceService.copyById(request.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* delete
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/{id}")
|
||||
public ActionResult delete(@PathVariable Long id) {
|
||||
return dataSourceService.delete(id);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
|
||||
package ai.chat2db.server.admin.api.controller.datasource;
|
||||
|
||||
import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAdminConverter;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCloneRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourcePageQueryRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
|
||||
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
|
||||
import ai.chat2db.server.domain.api.param.DataSourceUpdateParam;
|
||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||
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.web.WebPageResult;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* Data Source Management
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@RequestMapping("/api/admin/data/source")
|
||||
@RestController
|
||||
public class DataSourceController {
|
||||
|
||||
@Resource
|
||||
private DataSourceService dataSourceService;
|
||||
@Resource
|
||||
private DataSourceAdminConverter dataSourceAdminConverter;
|
||||
|
||||
/**
|
||||
* Pagination query
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @version 2.1.0
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public WebPageResult<DataSourcePageQueryVO> page(@Valid DataSourcePageQueryRequest request) {
|
||||
return dataSourceService.queryPage(dataSourceAdminConverter.request2param(request), null)
|
||||
.mapToWeb(dataSourceAdminConverter::dto2vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* create
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @version 2.1.0
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
public DataResult<Long> create(@RequestBody DataSourceCreateRequest request) {
|
||||
DataSourceCreateParam param = dataSourceAdminConverter.createReq2param(request);
|
||||
return dataSourceService.create(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* update
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
* @version 2.1.0
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public ActionResult update(@RequestBody DataSourceUpdateRequest request) {
|
||||
DataSourceUpdateParam param = dataSourceAdminConverter.updateReq2param(request);
|
||||
return dataSourceService.update(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* clone
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/clone")
|
||||
public DataResult<Long> clone(@RequestBody DataSourceCloneRequest request) {
|
||||
return dataSourceService.copyById(request.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* delete
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/{id}")
|
||||
public ActionResult delete(@PathVariable Long id) {
|
||||
return dataSourceService.delete(id);
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package ai.chat2db.server.admin.api.controller.datasource.converter;
|
||||
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourcePageQueryRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest;
|
||||
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
|
||||
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.DataSourceUpdateParam;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.Mappings;
|
||||
|
||||
/**
|
||||
* converter
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@Mapper(componentModel = "spring")
|
||||
public abstract class DataSourceAdminConverter {
|
||||
|
||||
/**
|
||||
* conversion
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
public abstract DataSourcePageQueryParam request2param(DataSourcePageQueryRequest request);
|
||||
|
||||
/**
|
||||
* conversion
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public abstract DataSourcePageQueryVO dto2vo(DataSource dto);
|
||||
|
||||
/**
|
||||
* 参数转换
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Mappings({
|
||||
@Mapping(source = "user", target = "userName")
|
||||
})
|
||||
public abstract DataSourceCreateParam createReq2param(DataSourceCreateRequest request);
|
||||
|
||||
/**
|
||||
* 参数转换
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Mappings({
|
||||
@Mapping(source = "user", target = "userName")
|
||||
})
|
||||
public abstract DataSourceUpdateParam updateReq2param(DataSourceUpdateRequest request);
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package ai.chat2db.server.admin.api.controller.datasource.request;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author moji
|
||||
* @version ConnectionCloneRequest.java, v 0.1 2022年09月16日 14:23 moji Exp $
|
||||
* @date 2022/09/16
|
||||
*/
|
||||
@Data
|
||||
public class DataSourceCloneRequest {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package ai.chat2db.server.admin.api.controller.datasource.request;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.server.tools.base.enums.EnvTypeEnum;
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
import ai.chat2db.spi.model.KeyValue;
|
||||
import ai.chat2db.spi.model.SSHInfo;
|
||||
import ai.chat2db.spi.model.SSLInfo;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
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 DataSourceCreateRequest {
|
||||
|
||||
/**
|
||||
* 连接别名
|
||||
*/
|
||||
private String alias;
|
||||
|
||||
/**
|
||||
* 连接地址
|
||||
*/
|
||||
@NotNull
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 连接用户名
|
||||
*/
|
||||
private String user;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
@NotNull
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 认证类型
|
||||
*/
|
||||
private String authenticationType;
|
||||
|
||||
/**
|
||||
* 连接类型
|
||||
*/
|
||||
@NotNull
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 环境类型
|
||||
* @see EnvTypeEnum
|
||||
*/
|
||||
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;
|
||||
|
||||
|
||||
/**
|
||||
* 驱动配置
|
||||
*/
|
||||
private DriverConfig driverConfig;
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
|
||||
package ai.chat2db.server.admin.api.controller.datasource.request;
|
||||
|
||||
import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Pagination query
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@Data
|
||||
public class DataSourcePageQueryRequest extends PageQueryRequest {
|
||||
|
||||
/**
|
||||
* searchKey
|
||||
*/
|
||||
private String searchKey;
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package ai.chat2db.server.admin.api.controller.datasource.request;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.server.tools.base.enums.EnvTypeEnum;
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
import ai.chat2db.spi.model.KeyValue;
|
||||
import ai.chat2db.spi.model.SSHInfo;
|
||||
import ai.chat2db.spi.model.SSLInfo;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
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 DataSourceUpdateRequest {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 连接别名
|
||||
*/
|
||||
private String alias;
|
||||
|
||||
/**
|
||||
* 连接地址
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 连接用户
|
||||
*/
|
||||
private String user;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 连接类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 环境类型
|
||||
* @see EnvTypeEnum
|
||||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
* 驱动配置
|
||||
*/
|
||||
private DriverConfig driverConfig;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
|
||||
package ai.chat2db.server.admin.api.controller.datasource.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Pagination query
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@Data
|
||||
public class DataSourceAccessPageQueryVO {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 连接别名
|
||||
*/
|
||||
private String alias;
|
||||
|
||||
/**
|
||||
* 连接地址
|
||||
*/
|
||||
private String url;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
|
||||
package ai.chat2db.server.admin.api.controller.datasource.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Pagination query
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@Data
|
||||
public class DataSourcePageQueryVO {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 连接别名
|
||||
*/
|
||||
private String alias;
|
||||
|
||||
/**
|
||||
* 连接地址
|
||||
*/
|
||||
private String url;
|
||||
}
|
Reference in New Issue
Block a user