feat(ECR-041): OpsCMS Banner 薄写面(Write-Wave 首刀)

Admin POST/PUT + admin.cms.write/审计;C 端 GET /home/banners;首页投影回退静态 homeFeeds;migration 000051;不碰 FeedSlot/支付/UGC。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-13 19:55:27 +08:00
co-authored by Cursor
parent ad45d17dff
commit 9707b72808
35 changed files with 1203 additions and 29 deletions
@@ -0,0 +1,37 @@
# Backend Design: ECR-041 Banner Write
| Field | Value |
|-------|-------|
| ID | BD-2026-041 |
| Status | **Approved** |
| Coding | **Authorized · Implemented · Closed with ECR-041** |
| Level | L2 |
| Migration | `000051_ops_banner_write` |
## Backend Change Boundary
```text
Domain: Banner (write + C-end read)
App: AdminHandler / HomeHandler → admin.Service / home → AdminRepo
API:
POST /api/v1/admin/cms/banners
PUT /api/v1/admin/cms/banners/{id}
GET /api/v1/home/banners?placement=home
Permission: admin.cms.write (additive); keep admin.cms.read
Audit: admin_audit_logs on POST/PUT
Table: reuse ops_banners (ECR-024)
```
## Out of boundary
FeedSlot 写 · ScheduledPublication 写 · UGC · 真支付 · soft-delete · Crisis/Handoff/ContentSafety 写 · 新 RBAC 子系统
## Rollback
1. migration down(撤权限种子)
2. 移除写路由与 C 端读取路由
3. H5 回退静态 `homeFeeds`
## Refs
Spec `ops-banner-write.md` · ECR-041 · WRITE_WAVE_AUTHORIZATION · predecessor BD-2026-024