fix version 1
This commit is contained in:
25
docs/mall.md
25
docs/mall.md
@@ -360,3 +360,28 @@ flowchart TD
|
||||
14. **清理与测试**:删除 `set_profile.go:31` 的 `.Debug()`、`get_setting.go` 等 4 处 `print(err.Error())` 与 6 处 TODO 残留;为 `login`(含验证码分支)、`item_fetch`、`spec_create`、`item_create` 各补 1 条正例 + 1 条边界用例;README 的驱动与端口按 `etc/*.yaml` 更新。
|
||||
|
||||
> 本报告只列出与现有实现直接相关的修复项,不引入新的分层或抽象封装。仓储里"为 models 层加统一查询构造器""引入 DTO/VO 转换层""把跨库表访问抽象为 RPC 客户端"一类改造不在此列。
|
||||
|
||||
## 9. 整改记录(2026-09-22)
|
||||
|
||||
> 本节记录按本报告结论执行的代码整改。整改遵循**最小修正**原则:未引入新框架、抽象层、DTO/VO、事件总线,未拆分服务边界,**未修改任何 `proto/*.proto` 与生成的 `pb/*.go`**;新增/修改注释均为中文;口令类摘要统一使用 bcrypt(验证码等短时效一次性凭证仍按原有 Redis 明文比对链路存储)。校验方式:`GOWORK=off go build ./...` + `GOWORK=off go vet ./...` + `gofmt -l`(仓库根 workspace 模式存在 genproto 拆包的 ambiguous import,属本机既有问题)。
|
||||
|
||||
| 编号 | 级别 | 问题 | 处理结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| M1 | 高 | 员工手机验证码登录不校验验证码 | 已修复:按 `/SMS/Code/` + 手机号的既有 Redis 键规则真实校验,成功后删除键 |
|
||||
| M2 | 高 | 支付/邮件配置可被任意已登录用户读改(4 接口 + 无鉴权的 `GetSetting`) | 已修复:统一增加「当前登录者属于该店铺」的归属校验,越权返回 `ErrPermissionDenied`;`SetSetting` 亦从「凭请求 `identity` 直接 `Updates`」改为以 token 中的店铺归属为准,并检查 `RowsAffected`,避免改到他人店铺却静默成功 |
|
||||
| M3 | 高 | 12 处写操作无店铺归属校验(商品/规格/图片/分类/广告/公告/运费/员工) | 已修复:逐处补归属条件(条件中直接带归属字段,`RowsAffected == 0` 即视为越权或不存在) |
|
||||
| M4 | 高 | `Staff.Fetch` 鉴权被注释,员工手机号/邮箱批量泄露 | 已修复:恢复鉴权 |
|
||||
| M5 | 高 | 进货价/代理价经 `ItemDetail`、`SpecDetail`、`SpecFetch` 外泄 | 已修复:匿名或非本店调用者不下发成本类价格字段,本店可正常查看 |
|
||||
| M6 | 高 | `Licensing` 不校验许可码,店铺标识可被枚举 | 已修复(安全降级):要求已登录并校验归属。**完整许可校验缺少数据源,未做** |
|
||||
| M7 | 高 | `item_fetch` 分类过滤恒空、价格区间单边失效、重复查询 | 已修复:修正过滤条件与重复查询 |
|
||||
| M8 | 高 | `store/search.go` 列名错误导致店铺搜索完全不可用 | 已修复:按模型真实列名修正 |
|
||||
| M9 | 高 | `spec_create.go` 库存被写为 `stock_type` | 已修复:库存写入正确字段 |
|
||||
| M10 | 高 | `spec_create.go`/`photo_create.go` nil error 调 `Error()` 导致 panic | 已修复:先判 err 非空再记录 |
|
||||
| M11 | 高 | `item_detail_by_serial.go` Preload 关联名不存在 | 已修复:按模型真实关联名修正 |
|
||||
| M12 | 高 | 12 个接口空实现/假成功(运费 9 个 + 入驻 + 小程序码 + 按规格查询) | 已修复:全部改为显式返回 `errcode.ErrUnimplemented`,不再假成功;方法签名与 proto 保持不变。**其中 `freight.DenyRegionRemove` 在首轮整改中被遗漏,本轮已补齐**(共 9 个运费接口) |
|
||||
|
||||
### 未纳入本轮范围
|
||||
|
||||
报告中「中」「低」级别的项(分页上限、死代码、README 与实现不符、单测缺失、可维护性等)**本轮未处理**;如需继续,按各报告第 8 节「修复建议」的顺序推进即可。
|
||||
|
||||
> 本轮整改未修改任何 `proto/*.proto` 与 `pb/*.go`,因此少数需要新增接口字段才能完整实现的项目(已在处理结果中标注)做了安全降级。
|
||||
|
||||
Reference in New Issue
Block a user