feat(admin): merge stash changes into comclib-analytics (order/finance/product + rpc sql)

This commit is contained in:
comlibmb
2026-02-10 18:49:21 +08:00
parent bf394eb65d
commit 80e5a1ddeb
23 changed files with 1599 additions and 143 deletions

View File

@@ -0,0 +1,50 @@
# 操作文档Admin 商品模块标准化实施
- **日期**2026-02-06
- **作用域**`admin` / `product`
- **实施人**Cascade (AI Assistant)
## 1. 摘要
按照 `AGENT_PROJECT_SPEC.md` 规范,完成了 Admin 商品模块从数据库 RPC 到 Service 层,再到前端页面的全链路标准化改造。
## 2. 动机
- 统一商品模块数据访问口径,消除页面 Mock 数据。
- 增强数据库安全性,所有特权操作均通过 `SECURITY DEFINER` RPC 并包含角色校验。
- 修复分类层级变动时 `path``level` 字段不同步的潜在风险。
## 3. 影响范围
- **数据库**:新增/更新了 `rpc_admin_product_*``rpc_admin_category_*` 系列函数。
- **服务层**:新增 `services/admin/productService.uts``services/admin/productCategoryService.uts`
- **前端页面**:重构了 `product-management/index.uvue``classification/index.uvue`
## 4. 变更清单
### 4.1 数据库 RPC (docs/sql/30_rpc/product/)
- `rpc_admin_product_list_v1.sql`: 标准化分页查询,对齐 `JSONB` 返回结构。
- `rpc_admin_product_update_status_v1.sql`: 统一处理上下架与回收站逻辑。
- `rpc_admin_category_list_v1.sql`: 适配 `ml_categories` 权威字段。
- `rpc_admin_category_create_v1.sql`: 自动维护层级路径。
- `rpc_admin_category_update_v1.sql`: **核心增强**,支持子树 `path``level` 的级联更新,并具备递归防循环引用校验。
- `rpc_admin_category_delete_v1.sql`: 实现“有子项禁止删除”的安全策略。
### 4.2 服务层 (services/admin/)
- `productService.uts`: 封装商品列表与状态变更接口。
- `productCategoryService.uts`: 封装分类列表与 CRUD 接口。
### 4.3 前端重构
- **商品管理**:接入真实数据流,支持按名称、状态搜索,支持实时上下架切换。
- **商品分类**:接入真实树形数据,支持完整的 CRUD 操作与状态开关。
## 5. 安全与权限验证
- **RPC 安全**:所有函数均声明为 `SECURITY DEFINER`,并固定 `search_path = public`
- **角色守卫**:函数入口显式校验 `role IN ('admin', 'analytics')`
- **数据隔离**:仅返回 UI 渲染必要的最小字段集。
## 6. 回滚方案
- **SQL**:执行 `DROP FUNCTION IF EXISTS public.rpc_admin_...`
- **代码**:通过 Git 回退 `pages/mall/admin/product/` 相关目录的变更。
## 7. 验证方式
1. 登录 Admin 账号,进入“商品管理”,验证列表分页与搜索是否正常。
2. 切换商品“上架/下架”开关,刷新页面确认状态持久化。
3. 进入“商品分类”,尝试添加子分类并移动其父级,通过数据库查询确认其 `path` 已级联修正。