Merge pull request #12400 from dataease/pr@dev-v2@perf_front_request
perf(X-Pack): 前端同步请求优化合并
This commit is contained in:
commit
0d3e8b0510
@ -0,0 +1,42 @@
|
|||||||
|
package io.dataease.visualization.manage;
|
||||||
|
|
||||||
|
import io.dataease.dataset.manage.DatasetGroupManage;
|
||||||
|
import io.dataease.datasource.manage.DataSourceManage;
|
||||||
|
import io.dataease.model.BusiNodeRequest;
|
||||||
|
import io.dataease.model.BusiNodeVO;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Component("coreBusiManage")
|
||||||
|
public class CoreBusiManage {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CoreVisualizationManage coreVisualizationManage;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataSourceManage dataSourceManage;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DatasetGroupManage datasetGroupManage;
|
||||||
|
|
||||||
|
public Map<String, List<BusiNodeVO>> interactiveTree(Map<String, BusiNodeRequest> requestMap) {
|
||||||
|
Map<String, List<BusiNodeVO>> result = new HashMap<>();
|
||||||
|
for (Map.Entry<String, BusiNodeRequest> entry : requestMap.entrySet()) {
|
||||||
|
BusiNodeRequest busiNodeRequest = entry.getValue();
|
||||||
|
String key = entry.getKey();
|
||||||
|
if (StringUtils.equalsIgnoreCase(key, "datasource")) {
|
||||||
|
result.put(key, dataSourceManage.tree(busiNodeRequest));
|
||||||
|
} else if (StringUtils.equalsIgnoreCase(key, "dataset")) {
|
||||||
|
result.put(key, datasetGroupManage.tree(busiNodeRequest));
|
||||||
|
} else if (StringUtils.equalsAnyIgnoreCase(key, "dashboard", "dataV")) {
|
||||||
|
result.put(key, coreVisualizationManage.tree(busiNodeRequest));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -51,6 +51,7 @@ import io.dataease.visualization.dao.auto.entity.VisualizationWatermark;
|
|||||||
import io.dataease.visualization.dao.auto.mapper.DataVisualizationInfoMapper;
|
import io.dataease.visualization.dao.auto.mapper.DataVisualizationInfoMapper;
|
||||||
import io.dataease.visualization.dao.auto.mapper.VisualizationWatermarkMapper;
|
import io.dataease.visualization.dao.auto.mapper.VisualizationWatermarkMapper;
|
||||||
import io.dataease.visualization.dao.ext.mapper.ExtDataVisualizationMapper;
|
import io.dataease.visualization.dao.ext.mapper.ExtDataVisualizationMapper;
|
||||||
|
import io.dataease.visualization.manage.CoreBusiManage;
|
||||||
import io.dataease.visualization.manage.CoreVisualizationManage;
|
import io.dataease.visualization.manage.CoreVisualizationManage;
|
||||||
import io.dataease.visualization.utils.VisualizationUtils;
|
import io.dataease.visualization.utils.VisualizationUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -128,6 +129,9 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CoreDatasourceMapper coreDatasourceMapper;
|
private CoreDatasourceMapper coreDatasourceMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CoreBusiManage coreBusiManage;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) {
|
public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) {
|
||||||
DataVisualizationVO result = findById(new DataVisualizationBaseRequest(dvId, busiFlag));
|
DataVisualizationVO result = findById(new DataVisualizationBaseRequest(dvId, busiFlag));
|
||||||
@ -484,6 +488,11 @@ public class DataVisualizationServer implements DataVisualizationApi {
|
|||||||
return coreVisualizationManage.tree(request);
|
return coreVisualizationManage.tree(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, List<BusiNodeVO>> interactiveTree(Map<String, BusiNodeRequest> requestMap) {
|
||||||
|
return coreBusiManage.interactiveTree(requestMap);
|
||||||
|
}
|
||||||
|
|
||||||
@DeLog(id = "#p0.id", pid = "#p0.pid", ot = LogOT.MODIFY, stExp = "#p0.type")
|
@DeLog(id = "#p0.id", pid = "#p0.pid", ot = LogOT.MODIFY, stExp = "#p0.type")
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -41,6 +41,12 @@ export const queryTreeApi = async (data: BusiTreeRequest): Promise<IResponse> =>
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const queryBusiTreeApi = async (data): Promise<IResponse> => {
|
||||||
|
return request.post({ url: '/dataVisualization/interactiveTree', data }).then(res => {
|
||||||
|
return res?.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export const findDvType = async dvId =>
|
export const findDvType = async dvId =>
|
||||||
request.get({ url: `/dataVisualization/findDvType/${dvId}` })
|
request.get({ url: `/dataVisualization/findDvType/${dvId}` })
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { store } from '@/store'
|
import { store } from '@/store'
|
||||||
import { queryTreeApi } from '@/api/visualization/dataVisualization'
|
import { queryTreeApi, queryBusiTreeApi } from '@/api/visualization/dataVisualization'
|
||||||
import { getDatasetTree } from '@/api/dataset'
|
import { getDatasetTree } from '@/api/dataset'
|
||||||
import { listDatasources } from '@/api/datasource'
|
import { listDatasources } from '@/api/datasource'
|
||||||
import type { BusiTreeRequest, BusiTreeNode } from '@/models/tree/TreeNode'
|
import type { BusiTreeRequest, BusiTreeNode } from '@/models/tree/TreeNode'
|
||||||
@ -47,7 +47,7 @@ export const interactiveStore = defineStore('interactive', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
async setInteractive(param: BusiTreeRequest) {
|
async setInteractive(param: BusiTreeRequest, resParam?: object) {
|
||||||
const flag = busiFlagMap.findIndex(item => item === param.busiFlag)
|
const flag = busiFlagMap.findIndex(item => item === param.busiFlag)
|
||||||
if (!hasMenuAuth(flag) && !window.DataEaseBi && !appStore.getIsIframe) {
|
if (!hasMenuAuth(flag) && !window.DataEaseBi && !appStore.getIsIframe) {
|
||||||
const tempData: InnerInteractive = {
|
const tempData: InnerInteractive = {
|
||||||
@ -66,8 +66,11 @@ export const interactiveStore = defineStore('interactive', {
|
|||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
const method = apiMap[flag]
|
let res = resParam
|
||||||
const res = await method(param)
|
if (!resParam) {
|
||||||
|
const method = apiMap[flag]
|
||||||
|
res = await method(param)
|
||||||
|
}
|
||||||
this.data[flag] = convertInteractive(res)
|
this.data[flag] = convertInteractive(res)
|
||||||
if (flag === 0) {
|
if (flag === 0) {
|
||||||
wsCache.set('panel-weight', convertLocalStorage(this.data[flag]))
|
wsCache.set('panel-weight', convertLocalStorage(this.data[flag]))
|
||||||
@ -78,6 +81,10 @@ export const interactiveStore = defineStore('interactive', {
|
|||||||
return res
|
return res
|
||||||
},
|
},
|
||||||
async initInteractive(refresh?: boolean) {
|
async initInteractive(refresh?: boolean) {
|
||||||
|
if (refresh) {
|
||||||
|
await this.loadBusiInteractive()
|
||||||
|
return
|
||||||
|
}
|
||||||
let index = 4
|
let index = 4
|
||||||
while (index--) {
|
while (index--) {
|
||||||
if (!this.data[index] || refresh) {
|
if (!this.data[index] || refresh) {
|
||||||
@ -88,6 +95,20 @@ export const interactiveStore = defineStore('interactive', {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async loadBusiInteractive() {
|
||||||
|
const param = {}
|
||||||
|
for (let i = 0; i < busiFlagMap.length; i++) {
|
||||||
|
const key = busiFlagMap[i]
|
||||||
|
if (window.DataEaseBi || appStore.getIsIframe || hasMenuAuth(i)) {
|
||||||
|
param[key] = { busiFlag: key }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const data = await queryBusiTreeApi(param)
|
||||||
|
for (const busiKey in data) {
|
||||||
|
const res = data[busiKey]
|
||||||
|
this.setInteractive(param[busiKey], res)
|
||||||
|
}
|
||||||
|
},
|
||||||
clear() {
|
clear() {
|
||||||
this.data = {}
|
this.data = {}
|
||||||
wsCache.set('panel-weight', {})
|
wsCache.set('panel-weight', {})
|
||||||
|
|||||||
2
de-xpack
2
de-xpack
@ -1 +1 @@
|
|||||||
Subproject commit 82b33709e27888f38ec4f2fd974efc405a0a9506
|
Subproject commit 9c5aa6bd7d255286384f86b1a50ff153b041d929
|
||||||
@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static io.dataease.constant.AuthResourceEnum.PANEL;
|
import static io.dataease.constant.AuthResourceEnum.PANEL;
|
||||||
|
|
||||||
@ -72,6 +73,10 @@ public interface DataVisualizationApi {
|
|||||||
@Operation(summary = "查询可视化资源树")
|
@Operation(summary = "查询可视化资源树")
|
||||||
List<BusiNodeVO> tree(@RequestBody BusiNodeRequest request);
|
List<BusiNodeVO> tree(@RequestBody BusiNodeRequest request);
|
||||||
|
|
||||||
|
@PostMapping("/interactiveTree")
|
||||||
|
@Operation(summary = "查询业务资源树")
|
||||||
|
Map<String, List<BusiNodeVO>> interactiveTree(@RequestBody Map<String, BusiNodeRequest> requestMap);
|
||||||
|
|
||||||
@PostMapping("/move")
|
@PostMapping("/move")
|
||||||
@DePermit(value = {"#p0.id+':manage'", "#p0.pid+':manage'"}, busiFlag = "#p0.type")
|
@DePermit(value = {"#p0.id+':manage'", "#p0.pid+':manage'"}, busiFlag = "#p0.type")
|
||||||
@Operation(summary = "移动可视化资源")
|
@Operation(summary = "移动可视化资源")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user