mirror of https://gitee.com/stylefeng/roses
【resource】更新资源
parent
a0b68f165c
commit
cbe6150a08
|
@ -1,7 +1,8 @@
|
||||||
package cn.stylefeng.roses.kernel.system.pojo.resource.request;
|
package cn.stylefeng.roses.kernel.system.pojo.resource;
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
@ -11,6 +12,7 @@ import javax.validation.constraints.NotBlank;
|
||||||
* @author fengshuonan
|
* @author fengshuonan
|
||||||
* @since 2019-09-10
|
* @since 2019-09-10
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class ResourceRequest extends BaseRequest {
|
public class ResourceRequest extends BaseRequest {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.request.ResourceRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.ResourceRequest;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public class ApiController {
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取接口树列表(用于接口文档页面)", path = "/resource/getTree", requiredLogin = false)
|
@GetResource(name = "获取接口树列表(用于接口文档页面)", path = "/resource/getTree", requiredLogin = false)
|
||||||
public ResponseData getTree() {
|
public ResponseData getTree() {
|
||||||
List<LayuiApiResourceTreeNode> resourceTree = sysResourceService.getResourceTree();
|
List<LayuiApiResourceTreeNode> resourceTree = sysResourceService.getApiResourceTree();
|
||||||
return new SuccessResponseData(resourceTree);
|
return new SuccessResponseData(resourceTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ public class ApiController {
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取API详情(用于接口文档页面)", path = "/resource/getDetail", requiredLogin = false)
|
@GetResource(name = "获取API详情(用于接口文档页面)", path = "/resource/getDetail", requiredLogin = false)
|
||||||
public ResponseData getResourceDetail(@Validated(BaseRequest.detail.class) ResourceRequest resourceRequest) {
|
public ResponseData getResourceDetail(@Validated(BaseRequest.detail.class) ResourceRequest resourceRequest) {
|
||||||
ResourceDefinition resourceDetail = sysResourceService.getResourceDetail(resourceRequest);
|
ResourceDefinition resourceDetail = sysResourceService.getApiResourceDetail(resourceRequest);
|
||||||
return new SuccessResponseData(resourceDetail);
|
return new SuccessResponseData(resourceDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.resource.modular.pojo.ResourceTreeNode;
|
||||||
import cn.stylefeng.roses.kernel.resource.modular.service.SysResourceService;
|
import cn.stylefeng.roses.kernel.resource.modular.service.SysResourceService;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.request.ResourceRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.ResourceRequest;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public class ResourceController {
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取资源列表", path = "/resource/pageList")
|
@GetResource(name = "获取资源列表", path = "/resource/pageList")
|
||||||
public ResponseData pageList(ResourceRequest resourceRequest) {
|
public ResponseData pageList(ResourceRequest resourceRequest) {
|
||||||
PageResult<SysResource> result = this.sysResourceService.getResourceList(resourceRequest);
|
PageResult<SysResource> result = this.sysResourceService.findPage(resourceRequest);
|
||||||
return new SuccessResponseData(result);
|
return new SuccessResponseData(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ public class ResourceController {
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取资源下拉列表", path = "/resource/getMenuResourceList")
|
@GetResource(name = "获取资源下拉列表", path = "/resource/getMenuResourceList")
|
||||||
public ResponseData getMenuResourceList(ResourceRequest resourceRequest) {
|
public ResponseData getMenuResourceList(ResourceRequest resourceRequest) {
|
||||||
List<SysResource> menuResourceList = this.sysResourceService.getMenuResourceList(resourceRequest);
|
List<SysResource> menuResourceList = this.sysResourceService.findList(resourceRequest);
|
||||||
return new SuccessResponseData(menuResourceList);
|
return new SuccessResponseData(menuResourceList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import cn.stylefeng.roses.kernel.resource.api.pojo.resource.ResourceDefinition;
|
||||||
import cn.stylefeng.roses.kernel.resource.modular.entity.SysResource;
|
import cn.stylefeng.roses.kernel.resource.modular.entity.SysResource;
|
||||||
import cn.stylefeng.roses.kernel.resource.modular.pojo.ResourceTreeNode;
|
import cn.stylefeng.roses.kernel.resource.modular.pojo.ResourceTreeNode;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.request.ResourceRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.ResourceRequest;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -26,7 +26,7 @@ public interface SysResourceService extends IService<SysResource> {
|
||||||
* @author fengshuonan
|
* @author fengshuonan
|
||||||
* @date 2020/11/24 20:45
|
* @date 2020/11/24 20:45
|
||||||
*/
|
*/
|
||||||
PageResult<SysResource> getResourceList(ResourceRequest resourceRequest);
|
PageResult<SysResource> findPage(ResourceRequest resourceRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过应用code获取获取资源下拉列表
|
* 通过应用code获取获取资源下拉列表
|
||||||
|
@ -38,35 +38,7 @@ public interface SysResourceService extends IService<SysResource> {
|
||||||
* @author fengshuonan
|
* @author fengshuonan
|
||||||
* @date 2020/11/24 20:45
|
* @date 2020/11/24 20:45
|
||||||
*/
|
*/
|
||||||
List<SysResource> getMenuResourceList(ResourceRequest resourceRequest);
|
List<SysResource> findList(ResourceRequest resourceRequest);
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除某个项目的所有资源
|
|
||||||
*
|
|
||||||
* @param projectCode 项目编码,一般为spring application name
|
|
||||||
* @author fengshuonan
|
|
||||||
* @date 2020/11/24 20:46
|
|
||||||
*/
|
|
||||||
void deleteResourceByProjectCode(String projectCode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取资源树列表,用于生成api接口
|
|
||||||
*
|
|
||||||
* @return 资源树列表
|
|
||||||
* @author fengshuonan
|
|
||||||
* @date 2020/12/18 15:06
|
|
||||||
*/
|
|
||||||
List<LayuiApiResourceTreeNode> getResourceTree();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取资源的详情
|
|
||||||
*
|
|
||||||
* @param resourceRequest 请求参数
|
|
||||||
* @return 资源详情
|
|
||||||
* @author fengshuonan
|
|
||||||
* @date 2020/12/18 16:04
|
|
||||||
*/
|
|
||||||
ResourceDefinition getResourceDetail(ResourceRequest resourceRequest);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取平级树节点列表
|
* 获取平级树节点列表
|
||||||
|
@ -78,4 +50,32 @@ public interface SysResourceService extends IService<SysResource> {
|
||||||
*/
|
*/
|
||||||
List<ResourceTreeNode> getResourceTree(Long roleId, Boolean lateralFlag);
|
List<ResourceTreeNode> getResourceTree(Long roleId, Boolean lateralFlag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取资源树列表,用于生成api接口
|
||||||
|
*
|
||||||
|
* @return 资源树列表
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2020/12/18 15:06
|
||||||
|
*/
|
||||||
|
List<LayuiApiResourceTreeNode> getApiResourceTree();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取资源的详情
|
||||||
|
*
|
||||||
|
* @param resourceRequest 请求参数
|
||||||
|
* @return 资源详情
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2020/12/18 16:04
|
||||||
|
*/
|
||||||
|
ResourceDefinition getApiResourceDetail(ResourceRequest resourceRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除某个项目的所有资源
|
||||||
|
*
|
||||||
|
* @param projectCode 项目编码,一般为spring application name
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2020/11/24 20:46
|
||||||
|
*/
|
||||||
|
void deleteResourceByProjectCode(String projectCode);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,9 +23,8 @@ import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
||||||
import cn.stylefeng.roses.kernel.system.ResourceServiceApi;
|
import cn.stylefeng.roses.kernel.system.ResourceServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.UserServiceApi;
|
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.resource.request.ResourceRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.resource.ResourceRequest;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResourceResponse;
|
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResourceResponse;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
@ -59,18 +58,15 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
@Resource
|
@Resource
|
||||||
private RoleServiceApi roleServiceApi;
|
private RoleServiceApi roleServiceApi;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private UserServiceApi userServiceApi;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<SysResource> getResourceList(ResourceRequest resourceRequest) {
|
public PageResult<SysResource> findPage(ResourceRequest resourceRequest) {
|
||||||
LambdaQueryWrapper<SysResource> wrapper = createWrapper(resourceRequest);
|
LambdaQueryWrapper<SysResource> wrapper = createWrapper(resourceRequest);
|
||||||
Page<SysResource> page = this.page(PageFactory.defaultPage(), wrapper);
|
Page<SysResource> page = this.page(PageFactory.defaultPage(), wrapper);
|
||||||
return PageResultFactory.createPageResult(page);
|
return PageResultFactory.createPageResult(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SysResource> getMenuResourceList(ResourceRequest resourceRequest) {
|
public List<SysResource> findList(ResourceRequest resourceRequest) {
|
||||||
|
|
||||||
LambdaQueryWrapper<SysResource> wrapper = createWrapper(resourceRequest);
|
LambdaQueryWrapper<SysResource> wrapper = createWrapper(resourceRequest);
|
||||||
|
|
||||||
|
@ -88,49 +84,6 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
return menuResourceList;
|
return menuResourceList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteResourceByProjectCode(String projectCode) {
|
|
||||||
LambdaQueryWrapper<SysResource> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
wrapper.eq(SysResource::getProjectCode, projectCode);
|
|
||||||
this.remove(wrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<LayuiApiResourceTreeNode> getResourceTree() {
|
|
||||||
|
|
||||||
// 1. 获取所有的资源
|
|
||||||
LambdaQueryWrapper<SysResource> sysResourceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
sysResourceLambdaQueryWrapper.eq(SysResource::getViewFlag, YesOrNotEnum.N.getCode());
|
|
||||||
sysResourceLambdaQueryWrapper.select(SysResource::getAppCode, SysResource::getModularCode, SysResource::getModularName, SysResource::getResourceCode, SysResource::getUrl, SysResource::getResourceName);
|
|
||||||
List<SysResource> allResource = this.list(sysResourceLambdaQueryWrapper);
|
|
||||||
|
|
||||||
// 2. 按应用和模块编码设置map
|
|
||||||
Map<String, Map<String, List<LayuiApiResourceTreeNode>>> appModularResources = divideResources(allResource);
|
|
||||||
|
|
||||||
// 3. 创建模块code和模块name的映射
|
|
||||||
Map<String, String> modularCodeName = createModularCodeName(allResource);
|
|
||||||
|
|
||||||
// 4. 根据map组装资源树
|
|
||||||
return createResourceTree(appModularResources, modularCodeName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceDefinition getResourceDetail(ResourceRequest resourceRequest) {
|
|
||||||
LambdaQueryWrapper<SysResource> sysResourceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
sysResourceLambdaQueryWrapper.eq(SysResource::getResourceCode, resourceRequest.getResourceCode());
|
|
||||||
SysResource sysResource = this.getOne(sysResourceLambdaQueryWrapper);
|
|
||||||
if (sysResource != null) {
|
|
||||||
|
|
||||||
// 实体转化为ResourceDefinition
|
|
||||||
ResourceDefinition resourceDefinition = ResourceFactory.createResourceDefinition(sysResource);
|
|
||||||
|
|
||||||
// 填充具体的提示信息
|
|
||||||
return ResourceFactory.fillResourceDetail(resourceDefinition);
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ResourceTreeNode> getResourceTree(Long roleId, Boolean lateralFlag) {
|
public List<ResourceTreeNode> getResourceTree(Long roleId, Boolean lateralFlag) {
|
||||||
|
|
||||||
|
@ -216,6 +169,49 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<LayuiApiResourceTreeNode> getApiResourceTree() {
|
||||||
|
|
||||||
|
// 1. 获取所有的资源
|
||||||
|
LambdaQueryWrapper<SysResource> sysResourceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sysResourceLambdaQueryWrapper.eq(SysResource::getViewFlag, YesOrNotEnum.N.getCode());
|
||||||
|
sysResourceLambdaQueryWrapper.select(SysResource::getAppCode, SysResource::getModularCode, SysResource::getModularName, SysResource::getResourceCode, SysResource::getUrl, SysResource::getResourceName);
|
||||||
|
List<SysResource> allResource = this.list(sysResourceLambdaQueryWrapper);
|
||||||
|
|
||||||
|
// 2. 按应用和模块编码设置map
|
||||||
|
Map<String, Map<String, List<LayuiApiResourceTreeNode>>> appModularResources = divideResources(allResource);
|
||||||
|
|
||||||
|
// 3. 创建模块code和模块name的映射
|
||||||
|
Map<String, String> modularCodeName = createModularCodeName(allResource);
|
||||||
|
|
||||||
|
// 4. 根据map组装资源树
|
||||||
|
return createResourceTree(appModularResources, modularCodeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceDefinition getApiResourceDetail(ResourceRequest resourceRequest) {
|
||||||
|
LambdaQueryWrapper<SysResource> sysResourceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sysResourceLambdaQueryWrapper.eq(SysResource::getResourceCode, resourceRequest.getResourceCode());
|
||||||
|
SysResource sysResource = this.getOne(sysResourceLambdaQueryWrapper);
|
||||||
|
if (sysResource != null) {
|
||||||
|
|
||||||
|
// 实体转化为ResourceDefinition
|
||||||
|
ResourceDefinition resourceDefinition = ResourceFactory.createResourceDefinition(sysResource);
|
||||||
|
|
||||||
|
// 填充具体的提示信息
|
||||||
|
return ResourceFactory.fillResourceDetail(resourceDefinition);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteResourceByProjectCode(String projectCode) {
|
||||||
|
LambdaQueryWrapper<SysResource> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(SysResource::getProjectCode, projectCode);
|
||||||
|
this.remove(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void reportResources(@RequestBody ReportResourceParam reportResourceReq) {
|
public void reportResources(@RequestBody ReportResourceParam reportResourceReq) {
|
||||||
|
@ -303,23 +299,19 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
private LambdaQueryWrapper<SysResource> createWrapper(ResourceRequest resourceRequest) {
|
private LambdaQueryWrapper<SysResource> createWrapper(ResourceRequest resourceRequest) {
|
||||||
LambdaQueryWrapper<SysResource> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysResource> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|
||||||
if (ObjectUtil.isNotNull(resourceRequest)) {
|
if (ObjectUtil.isEmpty(resourceRequest)) {
|
||||||
// 根据应用编码查询
|
return queryWrapper;
|
||||||
if (ObjectUtil.isNotEmpty(resourceRequest.getAppCode())) {
|
|
||||||
queryWrapper.eq(SysResource::getAppCode, resourceRequest.getAppCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据资源名称
|
|
||||||
if (ObjectUtil.isNotEmpty(resourceRequest.getResourceName())) {
|
|
||||||
queryWrapper.like(SysResource::getResourceName, resourceRequest.getResourceName());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据资源url
|
|
||||||
if (ObjectUtil.isNotEmpty(resourceRequest.getUrl())) {
|
|
||||||
queryWrapper.like(SysResource::getUrl, resourceRequest.getUrl());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据应用编码查询
|
||||||
|
queryWrapper.eq(ObjectUtil.isNotEmpty(resourceRequest.getAppCode()), SysResource::getAppCode, resourceRequest.getAppCode());
|
||||||
|
|
||||||
|
// 根据资源名称
|
||||||
|
queryWrapper.like(ObjectUtil.isNotEmpty(resourceRequest.getResourceName()), SysResource::getResourceName, resourceRequest.getResourceName());
|
||||||
|
|
||||||
|
// 根据资源url
|
||||||
|
queryWrapper.like(ObjectUtil.isNotEmpty(resourceRequest.getUrl()), SysResource::getUrl, resourceRequest.getUrl());
|
||||||
|
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -425,49 +417,4 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
||||||
return finalTree;
|
return finalTree;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据归好类的资源,创建资源平级树
|
|
||||||
*
|
|
||||||
* @author majianguo
|
|
||||||
* @date 2021/1/9 15:10
|
|
||||||
*/
|
|
||||||
private List<ResourceTreeNode> createResourceLateralTree(Map<String, Map<String, List<ResourceTreeNode>>> appModularResources, Map<String, String> modularCodeName) {
|
|
||||||
|
|
||||||
List<ResourceTreeNode> finalTree = new ArrayList<>();
|
|
||||||
|
|
||||||
// 按应用遍历应用模块资源集合
|
|
||||||
for (String appName : appModularResources.keySet()) {
|
|
||||||
|
|
||||||
// 创建当前应用节点
|
|
||||||
ResourceTreeNode appNode = new ResourceTreeNode();
|
|
||||||
appNode.setCode(appName);
|
|
||||||
appNode.setNodeName(appName);
|
|
||||||
appNode.setResourceFlag(false);
|
|
||||||
appNode.setParentCode(TreeConstants.DEFAULT_PARENT_ID.toString());
|
|
||||||
|
|
||||||
// 遍历当前应用下的模块资源
|
|
||||||
Map<String, List<ResourceTreeNode>> modularResources = appModularResources.get(appName);
|
|
||||||
|
|
||||||
// 创建模块节点
|
|
||||||
ArrayList<ResourceTreeNode> modularNodes = new ArrayList<>();
|
|
||||||
for (String modularCode : modularResources.keySet()) {
|
|
||||||
ResourceTreeNode modularNode = new ResourceTreeNode();
|
|
||||||
modularNode.setCode(modularCode);
|
|
||||||
modularNode.setNodeName(modularCodeName.get(modularCode));
|
|
||||||
modularNode.setResourceFlag(false);
|
|
||||||
modularNode.setParentCode(appName);
|
|
||||||
modularNode.setChildren(modularResources.get(modularCode));
|
|
||||||
modularNodes.add(modularNode);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 当前应用下添加模块的资源
|
|
||||||
appNode.setChildren(modularNodes);
|
|
||||||
|
|
||||||
// 添加到最终结果
|
|
||||||
finalTree.add(appNode);
|
|
||||||
}
|
|
||||||
|
|
||||||
return finalTree;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue