perf:优化了一些代码

This commit is contained in:
zhantiao@tiduyun.com 2022-11-10 17:32:45 +08:00
parent 897782c26e
commit aaca041e0a
10 changed files with 71 additions and 78 deletions

View File

@ -181,7 +181,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public boolean supportLdap() { public boolean supportLdap() {
Map<String, LdapXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LdapXpackService.class)); Map<String, LdapXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LdapXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
LdapXpackService ldapXpackService = SpringContextUtil.getBean(LdapXpackService.class); LdapXpackService ldapXpackService = SpringContextUtil.getBean(LdapXpackService.class);
if (ObjectUtils.isEmpty(ldapXpackService)) return false; if (ObjectUtils.isEmpty(ldapXpackService)) return false;
return ldapXpackService.isOpen(); return ldapXpackService.isOpen();
@ -190,7 +190,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportOidc() { public Boolean supportOidc() {
Map<String, OidcXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((OidcXpackService.class)); Map<String, OidcXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((OidcXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
OidcXpackService oidcXpackService = SpringContextUtil.getBean(OidcXpackService.class); OidcXpackService oidcXpackService = SpringContextUtil.getBean(OidcXpackService.class);
if (ObjectUtils.isEmpty(oidcXpackService)) return false; if (ObjectUtils.isEmpty(oidcXpackService)) return false;
return oidcXpackService.isSupportOIDC(); return oidcXpackService.isSupportOIDC();
@ -199,7 +199,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportCas() { public Boolean supportCas() {
Map<String, CasXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((CasXpackService.class)); Map<String, CasXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((CasXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
CasXpackService casXpackService = SpringContextUtil.getBean(CasXpackService.class); CasXpackService casXpackService = SpringContextUtil.getBean(CasXpackService.class);
if (ObjectUtils.isEmpty(casXpackService)) return false; if (ObjectUtils.isEmpty(casXpackService)) return false;
return casXpackService.supportCas(); return casXpackService.supportCas();
@ -208,7 +208,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportWecom() { public Boolean supportWecom() {
Map<String, WecomXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((WecomXpackService.class)); Map<String, WecomXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((WecomXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
WecomXpackService wecomXpackService = SpringContextUtil.getBean(WecomXpackService.class); WecomXpackService wecomXpackService = SpringContextUtil.getBean(WecomXpackService.class);
if (ObjectUtils.isEmpty(wecomXpackService)) return false; if (ObjectUtils.isEmpty(wecomXpackService)) return false;
return wecomXpackService.isOpen(); return wecomXpackService.isOpen();
@ -217,7 +217,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportDingtalk() { public Boolean supportDingtalk() {
Map<String, DingtalkXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((DingtalkXpackService.class)); Map<String, DingtalkXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((DingtalkXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
DingtalkXpackService dingtalkXpackService = SpringContextUtil.getBean(DingtalkXpackService.class); DingtalkXpackService dingtalkXpackService = SpringContextUtil.getBean(DingtalkXpackService.class);
if (ObjectUtils.isEmpty(dingtalkXpackService)) return false; if (ObjectUtils.isEmpty(dingtalkXpackService)) return false;
return dingtalkXpackService.isOpen(); return dingtalkXpackService.isOpen();
@ -226,7 +226,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportLark() { public Boolean supportLark() {
Map<String, LarkXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LarkXpackService.class)); Map<String, LarkXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LarkXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class); LarkXpackService larkXpackService = SpringContextUtil.getBean(LarkXpackService.class);
if (ObjectUtils.isEmpty(larkXpackService)) return false; if (ObjectUtils.isEmpty(larkXpackService)) return false;
return larkXpackService.isOpen(); return larkXpackService.isOpen();
@ -235,7 +235,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportLarksuite() { public Boolean supportLarksuite() {
Map<String, LarksuiteXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LarksuiteXpackService.class)); Map<String, LarksuiteXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LarksuiteXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
LarksuiteXpackService larkXpackService = SpringContextUtil.getBean(LarksuiteXpackService.class); LarksuiteXpackService larkXpackService = SpringContextUtil.getBean(LarksuiteXpackService.class);
if (ObjectUtils.isEmpty(larkXpackService)) return false; if (ObjectUtils.isEmpty(larkXpackService)) return false;
return larkXpackService.isOpen(); return larkXpackService.isOpen();
@ -244,7 +244,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean supportLoginLimit() { public Boolean supportLoginLimit() {
Map<String, LoginLimitXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LoginLimitXpackService.class)); Map<String, LoginLimitXpackService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((LoginLimitXpackService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
LoginLimitXpackService loginLimitXpackService = SpringContextUtil.getBean(LoginLimitXpackService.class); LoginLimitXpackService loginLimitXpackService = SpringContextUtil.getBean(LoginLimitXpackService.class);
if (ObjectUtils.isEmpty(loginLimitXpackService)) return false; if (ObjectUtils.isEmpty(loginLimitXpackService)) return false;
return loginLimitXpackService.isOpen(); return loginLimitXpackService.isOpen();
@ -253,7 +253,7 @@ public class AuthUserServiceImpl implements AuthUserService {
@Override @Override
public Boolean pluginLoaded() { public Boolean pluginLoaded() {
Map<String, PluginCommonService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((PluginCommonService.class)); Map<String, PluginCommonService> beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((PluginCommonService.class));
if (beansOfType.keySet().size() == 0) return false; if (beansOfType.keySet().isEmpty()) return false;
PluginCommonService pluginCommonService = SpringContextUtil.getBean(PluginCommonService.class); PluginCommonService pluginCommonService = SpringContextUtil.getBean(PluginCommonService.class);
if (ObjectUtils.isEmpty(pluginCommonService)) return false; if (ObjectUtils.isEmpty(pluginCommonService)) return false;
return pluginCommonService.isPluginLoaded(); return pluginCommonService.isPluginLoaded();

View File

@ -1,12 +1,19 @@
package io.dataease.auth.service.impl; package io.dataease.auth.service.impl;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import io.dataease.auth.api.dto.DynamicMenuDto; import io.dataease.auth.api.dto.DynamicMenuDto;
import io.dataease.auth.api.dto.MenuMeta; import io.dataease.auth.api.dto.MenuMeta;
import io.dataease.auth.service.DynamicMenuService; import io.dataease.auth.service.DynamicMenuService;
import io.dataease.plugins.common.base.domain.SysMenu;
import io.dataease.plugins.common.base.mapper.SysMenuMapper;
import io.dataease.ext.ExtPluginSysMenuMapper; import io.dataease.ext.ExtPluginSysMenuMapper;
import io.dataease.ext.ExtSysMenuMapper; import io.dataease.ext.ExtSysMenuMapper;
import io.dataease.plugins.common.base.domain.SysMenu;
import io.dataease.plugins.common.base.mapper.SysMenuMapper;
import io.dataease.plugins.common.dto.PluginSysMenu; import io.dataease.plugins.common.dto.PluginSysMenu;
import io.dataease.plugins.util.PluginUtils; import io.dataease.plugins.util.PluginUtils;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@ -15,13 +22,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service @Service
public class DynamicMenuServiceImpl implements DynamicMenuService { public class DynamicMenuServiceImpl implements DynamicMenuService {
@ -50,7 +50,7 @@ public class DynamicMenuServiceImpl implements DynamicMenuService {
int sortIndex2 = null == s2.getMenuSort() ? 999 : s2.getMenuSort(); int sortIndex2 = null == s2.getMenuSort() ? 999 : s2.getMenuSort();
return sortIndex1 - sortIndex2; return sortIndex1 - sortIndex2;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
dynamicMenuDtos.sort((s1, s2) -> s1.getHidden().compareTo(s2.getHidden())); dynamicMenuDtos.sort(Comparator.comparing(DynamicMenuDto::getHidden));
return buildTree(dynamicMenuDtos); return buildTree(dynamicMenuDtos);
} }
@ -91,7 +91,7 @@ public class DynamicMenuServiceImpl implements DynamicMenuService {
dynamicMenuDto.setMenuSort(sysMenu.getMenuSort()); dynamicMenuDto.setMenuSort(sysMenu.getMenuSort());
dynamicMenuDto.setHidden(sysMenu.getHidden()); dynamicMenuDto.setHidden(sysMenu.getHidden());
dynamicMenuDto.setIsPlugin(true); dynamicMenuDto.setIsPlugin(true);
dynamicMenuDto.setNoLayout(!!sysMenu.isNoLayout()); dynamicMenuDto.setNoLayout(sysMenu.isNoLayout());
return dynamicMenuDto; return dynamicMenuDto;
} }
@ -104,7 +104,7 @@ public class DynamicMenuServiceImpl implements DynamicMenuService {
lists.forEach(tNode -> { lists.forEach(tNode -> {
if (tNode.getPid().equals(node.getId())) { if (tNode.getPid().equals(node.getId())) {
if (node.getChildren() == null) { if (node.getChildren() == null) {
node.setChildren(new ArrayList<DynamicMenuDto>()); node.setChildren(new ArrayList<>());
node.setRedirect(node.getPath() + "/" + tNode.getPath());//第一个子节点的path node.setRedirect(node.getPath() + "/" + tNode.getPath());//第一个子节点的path
} }
node.getChildren().add(tNode); node.getChildren().add(tNode);

View File

@ -121,6 +121,7 @@ public class ExtAuthServiceImpl implements ExtAuthService {
return extAuthMapper.panelIdByDept(deptId.toString()); return extAuthMapper.panelIdByDept(deptId.toString());
} }
@Override
@Caching(evict = { @Caching(evict = {
@CacheEvict(value = AuthConstants.USER_LINK_NAME, key = "'user' + #userId"), @CacheEvict(value = AuthConstants.USER_LINK_NAME, key = "'user' + #userId"),
@CacheEvict(value = AuthConstants.USER_DATASET_NAME, key = "'user' + #userId"), @CacheEvict(value = AuthConstants.USER_DATASET_NAME, key = "'user' + #userId"),
@ -130,6 +131,7 @@ public class ExtAuthServiceImpl implements ExtAuthService {
LogUtil.info("all permission resource of user {} is cleaning...", userId); LogUtil.info("all permission resource of user {} is cleaning...", userId);
} }
@Override
@Caching(evict = { @Caching(evict = {
@CacheEvict(value = AuthConstants.DEPT_LINK_NAME, key = "'dept' + #deptId"), @CacheEvict(value = AuthConstants.DEPT_LINK_NAME, key = "'dept' + #deptId"),
@CacheEvict(value = AuthConstants.DEPT_DATASET_NAME, key = "'dept' + #deptId"), @CacheEvict(value = AuthConstants.DEPT_DATASET_NAME, key = "'dept' + #deptId"),
@ -139,6 +141,7 @@ public class ExtAuthServiceImpl implements ExtAuthService {
LogUtil.info("all permission resource of dept {} is cleaning...", deptId); LogUtil.info("all permission resource of dept {} is cleaning...", deptId);
} }
@Override
@Caching(evict = { @Caching(evict = {
@CacheEvict(value = AuthConstants.ROLE_LINK_NAME, key = "'role' + #roleId"), @CacheEvict(value = AuthConstants.ROLE_LINK_NAME, key = "'role' + #roleId"),
@CacheEvict(value = AuthConstants.ROLE_DATASET_NAME, key = "'role' + #roleId"), @CacheEvict(value = AuthConstants.ROLE_DATASET_NAME, key = "'role' + #roleId"),
@ -154,14 +157,13 @@ public class ExtAuthServiceImpl implements ExtAuthService {
if (StringUtils.isNotBlank(s)) { if (StringUtils.isNotBlank(s)) {
String[] split = s.split(","); String[] split = s.split(",");
List<String> results = new ArrayList<>(); List<String> results = new ArrayList<>();
for (int i = 0; i < split.length; i++) { for (String s1 : split) {
String s1 = split[i];
if (StringUtils.isNotBlank(s1)) { if (StringUtils.isNotBlank(s1)) {
results.add(s1); results.add(s1);
} }
} }
return CollectionUtils.isEmpty(results) ? null : results; return CollectionUtils.isEmpty(results) ? null : results;
} }
return null; return Collections.emptyList();
} }
} }

View File

@ -1,6 +1,13 @@
package io.dataease.controller.datasource; package io.dataease.controller.datasource;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DeLog; import io.dataease.auth.annotation.DeLog;
import io.dataease.auth.annotation.DePermission; import io.dataease.auth.annotation.DePermission;
import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.DePermissionType;
@ -19,17 +26,16 @@ import io.dataease.plugins.common.base.domain.Datasource;
import io.dataease.service.datasource.DatasourceService; import io.dataease.service.datasource.DatasourceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
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.RestController;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
@Api(tags = "数据源:数据源管理") @Api(tags = "数据源:数据源管理")
@ApiSupport(order = 30) @ApiSupport(order = 30)
@RequestMapping("datasource") @RequestMapping("datasource")
@ -56,7 +62,7 @@ public class DatasourceController {
@RequiresPermissions("datasource:read") @RequiresPermissions("datasource:read")
@ApiOperation("数据源类型") @ApiOperation("数据源类型")
@GetMapping("/types") @GetMapping("/types")
public Collection types() throws Exception { public Collection types() {
return datasourceService.types(); return datasourceService.types();
} }
@ -84,7 +90,7 @@ public class DatasourceController {
@ApiOperation("查询数据源详情") @ApiOperation("查询数据源详情")
@PostMapping("/get/{id}") @PostMapping("/get/{id}")
public DatasourceDTO getDatasource(@PathVariable String id) throws Exception { public DatasourceDTO getDatasource(@PathVariable String id) {
return datasourceService.getDataSourceDetails(id); return datasourceService.getDataSourceDetails(id);
} }

View File

@ -21,14 +21,14 @@ public class EngineController {
@ApiIgnore @ApiIgnore
@GetMapping("/mode") @GetMapping("/mode")
public String runMode() throws Exception{ public String runMode(){
return engineService.mode(); return engineService.mode();
} }
@RequiresPermissions("sysparam:read") @RequiresPermissions("sysparam:read")
@ApiOperation("引擎信息") @ApiOperation("引擎信息")
@GetMapping("/info") @GetMapping("/info")
public DeEngine info() throws Exception{ public DeEngine info(){
return engineService.info(); return engineService.info();
} }

View File

@ -34,14 +34,14 @@ public class KettleController {
@ApiIgnore @ApiIgnore
@PostMapping("validate") @PostMapping("validate")
public void validate(@RequestBody KettleDTO kettleDTO) throws Exception{ public void validate(@RequestBody KettleDTO kettleDTO) {
kettleService.validate(kettleDTO); kettleService.validate(kettleDTO);
} }
@RequiresPermissions("sysparam:read") @RequiresPermissions("sysparam:read")
@ApiOperation("校验") @ApiOperation("校验")
@PostMapping("validate/{id}") @PostMapping("validate/{id}")
public ResultHolder validate(@PathVariable String id) throws Exception{ public ResultHolder validate(@PathVariable String id){
return kettleService.validate(id); return kettleService.validate(id);
} }
@ -56,7 +56,7 @@ public class KettleController {
@RequiresPermissions("sysparam:read") @RequiresPermissions("sysparam:read")
@ApiOperation("删除") @ApiOperation("删除")
@DeleteMapping("delete/{id}") @DeleteMapping("delete/{id}")
public void delete(@PathVariable String id) throws Exception{ public void delete(@PathVariable String id){
kettleService.delete(id); kettleService.delete(id);
} }
} }

View File

@ -80,10 +80,10 @@ public class DirectFieldService implements DataSetFieldService {
public List<Object> fieldValues(List<String> fieldIds, DeSortDTO sortDTO, Long userId, Boolean userPermissions, Boolean needMapping, Boolean rowAndColumnMgm) throws Exception { public List<Object> fieldValues(List<String> fieldIds, DeSortDTO sortDTO, Long userId, Boolean userPermissions, Boolean needMapping, Boolean rowAndColumnMgm) throws Exception {
String fieldId = fieldIds.get(0); String fieldId = fieldIds.get(0);
DatasetTableField field = dataSetTableFieldsService.selectByPrimaryKey(fieldId); DatasetTableField field = dataSetTableFieldsService.selectByPrimaryKey(fieldId);
if (field == null || StringUtils.isEmpty(field.getTableId())) return null; if (field == null || StringUtils.isEmpty(field.getTableId())) return Collections.emptyList();
DatasetTable datasetTable = dataSetTableService.get(field.getTableId()); DatasetTable datasetTable = dataSetTableService.get(field.getTableId());
if (ObjectUtils.isEmpty(datasetTable) || StringUtils.isEmpty(datasetTable.getName())) return null; if (ObjectUtils.isEmpty(datasetTable) || StringUtils.isEmpty(datasetTable.getName())) return Collections.emptyList();
DatasetTableField datasetTableField = DatasetTableField.builder().tableId(field.getTableId()).checked(Boolean.TRUE).build(); DatasetTableField datasetTableField = DatasetTableField.builder().tableId(field.getTableId()).checked(Boolean.TRUE).build();
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField); List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
@ -174,8 +174,7 @@ public class DirectFieldService implements DataSetFieldService {
LogUtil.info(datasourceRequest.getQuery()); LogUtil.info(datasourceRequest.getQuery());
List<String[]> rows = datasourceProvider.getData(datasourceRequest); List<String[]> rows = datasourceProvider.getData(datasourceRequest);
if (!needMapping) { if (!needMapping) {
List<Object> results = rows.stream().map(row -> row[0]).distinct().collect(Collectors.toList()); return rows.stream().map(row -> row[0]).distinct().collect(Collectors.toList());
return results;
} }
Set<String> pkSet = new HashSet<>(); Set<String> pkSet = new HashSet<>();
@ -192,9 +191,9 @@ public class DirectFieldService implements DataSetFieldService {
String text = row[i]; String text = row[i];
parentPkList.add(text); parentPkList.add(text);
String val = parentPkList.stream().collect(Collectors.joining(TreeUtils.SEPARATOR)); String val = String.join(TreeUtils.SEPARATOR, parentPkList);
String parentVal = i == 0 ? TreeUtils.DEFAULT_ROOT : row[i - 1]; String parentVal = i == 0 ? TreeUtils.DEFAULT_ROOT : row[i - 1];
String pk = parentPkList.stream().collect(Collectors.joining(TreeUtils.SEPARATOR)); String pk = String.join(TreeUtils.SEPARATOR, parentPkList);
if (pkSet.contains(pk)) continue; if (pkSet.contains(pk)) continue;
pkSet.add(pk); pkSet.add(pk);
BaseTreeNode node = new BaseTreeNode(val, parentVal, text, pk + TreeUtils.SEPARATOR + i); BaseTreeNode node = new BaseTreeNode(val, parentVal, text, pk + TreeUtils.SEPARATOR + i);

View File

@ -94,11 +94,8 @@ public class DatasourceService {
private ExtTaskInstanceMapper extTaskInstanceMapper; private ExtTaskInstanceMapper extTaskInstanceMapper;
public Collection<DataSourceType> types() { public Collection<DataSourceType> types() {
Collection<DataSourceType> types = new ArrayList<>(); Collection<DataSourceType> types = new ArrayList<>(SpringContextUtil.getApplicationContext().getBeansOfType(DataSourceType.class).values());
types.addAll(SpringContextUtil.getApplicationContext().getBeansOfType(DataSourceType.class).values()); SpringContextUtil.getApplicationContext().getBeansOfType(io.dataease.plugins.datasource.service.DatasourceService.class).values().forEach(datasourceService -> types.add(datasourceService.getDataSourceType()));
SpringContextUtil.getApplicationContext().getBeansOfType(io.dataease.plugins.datasource.service.DatasourceService.class).values().forEach(datasourceService -> {
types.add(datasourceService.getDataSourceType());
});
return types; return types;
} }
@ -148,12 +145,10 @@ public class DatasourceService {
}); });
} }
public List<DatasourceDTO> getDatasourceList(DatasourceUnionRequest request) throws Exception { public List<DatasourceDTO> getDatasourceList(DatasourceUnionRequest request) {
request.setSort("update_time desc"); request.setSort("update_time desc");
List<DatasourceDTO> datasourceDTOS = extDataSourceMapper.queryUnion(request); List<DatasourceDTO> datasourceDTOS = extDataSourceMapper.queryUnion(request);
datasourceDTOS.forEach(datasourceDTO -> { datasourceDTOS.forEach(this::datasourceTrans);
datasourceTrans(datasourceDTO);
});
return datasourceDTOS; return datasourceDTOS;
} }
@ -434,15 +429,13 @@ public class DatasourceService {
public void initAllDataSourceConnectionPool() { public void initAllDataSourceConnectionPool() {
List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample()); List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample());
datasources.forEach(datasource -> { datasources.forEach(datasource -> commonThreadPool.addTask(() -> {
commonThreadPool.addTask(() -> { try {
try { handleConnectionPool(datasource, "add");
handleConnectionPool(datasource, "add"); } catch (Exception e) {
} catch (Exception e) { LogUtil.error("Failed to init datasource: " + datasource.getName(), e);
LogUtil.error("Failed to init datasource: " + datasource.getName(), e); }
} }));
});
});
} }
public void checkName(String datasourceName, String type, String id) { public void checkName(String datasourceName, String type, String id) {

View File

@ -41,9 +41,9 @@ public class EngineService {
@Resource @Resource
private DatasourceService datasource; private DatasourceService datasource;
static private List<String> simple_engine = Arrays.asList("engine_mysql"); private static List<String> simple_engine = Collections.singletonList("engine_mysql");
static private List<String> cluster_engine = Arrays.asList("engine_doris"); private static List<String> cluster_engine = Collections.singletonList("engine_doris");
public Boolean isLocalMode() { public Boolean isLocalMode() {
return env.getProperty("engine_mode", "local").equalsIgnoreCase("local"); return env.getProperty("engine_mode", "local").equalsIgnoreCase("local");
@ -88,7 +88,7 @@ public class EngineService {
return ResultHolder.error("Engine is invalid: " + e.getMessage()); return ResultHolder.error("Engine is invalid: " + e.getMessage());
} }
if (datasource.getType().equalsIgnoreCase("engine_doris")) { if ("engine_doris".equalsIgnoreCase(datasource.getType())) {
DorisConfiguration dorisConfiguration = new Gson().fromJson(datasource.getConfiguration(), DorisConfiguration.class); DorisConfiguration dorisConfiguration = new Gson().fromJson(datasource.getConfiguration(), DorisConfiguration.class);
HttpClientConfig httpClientConfig = new HttpClientConfig(); HttpClientConfig httpClientConfig = new HttpClientConfig();
String authValue = "Basic " + Base64.getUrlEncoder().encodeToString((dorisConfiguration.getUsername() String authValue = "Basic " + Base64.getUrlEncoder().encodeToString((dorisConfiguration.getUsername()
@ -165,7 +165,7 @@ public class EngineService {
Datasource datasource = new Datasource(); Datasource datasource = new Datasource();
if (isLocalMode()) { if (isLocalMode()) {
Map jsonObjectMap = new HashMap(); Map<String, String> jsonObjectMap = new HashMap<>();
jsonObjectMap.put("dataSourceType", "jdbc"); jsonObjectMap.put("dataSourceType", "jdbc");
jsonObjectMap.put("dataBase", env.getProperty("doris.db", "doris")); jsonObjectMap.put("dataBase", env.getProperty("doris.db", "doris"));
jsonObjectMap.put("username", env.getProperty("doris.user", "root")); jsonObjectMap.put("username", env.getProperty("doris.user", "root"));
@ -222,7 +222,6 @@ public class EngineService {
if (!matcher.find()) { if (!matcher.find()) {
return; return;
} }
;
mysqlConfiguration.setHost(matcher.group(1)); mysqlConfiguration.setHost(matcher.group(1));
mysqlConfiguration.setPort(Integer.valueOf(matcher.group(2))); mysqlConfiguration.setPort(Integer.valueOf(matcher.group(2)));
mysqlConfiguration.setDataBase(matcher.group(3).split("\\?")[0]); mysqlConfiguration.setDataBase(matcher.group(3).split("\\?")[0]);

View File

@ -32,7 +32,7 @@ public class KettleService {
@Resource @Resource
private EngineService engineService; private EngineService engineService;
public ResultHolder save(DeEngine kettle) throws Exception { public ResultHolder save(DeEngine kettle) {
try { try {
validate(new Gson().fromJson(kettle.getConfiguration(), KettleDTO.class)); validate(new Gson().fromJson(kettle.getConfiguration(), KettleDTO.class));
kettle.setStatus("Success"); kettle.setStatus("Success");
@ -54,12 +54,12 @@ public class KettleService {
deEngineMapper.deleteByPrimaryKey(id); deEngineMapper.deleteByPrimaryKey(id);
} }
public void validate(KettleDTO kettleDTO) throws Exception { public void validate(KettleDTO kettleDTO) {
HttpClientConfig httpClientConfig = new HttpClientConfig(); HttpClientConfig httpClientConfig = new HttpClientConfig();
String authValue = "Basic " + Base64.getUrlEncoder().encodeToString((kettleDTO.getUser() String authValue = "Basic " + Base64.getUrlEncoder().encodeToString((kettleDTO.getUser()
+ ":" + kettleDTO.getPasswd()).getBytes()); + ":" + kettleDTO.getPasswd()).getBytes());
httpClientConfig.addHeader("Authorization", authValue); httpClientConfig.addHeader("Authorization", authValue);
String response = HttpClientUtil.get("http://" + kettleDTO.getCarte() + ":" + kettleDTO.getPort() + "/kettle/status/", httpClientConfig); HttpClientUtil.get("http://" + kettleDTO.getCarte() + ":" + kettleDTO.getPort() + "/kettle/status/", httpClientConfig);
} }
public ResultHolder validate(String id) { public ResultHolder validate(String id) {
@ -87,9 +87,7 @@ public class KettleService {
return; return;
} }
List<DeEngine>kettles = pageList(); List<DeEngine>kettles = pageList();
kettles.forEach(kettle -> { kettles.forEach(kettle -> validate(kettle.getId()));
validate(kettle.getId());
});
} }
public SlaveServer getSlaveServer() throws Exception{ public SlaveServer getSlaveServer() throws Exception{
@ -132,11 +130,7 @@ public class KettleService {
if(engineService.isClusterMode()){ if(engineService.isClusterMode()){
List<DeEngine> kettles = pageList().stream().filter(kettle -> kettle.getStatus() != null && kettle.getStatus().equalsIgnoreCase("Success")) List<DeEngine> kettles = pageList().stream().filter(kettle -> kettle.getStatus() != null && kettle.getStatus().equalsIgnoreCase("Success"))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(CollectionUtils.isEmpty(kettles)){ return !CollectionUtils.isEmpty(kettles);
return false;
}else {
return true;
}
} }
return false; return false;
} }