You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udisyncdl-java/src/main/java/com/glxp/udidl/admin/util/PermissionRuleTreeUtils.java

34 lines
1.2 KiB
Java

package com.glxp.udidl.admin.util;
import com.glxp.udidl.admin.entity.auth.AuthPermissionRule;
import com.glxp.udidl.admin.res.auth.AuthPermissionRuleMergeResponse;
import org.springframework.beans.BeanUtils;
import java.util.ArrayList;
import java.util.List;
/**
* 权限规则生成树形节点工具类
*/
public class PermissionRuleTreeUtils {
/**
* 多维数组
*/
public static List<AuthPermissionRuleMergeResponse> merge(List<AuthPermissionRule> authPermissionRuleList,
Long pid) {
List<AuthPermissionRuleMergeResponse> authPermissionRuleMergeResponseList = new ArrayList<>();
for (AuthPermissionRule v : authPermissionRuleList) {
AuthPermissionRuleMergeResponse authPermissionRuleMergeResponse = new AuthPermissionRuleMergeResponse();
BeanUtils.copyProperties(v, authPermissionRuleMergeResponse);
if (pid.equals(v.getPid())) {
authPermissionRuleMergeResponse.setChildren(merge(authPermissionRuleList, v.getId()));
authPermissionRuleMergeResponseList.add(authPermissionRuleMergeResponse);
}
}
return authPermissionRuleMergeResponseList;
}
}