feat: (feature/REQ-3167) 修改同步前端资源的问题
This commit is contained in:
parent
6e4a26f839
commit
00657cac9c
@ -0,0 +1,34 @@
|
||||
package cn.axzo.tyr.client.model.req;
|
||||
|
||||
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
|
||||
import cn.axzo.foundation.dao.support.wrapper.Operator;
|
||||
import cn.axzo.foundation.page.IPageReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PageElementCategoryV2Req implements IPageReq {
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
Integer page;
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
Integer pageSize;
|
||||
|
||||
/**
|
||||
* 排序:使用示例,createTime__DESC
|
||||
*/
|
||||
@CriteriaField(ignore = true)
|
||||
List<String> sort;
|
||||
|
||||
@CriteriaField(field = "itemCode", operator = Operator.IN)
|
||||
private Set<String> itemCodes;
|
||||
}
|
||||
@ -41,4 +41,16 @@ public class PageElementFeatureResourceRelationReq implements IPageReq {
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
private Set<PageElementFeatureResourceRelationTypeEnum> types;
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needPageElement;
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needFeatureResource;
|
||||
|
||||
/**
|
||||
* 需要跟needPageElement一起使用
|
||||
*/
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needPageElementCategory;
|
||||
}
|
||||
|
||||
@ -50,4 +50,10 @@ public class PageElementReq implements IPageReq {
|
||||
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needPageElementCategory;
|
||||
|
||||
/**
|
||||
* 现在只有组件的父节点是页面
|
||||
*/
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needAncestor;
|
||||
}
|
||||
@ -92,6 +92,18 @@ public class PageSaasFeatureResourceReq implements IPageReq {
|
||||
@CriteriaField(ignore = true)
|
||||
private Set<PageElementFeatureResourceRelationTypeEnum> pageElementTypes;
|
||||
|
||||
/**
|
||||
* 是否需要所有子节点
|
||||
*/
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needChildren;
|
||||
|
||||
/**
|
||||
* 是否需要所有父节点
|
||||
*/
|
||||
@CriteriaField(ignore = true)
|
||||
private Boolean needAncestor;
|
||||
|
||||
public PageResp toEmpty() {
|
||||
return PageResp.builder()
|
||||
.current(this.getPage())
|
||||
|
||||
@ -0,0 +1,54 @@
|
||||
package cn.axzo.tyr.client.model.res;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PageElementFeatureResourceRelationResp {
|
||||
|
||||
private Long id;
|
||||
|
||||
private Date createAt;
|
||||
|
||||
private Date updateAt;
|
||||
|
||||
private Long isDelete;
|
||||
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
* 页面元素code
|
||||
*/
|
||||
private String pageElementCode;
|
||||
|
||||
/**
|
||||
* 菜单组件code
|
||||
*/
|
||||
private String featureResourceUniCode;
|
||||
|
||||
/**
|
||||
* 所属端
|
||||
*/
|
||||
private String terminal;
|
||||
|
||||
private PageElementResp pageElement;
|
||||
|
||||
private SaasFeatureResourceResp saasFeatureResource;
|
||||
}
|
||||
@ -132,6 +132,8 @@ public class PageElementResp {
|
||||
*/
|
||||
private PageElementCategoryResp pageElementCategory;
|
||||
|
||||
private PageElementResp ancestor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
|
||||
@ -155,6 +155,16 @@ public class SaasFeatureResourceResp {
|
||||
*/
|
||||
private List<PageElementResp> saasPageElements;
|
||||
|
||||
/**
|
||||
* 所有父节点
|
||||
*/
|
||||
private List<SaasFeatureResourceResp> ancestors;
|
||||
|
||||
/**
|
||||
* 所有子节点
|
||||
*/
|
||||
private List<SaasFeatureResourceResp> children;
|
||||
|
||||
public Set<Long> resolvePath() {
|
||||
return Optional.ofNullable(this.getPath())
|
||||
.map(e -> Arrays.stream(e.split(",")).map(Long::valueOf).collect(Collectors.toSet()))
|
||||
|
||||
@ -20,7 +20,7 @@ import java.util.List;
|
||||
* @author: ZhanSiHu
|
||||
* @date: 2024/4/3 10:25
|
||||
*/
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.base.tyr:https://pre-api.axzo.cn/tyr}")
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.base.tyr:https://test-api.axzo.cn/tyr}")
|
||||
public interface BaseFeatureResourceApi {
|
||||
|
||||
|
||||
|
||||
@ -37,30 +37,40 @@ public interface SaasFeatureResourceService extends IService<SaasFeatureResource
|
||||
void updateFeatureAuthType(Long featureId, Integer authType);
|
||||
|
||||
/**递归的**/
|
||||
@Deprecated
|
||||
List<SaasFeatureResource> batchListDescendant(List<Long> featureIds);
|
||||
|
||||
@Deprecated
|
||||
SaasFeatureResource featureResourceById(Long featureId);
|
||||
|
||||
@Deprecated
|
||||
FeatureResourceTreeNode getTreeFeatureDescendant(DetailFeatureResourceReq param);
|
||||
|
||||
/**菜单重排序**/
|
||||
void reorderMenuFeature(Long featureId, Integer offset);
|
||||
|
||||
@Deprecated
|
||||
/** 根据ID查询导航菜单页面信息 仅可显示 - 限制查询字段 **/
|
||||
List<SaasFeatureResource> listNavByIds(List<Long> featureIds, List<Integer> featureTypes);
|
||||
|
||||
/** 资源权限通用查询 **/
|
||||
@Deprecated
|
||||
List<ResourcePermission> permissionQuery(ResourcePermissionQueryDTO param);
|
||||
|
||||
/** 查询资源树 **/
|
||||
@Deprecated
|
||||
List<FeatureResourceTreeNode> getTree(GetFeatureResourceTreeReq req);
|
||||
|
||||
@Deprecated
|
||||
SaasFeatureResource getByCode(String featureCode);
|
||||
|
||||
@Deprecated
|
||||
Set<Long> listAuthFree();
|
||||
|
||||
@Deprecated
|
||||
List<SaasFeatureResource> listByParentIdAndTerminalAndIds(Long parentId, String terminal, List<Long> featureIds);
|
||||
|
||||
@Deprecated
|
||||
List<SaasFeatureResource> listByParentIdAndBlurTerminalAndIds(Long parentId, String terminal, List<Long> featureIds);
|
||||
|
||||
List<SaasFeatureResourceResp> list(PageSaasFeatureResourceReq param);
|
||||
@ -73,6 +83,7 @@ public interface SaasFeatureResourceService extends IService<SaasFeatureResource
|
||||
|
||||
void refreshCache(RefreshFeatureResourceCacheParam param);
|
||||
|
||||
@Deprecated
|
||||
List<SaasFeatureBO> listAllFeatureByTerminal(String terminal);
|
||||
|
||||
void clone(CloneTerminalReq req);
|
||||
|
||||
@ -4,9 +4,13 @@ import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.tyr.client.model.req.BatchUpsertPageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryV2Req;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementCategory;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@ -19,6 +23,7 @@ import java.util.List;
|
||||
*/
|
||||
public interface SaasPageElementCategoryService extends IService<SaasPageElementCategory> {
|
||||
|
||||
@Deprecated
|
||||
List<ListPageElementCategoryResp> listGroupByTerminal(PageElementCategoryReq req);
|
||||
|
||||
Long saveOrUpdate(SaveOrUpdatePageElementCategoryReq req);
|
||||
@ -26,4 +31,8 @@ public interface SaasPageElementCategoryService extends IService<SaasPageElement
|
||||
void delete(DeletePageElementCategoryReq req);
|
||||
|
||||
void batchUpsert(BatchUpsertPageElementCategoryReq req);
|
||||
|
||||
List<PageElementCategoryResp> list(PageElementCategoryV2Req param);
|
||||
|
||||
PageResp<PageElementCategoryResp> page(PageElementCategoryV2Req param);
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.tyr.client.model.req.PageElementFeatureResourceRelationReq;
|
||||
import cn.axzo.tyr.client.model.res.PageElementFeatureResourceRelationResp;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@ -9,7 +10,7 @@ import java.util.List;
|
||||
|
||||
public interface SaasPageElementFeatureResourceRelationService extends IService<SaasPageElementFeatureResourceRelation> {
|
||||
|
||||
List<SaasPageElementFeatureResourceRelation> list(PageElementFeatureResourceRelationReq param);
|
||||
List<PageElementFeatureResourceRelationResp> list(PageElementFeatureResourceRelationReq param);
|
||||
|
||||
PageResp<SaasPageElementFeatureResourceRelation> page(PageElementFeatureResourceRelationReq param);
|
||||
PageResp<PageElementFeatureResourceRelationResp> page(PageElementFeatureResourceRelationReq param);
|
||||
}
|
||||
|
||||
@ -11,8 +11,10 @@ import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.enums.RolePermissionTagEnum;
|
||||
import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.req.ResourceSyncReq;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.server.config.MqProducer;
|
||||
import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload;
|
||||
import cn.axzo.tyr.server.event.payload.SaasFeatureResourceUpsertPayload;
|
||||
@ -30,6 +32,7 @@ import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateL
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.service.FeatureResourceSyncService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import cn.axzo.tyr.server.util.RpcInternalUtil;
|
||||
import cn.azxo.framework.common.constatns.Constants;
|
||||
@ -95,6 +98,7 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
|
||||
private final SaasPgroupPermissionRelationOperateLogService saasPgroupPermissionRelationOperateLogService;
|
||||
private final UserProfileServiceApi userProfileServiceApi;
|
||||
private final SaasFeatureResourceService saasFeatureResourceService;
|
||||
|
||||
@Qualifier("asyncExecutor")
|
||||
@Autowired
|
||||
@ -456,37 +460,26 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Map<Long, SaasRole> roleMap = roles.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getRoleCode()))
|
||||
.collect(Collectors.toMap(SaasRole::getId, Function.identity()));
|
||||
|
||||
Map<Long, List<Long>> groupIdToRoleIdsMap = roleRelations.stream()
|
||||
Map<Long, List<SaasRole>> groupRoleMap = roleRelations.stream()
|
||||
.collect(Collectors.groupingBy(SaasPgroupRoleRelation::getGroupId,
|
||||
Collectors.mapping(SaasPgroupRoleRelation::getRoleId, Collectors.toList())));
|
||||
|
||||
Map<Long, String> roleIdToRoleCodeMap = Maps.newHashMap();
|
||||
for (SaasRole role : roles) {
|
||||
if (StringUtils.isNotBlank(role.getRoleCode())) {
|
||||
roleIdToRoleCodeMap.put(role.getId(), role.getRoleCode());
|
||||
}
|
||||
}
|
||||
Collectors.mapping(e -> roleMap.get(e.getRoleId()), Collectors.toList())));
|
||||
|
||||
return permissionRelations.stream()
|
||||
.map(e -> {
|
||||
List<Long> roleIds = groupIdToRoleIdsMap.get(e.getGroupId());
|
||||
if (CollectionUtils.isEmpty(roleIds)) {
|
||||
List<SaasRole> saasRoles = groupRoleMap.get(e.getGroupId());
|
||||
if (CollectionUtils.isEmpty(saasRoles)) {
|
||||
return null;
|
||||
}
|
||||
return roleIds.stream()
|
||||
.map(roleId -> {
|
||||
String roleCode = roleIdToRoleCodeMap.get(roleId);
|
||||
if (StringUtils.isBlank(roleCode)) {
|
||||
return null;
|
||||
}
|
||||
return PermissionGroupRoleWrapper.builder()
|
||||
return saasRoles.stream()
|
||||
.map(role -> PermissionGroupRoleWrapper.builder()
|
||||
.featureId(e.getFeatureId())
|
||||
.roleCode(roleCode)
|
||||
.roleCode(role.getRoleCode())
|
||||
.tags(e.getTags())
|
||||
.build();
|
||||
|
||||
})
|
||||
.build())
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
})
|
||||
|
||||
@ -26,12 +26,12 @@ import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq;
|
||||
import cn.axzo.tyr.client.model.req.ListRoleReq;
|
||||
import cn.axzo.tyr.client.model.req.ModifyPageElementRelationDTO;
|
||||
import cn.axzo.tyr.client.model.req.PageElementFeatureResourceRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PagePgroupPermissionRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementFeatureResourceRelationResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
@ -45,7 +45,6 @@ import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupRoleRelationDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasFeatureResourceMapper;
|
||||
@ -403,19 +402,11 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
PageElementFeatureResourceRelationReq pageElementFeatureResourceRelationReq = PageElementFeatureResourceRelationReq.builder()
|
||||
.featureResourceUniCodes(Sets.newHashSet(featureResourceTreeNode.getUniCode()))
|
||||
.types(Sets.newHashSet(PageElementFeatureResourceRelationTypeEnum.PAGE_ROUTE))
|
||||
.needPageElement(true)
|
||||
.build();
|
||||
List<SaasPageElementFeatureResourceRelation> pageElementFeatureResourceRelations = saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq);
|
||||
|
||||
if (CollectionUtils.isEmpty(pageElementFeatureResourceRelations)) {
|
||||
return;
|
||||
}
|
||||
|
||||
PageElementReq pageElementReq = PageElementReq.builder()
|
||||
.codes(pageElementFeatureResourceRelations.stream()
|
||||
.map(SaasPageElementFeatureResourceRelation::getPageElementCode)
|
||||
.collect(Collectors.toSet()))
|
||||
.build();
|
||||
Optional<PageElementResp> pageElementOptional = saasPageElementService.list(pageElementReq).stream()
|
||||
Optional<PageElementResp> pageElementOptional = saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq)
|
||||
.stream()
|
||||
.map(PageElementFeatureResourceRelationResp::getPageElement)
|
||||
.findFirst();
|
||||
|
||||
if (!pageElementOptional.isPresent()) {
|
||||
@ -821,20 +812,84 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
|
||||
Map<String, List<PageElementResp>> pageElements = listPageElements(param, page.getRecords());
|
||||
|
||||
Map<Long, List<SaasFeatureResourceResp>> children = listChildren(param, page.getRecords());
|
||||
|
||||
Map<Long, List<SaasFeatureResourceResp>> ancestors = listAncestor(param, page.getRecords());
|
||||
|
||||
return PageConverter.toResp(page, e -> from(e,
|
||||
uniCodeFeatureCodeMap,
|
||||
pageElements));
|
||||
pageElements,
|
||||
ancestors,
|
||||
children));
|
||||
}
|
||||
|
||||
private Map<Long, List<SaasFeatureResourceResp>> listAncestor(PageSaasFeatureResourceReq param,
|
||||
List<SaasFeatureResource> saasFeatureResources) {
|
||||
if (CollectionUtils.isEmpty(saasFeatureResources) || BooleanUtils.isNotTrue(param.getNeedAncestor())) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
List<Long> parentIds = saasFeatureResources.stream()
|
||||
.map(SaasFeatureResource::splitPath)
|
||||
.flatMap(Collection::stream)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Map<Long, SaasFeatureResourceResp> parents = this.list(PageSaasFeatureResourceReq.builder()
|
||||
.ids(parentIds)
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(SaasFeatureResourceResp::getId, Function.identity()));
|
||||
|
||||
return saasFeatureResources.stream()
|
||||
.collect(Collectors.toMap(SaasFeatureResource::getId,
|
||||
e -> e.splitPath().stream()
|
||||
.filter(parentId -> !Objects.equals(parentId, e.getId()))
|
||||
.map(parents::get)
|
||||
.collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private Map<Long, List<SaasFeatureResourceResp>> listChildren(PageSaasFeatureResourceReq param,
|
||||
List<SaasFeatureResource> saasFeatureResources) {
|
||||
|
||||
if (CollectionUtils.isEmpty(saasFeatureResources) || BooleanUtils.isNotTrue(param.getNeedChildren())) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Set<String> paths = saasFeatureResources.stream()
|
||||
.map(SaasFeatureResource::getPath)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
List<SaasFeatureResourceResp> children = this.list(PageSaasFeatureResourceReq.builder()
|
||||
.paths(paths)
|
||||
.build());
|
||||
if (CollectionUtils.isEmpty(children)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return saasFeatureResources.stream()
|
||||
.collect(Collectors.toMap(SaasFeatureResource::getId,
|
||||
e -> children.stream()
|
||||
.filter(c -> c.getPath().startsWith(e.getPath()) && !Objects.equals(e.getPath(), c.getPath()))
|
||||
.collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private SaasFeatureResourceResp from(SaasFeatureResource featureResource,
|
||||
Map<String, Set<String>> uniCodeFeatureCodeMap,
|
||||
Map<String, List<PageElementResp>> pageElements) {
|
||||
Map<String, List<PageElementResp>> pageElements,
|
||||
Map<Long, List<SaasFeatureResourceResp>> children,
|
||||
Map<Long, List<SaasFeatureResourceResp>> ancestors) {
|
||||
SaasFeatureResourceResp saasFeatureResourceResp = SaasFeatureResourceResp.builder().build();
|
||||
BeanUtils.copyProperties(featureResource, saasFeatureResourceResp);
|
||||
|
||||
saasFeatureResourceResp.setFeatureCodes(uniCodeFeatureCodeMap.get(featureResource.getUniCode()));
|
||||
|
||||
saasFeatureResourceResp.setSaasPageElements(pageElements.get(saasFeatureResourceResp.getUniCode()));
|
||||
|
||||
saasFeatureResourceResp.setChildren(children.get(saasFeatureResourceResp.getId()));
|
||||
|
||||
saasFeatureResourceResp.setAncestors(ancestors.get(saasFeatureResourceResp.getId()));
|
||||
|
||||
return saasFeatureResourceResp;
|
||||
}
|
||||
|
||||
@ -853,8 +908,8 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
.build();
|
||||
return saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq)
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode,
|
||||
Collectors.mapping(SaasPageElementFeatureResourceRelation::getPageElementCode, Collectors.toSet())));
|
||||
.collect(Collectors.groupingBy(PageElementFeatureResourceRelationResp::getFeatureResourceUniCode,
|
||||
Collectors.mapping(PageElementFeatureResourceRelationResp::getPageElementCode, Collectors.toSet())));
|
||||
}
|
||||
|
||||
private Map<String, List<PageElementResp>> listPageElements(PageSaasFeatureResourceReq param,
|
||||
@ -872,26 +927,12 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
.types(param.getPageElementTypes())
|
||||
.build();
|
||||
|
||||
List<SaasPageElementFeatureResourceRelation> pageElementFeatureResourceRelations = saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq);
|
||||
|
||||
if (CollectionUtils.isEmpty(pageElementFeatureResourceRelations)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Set<String> elementCodes = pageElementFeatureResourceRelations.stream()
|
||||
.map(SaasPageElementFeatureResourceRelation::getPageElementCode)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
PageElementReq pageElementReq = PageElementReq.builder()
|
||||
.codes(elementCodes)
|
||||
.build();
|
||||
Map<String, PageElementResp> elementMap = saasPageElementService.list(pageElementReq).stream()
|
||||
.collect(Collectors.toMap(PageElementResp::getCode, Function.identity()));
|
||||
List<PageElementFeatureResourceRelationResp> pageElementFeatureResourceRelations = saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq);
|
||||
|
||||
return pageElementFeatureResourceRelations.stream()
|
||||
.filter(e -> elementMap.get(e.getPageElementCode()) != null)
|
||||
.collect(Collectors.groupingBy(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode,
|
||||
Collectors.mapping(e -> elementMap.get(e.getPageElementCode()), Collectors.toList())));
|
||||
.filter(e -> e.getPageElement() != null)
|
||||
.collect(Collectors.groupingBy(PageElementFeatureResourceRelationResp::getFeatureResourceUniCode,
|
||||
Collectors.mapping(PageElementFeatureResourceRelationResp::getPageElement, Collectors.toList())));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,10 @@ package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.DeleteEnum;
|
||||
import cn.axzo.basics.common.util.AssertUtil;
|
||||
import cn.axzo.foundation.dao.support.converter.PageConverter;
|
||||
import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper;
|
||||
import cn.axzo.foundation.exception.Axssert;
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementTypeEnum;
|
||||
@ -10,10 +13,12 @@ import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.req.BatchUpsertPageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryV2Req;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementCategoryReq;
|
||||
import cn.axzo.tyr.client.model.res.ListPageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.server.config.MqProducer;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
@ -27,12 +32,15 @@ import cn.axzo.tyr.server.service.SaasPageElementCategoryService;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementService;
|
||||
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationOperateLogService;
|
||||
import com.alibaba.nacos.common.utils.UuidUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@ -398,4 +406,28 @@ public class SaasPageElementCategoryServiceImpl extends ServiceImpl<SaasPageElem
|
||||
.operateData(baseCategory)
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PageElementCategoryResp> list(PageElementCategoryV2Req param) {
|
||||
return PageConverter.drainAll(pageNumber -> {
|
||||
param.setPage(pageNumber);
|
||||
param.setPageSize(1000);
|
||||
return page(param);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResp<PageElementCategoryResp> page(PageElementCategoryV2Req param) {
|
||||
QueryWrapper<SaasPageElementCategory> wrapper = QueryWrapperHelper.fromBean(param, SaasPageElementCategory.class);
|
||||
wrapper.eq("is_delete", 0);
|
||||
|
||||
IPage<SaasPageElementCategory> page = this.page(PageConverter.toMybatis(param, SaasPageElementCategory.class), wrapper);
|
||||
return PageConverter.toResp(page, this::from);
|
||||
}
|
||||
|
||||
private PageElementCategoryResp from(SaasPageElementCategory saasPageElementCategory) {
|
||||
PageElementCategoryResp result = PageElementCategoryResp.builder().build();
|
||||
BeanUtils.copyProperties(saasPageElementCategory, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,17 +5,30 @@ import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper;
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum;
|
||||
import cn.axzo.tyr.client.model.req.PageElementFeatureResourceRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.res.PageElementFeatureResourceRelationResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPageElementFeatureResourceRelationMapper;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementFeatureResourceRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -24,8 +37,13 @@ import java.util.stream.Collectors;
|
||||
public class SaasPageElementFeatureResourceRelationServiceImpl extends ServiceImpl<SaasPageElementFeatureResourceRelationMapper, SaasPageElementFeatureResourceRelation>
|
||||
implements SaasPageElementFeatureResourceRelationService {
|
||||
|
||||
@Autowired
|
||||
private SaasPageElementService saasPageElementService;
|
||||
@Autowired
|
||||
private SaasFeatureResourceService saasFeatureResourceService;
|
||||
|
||||
@Override
|
||||
public List<SaasPageElementFeatureResourceRelation> list(PageElementFeatureResourceRelationReq param) {
|
||||
public List<PageElementFeatureResourceRelationResp> list(PageElementFeatureResourceRelationReq param) {
|
||||
return PageConverter.drainAll(pageNumber -> {
|
||||
param.setPage(pageNumber);
|
||||
param.setPageSize(1000);
|
||||
@ -34,7 +52,7 @@ public class SaasPageElementFeatureResourceRelationServiceImpl extends ServiceIm
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResp<SaasPageElementFeatureResourceRelation> page(PageElementFeatureResourceRelationReq param) {
|
||||
public PageResp<PageElementFeatureResourceRelationResp> page(PageElementFeatureResourceRelationReq param) {
|
||||
|
||||
QueryWrapper<SaasPageElementFeatureResourceRelation> wrapper = QueryWrapperHelper.fromBean(param, SaasPageElementFeatureResourceRelation.class);
|
||||
wrapper.eq("is_delete", 0);
|
||||
@ -45,6 +63,57 @@ public class SaasPageElementFeatureResourceRelationServiceImpl extends ServiceIm
|
||||
|
||||
IPage<SaasPageElementFeatureResourceRelation> page = this.page(PageConverter.toMybatis(param, SaasPageElementFeatureResourceRelation.class), wrapper);
|
||||
|
||||
return PageConverter.toResp(page, Function.identity());
|
||||
Map<String, PageElementResp> pageElements = listPageElement(page.getRecords(), param);
|
||||
|
||||
Map<String, SaasFeatureResourceResp> saasFeatureResources = listSaasFeatureResource(page.getRecords(), param);
|
||||
|
||||
return PageConverter.toResp(page, e -> from(e, pageElements, saasFeatureResources));
|
||||
}
|
||||
|
||||
private PageElementFeatureResourceRelationResp from(SaasPageElementFeatureResourceRelation saasPageElementFeatureResourceRelation,
|
||||
Map<String, PageElementResp> pageElements,
|
||||
Map<String, SaasFeatureResourceResp> saasFeatureResources) {
|
||||
PageElementFeatureResourceRelationResp result = PageElementFeatureResourceRelationResp.builder().build();
|
||||
BeanUtils.copyProperties(saasPageElementFeatureResourceRelation, result);
|
||||
|
||||
result.setPageElement(pageElements.get(result.getPageElementCode()));
|
||||
|
||||
result.setSaasFeatureResource(saasFeatureResources.get(result.getFeatureResourceUniCode()));
|
||||
return result;
|
||||
}
|
||||
|
||||
private Map<String, PageElementResp> listPageElement(List<SaasPageElementFeatureResourceRelation> saasPageElementFeatureResourceRelations,
|
||||
PageElementFeatureResourceRelationReq param) {
|
||||
|
||||
if (CollectionUtils.isEmpty(saasPageElementFeatureResourceRelations) || BooleanUtils.isNotTrue(param.getNeedPageElement())) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return saasPageElementService.list(PageElementReq.builder()
|
||||
.codes(saasPageElementFeatureResourceRelations.stream()
|
||||
.map(SaasPageElementFeatureResourceRelation::getPageElementCode)
|
||||
.collect(Collectors.toSet()))
|
||||
.needPageElementCategory(param.getNeedPageElementCategory())
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(PageElementResp::getCode, Function.identity()));
|
||||
}
|
||||
|
||||
private Map<String, SaasFeatureResourceResp> listSaasFeatureResource(List<SaasPageElementFeatureResourceRelation> saasPageElementFeatureResourceRelations,
|
||||
PageElementFeatureResourceRelationReq param) {
|
||||
if (CollectionUtils.isEmpty(saasPageElementFeatureResourceRelations) || BooleanUtils.isNotTrue(param.getNeedFeatureResource())) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Set<String> uniCodes = saasPageElementFeatureResourceRelations.stream()
|
||||
.map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode)
|
||||
.collect(Collectors.toSet());
|
||||
PageSaasFeatureResourceReq pageSaasFeatureResourceReq = PageSaasFeatureResourceReq.builder()
|
||||
.uniCodes(uniCodes)
|
||||
.build();
|
||||
List<SaasFeatureResourceResp> featureResources = saasFeatureResourceService.list(pageSaasFeatureResourceReq);
|
||||
|
||||
return featureResources.stream()
|
||||
.collect(Collectors.toMap(SaasFeatureResourceResp::getUniCode, Function.identity()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,6 +26,7 @@ import cn.axzo.tyr.client.model.req.GetPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.GetUserHasPermissionPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
|
||||
import cn.axzo.tyr.client.model.req.ModifyPageElementRelationDTO;
|
||||
import cn.axzo.tyr.client.model.req.PageElementCategoryV2Req;
|
||||
import cn.axzo.tyr.client.model.req.PageElementFeatureResourceRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementImportDataReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReportReq;
|
||||
@ -41,6 +42,7 @@ import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementCategoryAndElementResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementCategoryResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementFeatureResourceRelationResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementRelationFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
@ -881,10 +883,10 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
.builder()
|
||||
.pageElementCodes(pageElementCodes)
|
||||
.build();
|
||||
List<SaasPageElementFeatureResourceRelation> elementFeatureResourceRelations = saasPageElementFeatureResourceRelationService.list(elementFeatureResourceRelationReq);
|
||||
List<PageElementFeatureResourceRelationResp> elementFeatureResourceRelations = saasPageElementFeatureResourceRelationService.list(elementFeatureResourceRelationReq);
|
||||
|
||||
Set<String> uniCodes = elementFeatureResourceRelations.stream()
|
||||
.map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode)
|
||||
.map(PageElementFeatureResourceRelationResp::getFeatureResourceUniCode)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtils.isEmpty(uniCodes)) {
|
||||
@ -899,7 +901,7 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
.collect(Collectors.toMap(SaasFeatureResourceResp::getUniCode, Function.identity()));
|
||||
|
||||
return elementFeatureResourceRelations.stream()
|
||||
.collect(Collectors.groupingBy(SaasPageElementFeatureResourceRelation::getPageElementCode,
|
||||
.collect(Collectors.groupingBy(PageElementFeatureResourceRelationResp::getPageElementCode,
|
||||
Collectors.mapping(e -> featureResources.get(e.getFeatureResourceUniCode()), Collectors.toList())));
|
||||
}
|
||||
|
||||
@ -1037,6 +1039,35 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
.collect(Collectors.groupingBy(PageElementResp::getGroupCode));
|
||||
}
|
||||
|
||||
/**
|
||||
* 目前saas_page_element上提现不出来层级关系,只有通过type来确定,只有type = COMPONENT时,才有父节点的记录
|
||||
* @param pageElements
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
private Map<String, PageElementResp> listAncestorPageElement(List<SaasPageElement> pageElements,
|
||||
PageElementReq param) {
|
||||
|
||||
if (CollectionUtils.isEmpty(pageElements) || BooleanUtils.isNotTrue(param.getNeedAncestor())) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Set<String> codes = pageElements.stream()
|
||||
.map(SaasPageElement::getCode)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// 因为现在的数据结构,type为PAGE的和type为COMPONENT的groupCode一样,所以要排除type=PAGE的记录
|
||||
// return this.lambdaQuery()
|
||||
// .in(SaasPageElement::getGroupCode, codes)
|
||||
// .ne(SaasPageElement::getType, PageElementTypeEnum.PAGE)
|
||||
// .list()
|
||||
// .stream()
|
||||
// .map(SaasPageElement::to)
|
||||
// .collect(Collectors.groupingBy(PageElementResp::getGroupCode));
|
||||
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
private Map<String, PageElementCategoryResp> listPageElementCategory(List<SaasPageElement> pageElements,
|
||||
PageElementReq param) {
|
||||
|
||||
@ -1079,11 +1110,10 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, PageElementResp> localDBPageElements = listLocalDBPageElement(prePageElements);
|
||||
|
||||
// upsert pageElementCategory
|
||||
upsertPageElementCategory(prePageElements, localDBPageElements, req);
|
||||
upsertPageElementCategory(prePageElements, req);
|
||||
|
||||
Map<String, PageElementResp> localDBPageElements = listLocalDBPageElement(prePageElements);
|
||||
|
||||
List<BatchUpsertPageElementReq.UpsertPageElementReq> preUpsertPageElements = prePageElements.stream()
|
||||
.flatMap(e -> {
|
||||
@ -1118,7 +1148,6 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
}
|
||||
|
||||
private void upsertPageElementCategory(List<PageElementResp> prePageElements,
|
||||
Map<String, PageElementResp> localDBPageElements,
|
||||
SyncPageElementReq req) {
|
||||
|
||||
List<PageElementCategoryResp> prePageElementCategories = prePageElements.stream()
|
||||
@ -1130,17 +1159,21 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
log.info("no pageElementCategory need sync");
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, PageElementCategoryResp> localDBPageElementCategories = localDBPageElements.values().stream()
|
||||
.map(PageElementResp::getPageElementCategory)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toMap(PageElementCategoryResp::getItemCode, Function.identity(), (f, s) -> f));
|
||||
Map<String, PageElementCategoryResp> localDBPageElementCategories = saasPageElementCategoryService.list(PageElementCategoryV2Req.builder()
|
||||
.itemCodes(prePageElementCategories.stream()
|
||||
.map(PageElementCategoryResp::getItemCode)
|
||||
.collect(Collectors.toSet()))
|
||||
.build())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(PageElementCategoryResp::getItemCode, Function.identity()));
|
||||
|
||||
List<BatchUpsertPageElementCategoryReq.UpsertPageElementCategory> upsert = prePageElementCategories.stream()
|
||||
.map(e -> {
|
||||
PageElementCategoryResp localDBPageElementCategory = localDBPageElementCategories.get(e.getItemCode());
|
||||
return BatchUpsertPageElementCategoryReq.UpsertPageElementCategory.builder()
|
||||
.id(Objects.nonNull(localDBPageElementCategory) ? localDBPageElementCategory.getId() : null)
|
||||
.id(Optional.ofNullable(localDBPageElementCategory)
|
||||
.map(PageElementCategoryResp::getId)
|
||||
.orElse(null))
|
||||
.terminal(e.getTerminal())
|
||||
.itemCode(e.getItemCode())
|
||||
.itemName(e.getItemName())
|
||||
|
||||
@ -25,6 +25,7 @@ import cn.axzo.tyr.client.model.req.WorkspacePermissionIdentityReq;
|
||||
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
||||
import cn.axzo.tyr.client.model.res.ListIdentityFromPermissionResp;
|
||||
import cn.axzo.tyr.client.model.res.ListPermissionFromRoleGroupResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementFeatureResourceRelationResp;
|
||||
import cn.axzo.tyr.client.model.res.QueryIdentityByPermissionResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
@ -36,7 +37,6 @@ import cn.axzo.tyr.server.repository.entity.ProductFeatureQuery;
|
||||
import cn.axzo.tyr.server.repository.entity.RolePermission;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleUserRelationMapper;
|
||||
@ -380,8 +380,9 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
||||
PageElementFeatureResourceRelationReq pageElementFeatureResourceRelationReq = PageElementFeatureResourceRelationReq.builder()
|
||||
.pageElementCodes(req.getFeatureCodes())
|
||||
.terminal(req.getTerminal())
|
||||
.needFeatureResource(true)
|
||||
.build();
|
||||
List<SaasPageElementFeatureResourceRelation> relations = saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq);
|
||||
List<PageElementFeatureResourceRelationResp> relations = saasPageElementFeatureResourceRelationService.list(pageElementFeatureResourceRelationReq);
|
||||
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
log.info("not found in SaasPageElementFeatureResourceRelation, featureCodes:{},terminal:{}",
|
||||
@ -389,14 +390,13 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
Set<String> uniCodes = relations.stream().map(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode).collect(Collectors.toSet());
|
||||
PageSaasFeatureResourceReq pageSaasFeatureResourceReq = PageSaasFeatureResourceReq.builder()
|
||||
.uniCodes(uniCodes)
|
||||
.build();
|
||||
List<SaasFeatureResourceResp> featureResources = saasFeatureResourceService.list(pageSaasFeatureResourceReq);
|
||||
List<SaasFeatureResourceResp> featureResources = relations.stream()
|
||||
.map(PageElementFeatureResourceRelationResp::getSaasFeatureResource)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(featureResources)) {
|
||||
log.info("not found in SaasFeatureResource, unicode:{}", uniCodes);
|
||||
log.info("not found in SaasFeatureResource, pageElementCodes:{}", req.getFeatureCodes());
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return saasFeatureResourceService.list(PageSaasFeatureResourceReq.builder()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user