refactor: 角色分类新增权限字段输出
This commit is contained in:
@@ -4,6 +4,7 @@ declare (strict_types = 1);
|
||||
namespace app\admin\controller\v1;
|
||||
|
||||
use app\admin\exception\InvalidOperateException;
|
||||
use app\admin\model\v1\SysMenuModel;
|
||||
use app\admin\model\v1\SysRoleAuthorityModel;
|
||||
use app\admin\model\v1\SysRoleModel;
|
||||
use app\admin\validate\v1\SysRoleValidate;
|
||||
@@ -38,6 +39,26 @@ class Role
|
||||
'list_rows' => $params['size'],
|
||||
'page' => $params['page']
|
||||
]);
|
||||
if (!$roles->isEmpty()) {
|
||||
$roles_id = array_column($roles->items(), 'id');
|
||||
$authority = SysMenuModel::alias('menu')
|
||||
->field(['menu.title', 'authority.role_id'])
|
||||
->join('sys_role_authority authority', 'authority.menu_id = menu.id')
|
||||
->whereIn('authority.role_id', $roles_id)
|
||||
->select();
|
||||
if (!empty($authority)) {
|
||||
$authority_map = [];
|
||||
foreach ($authority as $v) {
|
||||
$authority_map[$v['role_id']][] = $v['title'];
|
||||
}
|
||||
$roles->each(function($item) use($authority_map) {
|
||||
$item['authority'] = [];
|
||||
if (isset($authority_map[$item['id']])) {
|
||||
$item['authority'] = array_unique($authority_map[$item['id']]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if ('all' == request()->param('scene')) {
|
||||
$roles = $roles->select();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user