xianyu-auto-reply/获取所有商品功能说明.md
2025-07-25 10:30:33 +08:00

204 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📦 获取所有商品功能说明
## 📋 功能概述
在商品管理界面新增了"获取所有商品"功能,支持选择指定账号,一键获取该账号下的所有商品信息,并将详细结果打印到控制台。
## ✨ 主要功能
### 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. 界面优化
- 商品信息表格显示
- 商品图片预览
- 筛选和搜索功能
---
🎉 **获取所有商品功能已完成,支持一键获取指定账号的所有商品信息!**