Files

94 lines
4.6 KiB
Markdown

# API 规划
API 规划以 [项目计划](project-plan.md) 第 10 章为准。
一期接口按模块推进:
- 认证:短信验证码、手机号登录、Token 刷新、退出登录。
- 实名:发起认证、查询状态、服务回调。
- 发布:创建、修改、提交审核、下架、列表、详情。
- 订单:创建、取消、确认收号、发起结账、确认结账、修改结账、确认/拒绝修正、发起申诉。
- 交接:提交交接说明、查看交接记录。
- 钱包:余额、流水、提现预留。
- 通知:站内信列表、标记已读。
- 后台:审核、订单、仲裁、资金流水、系统配置、审计日志。
## 已实现接口
- `POST /api/auth/sms/send`
- `POST /api/auth/sms/login`
- `POST /api/auth/refresh`
- `POST /api/auth/logout`
- `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}`
- `POST /api/listings/{id}/submit-review`
- `DELETE /api/listings/{id}`
- `GET /api/seller/listings`
- `GET /api/seller/listings/{id}`
- `POST /api/orders`
- `GET /api/orders`
- `GET /api/orders/{id}`
- `POST /api/orders/{id}/pay`
- `POST /api/orders/{id}/cancel`
- `POST /api/orders/{id}/handoff`
- `GET /api/orders/{id}/handoff-records`
- `POST /api/orders/{id}/confirm-receive`
- `POST /api/orders/{id}/checkout`
- `POST /api/orders/{id}/checkout/confirm`
- `POST /api/orders/{id}/checkout/counter`
- `POST /api/orders/{id}/checkout/accept`
- `POST /api/orders/{id}/dispute`
- `GET /api/disputes`
- `GET /api/disputes/{id}`
- `GET /api/wallet/balance`
- `GET /api/wallet/ledger`
- `POST /api/wallet/recharge/pay`
- `POST /api/wallet/recharge/pay/{id}/query`
- `POST /api/files/upload`
- `GET /api/files/object`
- `POST /api/payments/leshua/notify`
- `GET /api/notifications`
- `POST /api/notifications/{id}/read`
- `GET /api/admin/auth/captcha`
- `POST /api/admin/auth/login`
- `POST /api/admin/auth/logout`
- `GET /api/admin/me`
- `GET /api/admin/dashboard`
- `GET /api/admin/users`
- `POST /api/admin/users/{id}/freeze`
- `POST /api/admin/users/{id}/unfreeze`
- `GET /api/admin/orders`
- `GET /api/admin/orders/{id}`
- `GET /api/admin/orders/{id}/handoff-records`
- `GET /api/admin/listings`
- `GET /api/admin/listings/pending`
- `GET /api/admin/listings/{id}`
- `POST /api/admin/listings/{id}/approve`
- `POST /api/admin/listings/{id}/reject`
- `POST /api/admin/listings/{id}/offline`
- `POST /api/admin/listings/{id}/mark-abnormal`
- `POST /api/admin/orders/{id}/close`
- `POST /api/admin/orders/{id}/mark-abnormal`
- `GET /api/admin/disputes`
- `POST /api/admin/disputes/{id}/arbitrate`
- `GET /api/admin/wallet/ledger`
- `GET /api/admin/system-configs`
- `PUT /api/admin/system-configs/{key}`
- `GET /api/admin/audit-logs`
- `GET /api/admin/files/object`
说明:`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` 调整。