Complete team additions, deletions, modifications, and checks

This commit is contained in:
JiaJu Zhuang
2023-09-02 16:12:03 +08:00
parent dcffa3d971
commit 4efc7121c3
25 changed files with 376 additions and 108 deletions

View File

@ -5,21 +5,19 @@ import java.util.Objects;
import ai.chat2db.server.domain.api.enums.AiSqlSourceEnum;
import ai.chat2db.server.domain.api.model.AIConfig;
import ai.chat2db.server.domain.api.model.ChatGptConfig;
import ai.chat2db.server.domain.api.model.Config;
import ai.chat2db.server.domain.api.param.SystemConfigParam;
import ai.chat2db.server.domain.api.service.ConfigService;
import ai.chat2db.server.domain.core.util.PermissionUtils;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
import ai.chat2db.server.web.api.controller.ai.azure.client.AzureOpenAIClient;
import ai.chat2db.server.web.api.controller.ai.chat2db.client.Chat2dbAIClient;
import ai.chat2db.server.web.api.controller.ai.rest.client.RestAIClient;
import ai.chat2db.server.web.api.controller.config.request.AIConfigCreateRequest;
import ai.chat2db.server.web.api.controller.config.request.AISystemConfigRequest;
import ai.chat2db.server.web.api.controller.config.request.SystemConfigRequest;
import ai.chat2db.server.web.api.util.OpenAIClient;
import ai.chat2db.server.web.api.controller.ai.rest.client.RestAIClient;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -27,7 +25,6 @@ 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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
@ -53,7 +50,6 @@ public class ConfigController {
return ActionResult.isSuccess();
}
/**
* 保存ChatGPT相关配置
*
@ -62,6 +58,8 @@ public class ConfigController {
*/
@PostMapping("/system_config/ai")
public ActionResult addChatGptSystemConfig(@RequestBody AIConfigCreateRequest request) {
PermissionUtils.checkDeskTopOrAdmin();
String sqlSource = request.getAiSqlSource();
AiSqlSourceEnum aiSqlSourceEnum = AiSqlSourceEnum.getByName(sqlSource);
if (Objects.isNull(aiSqlSourceEnum)) {
@ -73,16 +71,16 @@ public class ConfigController {
configService.createOrUpdate(param);
switch (Objects.requireNonNull(aiSqlSourceEnum)) {
case OPENAI :
case OPENAI:
saveOpenAIConfig(request);
break;
case CHAT2DBAI:
saveChat2dbAIConfig(request);
break;
case RESTAI :
case RESTAI:
saveRestAIConfig(request);
break;
case AZUREAI :
case AZUREAI:
saveAzureAIConfig(request);
break;
}
@ -132,7 +130,7 @@ public class ConfigController {
*/
private void saveRestAIConfig(AIConfigCreateRequest request) {
SystemConfigParam restParam = SystemConfigParam.builder().code(RestAIClient.REST_AI_URL).content(
request.getApiHost()).build();
request.getApiHost()).build();
configService.createOrUpdate(restParam);
SystemConfigParam methodParam = SystemConfigParam.builder().code(RestAIClient.REST_AI_STREAM_OUT).content(
request.getStream().toString()).build();
@ -146,14 +144,17 @@ public class ConfigController {
* @param request
*/
private void saveAzureAIConfig(AIConfigCreateRequest request) {
SystemConfigParam apikeyParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_API_KEY).content(
request.getApiKey()).build();
SystemConfigParam apikeyParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_API_KEY)
.content(
request.getApiKey()).build();
configService.createOrUpdate(apikeyParam);
SystemConfigParam endpointParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_ENDPOINT).content(
request.getApiHost()).build();
SystemConfigParam endpointParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_ENDPOINT)
.content(
request.getApiHost()).build();
configService.createOrUpdate(endpointParam);
SystemConfigParam modelParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_DEPLOYMENT_ID).content(
request.getModel()).build();
SystemConfigParam modelParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_DEPLOYMENT_ID)
.content(
request.getModel()).build();
configService.createOrUpdate(modelParam);
AzureOpenAIClient.refresh();
}
@ -186,21 +187,24 @@ public class ConfigController {
}
config.setAiSqlSource(aiSqlSource);
switch (Objects.requireNonNull(aiSqlSourceEnum)) {
case OPENAI :
case OPENAI:
DataResult<Config> apiKey = configService.find(OpenAIClient.OPENAI_KEY);
DataResult<Config> apiHost = configService.find(OpenAIClient.OPENAI_HOST);
DataResult<Config> httpProxyHost = configService.find(OpenAIClient.PROXY_HOST);
DataResult<Config> httpProxyPort = configService.find(OpenAIClient.PROXY_PORT);
config.setApiKey(Objects.nonNull(apiKey.getData()) ? apiKey.getData().getContent() : "");
config.setApiHost(Objects.nonNull(apiHost.getData()) ? apiHost.getData().getContent() : "");
config.setHttpProxyHost(Objects.nonNull(httpProxyHost.getData()) ? httpProxyHost.getData().getContent() : "");
config.setHttpProxyPort(Objects.nonNull(httpProxyPort.getData()) ? httpProxyPort.getData().getContent() : "");
config.setHttpProxyHost(
Objects.nonNull(httpProxyHost.getData()) ? httpProxyHost.getData().getContent() : "");
config.setHttpProxyPort(
Objects.nonNull(httpProxyPort.getData()) ? httpProxyPort.getData().getContent() : "");
break;
case CHAT2DBAI:
DataResult<Config> chat2dbApiKey = configService.find(Chat2dbAIClient.CHAT2DB_OPENAI_KEY);
DataResult<Config> chat2dbApiHost = configService.find(Chat2dbAIClient.CHAT2DB_OPENAI_HOST);
config.setApiKey(Objects.nonNull(chat2dbApiKey.getData()) ? chat2dbApiKey.getData().getContent() : "");
config.setApiHost(Objects.nonNull(chat2dbApiHost.getData()) ? chat2dbApiHost.getData().getContent() : "");
config.setApiHost(
Objects.nonNull(chat2dbApiHost.getData()) ? chat2dbApiHost.getData().getContent() : "");
break;
case AZUREAI:
DataResult<Config> azureApiKey = configService.find(AzureOpenAIClient.AZURE_CHATGPT_API_KEY);
@ -303,13 +307,16 @@ public class ConfigController {
// * @param request
// */
//private void saveAzureAIConfig(AISystemConfigRequest request) {
// SystemConfigParam apikeyParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_API_KEY).content(
// SystemConfigParam apikeyParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_API_KEY)
// .content(
// request.getAzureApiKey()).build();
// configService.createOrUpdate(apikeyParam);
// SystemConfigParam endpointParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_ENDPOINT).content(
// SystemConfigParam endpointParam = SystemConfigParam.builder().code(AzureOpenAIClient
// .AZURE_CHATGPT_ENDPOINT).content(
// request.getAzureEndpoint()).build();
// configService.createOrUpdate(endpointParam);
// SystemConfigParam modelParam = SystemConfigParam.builder().code(AzureOpenAIClient.AZURE_CHATGPT_DEPLOYMENT_ID).content(
// SystemConfigParam modelParam = SystemConfigParam.builder().code(AzureOpenAIClient
// .AZURE_CHATGPT_DEPLOYMENT_ID).content(
// request.getAzureDeploymentId()).build();
// configService.createOrUpdate(modelParam);
// AzureOpenAIClient.refresh();
@ -334,7 +341,8 @@ public class ConfigController {
// DataResult<Config> azureDeployId = configService.find(AzureOpenAIClient.AZURE_CHATGPT_DEPLOYMENT_ID);
// ChatGptConfig config = new ChatGptConfig();
//
// String sqlSource = Objects.nonNull(aiSqlSource.getData()) ? aiSqlSource.getData().getContent() : AiSqlSourceEnum.CHAT2DBAI.getCode();
// String sqlSource = Objects.nonNull(aiSqlSource.getData()) ? aiSqlSource.getData().getContent() :
// AiSqlSourceEnum.CHAT2DBAI.getCode();
// AiSqlSourceEnum aiSqlSourceEnum = AiSqlSourceEnum.getByName(sqlSource);
// if (Objects.isNull(aiSqlSourceEnum)) {
// aiSqlSourceEnum = AiSqlSourceEnum.CHAT2DBAI;
@ -358,11 +366,15 @@ public class ConfigController {
// config.setRestAiUrl(Objects.nonNull(restAiUrl.getData()) ? restAiUrl.getData().getContent() : null);
// config.setRestAiStream(Objects.nonNull(restAiHttpMethod.getData()) ? Boolean.valueOf(
// restAiHttpMethod.getData().getContent()) : Boolean.TRUE);
// config.setHttpProxyHost(Objects.nonNull(httpProxyHost.getData()) ? httpProxyHost.getData().getContent() : null);
// config.setHttpProxyPort(Objects.nonNull(httpProxyPort.getData()) ? httpProxyPort.getData().getContent() : null);
// config.setHttpProxyHost(Objects.nonNull(httpProxyHost.getData()) ? httpProxyHost.getData().getContent() :
// null);
// config.setHttpProxyPort(Objects.nonNull(httpProxyPort.getData()) ? httpProxyPort.getData().getContent() :
// null);
// config.setAzureApiKey(Objects.nonNull(azureApiKey.getData()) ? azureApiKey.getData().getContent() : null);
// config.setAzureEndpoint(Objects.nonNull(azureEndpoint.getData()) ? azureEndpoint.getData().getContent() : null);
// config.setAzureDeploymentId(Objects.nonNull(azureDeployId.getData()) ? azureDeployId.getData().getContent() : null);
// config.setAzureEndpoint(Objects.nonNull(azureEndpoint.getData()) ? azureEndpoint.getData().getContent() :
// null);
// config.setAzureDeploymentId(Objects.nonNull(azureDeployId.getData()) ? azureDeployId.getData().getContent()
// : null);
// return DataResult.of(config);
//}
}

View File

@ -1,20 +1,19 @@
package ai.chat2db.server.web.api.controller.dashboard;
import java.util.List;
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.domain.api.chart.ChartCreateParam;
import ai.chat2db.server.domain.api.chart.ChartListQueryParam;
import ai.chat2db.server.domain.api.chart.ChartQueryParam;
import ai.chat2db.server.domain.api.chart.ChartUpdateParam;
import ai.chat2db.server.domain.api.service.ChartService;
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.common.util.ContextUtils;
import ai.chat2db.server.web.api.controller.dashboard.converter.ChartWebConverter;
import ai.chat2db.server.web.api.controller.dashboard.request.ChartCreateRequest;
import ai.chat2db.server.web.api.controller.dashboard.request.ChartQueryRequest;
import ai.chat2db.server.web.api.controller.dashboard.request.ChartUpdateRequest;
import ai.chat2db.server.web.api.controller.dashboard.vo.ChartVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@ -42,7 +41,6 @@ public class ChartController {
@Autowired
private ChartWebConverter chartWebConverter;
/**
* 根据id查询图表详情
*
@ -51,9 +49,11 @@ public class ChartController {
*/
@GetMapping("/{id}")
public DataResult<ChartVO> get(@PathVariable("id") Long id) {
Chart chart = chartService.find(id).getData();
ChartVO chartVO = chartWebConverter.model2vo(chart);
return DataResult.of(chartVO);
ChartQueryParam param = new ChartQueryParam();
param.setId(id);
param.setUserId(ContextUtils.getUserId());
return chartService.queryExistent(param)
.map(chartWebConverter::model2vo);
}
/**
@ -64,9 +64,11 @@ public class ChartController {
*/
@GetMapping("/listByIds")
public ListResult<ChartVO> list(ChartQueryRequest request) {
List<Chart> charts = chartService.queryByIds(request.getIds()).getData();
List<ChartVO> chartVOS = chartWebConverter.model2vo(charts);
return ListResult.of(chartVOS);
ChartListQueryParam param = new ChartListQueryParam();
param.setIdList(request.getIds());
param.setUserId(ContextUtils.getUserId());
return chartService.listQuery(param)
.map(chartWebConverter::model2vo);
}
/**
@ -78,7 +80,7 @@ public class ChartController {
@PostMapping("/create")
public DataResult<Long> create(@RequestBody ChartCreateRequest request) {
ChartCreateParam chartCreateParam = chartWebConverter.req2param(request);
return chartService.create(chartCreateParam);
return chartService.createWithPermission(chartCreateParam);
}
/**
@ -90,7 +92,7 @@ public class ChartController {
@RequestMapping(value = "/update", method = {RequestMethod.POST, RequestMethod.PUT})
public ActionResult update(@RequestBody ChartUpdateRequest request) {
ChartUpdateParam param = chartWebConverter.req2updateParam(request);
return chartService.update(param);
return chartService.updateWithPermission(param);
}
/**
@ -101,7 +103,7 @@ public class ChartController {
*/
@DeleteMapping("/{id}")
public ActionResult delete(@PathVariable("id") Long id) {
return chartService.delete(id);
return chartService.deleteWithPermission(id);
}
}

View File

@ -3,14 +3,16 @@ package ai.chat2db.server.web.api.controller.dashboard;
import java.util.List;
import ai.chat2db.server.domain.api.model.Dashboard;
import ai.chat2db.server.domain.api.param.DashboardCreateParam;
import ai.chat2db.server.domain.api.param.DashboardPageQueryParam;
import ai.chat2db.server.domain.api.param.DashboardUpdateParam;
import ai.chat2db.server.domain.api.param.dashboard.DashboardCreateParam;
import ai.chat2db.server.domain.api.param.dashboard.DashboardPageQueryParam;
import ai.chat2db.server.domain.api.param.dashboard.DashboardQueryParam;
import ai.chat2db.server.domain.api.param.dashboard.DashboardUpdateParam;
import ai.chat2db.server.domain.api.service.DashboardService;
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;
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
import ai.chat2db.server.tools.common.util.ContextUtils;
import ai.chat2db.server.web.api.controller.dashboard.converter.DashboardWebConverter;
import ai.chat2db.server.web.api.controller.dashboard.request.DashboardCreateRequest;
import ai.chat2db.server.web.api.controller.dashboard.request.DashboardUpdateRequest;
@ -51,6 +53,7 @@ public class DashboardController {
*/
@GetMapping("/list")
public WebPageResult<DashboardVO> list(DashboardPageQueryParam request) {
request.setUserId(ContextUtils.getUserId());
PageResult<Dashboard> result = dashboardService.queryPage(request);
List<DashboardVO> dashboardVOS = dashboardWebConverter.model2vo(result.getData());
return WebPageResult.of(dashboardVOS, result.getTotal(), result.getPageNo(), result.getPageSize());
@ -64,9 +67,11 @@ public class DashboardController {
*/
@GetMapping("/{id}")
public DataResult<DashboardVO> get(@PathVariable("id") Long id) {
Dashboard dashboard = dashboardService.find(id).getData();
DashboardVO dashboardVO = dashboardWebConverter.model2vo(dashboard);
return DataResult.of(dashboardVO);
DashboardQueryParam param = new DashboardQueryParam();
param.setId(id);
param.setUserId(ContextUtils.getUserId());
return dashboardService.queryExistent(param)
.map(dashboardWebConverter::model2vo);
}
/**
@ -78,7 +83,7 @@ public class DashboardController {
@PostMapping("/create")
public DataResult<Long> create(@RequestBody DashboardCreateRequest request) {
DashboardCreateParam param = dashboardWebConverter.req2param(request);
return dashboardService.create(param);
return dashboardService.createWithPermission(param);
}
/**
@ -90,7 +95,7 @@ public class DashboardController {
@RequestMapping(value = "/update", method = {RequestMethod.POST, RequestMethod.PUT})
public ActionResult update(@RequestBody DashboardUpdateRequest request) {
DashboardUpdateParam param = dashboardWebConverter.req2updateParam(request);
return dashboardService.update(param);
return dashboardService.updateWithPermission(param);
}
/**
@ -101,6 +106,6 @@ public class DashboardController {
*/
@DeleteMapping("/{id}")
public ActionResult delete(@PathVariable("id") Long id) {
return dashboardService.delete(id);
return dashboardService.deleteWithPermission(id);
}
}

View File

@ -3,8 +3,8 @@ package ai.chat2db.server.web.api.controller.dashboard.converter;
import java.util.List;
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.domain.api.chart.ChartCreateParam;
import ai.chat2db.server.domain.api.chart.ChartUpdateParam;
import ai.chat2db.server.web.api.controller.dashboard.request.ChartCreateRequest;
import ai.chat2db.server.web.api.controller.dashboard.request.ChartUpdateRequest;
import ai.chat2db.server.web.api.controller.dashboard.vo.ChartVO;

View File

@ -3,8 +3,8 @@ package ai.chat2db.server.web.api.controller.dashboard.converter;
import java.util.List;
import ai.chat2db.server.domain.api.model.Dashboard;
import ai.chat2db.server.domain.api.param.DashboardCreateParam;
import ai.chat2db.server.domain.api.param.DashboardUpdateParam;
import ai.chat2db.server.domain.api.param.dashboard.DashboardCreateParam;
import ai.chat2db.server.domain.api.param.dashboard.DashboardUpdateParam;
import ai.chat2db.server.web.api.controller.dashboard.request.DashboardCreateRequest;
import ai.chat2db.server.web.api.controller.dashboard.request.DashboardUpdateRequest;
import ai.chat2db.server.web.api.controller.dashboard.vo.DashboardVO;

View File

@ -2,13 +2,13 @@ package ai.chat2db.server.web.api.controller.data.source.converter;
import java.util.List;
import ai.chat2db.server.domain.api.enums.DataSourceKindEnum;
import ai.chat2db.server.domain.api.model.DataSource;
import ai.chat2db.server.domain.api.param.datasource.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.datasource.DataSourcePreConnectParam;
import ai.chat2db.spi.model.Database;
import ai.chat2db.server.domain.api.param.ConsoleCloseParam;
import ai.chat2db.server.domain.api.param.ConsoleConnectParam;
import ai.chat2db.server.domain.api.param.datasource.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.datasource.DataSourcePageQueryParam;
import ai.chat2db.server.domain.api.param.datasource.DataSourcePreConnectParam;
import ai.chat2db.server.domain.api.param.datasource.DataSourceUpdateParam;
import ai.chat2db.server.web.api.controller.data.source.request.ConsoleCloseRequest;
import ai.chat2db.server.web.api.controller.data.source.request.ConsoleConnectRequest;
@ -18,7 +18,7 @@ import ai.chat2db.server.web.api.controller.data.source.request.DataSourceTestRe
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceUpdateRequest;
import ai.chat2db.server.web.api.controller.data.source.vo.DataSourceVO;
import ai.chat2db.server.web.api.controller.data.source.vo.DatabaseVO;
import ai.chat2db.spi.model.Database;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@ -28,7 +28,7 @@ import org.mapstruct.Mappings;
* @version DataSourceWebConverter.java, v 0.1 2022年09月23日 16:45 moji Exp $
* @date 2022/09/23
*/
@Mapper(componentModel = "spring")
@Mapper(componentModel = "spring", imports = {DataSourceKindEnum.class})
public abstract class DataSourceWebConverter {
/**
@ -38,7 +38,8 @@ public abstract class DataSourceWebConverter {
* @return
*/
@Mappings({
@Mapping(source = "user", target = "userName")
@Mapping(source = "user", target = "userName"),
@Mapping(target = "kind", expression = "java(DataSourceKindEnum.PRIVATE.getCode())")
})
public abstract DataSourceCreateParam createReq2param(DataSourceCreateRequest request);