国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)多久可以建成seo是搜索引擎優(yōu)化

網(wǎng)站建設(shè)多久可以建成,seo是搜索引擎優(yōu)化,類似凡科建站的網(wǎng)站,自己怎樣做網(wǎng)站文章關(guān)鍵詞內(nèi)鏈目錄 6.4 權(quán)限管理(菜單管理) 6.4.1 查詢所有(含孩子) 6.4.2 添加權(quán)限 6.4.3 核心3:查詢登錄用戶的權(quán)限,并繪制菜單 6.4 權(quán)限管理(菜單管理) 6.4.1 查詢所有(含孩子…

目錄

6.4 權(quán)限管理(菜單管理)

6.4.1 查詢所有(含孩子)

6.4.2 添加權(quán)限

6.4.3 核心3:查詢登錄用戶的權(quán)限,并繪制菜單

6.4 權(quán)限管理(菜單管理)

6.4.1 查詢所有(含孩子)

6.4.2 添加權(quán)限

6.4.3 核心3:查詢登錄用戶的權(quán)限,并繪制菜單

1)后端:SQL版

  • 獲得登錄用戶

  • 通過登錄用戶獲得角色們

  • 通過角色們查詢所有的權(quán)限

  • 分析

    ?
    # 1. 查詢用戶的角色
    SELECT role_id FROM sys_user_role WHERE user_id = 'u001'
    # 結(jié)果角色id:[1,2]
    ?
    ?
    # 2. 查詢指定角色們的權(quán)限id  DISTINCT 去重
    SELECT DISTINCT perm_id FROM sys_role_permission WHERE role_id IN (1,2)
    # 結(jié)果權(quán)限id:[1,2,3,4,5] 
    ?
    ?
    # 3. 查詢指定權(quán)限id的權(quán)限詳情
    SELECT * FROM sys_permission WHERE id IN (1,2,3,4,5)
    ?
    # 使用子查詢將3條語(yǔ)句整合
    SELECT * FROM sys_permission WHERE id IN (SELECT DISTINCT perm_id FROM sys_role_permission WHERE role_id IN (SELECT role_id FROM sys_user_role WHERE user_id = 'u001'))

  • 編寫mapper

    @Select("SELECT * FROM sys_permission WHERE id IN (SELECT DISTINCT perm_id FROM sys_role_permission WHERE role_id IN (SELECT role_id FROM sys_user_role WHERE user_id = #{uid}))")List<SysPermission> findAllByUserId(@Param("uid") String uid);

  • 編寫service

    • 接口

      List<SysPermission> findAllByLoginUser(TbUser loginUser);

    • 實(shí)現(xiàn)

      ?@Overridepublic List<SysPermission> findAllByLoginUser(TbUser loginUser) {
      ?//1 查詢指定用戶的所有權(quán)限List<SysPermission> permList = baseMapper.findAllByUserId(loginUser.getUid());
      ?//2 處理權(quán)限--父子關(guān)系List<SysPermission> resultList = new ArrayList<>();Map<Integer, SysPermission> cache = new HashMap<>();for (SysPermission sysPermission : permList) {SysPermission permParent = cache.get(sysPermission.getParentId());if(permParent == null) {// 一級(jí)添加結(jié)果resultList.add(sysPermission);} else {permParent.getChildren().add(sysPermission);}// 將自己存放,讓孩子可以獲得cache.put(sysPermission.getId(), sysPermission);}
      ?return resultList;}

  • 編寫controller

     ? ?@Resourceprivate HttpServletRequest request;@Resourceprivate JwtProperties jwtProperties;
    ?@GetMapping("/login")public BaseResult findAllByLoginUser() {try {// 1 獲得登錄用戶String token = request.getHeader("Authorization");TbUser loginUser = JwtUtils.getObjectFromToken(token, jwtProperties.getPublicKey(), TbUser.class);
    ?// 2 獲得所有的權(quán)限List<SysPermission> list = sysPermissionService.findAllByLoginUser(loginUser);
    ?// 3 返回return BaseResult.ok("查詢成功", list);} catch (Exception e) {e.printStackTrace();return BaseResult.error("獲得菜單失敗");}}

2)后端:對(duì)象版

  • service層使用通過mapper進(jìn)行一系列的查詢,不用寫SQL語(yǔ)句

    //1. 查詢用戶的角色
    //2. 查詢指定角色們的權(quán)限id  DISTINCT 去重
    //3. 查詢指定權(quán)限id的權(quán)限詳情

 ? ?@Overridepublic List<SysPermission> findAllByLoginUser(TbUser loginUser) {
?// 1. 查詢用戶的角色  [1,2]QueryWrapper<SysUserRole> sysUserRoleQueryWrapper = new QueryWrapper<>();sysUserRoleQueryWrapper.eq("user_id", loginUser.getUid());List<SysUserRole> sysUserRoleList = sysUserRoleMapper.selectList(sysUserRoleQueryWrapper);List<Integer> roleIdList = sysUserRoleList.stream().map(sysUserRole -> sysUserRole.getRoleId()).collect(Collectors.toList());
?
?// 2. 查詢指定角色們的權(quán)限id  DISTINCT 去重 ? [1,2,3,4,5]QueryWrapper<SysRolePermission> sysRolePermissionQueryWrapper = new QueryWrapper<>();sysRolePermissionQueryWrapper.in("role_id", roleIdList);List<SysRolePermission> sysRolePermissionList = sysRolePermissionMapper.selectList(sysRolePermissionQueryWrapper);List<Integer> permIdList = sysRolePermissionList.stream().map(sysRolePermission -> sysRolePermission.getPermId()).collect(Collectors.toList());
?
?// 3. 查詢指定權(quán)限id的權(quán)限詳情QueryWrapper<SysPermission> sysPermissionQueryWrapper = new QueryWrapper<>();sysPermissionQueryWrapper.in("id", permIdList );List<SysPermission> permList = baseMapper.selectList(sysPermissionQueryWrapper);
?
?// 4 處理權(quán)限--父子關(guān)系List<SysPermission> resultList = new ArrayList<>();Map<Integer, SysPermission> cache = new HashMap<>();for (SysPermission sysPermission : permList) {SysPermission permParent = cache.get(sysPermission.getParentId());if(permParent == null) {// 一級(jí)添加結(jié)果resultList.add(sysPermission);} else {permParent.getChildren().add(sysPermission);}// 將自己存放,讓孩子可以獲得cache.put(sysPermission.getId(), sysPermission);}
?return resultList;}

3)前端

