mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-09-23 13:37:10 +08:00
support PinService
This commit is contained in:
@ -0,0 +1,35 @@
|
||||
package ai.chat2db.server.web.api.controller.pin;
|
||||
|
||||
import ai.chat2db.server.domain.api.service.PinService;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||
import ai.chat2db.server.web.api.controller.pin.converter.PinWebConverter;
|
||||
import ai.chat2db.server.web.api.controller.pin.request.PinTableRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.DataExportRequest;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RequestMapping("/api/pin")
|
||||
@RestController
|
||||
public class PinController {
|
||||
|
||||
@Autowired
|
||||
private PinService pinService;
|
||||
|
||||
@Autowired
|
||||
private PinWebConverter pinWebConverter;
|
||||
|
||||
@PostMapping("/table/add")
|
||||
public ActionResult add(PinTableRequest request) {
|
||||
return pinService.pinTable(pinWebConverter.req2param(request));
|
||||
}
|
||||
|
||||
@PostMapping("/table/delete")
|
||||
public ActionResult delete(PinTableRequest request) {
|
||||
return pinService.deletePinTable(pinWebConverter.req2param(request));
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package ai.chat2db.server.web.api.controller.pin.converter;
|
||||
|
||||
import ai.chat2db.server.domain.api.param.PinTableParam;
|
||||
import ai.chat2db.server.web.api.controller.pin.request.PinTableRequest;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper(componentModel = "spring")
|
||||
public abstract class PinWebConverter {
|
||||
|
||||
|
||||
public abstract PinTableParam req2param(PinTableRequest request);
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package ai.chat2db.server.web.api.controller.pin.request;
|
||||
|
||||
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceBaseRequest;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PinTableRequest {
|
||||
|
||||
/**
|
||||
* 数据源id
|
||||
*/
|
||||
@NotNull
|
||||
private Long dataSourceId;
|
||||
|
||||
/**
|
||||
* DB名称
|
||||
*/
|
||||
private String databaseName;
|
||||
|
||||
/**
|
||||
* 表所在空间
|
||||
*/
|
||||
private String schemaName;
|
||||
/**
|
||||
* Pin table name
|
||||
*/
|
||||
private String tableName;
|
||||
}
|
@ -2,21 +2,12 @@ package ai.chat2db.server.web.api.controller.rdb;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.server.domain.api.param.DatabaseOperationParam;
|
||||
import ai.chat2db.server.domain.api.param.DropParam;
|
||||
import ai.chat2db.server.domain.api.param.SchemaOperationParam;
|
||||
import ai.chat2db.server.domain.api.param.SchemaQueryParam;
|
||||
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.domain.api.param.*;
|
||||
import ai.chat2db.server.domain.api.service.DatabaseService;
|
||||
import ai.chat2db.server.domain.api.service.DlTemplateService;
|
||||
import ai.chat2db.server.domain.api.service.TableService;
|
||||
import ai.chat2db.spi.model.Schema;
|
||||
import ai.chat2db.spi.model.Table;
|
||||
import ai.chat2db.spi.model.TableColumn;
|
||||
import ai.chat2db.spi.model.TableIndex;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.*;
|
||||
import ai.chat2db.spi.model.*;
|
||||
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;
|
||||
@ -34,11 +25,6 @@ import ai.chat2db.server.web.api.controller.rdb.request.TableModifySqlRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableUpdateDdlQueryRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.UpdateDatabaseRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.UpdateSchemaRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.ColumnVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.IndexVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.SchemaVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.SqlVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.TableVO;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import jakarta.validation.Valid;
|
||||
@ -89,7 +75,7 @@ public class RdbDdlController {
|
||||
PageResult<Table> tableDTOPageResult = tableService.pageQuery(queryParam, tableSelector);
|
||||
List<TableVO> tableVOS = rdbWebConverter.tableDto2vo(tableDTOPageResult.getData());
|
||||
return WebPageResult.of(tableVOS, tableDTOPageResult.getTotal(), request.getPageNo(),
|
||||
request.getPageSize());
|
||||
request.getPageSize());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,6 +92,20 @@ public class RdbDdlController {
|
||||
return ListResult.of(tableVOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询数据库里包含的database_schema_list
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/database_schema_list")
|
||||
public DataResult<MetaSchemaVO> databaseSchemaList(@Valid DataSourceBaseRequest request) {
|
||||
MetaDataQueryParam queryParam = MetaDataQueryParam.builder().dataSourceId(request.getDataSourceId()).build();
|
||||
DataResult<MetaSchema> result = databaseService.queryDatabaseSchema(queryParam);
|
||||
MetaSchemaVO schemaDto2vo = rdbWebConverter.metaSchemaDto2vo(result.getData());
|
||||
return DataResult.of(schemaDto2vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据库
|
||||
*
|
||||
@ -139,7 +139,7 @@ public class RdbDdlController {
|
||||
@PostMapping("/modify_database")
|
||||
public ActionResult modifyDatabase(@Valid @RequestBody UpdateDatabaseRequest request) {
|
||||
DatabaseOperationParam param = DatabaseOperationParam.builder().databaseName(request.getDatabaseName())
|
||||
.newDatabaseName(request.getNewDatabaseName()).build();
|
||||
.newDatabaseName(request.getNewDatabaseName()).build();
|
||||
return databaseService.modifyDatabase(param);
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ public class RdbDdlController {
|
||||
@PostMapping("/delete_schema")
|
||||
public ActionResult deleteSchema(@Valid @RequestBody DataSourceBaseRequest request) {
|
||||
SchemaOperationParam param = SchemaOperationParam.builder().databaseName(request.getDatabaseName())
|
||||
.schemaName(request.getSchemaName()).build();
|
||||
.schemaName(request.getSchemaName()).build();
|
||||
return databaseService.deleteSchema(param);
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ public class RdbDdlController {
|
||||
@PostMapping("/create_schema")
|
||||
public ActionResult createSchema(@Valid @RequestBody DataSourceBaseRequest request) {
|
||||
SchemaOperationParam param = SchemaOperationParam.builder().databaseName(request.getDatabaseName())
|
||||
.schemaName(request.getSchemaName()).build();
|
||||
.schemaName(request.getSchemaName()).build();
|
||||
return databaseService.createSchema(param);
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ public class RdbDdlController {
|
||||
@PostMapping("/modify_schema")
|
||||
public ActionResult modifySchema(@Valid @RequestBody UpdateSchemaRequest request) {
|
||||
SchemaOperationParam param = SchemaOperationParam.builder().databaseName(request.getDatabaseName())
|
||||
.schemaName(request.getSchemaName()).newSchemaName(request.getNewSchemaName()).build();
|
||||
.schemaName(request.getSchemaName()).newSchemaName(request.getNewSchemaName()).build();
|
||||
return databaseService.modifySchema(param);
|
||||
}
|
||||
|
||||
@ -283,9 +283,9 @@ public class RdbDdlController {
|
||||
@GetMapping("/modify/sql")
|
||||
public ListResult<SqlVO> modifySql(@Valid TableModifySqlRequest request) {
|
||||
return tableService.buildSql(
|
||||
rdbWebConverter.tableRequest2param(request.getOldTable()),
|
||||
rdbWebConverter.tableRequest2param(request.getNewTable()))
|
||||
.map(rdbWebConverter::dto2vo);
|
||||
rdbWebConverter.tableRequest2param(request.getOldTable()),
|
||||
rdbWebConverter.tableRequest2param(request.getNewTable()))
|
||||
.map(rdbWebConverter::dto2vo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -8,12 +8,9 @@ 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.spi.model.ExecuteResult;
|
||||
import ai.chat2db.spi.model.Schema;
|
||||
import ai.chat2db.spi.model.Sql;
|
||||
import ai.chat2db.spi.model.Table;
|
||||
import ai.chat2db.spi.model.TableColumn;
|
||||
import ai.chat2db.spi.model.TableIndex;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.*;
|
||||
import ai.chat2db.spi.model.*;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.DdlCountRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.DdlExportRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.DdlRequest;
|
||||
@ -22,12 +19,6 @@ import ai.chat2db.server.web.api.controller.rdb.request.TableBriefQueryRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableDeleteRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableDetailQueryRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableRequest;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.ColumnVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.ExecuteResultVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.IndexVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.SchemaVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.SqlVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.TableVO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
@ -199,4 +190,6 @@ public abstract class RdbWebConverter {
|
||||
* @return
|
||||
*/
|
||||
public abstract SchemaVO schemaDto2vo(Schema dto);
|
||||
|
||||
public abstract MetaSchemaVO metaSchemaDto2vo(MetaSchema data);
|
||||
}
|
||||
|
@ -0,0 +1,19 @@
|
||||
package ai.chat2db.server.web.api.controller.rdb.vo;
|
||||
|
||||
import ai.chat2db.spi.model.Database;
|
||||
import ai.chat2db.spi.model.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
@Data
|
||||
public class MetaSchemaVO {
|
||||
/**
|
||||
* database list
|
||||
*/
|
||||
private List<Database> databases;
|
||||
|
||||
/**
|
||||
* schema list
|
||||
*/
|
||||
private List<Schema> schemas;
|
||||
}
|
Reference in New Issue
Block a user