From 11a78f699fc1939dff66fb6bb2b104c7dd11edb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=AF=E7=88=B1=E7=8E=A9=E5=85=B7=E7=86=8A?= <978713427@qq.com> Date: Fri, 22 Nov 2024 10:19:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E6=97=B6=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/system/SystemUserService.php | 34 ++++++++++------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/app/services/system/SystemUserService.php b/app/services/system/SystemUserService.php index 693f5d2..f960a45 100644 --- a/app/services/system/SystemUserService.php +++ b/app/services/system/SystemUserService.php @@ -12,6 +12,7 @@ namespace app\services\system; +use app\model\system\SystemUser; use madong\services\cache\CacheService; use support\Container; use Webman\Event\Event; @@ -33,10 +34,11 @@ class SystemUserService extends BaseService * * @param $id * - * @return \app\model\system\SystemUser|null + * @return SystemUser|null */ - public function get($id): \app\model\system\SystemUser|null + public function get($id): SystemUser|null { + /** @var SystemUser|null $model */ $model = $this->dao->get($id, ['*'], ['roles', 'posts', 'depts']); // var_dump($model->getLastSql()); if (!empty($model)) { @@ -79,9 +81,9 @@ class SystemUserService extends BaseService * * @param array $data * - * @return \app\model\system\SystemUser|null + * @return SystemUser|null */ - public function save(array $data): \app\model\system\SystemUser|null + public function save(array $data): SystemUser|null { try { return $this->transaction(function () use ($data) { @@ -288,26 +290,26 @@ class SystemUserService extends BaseService public function getUsersExcludingRole(array $where, string $field, int $page, int $limit): array { $roleId = $where['role_id']; + + /**@var SystemUserRoleService $systemUserRoleService*/ + $systemUserRoleService = Container::make(SystemUserRoleService::class); + + $excludUserIds=$systemUserRoleService->getColumn( ['role_id' => $roleId],'user_id'); + // 1.0 获取总数 $total = $this->dao->getModel() ->with(['roles']) + ->whereNotIn('id',$excludUserIds) ->when(!empty($where), function ($query) use ($where) { unset($where['role_id']); $query->where($where); }) - ->filter(function ($user) use ($roleId) { - $roles = $user->roles ?? null; - if (empty($roles)) { - return true; - } - $array = $roles->toArray(); - return !in_array($roleId, array_column($array, 'id')); - }) ->count(); // 2.0 获取列表 $items = $this->dao->getModel() ->with(['roles']) + ->whereNotIn('id',$excludUserIds) ->when($page && $limit, function ($query) use ($page, $limit) { $query->page($page, $limit); }) @@ -315,14 +317,6 @@ class SystemUserService extends BaseService unset($where['role_id']); $query->where($where); }) - ->filter(function ($user) use ($roleId) { - $roles = $user->roles ?? null; - if (empty($roles)) { - return true; - } - $array = $roles->toArray(); - return !in_array($roleId, array_column($array, 'id')); - }) ->select() ->toArray(); -- Gitee From e3ad9ef78efa75ec7b1f36929576f3c004ebac17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=AF=E7=88=B1=E7=8E=A9=E5=85=B7=E7=86=8A?= <978713427@qq.com> Date: Fri, 22 Nov 2024 11:14:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=B7=B2=E5=AD=98=E5=9C=A8=E7=94=A8=E6=88=B7=E7=9A=84=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/validate/system/SystemUserValidate.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/admin/validate/system/SystemUserValidate.php b/app/admin/validate/system/SystemUserValidate.php index 9e79d31..cc9913c 100644 --- a/app/admin/validate/system/SystemUserValidate.php +++ b/app/admin/validate/system/SystemUserValidate.php @@ -21,7 +21,7 @@ class SystemUserValidate extends Validate * 定义验证规则 */ protected $rule = [ - 'user_name' => 'require|max:18|unique', + 'user_name' => 'require|max:18|unique:user_name', 'real_name' => 'require', 'password' => 'require|min:5|max:18', 'dept_id' => 'require', @@ -35,7 +35,8 @@ class SystemUserValidate extends Validate protected $message = [ 'user_name.require' => '用户名必须填写', 'user_name.max' => '用户名最多不能超过18个字符', - 'user_name.unique' => '用户名已被占用', 'user_name.require' => '用户名必须填写', + 'user_name.unique' => '用户名已被占用', + 'user_name.require' => '用户名必须填写', 'real_name.require' => '姓名必须填写', 'password.require' => '密码必须填写', 'password.min' => '密码最少为5位', @@ -91,4 +92,4 @@ class SystemUserValidate extends Validate 'new_password', ], ]; -} \ No newline at end of file +} -- Gitee