Files
PartsInquiry/doc/admin_development.md
2025-09-27 22:57:59 +08:00

2.6 KiB
Raw Blame History

管理端开发说明(当前实现)

1. 模块概览

  • VIP 系统/vip/system 管理统一售价与充值记录,/vip/list 维护店铺会员状态。价格管理页面引用 /api/admin/vip/system/price,充值列表读取 /api/admin/vip/system/recharges
  • 公告管理/notice/list 支持公告检索、创建、编辑、发布与下线,对应接口 /api/admin/notices 及其子路径。
  • 咨询回复/consult 基于 /api/admin/consults 完成列表、单次回复、标记已解决。
  • 用户/配件/供应商/users/parts/supplier 依次调用 /api/admin/users/api/admin/parts/api/suppliers 进行检索与维护。
  • 附件与图片:图片上传统一走 /api/attachments,列表页展示时需通过 withBaseUrl() 处理相对路径。

2. 认证与上下文

  • 后端默认启用 AdminAuthInterceptor,优先校验 Bearer Token未登录情况下回退到请求头 X-Admin-IdX-User-Id
  • 管理端前端目前仍使用本地存储写入 USER_ID/ADMIN_ID(详见 admin/src/api/http.ts);接入登录页时需改为在登录成功后写入 Token 并移除默认 ID。
  • 所有请求必须附带 X-Shop-Id(默认 1可在本地存储或环境变量覆盖以匹配租户范围。

3. 接口要点

  • VIP 列表GET /api/admin/vips 已落地;POST /api/admin/vips 需要传入 shopIduserId 才能成功创建。
  • VIP 价格GET/PUT /api/admin/vip/system/price 会清空 vip_price 再写入单条记录,不允许并行修改;可考虑后续改为 UPDATE 语句。
  • VIP 充值GET /api/admin/vip/system/recharges 支持关键字(姓名/手机号)过滤,默认按创建时间倒序。
  • 公告管理:创建与更新均支持标签、置顶、时间窗,未填写时间默认为即时生效/长期有效。
  • 附件上传:上传成功返回 url 与元信息,若需要落库请在业务表维持引用;多次上传同一文件会复用记录(按 hash 去重)。

4. 条码识别接入

  • 管理端不提供扫码入口,仅用户端调用 /api/barcode/scan
  • 后端代理服务会将图片转发至 Python TXMFastAPI并返回首个匹配条码需保持 Java 与 Python 两侧的 PY_BARCODE_MAX_UPLOAD_MB 一致。
  • 部署时应通过环境变量配置:
    • PY_BARCODE_HOST/PY_BARCODE_PORTPython 服务地址,默认 127.0.0.1:8000
    • PY_BARCODE_MAX_UPLOAD_MB:上传大小限制,默认 8MB。
  • 小程序端调用扫码接口需将后端域名加入“request 合法域名”并启用 HTTPS。