增加上传接口

This commit is contained in:
yml
2026-06-02 17:51:04 +08:00
parent 6f4c8b59f9
commit 3adba1c529
9 changed files with 825 additions and 2 deletions
+4
View File
@@ -22,7 +22,9 @@ API 规划以 [项目计划](project-plan.md) 第 10 章为准。
- `GET /api/me`
- `POST /api/realname/start`
- `GET /api/realname/status`
- `POST /api/open/listing-uploads`
- `GET /api/listings`
- `GET /api/listings/default-upload-screenshot`
- `GET /api/listings/{id}`
- `POST /api/listings`
- `PUT /api/listings/{id}`
@@ -80,6 +82,8 @@ API 规划以 [项目计划](project-plan.md) 第 10 章为准。
说明:`POST /api/listings``PUT /api/listings/{id}` 支持 `screenshot_urls` 数组,用于保存号主上传的账号资产截图地址。`GET /api/admin/listings` 支持按 `owner_id``status``review_status``limit` 查询商品。`GET /api/admin/wallet/ledger` 支持按 `user_id``order_id``biz_type``limit` 查询最近资金流水。`GET /api/admin/audit-logs` 支持按 `actor_id``action``biz_type``limit` 查询最近审计日志。`/api/admin/*` 当前已使用独立后台登录,后续接入 RBAC 和 Casbin 权限后再按角色收紧访问控制。
开放上传说明:`POST /api/open/listing-uploads` 不需要登录鉴权,用于接收外部软件上传的账号资料。请求体包含 `uploadTime``uploaderName``data`,默认按单条账号对象处理,也兼容少量数组。后端会按 `uploaderName` 优先匹配 `admin_users.username`,未匹配时再匹配唯一 `nickname`,只使用 `status = active` 的后台用户;匹配成功后自动创建/复用对应的客服代发布普通用户,生成 `draft` + `pending` 的待审核商品,并使用 `/api/listings/default-upload-screenshot` 作为默认账号截图。上传原始内容和转换结果记录在 `listing_uploads` 表中。
文件上传说明:`POST /api/files/upload` 使用 `multipart/form-data`,文件字段名为 `file`,可选 `scene``listing``handoff``dispute``realname``avatar`;当前允许 10MB 内的 JPG、PNG、WebP 和 PDF。返回的 `url` 为后端代理访问地址。后台查看私有文件使用 `GET /api/admin/files/object?key=...`
订单超时扫描任务为后端内部任务,不暴露公开 API;超时阈值通过 `/api/admin/system-configs` 调整。