forked from github/dataease
feat: 校验数据源状态时,同时刷新左侧菜单中数据源的状态
This commit is contained in:
parent
378a034f85
commit
4eaaf2273e
@ -7,6 +7,7 @@ import io.dataease.base.domain.Datasource;
|
|||||||
import io.dataease.commons.utils.AuthUtils;
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.PageUtils;
|
import io.dataease.commons.utils.PageUtils;
|
||||||
import io.dataease.commons.utils.Pager;
|
import io.dataease.commons.utils.Pager;
|
||||||
|
import io.dataease.controller.ResultHolder;
|
||||||
import io.dataease.controller.request.DatasourceUnionRequest;
|
import io.dataease.controller.request.DatasourceUnionRequest;
|
||||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||||
import io.dataease.datasource.dto.DBTableDTO;
|
import io.dataease.datasource.dto.DBTableDTO;
|
||||||
@ -41,6 +42,13 @@ public class DatasourceController {
|
|||||||
datasourceService.validate(datasource);
|
datasourceService.validate(datasource);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("验证数据源")
|
||||||
|
@GetMapping("/validate/{datasourceId}")
|
||||||
|
public ResultHolder validate(@PathVariable String datasourceId) {
|
||||||
|
return datasourceService.validate(datasourceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("查询当前用户数据源")
|
@ApiOperation("查询当前用户数据源")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public List<DatasourceDTO> getDatasourceList() throws Exception {
|
public List<DatasourceDTO> getDatasourceList() throws Exception {
|
||||||
|
@ -9,6 +9,7 @@ import io.dataease.commons.exception.DEException;
|
|||||||
import io.dataease.commons.utils.AuthUtils;
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.CommonThreadPool;
|
import io.dataease.commons.utils.CommonThreadPool;
|
||||||
import io.dataease.commons.utils.LogUtil;
|
import io.dataease.commons.utils.LogUtil;
|
||||||
|
import io.dataease.controller.ResultHolder;
|
||||||
import io.dataease.controller.request.DatasourceUnionRequest;
|
import io.dataease.controller.request.DatasourceUnionRequest;
|
||||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||||
import io.dataease.controller.sys.base.ConditionEntity;
|
import io.dataease.controller.sys.base.ConditionEntity;
|
||||||
@ -126,13 +127,23 @@ public class DatasourceService {
|
|||||||
datasourceProvider.checkStatus(datasourceRequest);
|
datasourceProvider.checkStatus(datasourceRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validate(String datasourceId) throws Exception {
|
public ResultHolder validate(String datasourceId) {
|
||||||
if(StringUtils.isEmpty(datasourceId)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Datasource datasource = datasourceMapper.selectByPrimaryKey(datasourceId);
|
Datasource datasource = datasourceMapper.selectByPrimaryKey(datasourceId);
|
||||||
validate(datasource);
|
if(datasource == null){
|
||||||
|
return ResultHolder.error("Can not find datasource: "+ datasourceId);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
validate(datasource);
|
||||||
|
datasource.setStatus("Success");
|
||||||
|
return ResultHolder.success("Success");
|
||||||
|
}catch (Exception e){
|
||||||
|
datasource.setStatus("Error");
|
||||||
|
return ResultHolder.error("Datasource is invalid: " + e.getMessage());
|
||||||
|
}finally {
|
||||||
|
datasourceMapper.updateByPrimaryKey(datasource);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getSchema(Datasource datasource) throws Exception {
|
public List<String> getSchema(Datasource datasource) throws Exception {
|
||||||
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
|
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
|
||||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||||
|
@ -50,6 +50,14 @@ export function validateDs(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function validateDsById(datasourceId) {
|
||||||
|
return request({
|
||||||
|
url: 'datasource/validate/' + datasourceId,
|
||||||
|
method: 'get',
|
||||||
|
loading: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function getSchema(data) {
|
export function getSchema(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'datasource/getSchema/',
|
url: 'datasource/getSchema/',
|
||||||
|
@ -100,7 +100,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import LayoutContent from '@/components/business/LayoutContent'
|
import LayoutContent from '@/components/business/LayoutContent'
|
||||||
import { addDs, editDs, getSchema, validateDs } from '@/api/system/datasource'
|
import { addDs, editDs, getSchema, validateDs, validateDsById } from '@/api/system/datasource'
|
||||||
import { $confirm } from '@/utils/message'
|
import { $confirm } from '@/utils/message'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -276,9 +276,29 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
const data = JSON.parse(JSON.stringify(this.form))
|
const data = JSON.parse(JSON.stringify(this.form))
|
||||||
data.configuration = JSON.stringify(data.configuration)
|
data.configuration = JSON.stringify(data.configuration)
|
||||||
validateDs(data).then(res => {
|
if(data.showModel === 'show' && !this.canEdit){
|
||||||
this.$success(this.$t('datasource.validate_success'))
|
validateDsById(data.id).then(res => {
|
||||||
})
|
if(res.success === 'true'){
|
||||||
|
this.$success(this.$t('datasource.validate_success'))
|
||||||
|
}else {
|
||||||
|
this.$error(this.$t(res.message))
|
||||||
|
}
|
||||||
|
this.refreshTree()
|
||||||
|
}).catch(res => {
|
||||||
|
this.$error(res.message)
|
||||||
|
})
|
||||||
|
|
||||||
|
}else {
|
||||||
|
validateDs(data).then(res => {
|
||||||
|
if(res.success === 'true'){
|
||||||
|
this.$success(this.$t('datasource.validate_success'))
|
||||||
|
}else {
|
||||||
|
this.$error(this.$t(res.message))
|
||||||
|
}
|
||||||
|
}).catch(res => {
|
||||||
|
this.$error(res.message)
|
||||||
|
})
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user