修复库房地址受控展示

为平台库房管理列表和详情增加专用响应处理,在保留全局敏感字段保护的前提下恢复库房自身地址。未填写地址时显示‘未填写’,创建和编辑继续复用原有白名单写入逻辑,不修改数据库及历史数据。补充回归测试、操作日志和项目文档。
This commit is contained in:
czl231
2026-08-13 02:25:42 +08:00
parent 27733b313e
commit 2252a9c2a0
6 changed files with 206 additions and 2 deletions

View File

@@ -0,0 +1,43 @@
# 库房地址受控展示操作日志
操作时间2026-08-13
操作类型:修改
影响模块:平台总后台库房管理、平台管理 API
## 操作前状态
库房地址已保存于 `product_warehouse.address`,新建与编辑接口也允许写入地址,但通用敏感字段保护会删除列表和详情响应中的 `address`,导致页面统一显示 `-`
## 具体操作
1. 为库房管理增加专用列表与详情处理器。
2. 保留全局敏感字段保护,并在保护后仅恢复当前库房资源自身的地址。
3. 创建与编辑继续复用原有通用白名单写入逻辑。
4. 未填写地址时在页面显示“未填写”。
5. 新增列表、详情和空地址回归测试。
## 操作后状态
- 库房列表、详情和编辑页面可取得已保存地址。
- 未填写地址时显示“未填写”。
- 其他资源和公共接口继续执行原有地址保护。
- 数据库结构与历史数据均未修改。
## 代码变更
- `backend/api/internal/logic/platform/product/warehouse.go`:新增库房地址受控列表、详情和恢复逻辑。
- `backend/api/internal/logic/platform/product/warehouse_test.go`:新增地址恢复测试。
- `backend/api/internal/routers/platform.go`:库房 GET 路由改用专用处理器POST/PUT 保持通用处理器。
- `frontend/platform_admin/src/api/resources.ts`:配置库房地址空值文案。
## 验证结果
- `go test ./internal/logic/platform/product ./internal/routers`:通过。
- `npm.cmd run resource-pages:check`:通过,详情 46 类、新建 25 类、编辑 23 类。
- `npm.cmd run build`通过TypeScript 检查与 Vite 生产构建成功。
- 本地后端重新编译并重启,健康接口返回 `platform-api``ok`
- `git diff --check`:通过。
## 风险评估
完整库房地址仅在已鉴权的平台库房管理接口中恢复。全局敏感字段规则未放宽,数据库与其他终端不受影响。

View File

@@ -0,0 +1,39 @@
# 项目文档:库房地址受控展示 v1.0
## 1. 项目概述
本次修改解决平台总后台库房地址已保存但无法显示的问题。库房继续使用自身的 `product_warehouse.address` 字段,地址保持可选,不修改数据库结构或历史数据。
## 2. 目录结构说明
```text
platforms/
├── backend/api/internal/logic/platform/product/
│ ├── warehouse.go # 库房列表、详情及地址受控恢复
│ └── warehouse_test.go # 库房地址响应测试
├── backend/api/internal/routers/
│ └── platform.go # 平台库房管理路由
├── frontend/platform_admin/src/api/
│ └── resources.ts # 库房地址空值展示配置
└── docs/
├── 项目文档_库房地址受控展示_v1.0.md
└── 操作日志_库房地址受控展示_20260813.md
```
## 3. 核心文件说明
- `warehouse.go`:列表与详情先执行通用响应投影和敏感字段保护,再按当前查询记录恢复库房自身地址。
- `warehouse_test.go`:覆盖列表顺序、单条详情及空地址场景。
- `platform.go`GET 使用库房专用处理器;创建、更新和状态修改继续沿用通用资源能力。
- `resources.ts`:空地址显示“未填写”,编辑输入提示为“请输入地址”。
## 4. 变更记录
- 修复库房列表地址显示 `-`
- 支持详情和编辑页面读取已保存库房地址。
- 保持地址可选,并为未填写状态提供明确文案。
- 未新增依赖、数据库迁移或历史数据修改。
## 5. 维护指南
新增需要受控展示地址的管理资源时,应采用资源专用恢复逻辑,不得从全局敏感字段集合中移除 `address`。修改后至少运行平台产品逻辑测试、路由测试和平台前端构建。