validateItemExists($itemId)) { return false; } // 验证物品是否配置了交易价格 if (!$this->validateItemPriceConfig($itemId)) { return false; } // 验证物品是否允许交易 if (!$this->validateItemTradeable($itemId)) { return false; } return true; } catch (\Exception $e) { Log::error('农贸市场物品验证失败', [ 'item_id' => $itemId, 'error' => $e->getMessage() ]); $this->addError('物品验证时发生错误'); return false; } } /** * 验证物品是否存在 * * @param int $itemId 物品ID * @return bool */ private function validateItemExists(int $itemId): bool { $item = ItemService::getItemInfo($itemId); if (!$item) { $this->addError('物品不存在'); return false; } return true; } /** * 验证物品是否配置了交易价格 * * @param int $itemId 物品ID * @return bool */ private function validateItemPriceConfig(int $itemId): bool { $priceConfig = MexPriceConfigService::getItemPriceConfig($itemId); if (!$priceConfig) { $this->addError('该物品未配置交易价格,不支持交易'); return false; } // 检查价格配置是否有效 if ($priceConfig['min_price'] <= 0 || $priceConfig['max_price'] <= 0) { $this->addError('物品价格配置无效'); return false; } if ($priceConfig['min_price'] > $priceConfig['max_price']) { $this->addError('物品价格配置错误:最小价格大于最大价格'); return false; } return true; } /** * 验证物品是否允许交易 * * @param int $itemId 物品ID * @return bool */ private function validateItemTradeable(int $itemId): bool { // 获取物品信息 $item = ItemService::getItemInfo($itemId); if (!$item) { $this->addError('物品信息获取失败'); return false; } // 检查物品是否标记为可交易 // 这里可以根据实际的物品属性来判断 // 例如检查 tradeable 字段或其他标识 // 暂时允许所有有价格配置的物品交易 // 后续可以根据需求添加更多限制条件 return true; } }