material_manage_system/internal
文睿 张 5d508cd2bb fix: 给不存在的仓库建库位时误报创建成功
CreateLocation 的 INSERT...SELECT 匹配不到仓库时影响 0 行,MySQL 不报错:
err 为 nil、LastInsertId() 返回 0。此前只看 err,接口回 201
"Location created successfully" 且 data.id 为 0,而库里一行都没写进去——
刷新后库位消失,重试还是"成功"。

改为以 RowsAffected 为准(INSERT 的 RowsAffected 就是实际插入行数,不受
clientFoundRows 影响),影响 0 行返回 ErrWarehouseNotFound,接口回 400
"仓库不存在,可能已被删除或不属于当前组织"。与既有的 execExpectingRow、
role_permissions 插入保持同一套路。

实测(docker,重建后端镜像后):
  不存在的仓库 999  ->  HTTP 400,warehouse_locations 1 行 -> 1 行
  真实仓库 1        ->  HTTP 201 id=3,1 行 -> 2 行,库中确有此行

新增 warehouse_test.go 覆盖两个分支,变异验证:去掉 affected==0 判断后
"影响 0 行"用例失败(返回 <nil>,正是线上症状)。
2026-09-22 18:21:31 +08:00
..
handler fix: 已停用角色导致用户无法保存编辑 2026-09-22 16:41:19 +08:00
middleware restore lost frontend and backend changes 2026-09-16 23:30:25 +08:00
model 修改一致性问题 2026-09-21 14:13:30 +08:00
repository fix: 给不存在的仓库建库位时误报创建成功 2026-09-22 18:21:31 +08:00
service fix: 主数据编辑的两类静默失败 2026-09-21 17:26:53 +08:00
testutil Initial commit 2026-09-15 16:08:18 +08:00