<template><el-container><el-header><el-row><el-col :span="22" class="title">學(xué)生管理系統(tǒng)(SMS)</el-col><el-col :span="2">
?<!-- <el-popoverplacement="top-start"width="200"trigger="hover"content="這是一段內(nèi)容,這是一段內(nèi)容,這是一段內(nèi)容,這是一段內(nèi)容。"><el-avatar slot="reference" size="large" src="/5.jpg"></el-avatar><div class="avatarItem">用戶詳情</div><div class="avatarItem">修改密碼</div><div class="avatarItem">退出登錄</div></el-popover> --><el-dropdown><span class="el-dropdown-link"><el-avatar :size="50" src="/5.jpg"></el-avatar></span><el-dropdown-menu slot="dropdown"><el-dropdown-item>用戶詳情</el-dropdown-item><el-dropdown-item>修改密碼</el-dropdown-item><el-dropdown-item>退出登錄</el-dropdown-item></el-dropdown-menu></el-dropdown></el-col></el-row></el-header><el-container><el-aside width="200px"><!-- 菜單start --><el-menu:default-active="$route.path"routerbackground-color="#545c64"text-color="#fff"active-text-color="#ffd04b"><el-menu-item index="/"><i class="el-icon-menu"></i><span slot="title">首頁(yè)</span></el-menu-item>
?<el-submenu v-for="(onePerm,oi) in permList" :key="oi" :index="onePerm.path"><template slot="title"><span>{{onePerm.permName}}</span></template><el-menu-item v-for="(twoPerm, ti) in onePerm.children" :key="ti" :index="twoPerm.path">{{twoPerm.permName}}</el-menu-item></el-submenu>
?<!--<el-submenu index="/classes"><template slot="title"><i class="el-icon-location"></i><span>班級(jí)管理</span></template><el-menu-item index="/classes/classesAdd">添加班級(jí)</el-menu-item><el-menu-item index="/classes/classesList">班級(jí)列表</el-menu-item></el-submenu><el-submenu index="/student"><template slot="title"><span>學(xué)生管理</span></template><el-menu-item index="/student/studentList">學(xué)生列表</el-menu-item></el-submenu><el-submenu index="/perm"><template slot="title"><span>權(quán)限管理</span></template><el-menu-item index="/user/userList">用戶列表</el-menu-item><el-menu-item index="/perm/roleList">角色列表</el-menu-item><el-menu-item index="/perm/permList">權(quán)限列表</el-menu-item></el-submenu>--></el-menu><!-- 菜單end --></el-aside><el-main><!-- 視圖顯示 --><nuxt/></el-main></el-container><el-footer>傳智專修學(xué)院</el-footer></el-container>
</template>
?
<script>
export default {data() {return {permList: []}},methods: {async findAllPerm() {let { data:baseResult } = await this.$axios.get('/user-service/perm/login')this.permList = baseResult.data}},mounted() {this.findAllPerm()},
}
</script>
?
<style>html, body, #__nuxt, #__layout, .el-container {height: 100%;}body {margin: 0;}.avatarItem {width: 100px;display: inline-block;margin: 5px 0;}.title {font-size: 30px;font-weight: bold;}.el-header, .el-footer {background-color: #B3C0D1;color: #333;text-align: center;line-height: 60px;}.el-aside {background-color: #545c64;color: #fff;}.el-main {background-color: #E9EEF3;color: #333;}
</style>
http://aloenet.com.cn/news/27999.html

