Error modifying environment

This commit is contained in:
JiaJu Zhuang
2023-09-03 17:41:14 +08:00
parent f5a13ba17f
commit bdd638efce
5 changed files with 28 additions and 12 deletions

View File

@ -7,6 +7,7 @@ import ai.chat2db.spi.model.KeyValue;
import ai.chat2db.spi.model.SSHInfo; import ai.chat2db.spi.model.SSHInfo;
import ai.chat2db.spi.model.SSLInfo; import ai.chat2db.spi.model.SSLInfo;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
/** /**
@ -101,4 +102,10 @@ public class DataSourceCreateParam {
* @see ai.chat2db.server.domain.api.enums.DataSourceKindEnum * @see ai.chat2db.server.domain.api.enums.DataSourceKindEnum
*/ */
private String kind; private String kind;
/**
* 环境id
*/
@NotNull
private Long environmentId;
} }

View File

@ -64,7 +64,7 @@ public interface DataSourceService {
* @return * @return
* @throws ai.chat2db.server.tools.common.exception.DataNotFoundException * @throws ai.chat2db.server.tools.common.exception.DataNotFoundException
*/ */
DataResult<DataSource> queryExistent(@NotNull Long id); DataResult<DataSource> queryExistent(@NotNull Long id, DataSourceSelector selector);
/** /**
* 克隆连接 * 克隆连接

View File

@ -45,6 +45,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@ -117,7 +118,7 @@ public class DataSourceServiceImpl implements DataSourceService {
@Override @Override
public DataResult<Long> updateWithPermission(DataSourceUpdateParam param) { public DataResult<Long> updateWithPermission(DataSourceUpdateParam param) {
DataSource dataSource = queryExistent(param.getId()).getData(); DataSource dataSource = queryExistent(param.getId(), null).getData();
PermissionUtils.checkOperationPermission(dataSource.getUserId()); PermissionUtils.checkOperationPermission(dataSource.getUserId());
DataSourceDO dataSourceDO = dataSourceConverter.param2do(param); DataSourceDO dataSourceDO = dataSourceConverter.param2do(param);
@ -129,7 +130,7 @@ public class DataSourceServiceImpl implements DataSourceService {
@Override @Override
public ActionResult deleteWithPermission(Long id) { public ActionResult deleteWithPermission(Long id) {
DataSource dataSource = queryExistent(id).getData(); DataSource dataSource = queryExistent(id, null).getData();
PermissionUtils.checkOperationPermission(dataSource.getUserId()); PermissionUtils.checkOperationPermission(dataSource.getUserId());
dataSourceMapper.deleteById(id); dataSourceMapper.deleteById(id);
@ -143,17 +144,20 @@ public class DataSourceServiceImpl implements DataSourceService {
} }
@Override @Override
public DataResult<DataSource> queryExistent(Long id) { public DataResult<DataSource> queryExistent(Long id, DataSourceSelector selector) {
DataResult<DataSource> dataResult = queryById(id); DataResult<DataSource> dataResult = queryById(id);
if (dataResult.getData() == null) { if (dataResult.getData() == null) {
throw new DataNotFoundException(); throw new DataNotFoundException();
} }
fillData(Lists.newArrayList(dataResult.getData()), selector);
return dataResult; return dataResult;
} }
@Override @Override
public DataResult<Long> copyByIdWithPermission(Long id) { public DataResult<Long> copyByIdWithPermission(Long id) {
DataSource dataSource = queryExistent(id).getData(); DataSource dataSource = queryExistent(id, null).getData();
PermissionUtils.checkOperationPermission(dataSource.getUserId()); PermissionUtils.checkOperationPermission(dataSource.getUserId());
DataSourceDO dataSourceDO = dataSourceMapper.selectById(id); DataSourceDO dataSourceDO = dataSourceMapper.selectById(id);
@ -191,7 +195,7 @@ public class DataSourceServiceImpl implements DataSourceService {
IPage<DataSourceDO> iPage = dataSourceCustomMapper.selectPageWithPermission( IPage<DataSourceDO> iPage = dataSourceCustomMapper.selectPageWithPermission(
new Page<>(param.getPageNo(), param.getPageSize()), new Page<>(param.getPageNo(), param.getPageSize()),
BooleanUtils.isTrue(loginUser.getAdmin()), loginUser.getId(), param.getSearchKey(),param.getKind(), BooleanUtils.isTrue(loginUser.getAdmin()), loginUser.getId(), param.getSearchKey(), param.getKind(),
EasySqlUtils.orderBy(param.getOrderByList())); EasySqlUtils.orderBy(param.getOrderByList()));
List<DataSource> dataSources = dataSourceConverter.do2dto(iPage.getRecords()); List<DataSource> dataSources = dataSourceConverter.do2dto(iPage.getRecords());

View File

@ -63,7 +63,7 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
public class DataSourceController { public class DataSourceController {
private static final DataSourceSelector DATA_SOURCE_SELECTOR= DataSourceSelector.builder() private static final DataSourceSelector DATA_SOURCE_SELECTOR = DataSourceSelector.builder()
.environment(Boolean.TRUE) .environment(Boolean.TRUE)
.build(); .build();
@ -104,7 +104,7 @@ public class DataSourceController {
session = SSHManager.getSSHSession(sshWebConverter.toInfo(request)); session = SSHManager.getSSHSession(sshWebConverter.toInfo(request));
} catch (Exception e) { } catch (Exception e) {
log.error("sshConnect error", e); log.error("sshConnect error", e);
throw new ConnectionException("connection.ssh.error",null,e); throw new ConnectionException("connection.ssh.error", null, e);
} finally { } finally {
if (session != null) { if (session != null) {
session.disconnect(); session.disconnect();
@ -184,11 +184,11 @@ public class DataSourceController {
*/ */
@GetMapping("/datasource/{id}") @GetMapping("/datasource/{id}")
public DataResult<DataSourceVO> queryById(@PathVariable("id") Long id) { public DataResult<DataSourceVO> queryById(@PathVariable("id") Long id) {
DataResult<DataSource> dataResult = dataSourceService.queryById(id); DataResult<DataSource> dataResult = dataSourceService.queryExistent(id, DATA_SOURCE_SELECTOR);
DataSourceVO dataSourceVO = dataSourceWebConverter.dto2vo(dataResult.getData()); DataSourceVO dataSourceVO = dataSourceWebConverter.dto2vo(dataResult.getData());
if(StringUtils.isNotBlank(dataSourceVO.getUser())){ if (StringUtils.isNotBlank(dataSourceVO.getUser())) {
dataSourceVO.setAuthenticationType("1"); dataSourceVO.setAuthenticationType("1");
}else { } else {
dataSourceVO.setAuthenticationType("2"); dataSourceVO.setAuthenticationType("2");
} }
return DataResult.of(dataSourceVO); return DataResult.of(dataSourceVO);
@ -212,7 +212,7 @@ public class DataSourceController {
* @param request * @param request
* @return * @return
*/ */
@RequestMapping(value = "/datasource/update",method = {RequestMethod.POST, RequestMethod.PUT}) @RequestMapping(value = "/datasource/update", method = {RequestMethod.POST, RequestMethod.PUT})
public DataResult<Long> update(@RequestBody DataSourceUpdateRequest request) { public DataResult<Long> update(@RequestBody DataSourceUpdateRequest request) {
DataSourceUpdateParam param = dataSourceWebConverter.updateReq2param(request); DataSourceUpdateParam param = dataSourceWebConverter.updateReq2param(request);
return dataSourceService.updateWithPermission(param); return dataSourceService.updateWithPermission(param);

View File

@ -101,6 +101,11 @@ public class DataSourceVO {
*/ */
private DriverConfig driverConfig; private DriverConfig driverConfig;
/**
* 环境id
*/
private Long environmentId;
/** /**
* 环境 * 环境
*/ */