args[0] ?? 'user_id'; $instanceIdKey = $this->args[1] ?? 'instance_id'; $quantityKey = $this->args[2] ?? 'quantity'; $userId = $data[$userIdKey] ?? null; $instanceId = $data[$instanceIdKey] ?? 0; $requiredQuantity = $data[$quantityKey] ?? 1; if (!$userId) { $this->addError('用户ID不能为空'); return false; } try { // 如果指定了实例ID,检查特定实例 if ($instanceId > 0) { $userItem = ItemService::getUserItem($userId, $itemId, $instanceId); if (!$userItem) { $this->addError('指定的物品实例不存在'); return false; } if ($userItem->quantity < $requiredQuantity) { $this->addError("物品数量不足,需要{$requiredQuantity}个,当前拥有{$userItem->quantity}个"); return false; } } else { // 检查用户是否拥有足够数量的该物品 $userItems = ItemService::getUserItems($userId, ['item_id' => $itemId]); if ($userItems->isEmpty()) { $this->addError('您没有该物品'); return false; } $totalQuantity = $userItems->sum('quantity'); if ($totalQuantity < $requiredQuantity) { $this->addError("物品数量不足,需要{$requiredQuantity}个,当前拥有{$totalQuantity}个"); return false; } } return true; } catch (\Exception $e) { $this->addError('验证物品归属时发生错误: ' . $e->getMessage()); return false; } } }