mirror of
https://github.com/zhinianboke/xianyu-auto-reply.git
synced 2025-08-02 20:47:35 +08:00
5.0 KiB
5.0 KiB
📦 获取所有商品功能说明
📋 功能概述
在商品管理界面新增了"获取所有商品"功能,支持选择指定账号,一键获取该账号下的所有商品信息,并将详细结果打印到控制台。
✨ 主要功能
1. 界面功能
- 🎯 账号选择:使用现有的账号筛选下拉框选择目标账号
- 🔄 一键获取:点击"获取所有商品"按钮开始获取
- 📊 状态显示:按钮显示获取进度状态
- 🔔 结果通知:获取完成后显示成功消息和商品数量
2. 后端功能
- 🔐 账号验证:验证选中账号的有效性
- 🔄 自动重试:支持token失效时自动刷新重试(最多3次)
- 📝 详细日志:完整的获取过程日志记录
- 🖨️ 控制台输出:格式化的商品信息打印到控制台
🎯 使用方法
1. 访问商品管理
- 登录系统后,点击左侧菜单的"商品管理"
- 进入商品管理页面
2. 选择账号
- 在页面上方的"筛选账号"下拉框中选择目标账号
- 确保选择了有效的账号(不是"全部账号")
3. 获取商品
- 点击"获取所有商品"按钮
- 按钮会显示"获取中..."状态
- 等待获取完成
4. 查看结果
- 获取完成后会显示成功消息
- 控制台会打印详细的商品信息
- 商品列表会自动刷新
🔧 技术实现
前端实现
// 获取所有商品信息
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
@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. 返回结果
核心方法
async def get_item_list_info(self, retry_count=0):
"""获取商品信息,自动处理token失效的情况"""
# 1. 检查重试次数
# 2. 刷新token(如果需要)
# 3. 构造请求参数
# 4. 发送API请求
# 5. 处理响应结果
# 6. 打印商品信息到控制台
📊 API参数说明
请求参数
{
"cookie_id": "账号ID"
}
响应格式
{
"success": true,
"message": "成功获取 5 个商品,详细信息已打印到控制台",
"total_count": 5
}
错误响应
{
"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. 界面优化
- 商品信息表格显示
- 商品图片预览
- 筛选和搜索功能
🎉 获取所有商品功能已完成,支持一键获取指定账号的所有商品信息!