package com.brframework.commoncms.utils;
import com.brframework.commoncms.annatotion.AdminMenu;
import com.brframework.commoncms.annatotion.Panel;
import com.brframework.commoncms.annatotion.layout.ListLayout;
import com.brframework.commoncms.annatotion.layout.PageLayout;
import com.brframework.commoncms.annatotion.option.CmsOption;
import com.brframework.commoncms.core.UriProtocol;
import com.brframework.commoncms.core.permission.Menu;
import com.brframework.commoncms.core.permission.Permission;
import com.brframework.commoncms.core.uri.PanelUri;
import com.brframework.commoncms.utils.ControllerUtil;
import com.brframework.commonweb.core.SpringContext;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 用户-角色-菜单
*
* @author xu
* @date 2019/11/6 16:12
*/
public class MenuPermissionUtils {
private static List