mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-08-01 18:53:35 +08:00
support view trigger producer function
This commit is contained in:
@ -5,6 +5,7 @@ import ai.chat2db.server.domain.api.model.DataSource;
|
||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
||||
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceBaseRequest;
|
||||
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceBaseRequestInfo;
|
||||
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceConsoleRequestInfo;
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
@ -36,11 +37,16 @@ public class ConnectionInfoHandler {
|
||||
if (params != null && params.length > 0) {
|
||||
for (int i = 0; i < params.length; i++) {
|
||||
Object param = params[i];
|
||||
if (param instanceof DataSourceConsoleRequestInfo) {
|
||||
if(param instanceof DataSourceBaseRequest){
|
||||
Long dataSourceId = ((DataSourceBaseRequest)param).getDataSourceId();
|
||||
String schemaName = ((DataSourceBaseRequest)param).getSchemaName();
|
||||
String database = ((DataSourceBaseRequest)param).getDatabaseName();
|
||||
Chat2DBContext.putContext(toInfo(dataSourceId, database, null,schemaName));
|
||||
}else if (param instanceof DataSourceConsoleRequestInfo) {
|
||||
Long dataSourceId = ((DataSourceConsoleRequestInfo)param).getDataSourceId();
|
||||
Long consoleId = ((DataSourceConsoleRequestInfo)param).getConsoleId();
|
||||
String database = ((DataSourceConsoleRequestInfo)param).getDatabaseName();
|
||||
Chat2DBContext.putContext(toInfo(dataSourceId, database, consoleId));
|
||||
Chat2DBContext.putContext(toInfo(dataSourceId, database, consoleId,null));
|
||||
} else if (param instanceof DataSourceBaseRequestInfo) {
|
||||
Long dataSourceId = ((DataSourceBaseRequestInfo)param).getDataSourceId();
|
||||
String database = ((DataSourceBaseRequestInfo)param).getDatabaseName();
|
||||
@ -54,7 +60,7 @@ public class ConnectionInfoHandler {
|
||||
}
|
||||
}
|
||||
|
||||
public ConnectInfo toInfo(Long dataSourceId, String database, Long consoleId) {
|
||||
public ConnectInfo toInfo(Long dataSourceId, String database, Long consoleId,String schemaName) {
|
||||
DataResult<DataSource> result = dataSourceService.queryById(dataSourceId);
|
||||
DataSource dataSource = result.getData();
|
||||
if (!result.success() || dataSource == null) {
|
||||
@ -69,6 +75,7 @@ public class ConnectionInfoHandler {
|
||||
connectInfo.setDbType(dataSource.getType());
|
||||
connectInfo.setUrl(dataSource.getUrl());
|
||||
connectInfo.setDatabase(database);
|
||||
connectInfo.setSchemaName(schemaName);
|
||||
connectInfo.setConsoleOwn(false);
|
||||
connectInfo.setDriver(dataSource.getDriver());
|
||||
connectInfo.setSsh(dataSource.getSsh());
|
||||
@ -86,6 +93,6 @@ public class ConnectionInfoHandler {
|
||||
}
|
||||
|
||||
public ConnectInfo toInfo(Long dataSourceId, String database) {
|
||||
return toInfo(dataSourceId, database, null);
|
||||
return toInfo(dataSourceId, database, null,null);
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package ai.chat2db.server.web.api.controller.rdb;
|
||||
|
||||
import ai.chat2db.server.domain.api.service.FunctionService;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableBriefQueryRequest;
|
||||
import ai.chat2db.spi.model.Function;
|
||||
@ -19,9 +20,12 @@ public class FunctionController {
|
||||
@Autowired
|
||||
private FunctionService functionService;
|
||||
|
||||
|
||||
@GetMapping("/list")
|
||||
public ListResult<Function> list(@Valid TableBriefQueryRequest request) {
|
||||
return functionService.functions(request.getDatabaseName(), request.getSchemaName());
|
||||
public WebPageResult<Function> list(@Valid TableBriefQueryRequest request) {
|
||||
ListResult<Function> functionListResult = functionService.functions(request.getDatabaseName(),
|
||||
request.getSchemaName());
|
||||
return WebPageResult.of(functionListResult.getData(), Long.valueOf(functionListResult.getData().size()), 1,
|
||||
functionListResult.getData().size());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package ai.chat2db.server.web.api.controller.rdb;
|
||||
|
||||
import ai.chat2db.server.domain.api.service.ProcedureService;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableBriefQueryRequest;
|
||||
import ai.chat2db.spi.model.Procedure;
|
||||
@ -18,7 +19,10 @@ public class ProcedureController {
|
||||
private ProcedureService procedureService;
|
||||
|
||||
@GetMapping("/list")
|
||||
public ListResult<Procedure> list(@Valid TableBriefQueryRequest request) {
|
||||
return procedureService.procedures(request.getDatabaseName(), request.getSchemaName());
|
||||
public WebPageResult<Procedure> list(@Valid TableBriefQueryRequest request) {
|
||||
ListResult<Procedure> procedureListResult = procedureService.procedures(request.getDatabaseName(),
|
||||
request.getSchemaName());
|
||||
return WebPageResult.of(procedureListResult.getData(), Long.valueOf(procedureListResult.getData().size()), 1,
|
||||
procedureListResult.getData().size());
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package ai.chat2db.server.web.api.controller.rdb;
|
||||
|
||||
import ai.chat2db.server.domain.api.service.TriggerService;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
|
||||
import ai.chat2db.server.web.api.controller.rdb.request.TableBriefQueryRequest;
|
||||
import ai.chat2db.spi.model.Trigger;
|
||||
@ -19,9 +20,10 @@ public class TriggerController {
|
||||
@Autowired
|
||||
private TriggerService triggerService;
|
||||
|
||||
|
||||
@GetMapping("/list")
|
||||
public ListResult<Trigger> list(@Valid TableBriefQueryRequest request) {
|
||||
return triggerService.triggers(request.getDatabaseName(), request.getSchemaName());
|
||||
public WebPageResult<Trigger> list(@Valid TableBriefQueryRequest request) {
|
||||
ListResult<Trigger> listResult = triggerService.triggers(request.getDatabaseName(), request.getSchemaName());
|
||||
return WebPageResult.of(listResult.getData(), Long.valueOf(listResult.getData().size()), 1,
|
||||
listResult.getData().size());
|
||||
}
|
||||
}
|
||||
|
@ -2,16 +2,27 @@ package ai.chat2db.server.web.api.controller.rdb;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.server.domain.api.param.DropParam;
|
||||
import ai.chat2db.server.domain.api.param.TableQueryParam;
|
||||
import ai.chat2db.server.domain.api.service.TableService;
|
||||
import ai.chat2db.server.domain.api.service.ViewService;
|
||||
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.web.WebPageResult;
|
||||
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
|
||||
import ai.chat2db.server.web.api.controller.rdb.converter.RdbWebConverter;
|
||||
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.vo.ColumnVO;
|
||||
import ai.chat2db.server.web.api.controller.rdb.vo.TableVO;
|
||||
import ai.chat2db.spi.model.Table;
|
||||
import ai.chat2db.spi.model.TableColumn;
|
||||
import jakarta.validation.Valid;
|
||||
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;
|
||||
|
||||
@ -22,14 +33,39 @@ public class ViewController {
|
||||
@Autowired
|
||||
private ViewService viewService;
|
||||
|
||||
@Autowired
|
||||
private TableService tableService;
|
||||
|
||||
@Autowired
|
||||
private RdbWebConverter rdbWebConverter;
|
||||
|
||||
@GetMapping("/list")
|
||||
public ListResult<TableVO> list(@Valid TableBriefQueryRequest request) {
|
||||
public WebPageResult<TableVO> list(@Valid TableBriefQueryRequest request) {
|
||||
ListResult<Table> tableDTOPageResult = viewService.views(request.getDatabaseName(), request.getSchemaName());
|
||||
List<TableVO> tableVOS = rdbWebConverter.tableDto2vo(tableDTOPageResult.getData());
|
||||
return WebPageResult.of(tableVOS, Long.valueOf(tableVOS.size()), 1, tableVOS.size());
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/column_list")
|
||||
public ListResult<ColumnVO> columnList(@Valid TableDetailQueryRequest request) {
|
||||
TableQueryParam queryParam = rdbWebConverter.tableRequest2param(request);
|
||||
List<TableColumn> tableColumns = tableService.queryColumns(queryParam);
|
||||
List<ColumnVO> tableVOS = rdbWebConverter.columnDto2vo(tableColumns);
|
||||
return ListResult.of(tableVOS);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/detail")
|
||||
public DataResult<TableVO> detail(@Valid TableDetailQueryRequest request) {
|
||||
DataResult<Table> dataResult = viewService.detail(request.getDatabaseName(),request.getSchemaName(),request.getTableName());
|
||||
TableVO tableVO = rdbWebConverter.tableDto2vo(dataResult.getData());
|
||||
return DataResult.of(tableVO);
|
||||
}
|
||||
@PostMapping("/delete")
|
||||
public ActionResult delete(@Valid TableDeleteRequest request) {
|
||||
DropParam dropParam = rdbWebConverter.tableDelete2dropParam(request);
|
||||
return tableService.drop(dropParam);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -36,4 +36,9 @@ public class TableVO {
|
||||
* 是否已经被固定
|
||||
*/
|
||||
private boolean pinned;
|
||||
|
||||
/**
|
||||
* ddl
|
||||
*/
|
||||
private String ddl;
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
//package ai.chat2db.server.web.api.controller.rdb.vo;
|
||||
//
|
||||
//public class ViewVO extends TableVO{
|
||||
//
|
||||
// /**
|
||||
// * 视图脚本
|
||||
// */
|
||||
// private String script;
|
||||
//}
|
Reference in New Issue
Block a user