From 235acbea9cf30b6284ce3e2950a38f4cd77aa2b1 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Tue, 12 Nov 2024 09:46:50 +0800 Subject: [PATCH] feat : role --- app/Model/AdminRole.php | 23 ++++++++++++++++++++++ app/Service/Admin/User/EmployeeService.php | 21 +++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/app/Model/AdminRole.php b/app/Model/AdminRole.php index 6e747bc..341c45a 100644 --- a/app/Model/AdminRole.php +++ b/app/Model/AdminRole.php @@ -56,4 +56,27 @@ class AdminRole extends Model { return $this->where('name', $name)->first(); } + + + + /** + * 获取批量数据 + * @param $ids + * @return array + */ + public function getDataByIds($ids) + { + $data = $this->whereIn('id', $ids)->get(); + if (empty($data)){ + return []; + } + + $res = []; + foreach ($data->toArray() as $one) + { + $res[$one['id']] = $one; + } + + return $res; + } } diff --git a/app/Service/Admin/User/EmployeeService.php b/app/Service/Admin/User/EmployeeService.php index aec99b4..4fc1b85 100644 --- a/app/Service/Admin/User/EmployeeService.php +++ b/app/Service/Admin/User/EmployeeService.php @@ -14,6 +14,7 @@ use App\Constants\Admin\UserCode; use App\Exception\AdminException; use App\Extend\StringUtil; use App\Lib\Crypto\CryptoFactory; +use App\Model\AdminRole; use App\Model\AdminUser; use App\Service\Admin\BaseService; use Exception; @@ -29,6 +30,12 @@ class EmployeeService extends BaseService #[Inject] protected AdminUser $adminUserModel; + /** + * @var AdminRole + */ + #[Inject] + protected AdminRole $adminRoleModel; + /** * 注入加密工厂 * @var CryptoFactory $cryptoFactory @@ -51,6 +58,13 @@ class EmployeeService extends BaseService $list = $this->adminUserModel->where('is_del',UserCode::ENABLE)->paginate($limit,$this->filed)->toArray(); + $roleIds = array_column($list['data'], 'role_id'); + $roleList = $this->adminRoleModel->getDataByIds($roleIds); + + foreach ($list['data'] as &$item) { + $item['role_name'] = $roleList[$item['role_id']]['name'] ?? '普通管理员'; + } + return $this->return->success('success', ['list' => $list]); } @@ -154,7 +168,12 @@ class EmployeeService extends BaseService if (empty($info)) throw new AdminException('员工不存在'); - return $this->return->success('success', ['info' => $info->toArray()]); + $roleName = $this->adminRoleModel->where('id', $info->role_id)->value('name'); + + $res = $info->toArray(); + $res['role_name'] = $roleName ?? '普通管理员'; + + return $this->return->success('success', ['info' => $res]); } /**