第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【備戰(zhàn)春招】第3天 通用權(quán)限設(shè)計

標簽:
Java

课程名称:Spring Cloud+ Vue前后端分离开发企业级在线视频系统

课程章节:第12章 通用权限设计

讲师姓名:甲蛙老师

课程内容

资源配置管理:在写项目的权限管理模块、用户系统的时候经常碰见类似的树结构我们一般习惯称之为权限树。

课程收获

按照一定的规则从数据库中取值,返回给前端的树形空间zTree。数据库中存储的资源的id是按照位数排序,如图所示。

之前说到反复的去数据库获取数据会让网络开销变大,所以我们应该一次性将所有需要的权限数据全部取出(有的时候是取出全部的数据,有时取得某个角色的权限数据),将取到数据放入一个list中,之后再进行数据处理。

https://img1.sycdn.imooc.com//63e3b92600018f8f13890843.jpg

/**
 *
按约定将列表转成树
 * 要求:ID要正序排列
 * @return
 */
public List<ResourceDto> loadTree() {
   
ResourceExample example = new ResourceExample();
   
example.setOrderByClause("id asc");
   
List<Resource> resourceList = resourceMapper.selectByExample(example);
   
List<ResourceDto> resourceDtoList = CopyUtil.copyList(resourceList, ResourceDto.class);
   
for (int i = resourceDtoList.size() - 1; i >= 0; i--) {
       
// 当前要移动的记录
       
ResourceDto child = resourceDtoList.get(i);

       
// 如果当前节点没有父节点,则不用往下了
       
if (StringUtils.isEmpty(child.getParent())) {
           
continue;
        }
       
// 查找父节点
       
for (int j = i - 1; j >= 0; j--) {
           
ResourceDto parent = resourceDtoList.get(j);
           
if (child.getParent().equals(parent.getId())) {
               
if (CollectionUtils.isEmpty(parent.getChildren())) {
                   
parent.setChildren(new ArrayList<>());
                }
               
// 添加到最前面,否则会变成倒序,因为循环是从后往前循环的
               
parent.getChildren().add(0, child);

               
// 子节点找到父节点后,删除列表中的子节点
               
resourceDtoList.remove(child);
            }
        }
    }
   
return resourceDtoList;
}

小知识:如果要一边循环list,一边删除list中的对象,可以使用倒序循环。例如本节的资源树


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消