feat(REQ-2545): 菜单详情接口增加返回组件的绑定信息
This commit is contained in:
parent
a65a81e84b
commit
89d0d040fc
@ -21,6 +21,11 @@ public class PageElementBasicDTO {
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 组件编码
|
||||
*/
|
||||
private String uniCode;
|
||||
|
||||
/**
|
||||
* 页面、元素编码
|
||||
*/
|
||||
|
||||
@ -5,7 +5,6 @@ import cn.axzo.tyr.client.model.req.*;
|
||||
import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElement;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -34,11 +33,11 @@ public interface SaasPageElementService {
|
||||
/**
|
||||
* 通过组件code查询页面元素
|
||||
*
|
||||
* @param terminal 组件所属端
|
||||
* @param featureResourceUniCode 组件code
|
||||
* @param terminal 组件所属端
|
||||
* @param featureResourceUniCodes 组件code
|
||||
* @return
|
||||
*/
|
||||
List<PageElementBasicDTO> getByTerminalAndUniCode(String terminal, String featureResourceUniCode);
|
||||
List<PageElementBasicDTO> getByTerminalAndUniCodes(String terminal, List<String> featureResourceUniCodes);
|
||||
|
||||
/**
|
||||
* 新增页面组件与页面元素关系
|
||||
|
||||
@ -195,7 +195,9 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
.sorted(Comparator.comparing(FeatureResourceDTO::getDisplayOrder))
|
||||
.collect(Collectors.toList()));
|
||||
FeatureResourceTreeNode featureResourceTreeNode = treeList.get(0);
|
||||
fillPageElement2PageFeatureResource(featureResourceTreeNode);
|
||||
|
||||
List<String> allUniCodes = descendants.stream().map(SaasFeatureResource::getUniCode).filter(StringUtils::isNotBlank).collect(Collectors.toList());
|
||||
fillPageElement2PageFeatureResource(treeList, allUniCodes);
|
||||
return featureResourceTreeNode;
|
||||
}
|
||||
|
||||
@ -574,12 +576,11 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
return parent.getPath();
|
||||
}
|
||||
|
||||
private void fillPageElement2PageFeatureResource(FeatureResourceTreeNode featureResourceTreeNode) {
|
||||
if (!FeatureResourceType.PAGE.getCode().equals(featureResourceTreeNode.getFeatureType())) {
|
||||
return;
|
||||
}
|
||||
List<PageElementBasicDTO> saasPageElements = saasPageElementService.getByTerminalAndUniCode(featureResourceTreeNode.getTerminal(), featureResourceTreeNode.getUniCode());
|
||||
featureResourceTreeNode.setPageElements(saasPageElements);
|
||||
private void fillPageElement2PageFeatureResource(List<FeatureResourceTreeNode> featureResourceTreeNodes, List<String> allUniCodes) {
|
||||
Map<String, List<PageElementBasicDTO>> uniCodeElementsMap = saasPageElementService.getByTerminalAndUniCodes(featureResourceTreeNodes.get(0).getTerminal(), allUniCodes)
|
||||
.stream().collect(Collectors.groupingBy(PageElementBasicDTO::getUniCode));
|
||||
|
||||
recursiveSetPageElement(featureResourceTreeNodes, uniCodeElementsMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -637,4 +638,14 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void recursiveSetPageElement(List<FeatureResourceTreeNode> featureResourceTreeNodes, Map<String, List<PageElementBasicDTO>> uniCodeElementsMap) {
|
||||
if (org.apache.commons.collections4.CollectionUtils.isEmpty(featureResourceTreeNodes)) {
|
||||
return;
|
||||
}
|
||||
featureResourceTreeNodes.forEach(e -> {
|
||||
e.setPageElements(uniCodeElementsMap.get(e.getUniCode()));
|
||||
recursiveSetPageElement(e.getChildren(), uniCodeElementsMap);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,8 +115,8 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PageElementBasicDTO> getByTerminalAndUniCode(String terminal, String featureResourceUniCode) {
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(Lists.newArrayList(featureResourceUniCode), terminal, null);
|
||||
public List<PageElementBasicDTO> getByTerminalAndUniCodes(String terminal, List<String> featureResourceUniCodes) {
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(featureResourceUniCodes, terminal, null);
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
@ -130,6 +130,7 @@ public class SaasPageElementServiceImpl implements SaasPageElementService {
|
||||
}
|
||||
return PageElementBasicDTO.builder()
|
||||
.id(pageElement.getId())
|
||||
.uniCode(e.getFeatureResourceUniCode())
|
||||
.code(pageElement.getCode())
|
||||
.name(pageElement.getName())
|
||||
.relationType(e.getType())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user