xianyu-auto-reply/获取所有商品功能说明.md
2025-07-24 12:05:21 +08:00

5.0 KiB
Raw Blame History

📦 获取所有商品功能说明

📋 功能概述

在商品管理界面新增了"获取所有商品"功能,支持选择指定账号,一键获取该账号下的所有商品信息,并将详细结果打印到控制台。

主要功能

1. 界面功能

  • 🎯 账号选择:使用现有的账号筛选下拉框选择目标账号
  • 🔄 一键获取:点击"获取所有商品"按钮开始获取
  • 📊 状态显示:按钮显示获取进度状态
  • 🔔 结果通知:获取完成后显示成功消息和商品数量

2. 后端功能

  • 🔐 账号验证:验证选中账号的有效性
  • 🔄 自动重试支持token失效时自动刷新重试最多3次
  • 📝 详细日志:完整的获取过程日志记录
  • 🖨️ 控制台输出:格式化的商品信息打印到控制台

🎯 使用方法

1. 访问商品管理

  1. 登录系统后,点击左侧菜单的"商品管理"
  2. 进入商品管理页面

2. 选择账号

  1. 在页面上方的"筛选账号"下拉框中选择目标账号
  2. 确保选择了有效的账号(不是"全部账号"

3. 获取商品

  1. 点击"获取所有商品"按钮
  2. 按钮会显示"获取中..."状态
  3. 等待获取完成

4. 查看结果

  1. 获取完成后会显示成功消息
  2. 控制台会打印详细的商品信息
  3. 商品列表会自动刷新

🔧 技术实现

前端实现

// 获取所有商品信息
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. 界面优化

  • 商品信息表格显示
  • 商品图片预览
  • 筛选和搜索功能

🎉 获取所有商品功能已完成,支持一键获取指定账号的所有商品信息!