相關(guān)文章:

  • 四字母net做網(wǎng)站怎么樣競(jìng)價(jià)推廣和信息流推廣
  • 比較大氣的網(wǎng)站深圳短視頻推廣
  • 邵陽(yáng)網(wǎng)站建設(shè)推廣域名權(quán)重
  • 視頻網(wǎng)站的服務(wù)器建設(shè)百度熱搜榜小說排名
  • 委托網(wǎng)站建設(shè)注意什么個(gè)人如何推廣app
  • asp.net視頻網(wǎng)站模板下載站長(zhǎng)網(wǎng)站工具
  • 產(chǎn)品宣傳類網(wǎng)站設(shè)計(jì)互聯(lián)網(wǎng)推廣公司靠譜嗎
  • php網(wǎng)站開發(fā)套模板步驟打開百度首頁(yè)
  • 查詢企業(yè)聯(lián)系方式的軟件亞馬遜排名seo
  • 影城網(wǎng)站建設(shè)濟(jì)南優(yōu)化網(wǎng)站關(guān)鍵詞
  • 臨安做企業(yè)網(wǎng)站搜索引擎營(yíng)銷的方法
  • 湖北省網(wǎng)站建設(shè)杭州網(wǎng)站推廣優(yōu)化公司
  • 廣東住房和建設(shè)局網(wǎng)站百度付費(fèi)推廣有幾種方式
  • 互聯(lián)科技 行業(yè)網(wǎng)站軟文廣告是什么
  • wordpress必須登錄北京網(wǎng)站優(yōu)化seo
  • 做電子商務(wù)系統(tǒng)網(wǎng)站建設(shè)在線搭建網(wǎng)站
  • 價(jià)格低的車百度關(guān)鍵詞seo排名
  • 單頁(yè)面網(wǎng)站復(fù)制南寧seo主管
  • 商城網(wǎng)站源碼下載seo排名軟件有用嗎
  • 自學(xué)黑客編程入門優(yōu)化設(shè)計(jì)卷子答案
  • 上海服裝品牌網(wǎng)站建設(shè)seo課程培訓(xùn)班費(fèi)用
  • 房地產(chǎn)微網(wǎng)站模板西安關(guān)鍵詞推廣
  • 邯鄲網(wǎng)站設(shè)計(jì)申請(qǐng)搜索引擎排名營(yíng)銷
  • 網(wǎng)站建站報(bào)價(jià)表什么軟件引流客源最快
  • 南京建行網(wǎng)站東莞seo優(yōu)化排名推廣
  • 工業(yè)網(wǎng)站素材廣告公司推廣軟文
  • 北京軟件開發(fā)公司怎么樣網(wǎng)站網(wǎng)頁(yè)的優(yōu)化方法
  • 企業(yè)信息網(wǎng)站模板網(wǎng)站策劃書怎么寫
  • 瀏覽網(wǎng)站手機(jī)響貴陽(yáng)seo網(wǎng)站推廣
  • 建設(shè)一個(gè)網(wǎng)站需要的空間有哪些方法病毒式營(yíng)銷方法