jyy
2021-09-03 3868b706ee3ee115a400d77abc3b69b83ea448c7
zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
@@ -22,6 +22,7 @@
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
/**
 * DefaultAuthorityManager 实现了权限控制接口
@@ -41,7 +42,7 @@
    @Autowired
    SysFunctionService sysFunctionService;
    public static final String USER_POWER_REDISKEY = "USER_POWER_";
    public static final String USER_POWER_REDISKEY_APP = "USER_POWER_APP";
    public static final String USERFUNCTION = "userFunction";
    /** 用户所有路径权限的记录 **/
@@ -101,7 +102,7 @@
        List<String> userUrlMapping = new ArrayList<>();
        String redisKey = USER_POWER_REDISKEY + SecureUtil.md5(user.getSuId()+"");
        String redisKey = USER_POWER_REDISKEY_APP + SecureUtil.md5(user.getSuId()+"");
        String cachedValue = redisClient.getCachedValue(redisKey);
        if (StringUtils.isNotBlank(cachedValue)) {
            //从缓存中获取用户权限
@@ -163,11 +164,17 @@
            // 普通员工账号只拥有自己所拥有的权限
            List<SysFunction> userFunctionList = sysFunctionService.findFunctionByRoleIds(sysUser.getRoleIds());
            for (SysFunction sysFunction : userFunctionList) {
                sysFunction.setSysFnBtnRel(
                        sysFunction.getSysFnBtnRel().stream().filter(item->StringUtils.isContentSet(item.getBtnValue(),sysFunction.getRpfBns())).collect(Collectors.toList())
                );
                // TODO注册访问路径
                registerUrlMapping(userUrlMapping, sysFunction,false);
                if (userFunctionMap.containsKey(sysFunction.getFnCode())) {
                    // 如果功能已经被添加到集合中则追加权限按钮
                    SysFunction oneFunctionInMap = userFunctionMap.get(sysFunction.getFnCode());
                    // 为了方便判断所以用字符串记录一下
                    if (StringUtils.isBlank(oneFunctionInMap.getRpfBns())) {
                        oneFunctionInMap.setRpfBns(sysFunction.getRpfBns());