Authored by 王涛

请求接口参数优化;

... ... @@ -132,6 +132,12 @@
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.1</version>
</dependency>
</dependencies>
<developers>
... ...
package com.anjiplus.template.gaea.business.modules.dataset.service.impl;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.anji.plus.gaea.constant.Enabled;
... ... @@ -41,10 +42,10 @@ import java.util.Map;
import java.util.stream.Collectors;
/**
* @desc DataSet 数据集服务实现
* @author Raod
* @date 2021-03-18 12:11:31.150755900
**/
* @desc DataSet 数据集服务实现
* @author Raod
* @date 2021-03-18 12:11:31.150755900
**/
@Service
//@RequiredArgsConstructor
@Slf4j
... ... @@ -64,7 +65,7 @@ public class DataSetServiceImpl implements DataSetService {
@Override
public GaeaBaseMapper<DataSet> getMapper() {
return dataSetMapper;
return dataSetMapper;
}
/**
... ... @@ -115,9 +116,9 @@ public class DataSetServiceImpl implements DataSetService {
List<DataSetTransform> dataSetTransformList = dataSetTransformService.list(
new QueryWrapper<DataSetTransform>()
.lambda()
.eq(DataSetTransform::getSetCode, setCode)
.orderByAsc(DataSetTransform::getOrderNum)
.lambda()
.eq(DataSetTransform::getSetCode, setCode)
.orderByAsc(DataSetTransform::getOrderNum)
);
List<DataSetTransformDto> dataSetTransformDtoList = new ArrayList<>();
dataSetTransformList.forEach(dataSetTransform -> {
... ... @@ -129,8 +130,23 @@ public class DataSetServiceImpl implements DataSetService {
if (StringUtils.isNotBlank(dto.getCaseResult())) {
try {
JSONArray jsonArray = JSONArray.parseArray(dto.getCaseResult());
JSONObject jsonObject = jsonArray.getJSONObject(0);
String caseResult = dto.getCaseResult();
boolean isObj = JSONUtil.isJsonObj(caseResult);
JSONArray jsonArray = null;
JSONObject jsonObject = null;
if(isObj){
JSONObject result = JSONObject.parseObject(caseResult);
Object data = result.get("data");
if (data instanceof JSONObject) {
jsonObject = (JSONObject)data;
} else {
jsonArray = jsonObject.getJSONArray("data");
jsonObject = jsonArray.getJSONObject(0);
}
} else {
jsonArray = JSONArray.parseArray(caseResult);
jsonObject = jsonArray.getJSONObject(0);
}
dto.setSetParamList(jsonObject.keySet());
} catch (Exception e) {
log.error("error",e);
... ... @@ -299,7 +315,7 @@ public class DataSetServiceImpl implements DataSetService {
}
}else {
dataSource = dataSourceService.selectOne("source_code", sourceCode);
dataSource = dataSourceService.selectOne("source_code", sourceCode);
}
//3.参数替换
... ...
package com.anjiplus.template.gaea.business.modules.reportshare.dao.entity;
import com.alibaba.fastjson.JSONObject;
import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -8,10 +9,10 @@ import lombok.Data;
import java.util.Date;
/**
* @description 报表分享 entity
* @author Raod
* @date 2021-08-18 13:37:26.663
**/
* @description 报表分享 entity
* @author Raod
* @date 2021-08-18 13:37:26.663
**/
@TableName(keepGlobalPrefix=true, value="gaea_report_share")
@Data
public class ReportShare extends GaeaBaseEntity {
... ... @@ -46,5 +47,13 @@ public class ReportShare extends GaeaBaseEntity {
@TableField(exist = false)
private boolean sharePasswordFlag;
/**
* 通过分享连接传递过来的参数 &a=1&b=2
* <p>
* 作者: Wang
* 时间:2022/2/17 11:42
*/
@TableField(exist = false)
private JSONObject params;
}
... ...
package com.anjiplus.template.gaea.business.modules.reportshare.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.anji.plus.gaea.constant.BaseOperationEnum;
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
import com.anji.plus.gaea.exception.BusinessException;
... ... @@ -23,10 +24,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @desc ReportShare 报表分享服务实现
* @author Raod
* @date 2021-08-18 13:37:26.663
**/
* @desc ReportShare 报表分享服务实现
* @author Raod
* @date 2021-08-18 13:37:26.663
**/
@Service
public class ReportShareServiceImpl implements ReportShareService {
... ... @@ -42,7 +43,7 @@ public class ReportShareServiceImpl implements ReportShareService {
@Override
public GaeaBaseMapper<ReportShare> getMapper() {
return reportShareMapper;
return reportShareMapper;
}
@Override
... ... @@ -70,6 +71,21 @@ public class ReportShareServiceImpl implements ReportShareService {
@Override
public ReportShare detailByCode(String shareCode) {
JSONObject params = new JSONObject();
if(shareCode.indexOf("&") != -1){
String[] split = shareCode.split("&");
shareCode = split[0];
if(split.length > 0){
for (int i = 1; i < split.length; i++) {
String[] param = split[i].split("=");
params.put(param[0],param[1]);
}
}
}
LambdaQueryWrapper<ReportShare> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ReportShare::getShareCode, shareCode);
wrapper.eq(ReportShare::getEnableFlag, EnableFlagEnum.ENABLE.getCodeValue());
... ... @@ -83,6 +99,7 @@ public class ReportShareServiceImpl implements ReportShareService {
//md5加密返回
reportShare.setSharePassword(MD5Util.encrypt(password));
}
reportShare.setParams(params);
return reportShare;
}
... ...
... ... @@ -17,9 +17,9 @@
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="checkPassword()">确 定</el-button>
</span>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
<script>
import { reportShareDetailByCode} from '@/api/reportShare'
... ... @@ -34,7 +34,8 @@ export default {
sharePassword: '',
dialogVisible: false,
reportCode: '',
shareToken: ''
shareToken: '',
params:{}
};
},
... ... @@ -46,13 +47,22 @@ export default {
const url = window.location.href
const shareCode = url.substring(url.lastIndexOf("/") + 1);
console.log(shareCode)
const {code, data} = await reportShareDetailByCode(shareCode)
if (code != '200') return
console.log(data)
this.reportCode = data.reportCode
this.sharePassword = data.sharePassword
this.shareToken = data.shareToken
let params = data.params;
if(params && Object.keys(params).length > 0){
params['reportCode'] = data.reportCode
this.params = params;
} else {
this.params = {
reportCode:data.reportCode
};
}
if (this.sharePassword) {
console.log(this.sharePassword)
this.dialogVisible = true
... ... @@ -73,11 +83,15 @@ export default {
},
pushAj(){
setShareToken(this.shareToken)
// this.$router.push({
// path: `/bigscreen/viewer`,
// query: {
// reportCode: this.reportCode,
// },
// })
this.$router.push({
path: '/bigscreen/viewer',
query: {
reportCode: this.reportCode
},
path: `/bigscreen/viewer`,
query: this.params,
})
},
handleClose(done) {
... ...