args[0] ?? 'user_id'; $quantityKey = $this->args[1] ?? 'quantity'; $userId = $data[$userIdKey] ?? null; $quantity = $data[$quantityKey] ?? 1; if (!$userId) { $this->addError('用户ID不能为空'); return false; } try { // 获取宝箱配置 $chestConfig = ItemChestConfig::where('item_id', $chestId) ->where('is_active', true) ->first(); if (!$chestConfig) { $this->addError('宝箱配置不存在或未激活'); return false; } // 如果没有配置消耗组,则无需验证消耗 if (!$chestConfig->consume_group_id) { return true; } // 检查消耗组条件 $checkResult = ConsumeService::checkConsume($userId, $chestConfig->consume_group_id); if (!$checkResult->success) { $this->addError($checkResult->message); return false; } return true; } catch (\Exception $e) { $this->addError('验证宝箱消耗时发生错误: ' . $e->getMessage()); return false; } } }