lotteryAdmin(); if ((int) $actor->getKey() === (int) $admin_user->getKey()) { return ApiResponse::error( '不能删除当前登录账号', ErrorCode::ValidationFailed->value, null, 422, ); } $admin_user->load('roles'); if ($admin_user->isSuperAdmin()) { $hasOther = AdminUser::query() ->whereKeyNot($admin_user->getKey()) ->whereHas('roles', static fn ($q) => $q->where('admin_roles.slug', AdminUser::ROLE_SUPER_ADMIN)) ->exists(); if (! $hasOther) { return ApiResponse::error( '不能删除最后一个超级管理员', ErrorCode::ValidationFailed->value, null, 422, ); } } $before = AdminUserApiPresenter::listItem($admin_user); $id = (int) $admin_user->id; $admin_user->delete(); AuditLogger::recordForAdmin( $actor, $request, 'system', 'admin_user.delete', 'admin_user', (string) $id, $before, null, ); return ApiResponse::success(['deleted' => true, 'id' => $id]); } }