route()->getActionMethod(); return match($action) { 'list' => $this->listRules(), 'getUserRoles' => $this->getUserRolesRules(), 'getRoleUsers' => $this->getRoleUsersRules(), 'getUserRoleDetails' => $this->getUserRoleDetailsRules(), 'setUserRoles' => $this->setUserRolesRules(), 'setRoleUsers' => $this->setRoleUsersRules(), 'batchSetUserRoles' => $this->batchSetUserRolesRules(), 'hasRole' => $this->hasRoleRules(), 'hasRoleCode' => $this->hasRoleCodeRules(), 'clearUserRoles' => $this->clearUserRolesRules(), 'clearRoleUsers' => $this->clearRoleUsersRules(), default => [] }; } /** * 获取分页验证规则 */ private function getPaginationRules(): array { return [ 'page' => ['sometimes', 'integer', 'min:1'], 'page_size' => ['sometimes', 'integer', 'min:1', 'max:100'], ]; } /** * 列表查询验证规则 */ private function listRules(): array { return array_merge($this->getPaginationRules(), [ 'user_id' => ['sometimes', 'integer', 'exists:system_users,id'], 'role_id' => ['sometimes', 'integer', 'exists:system_role,id'], ]); } /** * 获取用户角色验证规则 */ private function getUserRolesRules(): array { return [ 'user_id' => ['required', 'integer', 'exists:system_users,id'], ]; } /** * 获取角色用户验证规则 */ private function getRoleUsersRules(): array { return [ 'role_id' => ['required', 'integer', 'exists:system_role,id'], ]; } /** * 获取用户角色详情验证规则 */ private function getUserRoleDetailsRules(): array { return [ 'user_id' => ['required', 'integer', 'exists:system_users,id'], ]; } /** * 设置用户角色验证规则 */ private function setUserRolesRules(): array { return [ 'user_id' => ['required', 'integer', 'exists:system_users,id'], 'role_ids' => ['sometimes', 'array'], 'role_ids.*' => ['integer', 'exists:system_role,id'], ]; } /** * 设置角色用户验证规则 */ private function setRoleUsersRules(): array { return [ 'role_id' => ['required', 'integer', 'exists:system_role,id'], 'user_ids' => ['sometimes', 'array'], 'user_ids.*' => ['integer', 'exists:system_users,id'], ]; } /** * 批量设置用户角色验证规则 */ private function batchSetUserRolesRules(): array { return [ 'user_role_data' => ['required', 'array', 'min:1'], 'user_role_data.*.user_id' => ['required', 'integer', 'exists:system_users,id'], 'user_role_data.*.role_ids' => ['sometimes', 'array'], 'user_role_data.*.role_ids.*' => ['integer', 'exists:system_role,id'], ]; } /** * 检查用户角色验证规则 */ private function hasRoleRules(): array { return [ 'user_id' => ['required', 'integer', 'exists:system_users,id'], 'role_id' => ['required', 'integer', 'exists:system_role,id'], ]; } /** * 检查用户角色编码验证规则 */ private function hasRoleCodeRules(): array { return [ 'user_id' => ['required', 'integer', 'exists:system_users,id'], 'role_code' => ['required', 'string', 'exists:system_role,code'], ]; } /** * 清除用户角色验证规则 */ private function clearUserRolesRules(): array { return [ 'user_id' => ['required', 'integer', 'exists:system_users,id'], ]; } /** * 清除角色用户验证规则 */ private function clearRoleUsersRules(): array { return [ 'role_id' => ['required', 'integer', 'exists:system_role,id'], ]; } /** * 获取验证错误消息 */ protected function getSpecificMessages(): array { return [ 'user_id.required' => '用户ID不能为空', 'user_id.integer' => '用户ID必须是整数', 'user_id.exists' => '指定的用户不存在', 'role_id.required' => '角色ID不能为空', 'role_id.integer' => '角色ID必须是整数', 'role_id.exists' => '指定的角色不存在', 'role_code.required' => '角色编码不能为空', 'role_code.string' => '角色编码必须是字符串', 'role_code.exists' => '指定的角色编码不存在', 'role_ids.array' => '角色ID列表必须是数组', 'role_ids.*.integer' => '角色ID必须是整数', 'role_ids.*.exists' => '指定的角色不存在', 'user_ids.array' => '用户ID列表必须是数组', 'user_ids.*.integer' => '用户ID必须是整数', 'user_ids.*.exists' => '指定的用户不存在', 'user_role_data.required' => '用户角色数据不能为空', 'user_role_data.array' => '用户角色数据必须是数组', 'user_role_data.min' => '至少需要一组用户角色数据', 'user_role_data.*.user_id.required' => '用户ID不能为空', 'user_role_data.*.user_id.integer' => '用户ID必须是整数', 'user_role_data.*.user_id.exists' => '指定的用户不存在', 'user_role_data.*.role_ids.array' => '角色ID列表必须是数组', 'user_role_data.*.role_ids.*.integer' => '角色ID必须是整数', 'user_role_data.*.role_ids.*.exists' => '指定的角色不存在', ]; } /** * 字段别名 */ public function attributes(): array { return [ 'user_id' => '用户', 'role_id' => '角色', 'role_code' => '角色编码', 'role_ids' => '角色列表', 'user_ids' => '用户列表', 'user_role_data' => '用户角色数据', ]; } }