# 项目文档:生产商地址受控展示 v1.0 ## 1. 项目概述 本次修改修复平台总后台生产商管理无法显示已保存企业地址的问题。系统继续使用生产商自身的 `producer_account.address` 字段,不关联用户地址模块,也不改变地址可选规则。 主要技术栈:Go、Gin、GORM、Vue 3、TypeScript、Vite。运行环境沿用现有平台 API 与平台总后台环境。 ## 2. 目录结构说明 ```text platforms/ ├── backend/api/internal/logic/platform/product/ │ ├── producer.go # 生产商管理接口及地址受控恢复逻辑 │ └── producer_test.go # 生产商地址响应测试 ├── frontend/platform_admin/src/api/ │ └── resources.ts # 生产商字段与空值文案配置 └── docs/ ├── 项目文档_生产商地址受控展示_v1.0.md └── 操作日志_生产商地址受控展示_20260813.md ``` ## 3. 核心文件说明 ### `producer.go` - `ListProducerAccount`:分页查询生产商,执行通用响应保护后恢复每条生产商自身地址。 - `GetProducerAccount`:查询单个生产商,执行通用响应保护后恢复详情及编辑所需地址。 - `restoreProducerAccountAddresses`:按照查询结果顺序,将地址写回列表或详情响应。 该实现依赖 `common.PublicResourceResponse` 完成公共响应投影,并依赖 `common.ProtectPreciseLocation` 保留现有敏感字段保护边界。 ### `producer_test.go` 覆盖列表多记录地址映射、单条详情地址恢复以及空地址保留三个场景。 ### `resources.ts` 生产商地址字段配置 `emptyText: '未填写'`。空字符串仍由通用字段展示组件处理,不引入生产商专用页面分支。 ## 4. 变更记录 - 修复生产商地址已保存但列表显示 `-` 的问题。 - 支持详情和编辑页面取得已保存企业地址。 - 未填写地址时显示“未填写”。 - 未新增依赖、数据库迁移或公共接口。 已知问题:无。 ## 5. 维护指南 - 若后续新增其他需要在管理端受控展示的地址资源,应在对应专用处理器中先执行通用保护,再按资源恢复;不要从全局敏感字段集合中删除 `address`。 - 修改恢复逻辑后运行:`go test ./internal/logic/platform/product`。 - 修改平台资源字段后运行:`npm.cmd run build`。 - 地址仍为可选字段;如需改为必填,应单独同步后端校验、前端配置、历史数据治理和接口文档。