feat:(REQ-2186) 增加租户的权限点list接口,政务需要查询权限点数量

This commit is contained in:
lilong 2024-05-24 09:55:35 +08:00
parent 7a160e1ac8
commit abfdbc017a
4 changed files with 48 additions and 13 deletions

View File

@ -6,6 +6,7 @@ import cn.axzo.tyr.client.model.req.PagePermissionReq;
import cn.axzo.tyr.client.model.req.PagePermissionResp;
import cn.axzo.tyr.client.model.req.PermissionCheckReq;
import cn.axzo.tyr.client.model.req.TreeProductFeatureResourceReq;
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
import cn.axzo.tyr.client.model.res.NavTreeResp;
import cn.axzo.tyr.client.model.res.ProductFeatureResourceResp;
import org.springframework.cloud.openfeign.FeignClient;
@ -45,4 +46,12 @@ public interface PermissionQueryApi {
*/
@PostMapping(value = "/api/v3/productPermission/tree")
ApiResult<List<ProductFeatureResourceResp>> treeProduct(@RequestBody @Validated TreeProductFeatureResourceReq request);
/**
* 查询租户的权限点list
* @param request
* @return
*/
@PostMapping(value = "/api/v3/productPermission/list")
ApiResult<List<FeatureResourceDTO>> listFeatureResource(@RequestBody @Validated TreeProductFeatureResourceReq request);
}

View File

@ -7,6 +7,7 @@ import cn.axzo.tyr.client.model.req.PagePermissionReq;
import cn.axzo.tyr.client.model.req.PagePermissionResp;
import cn.axzo.tyr.client.model.req.PermissionCheckReq;
import cn.axzo.tyr.client.model.req.TreeProductFeatureResourceReq;
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
import cn.axzo.tyr.client.model.res.NavTreeResp;
import cn.axzo.tyr.client.model.res.ProductFeatureResourceResp;
import cn.axzo.tyr.server.service.PermissionQueryService;
@ -49,4 +50,9 @@ public class PermissionQueryController implements PermissionQueryApi {
public ApiResult<List<ProductFeatureResourceResp>> treeProduct(TreeProductFeatureResourceReq request) {
return ApiResult.ok(permissionService.treeProduct(request));
}
@Override
public ApiResult<List<FeatureResourceDTO>> listFeatureResource(TreeProductFeatureResourceReq request) {
return ApiResult.ok(permissionService.listFeatureResource(request));
}
}

View File

@ -5,8 +5,10 @@ import cn.axzo.tyr.client.model.req.PagePermissionReq;
import cn.axzo.tyr.client.model.req.PagePermissionResp;
import cn.axzo.tyr.client.model.req.PermissionCheckReq;
import cn.axzo.tyr.client.model.req.TreeProductFeatureResourceReq;
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
import cn.axzo.tyr.client.model.res.NavTreeResp;
import cn.axzo.tyr.client.model.res.ProductFeatureResourceResp;
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
import java.util.List;
@ -32,4 +34,11 @@ public interface PermissionQueryService {
* @return
*/
List<ProductFeatureResourceResp> treeProduct(TreeProductFeatureResourceReq request);
/**
* 查询租户的权限点list
* @param request
* @return
*/
List<FeatureResourceDTO> listFeatureResource(TreeProductFeatureResourceReq request);
}

View File

@ -23,7 +23,6 @@ import cn.axzo.tyr.client.model.req.PagePermissionResp;
import cn.axzo.tyr.client.model.req.PermissionCheckReq;
import cn.axzo.tyr.client.model.req.TreeProductFeatureResourceReq;
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
import cn.axzo.tyr.client.model.res.NavTreeResp;
import cn.axzo.tyr.client.model.res.ProductFeatureResourceResp;
@ -50,6 +49,7 @@ import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -196,17 +196,7 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
@Override
public List<ProductFeatureResourceResp> treeProduct(TreeProductFeatureResourceReq request) {
List<ProductFeatureRelationVO> productFeatureRelations = getProductFeatureRelationByWorkspace(Sets.newHashSet(request.getWorkspaceId()));
if (CollectionUtil.isEmpty(productFeatureRelations)) {
return Collections.emptyList();
}
List<Long> featureIds = productFeatureRelations.stream()
.map(ProductFeatureRelationVO::getFeatureId)
.distinct()
.collect(Collectors.toList());
List<SaasFeatureResource> saasFeatureResources = featureResourceService.listByParentIdAndTerminalAndIds(null, request.getTerminal(), featureIds);
List<FeatureResourceDTO> saasFeatureResources = listFeatureResource(request);
if (CollectionUtil.isEmpty(saasFeatureResources)) {
return Collections.emptyList();
@ -220,6 +210,27 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
return TreeUtil.buildTree(collect);
}
@Override
public List<FeatureResourceDTO> listFeatureResource(TreeProductFeatureResourceReq request) {
List<ProductFeatureRelationVO> productFeatureRelations = getProductFeatureRelationByWorkspace(Sets.newHashSet(request.getWorkspaceId()));
if (CollectionUtil.isEmpty(productFeatureRelations)) {
return Collections.emptyList();
}
List<Long> featureIds = productFeatureRelations.stream()
.map(ProductFeatureRelationVO::getFeatureId)
.distinct()
.collect(Collectors.toList());
return featureResourceService.listByParentIdAndTerminalAndIds(null, request.getTerminal(), featureIds).stream()
.map(e -> {
FeatureResourceDTO featureResourceDTO = FeatureResourceDTO.builder().build();
BeanUtils.copyProperties(e, featureResourceDTO);
return featureResourceDTO;
})
.collect(Collectors.toList());
}
private List<ProductFeatureRelationVO> getProductFeatureRelationByWorkspace(Set<Long> workspaceIds) {
List<ServicePkgDetailRes> servicePkgDetailRes = RpcInternalUtil.rpcListProcessor(() -> servicePkgClient.getServicePkgDetailBySpaceId(workspaceIds),
"查询租户的产品", workspaceIds).getData();
@ -260,7 +271,7 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
return listProductFeatureRelation.getData();
}
private ProductFeatureResourceResp resolveProductFeatureResourceResp(SaasFeatureResource featureResource) {
private ProductFeatureResourceResp resolveProductFeatureResourceResp(FeatureResourceDTO featureResource) {
return ProductFeatureResourceResp.builder()
.id(featureResource.getId())
.featureCode(featureResource.getFeatureCode())