|
|
|
|
|
package com.anjiplus.template.gaea.business.modules.dataset.service.impl;
|
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
...
|
...
|
@@ -42,8 +41,8 @@ import java.util.Map; |
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @desc DataSet 数据集服务实现
|
|
|
* @author Raod
|
|
|
* @desc DataSet 数据集服务实现
|
|
|
* @date 2021-03-18 12:11:31.150755900
|
|
|
**/
|
|
|
@Service
|
...
|
...
|
@@ -99,11 +98,7 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
|
|
|
public DataSetDto getDetailSet(DataSetDto dto, String setCode) {
|
|
|
//查询参数
|
|
|
List<DataSetParam> dataSetParamList = dataSetParamService.list(
|
|
|
new QueryWrapper<DataSetParam>()
|
|
|
.lambda()
|
|
|
.eq(DataSetParam::getSetCode, setCode)
|
|
|
);
|
|
|
List<DataSetParam> dataSetParamList = dataSetParamService.list(new QueryWrapper<DataSetParam>().lambda().eq(DataSetParam::getSetCode, setCode));
|
|
|
List<DataSetParamDto> dataSetParamDtoList = new ArrayList<>();
|
|
|
dataSetParamList.forEach(dataSetParam -> {
|
|
|
DataSetParamDto dataSetParamDto = new DataSetParamDto();
|
...
|
...
|
@@ -114,12 +109,7 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
|
|
|
//数据转换
|
|
|
|
|
|
List<DataSetTransform> dataSetTransformList = dataSetTransformService.list(
|
|
|
new QueryWrapper<DataSetTransform>()
|
|
|
.lambda()
|
|
|
.eq(DataSetTransform::getSetCode, setCode)
|
|
|
.orderByAsc(DataSetTransform::getOrderNum)
|
|
|
);
|
|
|
List<DataSetTransform> dataSetTransformList = dataSetTransformService.list(new QueryWrapper<DataSetTransform>().lambda().eq(DataSetTransform::getSetCode, setCode).orderByAsc(DataSetTransform::getOrderNum));
|
|
|
List<DataSetTransformDto> dataSetTransformDtoList = new ArrayList<>();
|
|
|
dataSetTransformList.forEach(dataSetTransform -> {
|
|
|
DataSetTransformDto dataSetTransformDto = new DataSetTransformDto();
|
...
|
...
|
@@ -134,22 +124,22 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
boolean isObj = JSONUtil.isJsonObj(caseResult);
|
|
|
JSONArray jsonArray = null;
|
|
|
JSONObject jsonObject = null;
|
|
|
if(isObj){
|
|
|
if (isObj) {
|
|
|
JSONObject result = JSONObject.parseObject(caseResult);
|
|
|
Object data = result.get("data");
|
|
|
if (data instanceof JSONObject) {
|
|
|
jsonObject = (JSONObject)data;
|
|
|
jsonObject = (JSONObject) data;
|
|
|
} else {
|
|
|
jsonArray = jsonObject.getJSONArray("data");
|
|
|
jsonObject = jsonArray.getJSONObject(0);
|
|
|
}
|
|
|
} else {
|
|
|
jsonArray = JSONArray.parseArray(caseResult);
|
|
|
jsonObject = jsonArray.getJSONObject(0);
|
|
|
jsonArray = JSONArray.parseArray(caseResult);
|
|
|
jsonObject = jsonArray.getJSONObject(0);
|
|
|
}
|
|
|
dto.setSetParamList(jsonObject.keySet());
|
|
|
} catch (Exception e) {
|
|
|
log.error("error",e);
|
|
|
log.error("error", e);
|
|
|
}
|
|
|
}
|
|
|
return dto;
|
...
|
...
|
@@ -215,18 +205,10 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
deleteById(id);
|
|
|
|
|
|
//2.删除查询参数
|
|
|
dataSetParamService.delete(
|
|
|
new QueryWrapper<DataSetParam>()
|
|
|
.lambda()
|
|
|
.eq(DataSetParam::getSetCode, setCode)
|
|
|
);
|
|
|
dataSetParamService.delete(new QueryWrapper<DataSetParam>().lambda().eq(DataSetParam::getSetCode, setCode));
|
|
|
|
|
|
//3.删除数据转换
|
|
|
dataSetTransformService.delete(
|
|
|
new QueryWrapper<DataSetTransform>()
|
|
|
.lambda()
|
|
|
.eq(DataSetTransform::getSetCode, setCode)
|
|
|
);
|
|
|
dataSetTransformService.delete(new QueryWrapper<DataSetTransform>().lambda().eq(DataSetTransform::getSetCode, setCode));
|
|
|
}
|
|
|
|
|
|
/**
|
...
|
...
|
@@ -242,44 +224,58 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
String setCode = dto.getSetCode();
|
|
|
//1.获取数据集、参数替换、数据转换
|
|
|
DataSetDto dataSetDto = detailSet(setCode);
|
|
|
log.info("数据集详情:{}", dataSetDto);
|
|
|
String dynSentence = dataSetDto.getDynSentence();
|
|
|
//2.获取数据源
|
|
|
DataSource dataSource;
|
|
|
if (StringUtils.isNotBlank(dataSetDto.getSetType())
|
|
|
&& dataSetDto.getSetType().equals(SetTypeEnum.HTTP.getCodeValue())) {
|
|
|
|
|
|
if (StringUtils.isNotBlank(dataSetDto.getSetType()) && dataSetDto.getSetType().equals(SetTypeEnum.HTTP.getCodeValue())) {
|
|
|
//http不需要数据源,兼容已有的逻辑,将http所需要的数据塞进DataSource
|
|
|
dataSource = new DataSource();
|
|
|
dataSource.setSourceConfig(dynSentence);
|
|
|
dataSource.setSourceType(JdbcConstants.HTTP);
|
|
|
String body = JSONObject.parseObject(dynSentence).getString("body");
|
|
|
JSONObject jsonObject = JSONObject.parseObject(dynSentence);
|
|
|
String body = jsonObject.getString("body");
|
|
|
if (StringUtils.isNotBlank(body)) {
|
|
|
dynSentence = body;
|
|
|
}else {
|
|
|
// 替换动态参数,body中的内容与传入的参数比较,有相同的key则替换
|
|
|
Map<String, Object> contextData = dto.getContextData();
|
|
|
if (contextData != null && !contextData.isEmpty()) {
|
|
|
JSONObject bodyObj = jsonObject.getJSONObject("body");
|
|
|
bodyObj.forEach((k, v) -> {
|
|
|
Object o = contextData.get(k);
|
|
|
if (o != null) {
|
|
|
bodyObj.put(k, o);
|
|
|
}
|
|
|
});
|
|
|
dynSentence = bodyObj.toJSONString();
|
|
|
} else{
|
|
|
dynSentence = body;
|
|
|
}
|
|
|
} else {
|
|
|
dynSentence = "{}";
|
|
|
}
|
|
|
|
|
|
}else {
|
|
|
dataSource = dataSourceService.selectOne("source_code", dataSetDto.getSourceCode());
|
|
|
} else {
|
|
|
dataSource = dataSourceService.selectOne("source_code", dataSetDto.getSourceCode());
|
|
|
}
|
|
|
|
|
|
log.info("数据源详情:{}", dataSource);
|
|
|
|
|
|
//3.参数替换
|
|
|
//3.1参数校验
|
|
|
log.debug("参数校验替换前:{}", dto.getContextData());
|
|
|
// log.info("参数校验替换前:{}", dto.getContextData());
|
|
|
boolean verification = dataSetParamService.verification(dataSetDto.getDataSetParamDtoList(), dto.getContextData());
|
|
|
if (!verification) {
|
|
|
throw BusinessExceptionBuilder.build(ResponseCode.RULE_FIELDS_CHECK_ERROR);
|
|
|
}
|
|
|
dynSentence = dataSetParamService.transform(dto.getContextData(), dynSentence);
|
|
|
log.debug("参数校验替换后:{}", dto.getContextData());
|
|
|
// log.info("参数校验替换后:{}", dynSentence);
|
|
|
//4.获取数据
|
|
|
DataSourceDto dataSourceDto = new DataSourceDto();
|
|
|
BeanUtils.copyProperties(dataSource, dataSourceDto);
|
|
|
dataSourceDto.setDynSentence(dynSentence);
|
|
|
dataSourceDto.setContextData(dto.getContextData());
|
|
|
//获取total,判断contextData中是否传入分页参数
|
|
|
if (null != dto.getContextData()
|
|
|
&& dto.getContextData().containsKey("pageNumber")
|
|
|
&& dto.getContextData().containsKey("pageSize")) {
|
|
|
if (null != dto.getContextData() && dto.getContextData().containsKey("pageNumber") && dto.getContextData().containsKey("pageSize")) {
|
|
|
long total = dataSourceService.total(dataSourceDto, dto);
|
|
|
originalDataDto.setTotal(total);
|
|
|
}
|
...
|
...
|
@@ -310,12 +306,12 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
String body = JSONObject.parseObject(dynSentence).getString("body");
|
|
|
if (StringUtils.isNotBlank(body)) {
|
|
|
dynSentence = body;
|
|
|
}else {
|
|
|
} else {
|
|
|
dynSentence = "{}";
|
|
|
}
|
|
|
|
|
|
}else {
|
|
|
dataSource = dataSourceService.selectOne("source_code", sourceCode);
|
|
|
} else {
|
|
|
dataSource = dataSourceService.selectOne("source_code", sourceCode);
|
|
|
}
|
|
|
|
|
|
//3.参数替换
|
...
|
...
|
@@ -356,18 +352,13 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
@Override
|
|
|
public List<DataSet> queryAllDataSet() {
|
|
|
LambdaQueryWrapper<DataSet> wrapper = Wrappers.lambdaQuery();
|
|
|
wrapper.select(DataSet::getSetCode, DataSet::getSetName, DataSet::getSetDesc, DataSet::getId)
|
|
|
.eq(DataSet::getEnableFlag, Enabled.YES.getValue());
|
|
|
wrapper.select(DataSet::getSetCode, DataSet::getSetName, DataSet::getSetDesc, DataSet::getId).eq(DataSet::getEnableFlag, Enabled.YES.getValue());
|
|
|
wrapper.orderByDesc(DataSet::getUpdateTime);
|
|
|
return dataSetMapper.selectList(wrapper);
|
|
|
}
|
|
|
|
|
|
public void dataSetParamBatch(List<DataSetParamDto> dataSetParamDtoList,String setCode){
|
|
|
dataSetParamService.delete(
|
|
|
new QueryWrapper<DataSetParam>()
|
|
|
.lambda()
|
|
|
.eq(DataSetParam::getSetCode, setCode)
|
|
|
);
|
|
|
public void dataSetParamBatch(List<DataSetParamDto> dataSetParamDtoList, String setCode) {
|
|
|
dataSetParamService.delete(new QueryWrapper<DataSetParam>().lambda().eq(DataSetParam::getSetCode, setCode));
|
|
|
if (null == dataSetParamDtoList || dataSetParamDtoList.size() <= 0) {
|
|
|
return;
|
|
|
}
|
...
|
...
|
@@ -384,12 +375,8 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
|
|
|
}
|
|
|
|
|
|
public void dataSetTransformBatch(List<DataSetTransformDto> dataSetTransformDtoList,String setCode){
|
|
|
dataSetTransformService.delete(
|
|
|
new QueryWrapper<DataSetTransform>()
|
|
|
.lambda()
|
|
|
.eq(DataSetTransform::getSetCode, setCode)
|
|
|
);
|
|
|
public void dataSetTransformBatch(List<DataSetTransformDto> dataSetTransformDtoList, String setCode) {
|
|
|
dataSetTransformService.delete(new QueryWrapper<DataSetTransform>().lambda().eq(DataSetTransform::getSetCode, setCode));
|
|
|
if (null == dataSetTransformDtoList || dataSetTransformDtoList.size() <= 0) {
|
|
|
return;
|
|
|
}
|
...
|
...
|
@@ -408,10 +395,11 @@ public class DataSetServiceImpl implements DataSetService { |
|
|
|
|
|
/**
|
|
|
* dataSetParamDtoList转map
|
|
|
*
|
|
|
* @param dataSetParamDtoList
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Object> setContextData(List<DataSetParamDto> dataSetParamDtoList){
|
|
|
public Map<String, Object> setContextData(List<DataSetParamDto> dataSetParamDtoList) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
if (null != dataSetParamDtoList && dataSetParamDtoList.size() > 0) {
|
|
|
dataSetParamDtoList.forEach(dataSetParamDto -> map.put(dataSetParamDto.getParamName(), dataSetParamDto.getSampleItem()));
|
...
|
...
|
|