diff --git a/app/admin/validate/system/SystemUserValidate.php b/app/admin/validate/system/SystemUserValidate.php index 9e79d318f878d380f645e86bc39850f6f90a44af..cc9913c176c8a827e2b471556f031fe1c121c8ef 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 +} diff --git a/app/services/system/SystemUserService.php b/app/services/system/SystemUserService.php index 693f5d2ef46227872b08c7324bd645f8039b0236..f960a4516a2af1e3f0c2e577c80673f8a87e16df 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();