feat(REQ-2899):新增导入接口,暂没实现。。
This commit is contained in:
parent
07b8226692
commit
293897e697
@ -70,9 +70,9 @@ public interface PageElementApi {
|
||||
|
||||
/** 查询页面元素关联关系 **/
|
||||
@PostMapping("/api/pageElement/getFeatureResourceRelations")
|
||||
ApiResult<FeatureResourcePageElementRelationViewResp> getFeatureResourceRelations(@RequestBody @Valid IdReq req);
|
||||
ApiResult<List<PageElementRelationFeatureResourceResp>> getFeatureResourceRelations(@RequestBody @Valid IdReq req);
|
||||
|
||||
/** 查询页面元素关联关系 **/
|
||||
@PostMapping("/api/pageElement/importData")
|
||||
ApiResult<Void> importData(@RequestBody @Valid PageElementImportDataReq req);
|
||||
ApiResult<Void> importData(@RequestBody @Valid List<PageElementImportDataReq> req);
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ public class SaveOrUpdatePageElementReq {
|
||||
private String itemCode;
|
||||
|
||||
/** 分组ID **/
|
||||
private Long pageId;
|
||||
private String groupCode;
|
||||
|
||||
/** 页面元素类型:PAGE/COMPONENT **/
|
||||
@NotBlank(message = "页面元素类型不能为空")
|
||||
|
||||
@ -1,97 +0,0 @@
|
||||
package cn.axzo.tyr.client.model.res;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author likunpeng
|
||||
* @version 1.0
|
||||
* @date 2024/8/23
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class FeatureResourcePageElementRelationViewResp {
|
||||
|
||||
/** 菜单资源列表 **/
|
||||
private List<FeatureResourceBasicDTO> featureResources;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class FeatureResourceBasicDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 资源编码-权限码
|
||||
*/
|
||||
private String uniCode;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
private String featureName;
|
||||
|
||||
/**
|
||||
* 资源类型1-菜单 2-页面 3-应用入口 4-组件 5-root 6-分组
|
||||
*/
|
||||
private Integer featureType;
|
||||
|
||||
/** 前端元素资源列表 **/
|
||||
private PageElementBasicDTO pageElement;
|
||||
|
||||
private List<FeatureResourceBasicDTO> children;
|
||||
}
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class PageElementBasicDTO {
|
||||
private Long id;
|
||||
/**
|
||||
* 元素的组编码
|
||||
*/
|
||||
private String groupCode;
|
||||
|
||||
/**
|
||||
* 元素的组编码
|
||||
*/
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 元素编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 元素名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 元素类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 是否关联
|
||||
*/
|
||||
private Boolean hasRelation;
|
||||
|
||||
/**
|
||||
* 1:路由页面
|
||||
*/
|
||||
private Integer relationType;
|
||||
|
||||
|
||||
private List<PageElementBasicDTO> children;
|
||||
}
|
||||
}
|
||||
@ -35,5 +35,7 @@ public class ListPageElementCategoryResp {
|
||||
private String itemCode;
|
||||
/** 项目名称 **/
|
||||
private String itemName;
|
||||
/** 端 **/
|
||||
private String terminal;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
package cn.axzo.tyr.client.model.res;
|
||||
|
||||
import cn.axzo.basics.common.model.IBaseTree;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author likunpeng
|
||||
* @date 2024/8/30
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PageElementRelationFeatureResourceResp implements IBaseTree<PageElementRelationFeatureResourceResp, Long> {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 上级资源ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 资源编码-权限码
|
||||
*/
|
||||
private String uniCode;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
private String featureName;
|
||||
|
||||
/**
|
||||
* 资源类型1-菜单 2-页面 3-应用入口 4-组件 5-root 6-分组
|
||||
*/
|
||||
private Integer featureType;
|
||||
|
||||
/**
|
||||
* 子节点
|
||||
*/
|
||||
private List<PageElementRelationFeatureResourceResp> children;
|
||||
|
||||
/**
|
||||
* 是否关联
|
||||
*/
|
||||
private Boolean hasRelation;
|
||||
|
||||
/**
|
||||
* 1:路由页面
|
||||
*/
|
||||
private Integer relationType;
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public Long getNodeCode() {
|
||||
return this.getId();
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public Long getParentNodeCode() {
|
||||
return this.getParentId();
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public List<PageElementRelationFeatureResourceResp> getNodeChildren() {
|
||||
return this.children;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNodeChildren(List<PageElementRelationFeatureResourceResp> nodeChildren) {
|
||||
this.children = nodeChildren;
|
||||
}
|
||||
}
|
||||
@ -31,6 +31,7 @@ public class TyrServerDevApplication {
|
||||
System.setProperty("spring.redis.host","172.16.2.23");
|
||||
System.setProperty("xxl.job.admin.addresses","http://dev-xxl-job.axzo.cn/xxl-job-admin");
|
||||
System.setProperty("rocketmq.name-server", "172.16.2.82:9876");
|
||||
System.setProperty("spring.datasource.url", "jdbc:mysql://172.16.2.171:3306/pudge?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=true&verifyServerCertificate=false&rewriteBatchedStatements=true");
|
||||
SpringApplication application = new SpringApplication(TyrServerDevApplication.class);
|
||||
ApplicationContext applicationContext = application.run(args);
|
||||
Environment env = applicationContext.getEnvironment();
|
||||
|
||||
@ -92,12 +92,12 @@ public class PageElementController implements PageElementApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<FeatureResourcePageElementRelationViewResp> getFeatureResourceRelations(IdReq req) {
|
||||
public ApiResult<List<PageElementRelationFeatureResourceResp>> getFeatureResourceRelations(IdReq req) {
|
||||
return ApiResult.ok(saasPageElementService.getFeatureResourceRelations(req.getId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> importData(PageElementImportDataReq req) {
|
||||
public ApiResult<Void> importData(List<PageElementImportDataReq> req) {
|
||||
saasPageElementService.importData(req);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
||||
|
||||
void delete(DeletePageElementReq req);
|
||||
|
||||
FeatureResourcePageElementRelationViewResp getFeatureResourceRelations(Long pageElementId);
|
||||
List<PageElementRelationFeatureResourceResp> getFeatureResourceRelations(Long pageElementId);
|
||||
|
||||
void importData(PageElementImportDataReq req);
|
||||
void importData(List<PageElementImportDataReq> req);
|
||||
}
|
||||
|
||||
@ -61,6 +61,7 @@ public class SaasPageElementCategoryServiceImpl implements SaasPageElementCatego
|
||||
.id(c.getId())
|
||||
.itemCode(c.getItemCode())
|
||||
.itemName(c.getItemName())
|
||||
.terminal(c.getTerminal())
|
||||
.build()).collect(Collectors.toList())).build());
|
||||
});
|
||||
return categoryResps;
|
||||
|
||||
@ -4,6 +4,7 @@ import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.common.constant.enums.DeleteEnum;
|
||||
import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.basics.common.util.StopWatchUtil;
|
||||
import cn.axzo.basics.common.util.TreeUtil;
|
||||
import cn.axzo.basics.profiles.api.UserProfileServiceApi;
|
||||
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||
import cn.axzo.foundation.dao.support.converter.PageConverter;
|
||||
@ -562,10 +563,10 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
basePageElement.setTerminal(category.getTerminal());
|
||||
basePageElement.setItemName(category.getItemName());
|
||||
} else if (PageElementTypeEnum.COMPONENT.getCode().equals(req.getType())) {
|
||||
AssertUtil.isTrue(Objects.nonNull(req.getPageId()) && req.getPageId() > 0, "页面元素不存在");
|
||||
AssertUtil.isTrue(StringUtils.isNotBlank(req.getGroupCode()), "页面元素不存在");
|
||||
List<SaasPageElement> pageElements = saasPageElementDao.lambdaQuery()
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.eq(SaasPageElement::getId, req.getPageId()).list();
|
||||
.eq(SaasPageElement::getCode, req.getGroupCode()).list();
|
||||
AssertUtil.notEmpty(pageElements, "父级元素不存在。");
|
||||
|
||||
SaasPageElement pageElement = pageElements.get(0);
|
||||
@ -622,38 +623,95 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
}
|
||||
|
||||
@Override
|
||||
public FeatureResourcePageElementRelationViewResp getFeatureResourceRelations(Long pageElementId) {
|
||||
public List<PageElementRelationFeatureResourceResp> getFeatureResourceRelations(Long pageElementId) {
|
||||
SaasPageElement dbPageElement = saasPageElementDao.getById(pageElementId);
|
||||
AssertUtil.notNull(dbPageElement, "页面元素资源不存在");
|
||||
List<SaasPageElement> pageElements = saasPageElementDao.listByGroupCodesAndExcludeIds(Lists.newArrayList(dbPageElement.getGroupCode()), null, dbPageElement.getTerminal(), null);
|
||||
FeatureResourcePageElementRelationViewResp.PageElementBasicDTO elementBasic = getPageElementBasic(pageElements);
|
||||
if (Objects.isNull(elementBasic)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.lambdaQuery()
|
||||
.eq(SaasPageElementFeatureResourceRelation::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.in(SaasPageElementFeatureResourceRelation::getPageElementCode, pageElements.stream().map(SaasPageElement::getCode).collect(Collectors.toSet()))
|
||||
.eq(SaasPageElementFeatureResourceRelation::getPageElementCode, dbPageElement.getCode())
|
||||
.eq(SaasPageElementFeatureResourceRelation::getTerminal, dbPageElement.getTerminal())
|
||||
.list();
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return null;
|
||||
}
|
||||
List<FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO> featureResourceBasics = getFeatureResourceBasic(relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()), dbPageElement.getTerminal());
|
||||
if (CollectionUtils.isEmpty(featureResourceBasics)) {
|
||||
return null;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
fillElementToResource(featureResourceBasics, relations, elementBasic);
|
||||
List<SaasFeatureResource> pageFeatureResources = saasFeatureResourceDao.lambdaQuery()
|
||||
.eq(SaasFeatureResource::getTerminal, dbPageElement.getTerminal())
|
||||
.in(SaasFeatureResource::getUniCode, relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toSet()))
|
||||
.in(SaasFeatureResource::getFeatureType, Lists.newArrayList(FeatureResourceType.PAGE.getCode(), FeatureResourceType.APP_ENTRY.getCode()))
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.list();
|
||||
if (CollectionUtils.isEmpty(pageFeatureResources)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<SaasFeatureResource> pageParentFeatureResources = saasFeatureResourceDao.lambdaQuery()
|
||||
.eq(SaasFeatureResource::getTerminal, dbPageElement.getTerminal())
|
||||
.in(SaasFeatureResource::getId, pageFeatureResources.stream().map(SaasFeatureResource::getParentId).collect(Collectors.toSet()))
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.list();
|
||||
List<SaasFeatureResource> pageChildrenFeatureResources = saasFeatureResourceDao.lambdaQuery()
|
||||
.eq(BaseEntity::getIsDelete,0)
|
||||
.and(i -> pageFeatureResources.forEach(f -> i.or().likeRight(SaasFeatureResource::getPath, f.getPath())))
|
||||
.list();
|
||||
List<SaasFeatureResource> allFeatureResources = Lists.newArrayList(pageFeatureResources);
|
||||
if (CollectionUtils.isNotEmpty(pageParentFeatureResources)) {
|
||||
allFeatureResources.addAll(pageParentFeatureResources);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(pageChildrenFeatureResources)) {
|
||||
allFeatureResources.addAll(pageChildrenFeatureResources);
|
||||
}
|
||||
|
||||
return FeatureResourcePageElementRelationViewResp.builder().featureResources(featureResourceBasics).build();
|
||||
Map<String, SaasPageElementFeatureResourceRelation> uniCodeRelationMap = relations.stream()
|
||||
.collect(Collectors.toMap(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode, Function.identity(), (v1, v2) -> v1));
|
||||
List<PageElementRelationFeatureResourceResp> reps = allFeatureResources.stream().map(e -> PageElementRelationFeatureResourceResp.builder()
|
||||
.id(e.getId())
|
||||
.parentId(e.getParentId())
|
||||
.uniCode(e.getUniCode())
|
||||
.featureName(e.getFeatureName())
|
||||
.featureType(e.getFeatureType())
|
||||
.hasRelation(uniCodeRelationMap.containsKey(e.getUniCode()))
|
||||
.relationType(Optional.ofNullable(uniCodeRelationMap.get(e.getUniCode())).map(SaasPageElementFeatureResourceRelation::getType).orElse(null))
|
||||
.build()).distinct().collect(Collectors.toList());
|
||||
|
||||
return TreeUtil.buildTree(reps);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void importData(PageElementImportDataReq req) {
|
||||
saasPageElementDao.lambdaQuery()
|
||||
public void importData(List<PageElementImportDataReq> req) {
|
||||
Integer codeCount = saasPageElementDao.lambdaQuery()
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.in(SaasPageElement::getCode, req.stream().map(PageElementImportDataReq::getCode).collect(Collectors.toList()))
|
||||
.count();
|
||||
AssertUtil.isTrue(codeCount <= 0, "导入的资源编码已存在。");
|
||||
|
||||
Set<String> itemCodes = req.stream().map(PageElementImportDataReq::getItemCode).collect(Collectors.toSet());
|
||||
List<SaasPageElementCategory> categories = saasPageElementCategoryDao.lambdaQuery()
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.in(SaasPageElementCategory::getItemCode, itemCodes)
|
||||
.list();
|
||||
AssertUtil.isTrue(itemCodes.size() == categories.size(), "元素分类编码系统中有未存在的。");
|
||||
Map<String, SaasPageElementCategory> categoryMap = categories.stream().collect(Collectors.toMap(SaasPageElementCategory::getItemCode, Function.identity(), (v1, v2) -> v1));
|
||||
|
||||
List<SaasPageElement> elements = req.stream().map(e -> {
|
||||
SaasPageElementCategory category = categoryMap.get(e.getItemCode());
|
||||
AssertUtil.notNull(category, e.getItemCode() + "不存在。");
|
||||
return SaasPageElement.builder()
|
||||
.version(e.getVersion())
|
||||
.groupCode(e.getGroupCode())
|
||||
.code(e.getCode())
|
||||
.name(e.getName())
|
||||
.type(e.getType())
|
||||
.linkUrl(e.getLinkUrl())
|
||||
.terminal(e.getTerminal())
|
||||
.appType(e.getAppType())
|
||||
.itemCode(e.getItemCode())
|
||||
.itemName(category.getItemName())
|
||||
.createName(Optional.ofNullable(e.getOperatorId()).map(Objects::toString).orElse(StringUtils.EMPTY))
|
||||
.appId(e.getAppId())
|
||||
.build();
|
||||
}).collect(Collectors.toList());
|
||||
Lists.partition(elements,500).forEach(saasPageElementDao::saveBatch);
|
||||
}
|
||||
|
||||
private PageElementResp from(SaasPageElement saasPageElement,
|
||||
@ -767,134 +825,6 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
.build());
|
||||
}
|
||||
|
||||
private FeatureResourcePageElementRelationViewResp.PageElementBasicDTO getPageElementBasic(List<SaasPageElement> pageElements) {
|
||||
SaasPageElement pageTypeElement = pageElements.stream().filter(e -> PageElementTypeEnum.PAGE.getCode().equals(e.getType())).findFirst().orElse(null);
|
||||
if (Objects.isNull(pageTypeElement)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return FeatureResourcePageElementRelationViewResp.PageElementBasicDTO.builder()
|
||||
.id(pageTypeElement.getId())
|
||||
.groupCode(pageTypeElement.getGroupCode())
|
||||
.groupName(pageTypeElement.getName())
|
||||
.code(pageTypeElement.getCode())
|
||||
.name(pageTypeElement.getName())
|
||||
.type(pageTypeElement.getType())
|
||||
.children(pageElements.stream().filter(e -> PageElementTypeEnum.COMPONENT.getCode().equals(e.getType())).map(e -> FeatureResourcePageElementRelationViewResp.PageElementBasicDTO.builder()
|
||||
.id(e.getId())
|
||||
.groupCode(pageTypeElement.getGroupCode())
|
||||
.groupName(pageTypeElement.getName())
|
||||
.code(e.getCode())
|
||||
.name(e.getName())
|
||||
.type(e.getType()).build()).collect(Collectors.toList()))
|
||||
.build();
|
||||
}
|
||||
|
||||
private List<FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO> getFeatureResourceBasic(List<String> uniCodes, String terminal) {
|
||||
List<SaasFeatureResource> featureResources = saasFeatureResourceDao.lambdaQuery()
|
||||
.eq(SaasFeatureResource::getTerminal, terminal)
|
||||
.in(SaasFeatureResource::getUniCode, uniCodes)
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.list();
|
||||
|
||||
List<SaasFeatureResource> parentFrs = featureResources.stream().filter(e -> {
|
||||
if (Objects.isNull(e.getFeatureType())) {
|
||||
return false;
|
||||
}
|
||||
return FeatureResourceType.PAGE.getCode().equals(e.getFeatureType());
|
||||
}).collect(Collectors.toList());
|
||||
List<Long> componentAndAppEntityParentIds = featureResources.stream().filter(e -> {
|
||||
if (Objects.isNull(e.getFeatureType())) {
|
||||
return false;
|
||||
}
|
||||
return FeatureResourceType.COMPONENT.getCode().equals(e.getFeatureType()) || FeatureResourceType.APP_ENTRY.getCode().equals(e.getFeatureType());
|
||||
}).map(SaasFeatureResource::getParentId).collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isNotEmpty(componentAndAppEntityParentIds)) {
|
||||
List<SaasFeatureResource> parentResources = saasFeatureResourceDao.lambdaQuery()
|
||||
.eq(SaasFeatureResource::getTerminal, terminal)
|
||||
.in(SaasFeatureResource::getId, componentAndAppEntityParentIds)
|
||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||
.list();
|
||||
if (CollectionUtils.isNotEmpty(parentResources)) {
|
||||
parentFrs.addAll(parentResources);
|
||||
}
|
||||
}
|
||||
parentFrs = parentFrs.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
Map<Long, List<SaasFeatureResource>> childrenMap = featureResources.stream().filter(e -> FeatureResourceType.COMPONENT.getCode().equals(e.getFeatureType())
|
||||
|| FeatureResourceType.APP_ENTRY.getCode().equals(e.getFeatureType())).collect(Collectors.groupingBy(SaasFeatureResource::getParentId));
|
||||
List<FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO> allParents = parentFrs.stream().map(e -> FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO.builder()
|
||||
.id(e.getId())
|
||||
.uniCode(e.getUniCode())
|
||||
.featureName(e.getFeatureName())
|
||||
.featureType(e.getFeatureType())
|
||||
.children(Lists.newArrayList())
|
||||
.build()).distinct().collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(allParents)) {
|
||||
return null;
|
||||
}
|
||||
for (FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO basic : allParents) {
|
||||
List<SaasFeatureResource> children = childrenMap.get(basic.getId());
|
||||
if (CollectionUtils.isEmpty(children)) {
|
||||
continue;
|
||||
}
|
||||
basic.setChildren(children.stream().map(e -> FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO.builder()
|
||||
.id(e.getId())
|
||||
.uniCode(e.getUniCode())
|
||||
.featureName(e.getFeatureName())
|
||||
.featureType(e.getFeatureType())
|
||||
.build()).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
return allParents;
|
||||
}
|
||||
|
||||
private void fillElementToResource(List<FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO> resources, List<SaasPageElementFeatureResourceRelation> relations,
|
||||
FeatureResourcePageElementRelationViewResp.PageElementBasicDTO elementBasic) {
|
||||
Map<String, SaasPageElementFeatureResourceRelation> relationMap = relations.stream().collect(Collectors.toMap(r -> r.getFeatureResourceUniCode() + "_" + r.getPageElementCode(), Function.identity(), (v1, v2) -> v1));
|
||||
for (FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO resource : resources) {
|
||||
recursiveSetElementToResource(resource, relationMap, elementBasic);
|
||||
}
|
||||
}
|
||||
|
||||
private void recursiveSetElementToResource(FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO resource, Map<String, SaasPageElementFeatureResourceRelation> relationMap,
|
||||
FeatureResourcePageElementRelationViewResp.PageElementBasicDTO elementBasic) {
|
||||
if (Objects.isNull(resource)) {
|
||||
return;
|
||||
}
|
||||
if (!FeatureResourceType.GROUP.getCode().equals(resource.getFeatureType())) {
|
||||
FeatureResourcePageElementRelationViewResp.PageElementBasicDTO newPageElementBasic = FeatureResourcePageElementRelationViewResp.PageElementBasicDTO.builder()
|
||||
.id(elementBasic.getId())
|
||||
.groupCode(elementBasic.getGroupCode())
|
||||
.groupName(elementBasic.getGroupName())
|
||||
.code(elementBasic.getCode())
|
||||
.name(elementBasic.getName())
|
||||
.type(elementBasic.getType())
|
||||
.hasRelation(Optional.ofNullable(relationMap.get(resource.getUniCode() + "_" + elementBasic.getCode())).isPresent())
|
||||
.relationType(Optional.ofNullable(relationMap.get(resource.getUniCode() + "_" + elementBasic.getCode())).map(SaasPageElementFeatureResourceRelation::getType).orElse(0))
|
||||
.build();
|
||||
if (CollectionUtils.isNotEmpty(elementBasic.getChildren())) {
|
||||
newPageElementBasic.setChildren(elementBasic.getChildren().stream().map(e -> FeatureResourcePageElementRelationViewResp.PageElementBasicDTO.builder()
|
||||
.id(e.getId())
|
||||
.groupCode(e.getGroupCode())
|
||||
.groupName(e.getGroupName())
|
||||
.code(e.getCode())
|
||||
.name(e.getName())
|
||||
.type(e.getType())
|
||||
.hasRelation(Optional.ofNullable(relationMap.get(resource.getUniCode() + "_" + e.getCode())).isPresent())
|
||||
.relationType(Optional.ofNullable(relationMap.get(resource.getUniCode() + "_" + e.getCode())).map(SaasPageElementFeatureResourceRelation::getType).orElse(0))
|
||||
.build()).collect(Collectors.toList()));
|
||||
}
|
||||
resource.setPageElement(newPageElementBasic);
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(resource.getChildren())) {
|
||||
resource.getChildren().forEach(e -> recursiveSetElementToResource(e, relationMap, elementBasic));
|
||||
}
|
||||
}
|
||||
|
||||
private List<PageElementCategoryAndElementResp> changeElementWithCategories(List<PageElementResp> list) {
|
||||
List<PageElementCategoryAndElementResp> resps = Lists.newArrayList();
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user