feat(M03-B): 完成装修广告与媒体管理
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
# M03-B 装修、广告与媒体 API
|
||||
|
||||
- `POST /admin-api/media/images`:二进制图片上传;通过 `x-file-name`、`x-image-content-type` 和可选 `x-store-id` 提供元数据。
|
||||
- `POST /admin-api/decorations`:保存版本化装修草稿。
|
||||
- `POST /admin-api/decorations/:id/publish?storeId=...`:发布指定版本并归档旧版本。
|
||||
- `GET /admin-api/advertisements`
|
||||
- `POST /admin-api/advertisements`
|
||||
|
||||
图片仅接受 JPEG、PNG、WebP,最大 8 MiB、最大 4000 万输入像素,最长边压缩至 1920 并转为 WebP。文件按租户和门店目录隔离。
|
||||
|
||||
广告范围分为平台、租户和门店。平台广告仅平台管理员可创建,门店广告必须通过门店数据范围校验。
|
||||
@@ -0,0 +1,8 @@
|
||||
# M03-B 装修、广告与媒体数据库变更
|
||||
|
||||
- 迁移版本:`2026061808`
|
||||
- `qipai_media_assets`:租户素材、尺寸、哈希和公开 URL。
|
||||
- `qipai_store_decorations`:模板代码、Schema 版本、内容 JSON、发布版本。
|
||||
- `qipai_advertisements`:平台/租户/门店广告、投放时间、跳转和排序。
|
||||
|
||||
同一门店每次保存装修都会生成递增版本;发布新版本时旧版本转为 `ARCHIVED`。素材唯一索引包含 `tenant_id`,禁止跨租户引用。
|
||||
@@ -0,0 +1,28 @@
|
||||
# M03-B 装修、广告与媒体
|
||||
|
||||
- 日期:2026-06-18
|
||||
- 起始 commit:`7e9b534`
|
||||
- 工程 commit:本阶段工程提交
|
||||
- ENGINEERING_DELTA=YES
|
||||
- 子阶段状态:待 push 与远端校验
|
||||
|
||||
## 工程增量
|
||||
|
||||
- 平台、租户、门店三级广告及权限边界。
|
||||
- 门店装修草稿、版本递增、发布和旧版本归档。
|
||||
- JPEG/PNG/WebP 上传、解码校验、限像素、压缩转 WebP。
|
||||
- 租户/门店目录隔离、素材哈希去重和数据库归属校验。
|
||||
- 装修组件采用版本化 Schema,首版支持 HERO、NOTICE、GALLERY、CONTACT、ROOM_LIST。
|
||||
|
||||
## 验证
|
||||
|
||||
- Windows 全量 `npm test` 通过。
|
||||
- WSL MySQL 8.4.9:`up → verify → down → up → verify` 通过。
|
||||
- 真实迁移语句:up 44、verify 26、down 41。
|
||||
- 实测装修版本 1 发布后被版本 2 归档、门店广告读取和平台广告越权拒绝。
|
||||
|
||||
## 影响
|
||||
|
||||
- 新增 `sharp` 图片处理依赖。
|
||||
- 生产上传根目录仍为后端 `shared/uploads`,由部署目录映射到统一上传目录。
|
||||
- 生产迁移和目录权限配置必须通过 Ubuntu 菜单执行。
|
||||
Reference in New Issue
Block a user