Add CacheManage

This commit is contained in:
jipengfei-jpf
2023-07-08 19:02:53 +08:00
parent 4f5a58e77b
commit 8fd8d43758
11 changed files with 215 additions and 118 deletions

View File

@ -27,4 +27,10 @@ public class DataSourceBaseRequest implements DataSourceBaseRequestInfo{
* 表所在空间
*/
private String schemaName;
/**
* if true, refresh the cache
*/
private boolean refresh;
}

View File

@ -2,16 +2,21 @@ package ai.chat2db.server.web.api.controller.driver;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import ai.chat2db.server.domain.api.service.JdbcDriverService;
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.web.api.controller.driver.request.JdbcDriverRequest;
import ai.chat2db.spi.config.DBConfig;
import ai.chat2db.spi.util.JdbcJarUtils;
import org.apache.commons.io.FilenameUtils;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@ -44,6 +49,7 @@ public class JdbcDriverController {
/**
* 下载驱动
*
* @param dbType
* @return
*/
@ -57,17 +63,13 @@ public class JdbcDriverController {
* 上传驱动
*
* @param multipartFiles
* @param jdbcDriverClass
* @return
*/
@PostMapping("/upload")
public ActionResult upload(@RequestParam MultipartFile[] multipartFiles, @RequestParam String jdbcDriverClass,
@RequestParam String dbType) {
StringBuilder stringBuilder = new StringBuilder();
public ListResult<String> upload(@RequestParam MultipartFile[] multipartFiles) {
List<String> list = new ArrayList<>();
for (int i = 0; i < multipartFiles.length; i++) {
if (i > 0) {
stringBuilder.append(",");
}
MultipartFile multipartFile = multipartFiles[i];
String originalFilename = FilenameUtils.getName(multipartFile.getOriginalFilename());
String location = JdbcJarUtils.PATH + originalFilename;
@ -76,10 +78,22 @@ public class JdbcDriverController {
} catch (IOException e) {
throw new RuntimeException(e);
}
stringBuilder.append(originalFilename);
list.add(originalFilename);
}
return jdbcDriverService.upload(dbType, jdbcDriverClass, stringBuilder.toString());
return ListResult.of(list);
}
/**
* save
*
* @param request
* @return
*/
@PostMapping("/save")
public ActionResult save(@RequestBody JdbcDriverRequest request) {
return jdbcDriverService.upload(request.getDbType(), request.getJdbcDriverClass(),
String.join(",", request.getJdbcDriver()));
}
///**

View File

@ -0,0 +1,13 @@
package ai.chat2db.server.web.api.controller.driver.request;
import java.util.List;
import lombok.Data;
@Data
public class JdbcDriverRequest {
String jdbcDriverClass;
String dbType;
List<String> jdbcDriver;
}

View File

@ -75,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());
}
/**
@ -100,7 +100,8 @@ public class RdbDdlController {
*/
@GetMapping("/database_schema_list")
public DataResult<MetaSchemaVO> databaseSchemaList(@Valid DataSourceBaseRequest request) {
MetaDataQueryParam queryParam = MetaDataQueryParam.builder().dataSourceId(request.getDataSourceId()).build();
MetaDataQueryParam queryParam = MetaDataQueryParam.builder().dataSourceId(request.getDataSourceId()).refresh(
request.isRefresh()).build();
DataResult<MetaSchema> result = databaseService.queryDatabaseSchema(queryParam);
MetaSchemaVO schemaDto2vo = rdbWebConverter.metaSchemaDto2vo(result.getData());
return DataResult.of(schemaDto2vo);
@ -139,7 +140,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 +153,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 +166,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 +179,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 +284,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);
}
/**

View File

@ -38,4 +38,9 @@ public class TableBriefQueryRequest extends PageQueryRequest implements DataSour
* 模糊搜索词
*/
private String searchKey;
/**
* if true, refresh the cache
*/
private boolean refresh;
}