mirror of
https://github.com/zhinianboke/xianyu-auto-reply.git
synced 2025-08-02 12:37:35 +08:00
204 lines
5.0 KiB
Markdown
204 lines
5.0 KiB
Markdown
# 📦 获取所有商品功能说明
|
||
|
||
## 📋 功能概述
|
||
|
||
在商品管理界面新增了"获取所有商品"功能,支持选择指定账号,一键获取该账号下的所有商品信息,并将详细结果打印到控制台。
|
||
|
||
## ✨ 主要功能
|
||
|
||
### 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. 界面优化
|
||
- 商品信息表格显示
|
||
- 商品图片预览
|
||
- 筛选和搜索功能
|
||
|
||
---
|
||
|
||
🎉 **获取所有商品功能已完成,支持一键获取指定账号的所有商品信息!**
|