From 491e24904ee30a30bdacbc548f70978660ae023b Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 9 May 2026 21:01:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E5=85=AC=E5=8F=B8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=88=A0=E9=99=A4=E8=B5=B0=20@TableLogic=20=E7=9C=9F?= =?UTF-8?q?=E5=88=A0=20(PR=20#1927,=20Closes=20#1926)=20=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=200=20=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._fix_admin_agency-delete-use-tablelogic.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 changelogs/2026-05/09_fix_admin_agency-delete-use-tablelogic.md diff --git a/changelogs/2026-05/09_fix_admin_agency-delete-use-tablelogic.md b/changelogs/2026-05/09_fix_admin_agency-delete-use-tablelogic.md new file mode 100644 index 0000000..70454fd --- /dev/null +++ b/changelogs/2026-05/09_fix_admin_agency-delete-use-tablelogic.md @@ -0,0 +1,45 @@ +# 公司管理「删除」行为修复 — 真的删除了 + +> **服务**: hl-order-service-v2 (8094) +> **PR**: #1927 +> **Issue**: #1926 +> **日期**: 2026-05-09 +> **影响范围**: admin「公司管理 / 旅行社管理」点删除按钮 + +--- + +## 一、用户可见变化 + +修复前: 点删除 → 提示"删除成功" → 列表刷新公司**还在**(用户多次重试问题持续) +修复后: 点删除 → 提示"删除成功" → 列表刷新公司**真消失** + +## 二、前端不用改 + +接口契约 / 字段 / 路径 0 变化: +- `DELETE /admin/travel-agency/{id}` 入参/出参不变 +- `GET /admin/travel-agency/page` 字段不变 +- `GET /admin/travel-agency/enabled-by-platform` (本日新接口) 字段不变 + +如果之前有"强制刷新"或"轮询确认删除生效"之类的 workaround 代码,可以去掉了。 + +## 三、根因(简述) + +后端原本用 `update set status='DISABLED'` 当作"删除"来避免外键悬空,但列表查询的 `selectPage` 在前端不传 status 时不过滤,DISABLED 公司仍然出现。修复改为走 BaseDO 的 `@TableLogic` 软删(set deleted_at = NOW()),让所有列表查询(MyBatis-Plus 自动加 deleted_at IS NULL 条件)统一过滤。 + +## 四、测试服验证 (2026-05-09 21:00) + +| Case | 实测 | +|---|---| +| DELETE bohua-test (旧 BUG 留下的 status=DISABLED 数据) | 200, 列表 4 条不再出现 | +| DB 验证 bohua-test 行 deleted_at | 2026-05-09 21:00:10 已设 | +| DELETE kj (主体公司) | 业务码 594005 拒绝(主体禁删校验) | +| DELETE 不存在 ID | 业务码 AGENCY_NOT_FOUND | + +## 五、不在本 PR 范围 + +- 跨服务引用校验(product/contract/order/team_report Feign 0 引用才允许删) — 留后续工单 +- 旧 status='DISABLED' 历史数据治理(是否一次性 UPDATE 设 deleted_at) — 留后续讨论 + +--- + +**联系人**: wx