feat(REQ-2899):新增导入接口,暂没实现。。
This commit is contained in:
parent
07b8226692
commit
293897e697
@ -70,9 +70,9 @@ public interface PageElementApi {
|
|||||||
|
|
||||||
/** 查询页面元素关联关系 **/
|
/** 查询页面元素关联关系 **/
|
||||||
@PostMapping("/api/pageElement/getFeatureResourceRelations")
|
@PostMapping("/api/pageElement/getFeatureResourceRelations")
|
||||||
ApiResult<FeatureResourcePageElementRelationViewResp> getFeatureResourceRelations(@RequestBody @Valid IdReq req);
|
ApiResult<List<PageElementRelationFeatureResourceResp>> getFeatureResourceRelations(@RequestBody @Valid IdReq req);
|
||||||
|
|
||||||
/** 查询页面元素关联关系 **/
|
/** 查询页面元素关联关系 **/
|
||||||
@PostMapping("/api/pageElement/importData")
|
@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;
|
private String itemCode;
|
||||||
|
|
||||||
/** 分组ID **/
|
/** 分组ID **/
|
||||||
private Long pageId;
|
private String groupCode;
|
||||||
|
|
||||||
/** 页面元素类型:PAGE/COMPONENT **/
|
/** 页面元素类型:PAGE/COMPONENT **/
|
||||||
@NotBlank(message = "页面元素类型不能为空")
|
@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 itemCode;
|
||||||
/** 项目名称 **/
|
/** 项目名称 **/
|
||||||
private String itemName;
|
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("spring.redis.host","172.16.2.23");
|
||||||
System.setProperty("xxl.job.admin.addresses","http://dev-xxl-job.axzo.cn/xxl-job-admin");
|
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("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);
|
SpringApplication application = new SpringApplication(TyrServerDevApplication.class);
|
||||||
ApplicationContext applicationContext = application.run(args);
|
ApplicationContext applicationContext = application.run(args);
|
||||||
Environment env = applicationContext.getEnvironment();
|
Environment env = applicationContext.getEnvironment();
|
||||||
|
|||||||
@ -92,12 +92,12 @@ public class PageElementController implements PageElementApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResult<FeatureResourcePageElementRelationViewResp> getFeatureResourceRelations(IdReq req) {
|
public ApiResult<List<PageElementRelationFeatureResourceResp>> getFeatureResourceRelations(IdReq req) {
|
||||||
return ApiResult.ok(saasPageElementService.getFeatureResourceRelations(req.getId()));
|
return ApiResult.ok(saasPageElementService.getFeatureResourceRelations(req.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResult<Void> importData(PageElementImportDataReq req) {
|
public ApiResult<Void> importData(List<PageElementImportDataReq> req) {
|
||||||
saasPageElementService.importData(req);
|
saasPageElementService.importData(req);
|
||||||
return ApiResult.ok();
|
return ApiResult.ok();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -82,7 +82,7 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
|
|||||||
|
|
||||||
void delete(DeletePageElementReq req);
|
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())
|
.id(c.getId())
|
||||||
.itemCode(c.getItemCode())
|
.itemCode(c.getItemCode())
|
||||||
.itemName(c.getItemName())
|
.itemName(c.getItemName())
|
||||||
|
.terminal(c.getTerminal())
|
||||||
.build()).collect(Collectors.toList())).build());
|
.build()).collect(Collectors.toList())).build());
|
||||||
});
|
});
|
||||||
return categoryResps;
|
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.constant.enums.DeleteEnum;
|
||||||
import cn.axzo.basics.common.util.AssertUtil;
|
import cn.axzo.basics.common.util.AssertUtil;
|
||||||
import cn.axzo.basics.common.util.StopWatchUtil;
|
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.api.UserProfileServiceApi;
|
||||||
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||||
import cn.axzo.foundation.dao.support.converter.PageConverter;
|
import cn.axzo.foundation.dao.support.converter.PageConverter;
|
||||||
@ -562,10 +563,10 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
|||||||
basePageElement.setTerminal(category.getTerminal());
|
basePageElement.setTerminal(category.getTerminal());
|
||||||
basePageElement.setItemName(category.getItemName());
|
basePageElement.setItemName(category.getItemName());
|
||||||
} else if (PageElementTypeEnum.COMPONENT.getCode().equals(req.getType())) {
|
} 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()
|
List<SaasPageElement> pageElements = saasPageElementDao.lambdaQuery()
|
||||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||||
.eq(SaasPageElement::getId, req.getPageId()).list();
|
.eq(SaasPageElement::getCode, req.getGroupCode()).list();
|
||||||
AssertUtil.notEmpty(pageElements, "父级元素不存在。");
|
AssertUtil.notEmpty(pageElements, "父级元素不存在。");
|
||||||
|
|
||||||
SaasPageElement pageElement = pageElements.get(0);
|
SaasPageElement pageElement = pageElements.get(0);
|
||||||
@ -622,38 +623,95 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FeatureResourcePageElementRelationViewResp getFeatureResourceRelations(Long pageElementId) {
|
public List<PageElementRelationFeatureResourceResp> getFeatureResourceRelations(Long pageElementId) {
|
||||||
SaasPageElement dbPageElement = saasPageElementDao.getById(pageElementId);
|
SaasPageElement dbPageElement = saasPageElementDao.getById(pageElementId);
|
||||||
AssertUtil.notNull(dbPageElement, "页面元素资源不存在");
|
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()
|
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationDao.lambdaQuery()
|
||||||
.eq(SaasPageElementFeatureResourceRelation::getIsDelete, DeleteEnum.NORMAL.getValue())
|
.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())
|
.eq(SaasPageElementFeatureResourceRelation::getTerminal, dbPageElement.getTerminal())
|
||||||
.list();
|
.list();
|
||||||
if (CollectionUtils.isEmpty(relations)) {
|
if (CollectionUtils.isEmpty(relations)) {
|
||||||
return null;
|
return Collections.emptyList();
|
||||||
}
|
|
||||||
List<FeatureResourcePageElementRelationViewResp.FeatureResourceBasicDTO> featureResourceBasics = getFeatureResourceBasic(relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toList()), dbPageElement.getTerminal());
|
|
||||||
if (CollectionUtils.isEmpty(featureResourceBasics)) {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
@Override
|
||||||
public void importData(PageElementImportDataReq req) {
|
public void importData(List<PageElementImportDataReq> req) {
|
||||||
saasPageElementDao.lambdaQuery()
|
Integer codeCount = saasPageElementDao.lambdaQuery()
|
||||||
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
.eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue())
|
||||||
|
.in(SaasPageElement::getCode, req.stream().map(PageElementImportDataReq::getCode).collect(Collectors.toList()))
|
||||||
.count();
|
.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,
|
private PageElementResp from(SaasPageElement saasPageElement,
|
||||||
@ -767,134 +825,6 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
|||||||
.build());
|
.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) {
|
private List<PageElementCategoryAndElementResp> changeElementWithCategories(List<PageElementResp> list) {
|
||||||
List<PageElementCategoryAndElementResp> resps = Lists.newArrayList();
|
List<PageElementCategoryAndElementResp> resps = Lists.newArrayList();
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user