refactor: 角色分类新增权限字段输出
This commit is contained in:
@@ -4,6 +4,7 @@ declare (strict_types = 1);
|
|||||||
namespace app\admin\controller\v1;
|
namespace app\admin\controller\v1;
|
||||||
|
|
||||||
use app\admin\exception\InvalidOperateException;
|
use app\admin\exception\InvalidOperateException;
|
||||||
|
use app\admin\model\v1\SysMenuModel;
|
||||||
use app\admin\model\v1\SysRoleAuthorityModel;
|
use app\admin\model\v1\SysRoleAuthorityModel;
|
||||||
use app\admin\model\v1\SysRoleModel;
|
use app\admin\model\v1\SysRoleModel;
|
||||||
use app\admin\validate\v1\SysRoleValidate;
|
use app\admin\validate\v1\SysRoleValidate;
|
||||||
@@ -38,6 +39,26 @@ class Role
|
|||||||
'list_rows' => $params['size'],
|
'list_rows' => $params['size'],
|
||||||
'page' => $params['page']
|
'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')) {
|
} else if ('all' == request()->param('scene')) {
|
||||||
$roles = $roles->select();
|
$roles = $roles->select();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user