# 📦 获取所有商品功能说明 ## 📋 功能概述 在商品管理界面新增了"获取所有商品"功能,支持选择指定账号,一键获取该账号下的所有商品信息,并将详细结果打印到控制台。 ## ✨ 主要功能 ### 1. 界面功能 - 🎯 **账号选择**:使用现有的账号筛选下拉框选择目标账号 - 🔄 **一键获取**:点击"获取所有商品"按钮开始获取 - 📊 **状态显示**:按钮显示获取进度状态 - 🔔 **结果通知**:获取完成后显示成功消息和商品数量 ### 2. 后端功能 - 🔐 **账号验证**:验证选中账号的有效性 - 🔄 **自动重试**:支持token失效时自动刷新重试(最多3次) - 📝 **详细日志**:完整的获取过程日志记录 - 🖨️ **控制台输出**:格式化的商品信息打印到控制台 ## 🎯 使用方法 ### 1. 访问商品管理 1. 登录系统后,点击左侧菜单的"商品管理" 2. 进入商品管理页面 ### 2. 选择账号 1. 在页面上方的"筛选账号"下拉框中选择目标账号 2. 确保选择了有效的账号(不是"全部账号") ### 3. 获取商品 1. 点击"获取所有商品"按钮 2. 按钮会显示"获取中..."状态 3. 等待获取完成 ### 4. 查看结果 1. 获取完成后会显示成功消息 2. 控制台会打印详细的商品信息 3. 商品列表会自动刷新 ## 🔧 技术实现 ### 前端实现 ```javascript // 获取所有商品信息 async function getAllItemsFromAccount() { const cookieSelect = document.getElementById('itemCookieFilter'); const selectedCookieId = cookieSelect.value; // 调用后端API const response = await fetch(`${apiBase}/items/get-all-from-account`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${authToken}` }, body: JSON.stringify({ cookie_id: selectedCookieId }) }); } ``` ### 后端API ```python @app.post("/items/get-all-from-account") async def get_all_items_from_account(request: dict, _: None = Depends(require_auth)): """从指定账号获取所有商品信息""" # 1. 验证参数 # 2. 获取账号信息 # 3. 创建XianyuLive实例 # 4. 调用get_item_list_info方法 # 5. 返回结果 ``` ### 核心方法 ```python async def get_item_list_info(self, retry_count=0): """获取商品信息,自动处理token失效的情况""" # 1. 检查重试次数 # 2. 刷新token(如果需要) # 3. 构造请求参数 # 4. 发送API请求 # 5. 处理响应结果 # 6. 打印商品信息到控制台 ``` ## 📊 API参数说明 ### 请求参数 ```json { "cookie_id": "账号ID" } ``` ### 响应格式 ```json { "success": true, "message": "成功获取 5 个商品,详细信息已打印到控制台", "total_count": 5 } ``` ### 错误响应 ```json { "success": false, "message": "错误信息" } ``` ## 🖨️ 控制台输出格式 ``` ================================================================================ 📦 账号 12345678 的商品列表 (5 个商品) ================================================================================ 🔸 商品 1: 商品ID: 123456789 商品标题: iPhone 13 Pro Max 256G 价格: 6999 状态: 在售 创建时间: 2025-07-23 10:30:00 更新时间: 2025-07-23 16:45:00 图片数量: 8 详细信息: { "id": "123456789", "title": "iPhone 13 Pro Max 256G", "price": "6999", "status": "在售", ... } 🔸 商品 2: ... ================================================================================ ✅ 商品列表获取完成 ================================================================================ ``` ## ⚠️ 注意事项 ### 1. 使用限制 - 需要选择有效的账号(不能是"全部账号") - 需要账号的cookie信息有效 - 需要网络连接正常 ### 2. 错误处理 - Token失效时会自动刷新重试 - 最多重试3次,避免无限循环 - 网络异常时会显示错误信息 ### 3. 性能考虑 - 获取过程可能需要几秒钟时间 - 大量商品时控制台输出较多 - 建议在网络良好时使用 ## 🔮 功能特色 ### 1. 智能重试机制 - 自动检测token失效 - 智能刷新token后重试 - 避免因token问题导致的失败 ### 2. 详细信息输出 - 完整的商品信息展示 - 格式化的控制台输出 - 便于调试和分析 ### 3. 用户友好界面 - 直观的操作按钮 - 实时状态反馈 - 清晰的成功/失败提示 ### 4. 完整的日志记录 - 详细的操作日志 - 错误信息记录 - 便于问题排查 ## 🚀 扩展可能 ### 1. 批量操作 - 支持多个账号批量获取 - 导出商品信息到文件 - 商品信息对比分析 ### 2. 数据处理 - 商品信息入库存储 - 商品状态监控 - 价格变化追踪 ### 3. 界面优化 - 商品信息表格显示 - 商品图片预览 - 筛选和搜索功能 --- 🎉 **获取所有商品功能已完成,支持一键获取指定账号的所有商品信息!**