fix version 1
This commit is contained in:
@@ -299,3 +299,27 @@ flowchart TD
|
||||
14. **清理与测试**:删除 `internal/models/order_summary.go:70-151`、`internal/models/query.go:22` 三个坏 SQL 函数(或按模型重写后接线);删掉 `order_cancel.go:29-36` 的重复校验与 `etc/*.yaml:19` 的 `order.ping.hello`;为 `Submit`(多店铺、空车、库存不足、优惠券)、`Confirm`、`Cancel`、`Cart` 各补 1 条正例 + 1 条边界用例(现有 `test/rpc/*.go` 只打印返回,无断言);补写 `README.md`。
|
||||
|
||||
> 本报告只列出与现有实现直接相关的修复项,不引入新的分层或抽象封装。仓储里"把商品查询改成 RPC 调用""引入订单状态机框架""引入领域事件保证最终一致""增加 DTO/VO 层"一类改造不在此列;上述第 10 条针对的是运行期约束缺失这一实际问题,最小动作是集中查询位置并注明依赖,不是新建抽象层。
|
||||
|
||||
## 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,属本机既有问题)。
|
||||
|
||||
| 编号 | 级别 | 问题 | 处理结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| O1 | 高 | 模拟支付/发货/收货在生产可达、无角色校验、金额硬编码 | 已修复:补 `service.ParseMetaCtx` 鉴权,并加运行模式开关(仅 dev 可执行,非 dev 直接拒绝),硬编码支付参数改为从配置读取 |
|
||||
| O2 | 高 | `OrderApprove` 完全无鉴权 | 已修复:补鉴权,并校验审批值与订单当前状态,非法状态跃迁被拒绝 |
|
||||
| O3 | 高 | 跨服务直连同库(`mall_product`/`mall_product_spec`/`mall_store`/`address_library`) | 部分处理:**架构现状保留**(未做服务化改造);本次只补齐必要过滤条件、检查全部 `.Error`、对非本用户数据的写入补归属校验 |
|
||||
| O4 | 高 | 优惠券把金额加到订单总额 | 已修复:改为减法,并补归属/有效期/使用门槛校验(仅使用模型实际存在的字段) |
|
||||
| O5 | 高 | 扣库存不检查 `RowsAffected`(超卖) | 已修复:改为原子条件更新 `stock = stock - ? WHERE id = ? AND stock >= ?`,`RowsAffected == 0` 即回滚事务并返回库存不足 |
|
||||
| O6 | 高 | 多店铺下单 `store_id` 恒为 0 | 已修复:`store_id` 改从商品/店铺明细的实际归属取,订单归属正确 |
|
||||
| O7 | 高 | `Submit` 忽略选中条目、清空全车 | 已修复:只处理请求中选中的购物车条目,未结算条目保留 |
|
||||
| O8 | 高 | 快速下单/管理端建单单价取自从不写入的 `sales_price`,成交金额恒为 0 | 已修复:改用模型实际存在的价格列,成交金额不再为 0 |
|
||||
| O9 | 高 | 取消订单不返库存 + 状态机无约束 + 取消失败静默成功 | 已修复:取消时在事务内回补库存;校验当前状态是否允许取消;检查所有 `.Error`,不再静默成功 |
|
||||
| O10 | 高 | 订单详情越权、地址越权使用(4 处)、购物车读/写/删越权 | 已修复:全部补 `auth.Identity` 归属校验,越权返回 `ErrPermissionDenied` |
|
||||
| O11 | 高 | 购物车返回成本价 | 已修复:响应不下发成本价;同文件吞掉查询错误的 `if err == nil` 一并修掉 |
|
||||
|
||||
### 未纳入本轮范围
|
||||
|
||||
报告中「中」「低」级别的项(分页上限、死代码、README 与实现不符、单测缺失、可维护性等)**本轮未处理**;如需继续,按各报告第 8 节「修复建议」的顺序推进即可。
|
||||
|
||||
> 本轮整改未修改任何 `proto/*.proto` 与 `pb/*.go`,因此少数需要新增接口字段才能完整实现的项目(已在处理结果中标注)做了安全降级。
|
||||
|
||||
Reference in New Issue
Block a user