From 54a6c451356756444812b740a3f727900d98a78b Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 6 May 2026 21:09:27 +0800 Subject: [PATCH] =?UTF-8?q?06=20fix:=20/mp/common/merchant-qualifications?= =?UTF-8?q?=20=E5=8A=A0=20visible=20=E8=BF=87=E6=BB=A4=20(PR=20HL#1760)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- ..._merchant_qualifications_visible_filter.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 changelogs/2026-05/06_fix_mp_merchant_qualifications_visible_filter.md diff --git a/changelogs/2026-05/06_fix_mp_merchant_qualifications_visible_filter.md b/changelogs/2026-05/06_fix_mp_merchant_qualifications_visible_filter.md new file mode 100644 index 0000000..8a50da2 --- /dev/null +++ b/changelogs/2026-05/06_fix_mp_merchant_qualifications_visible_filter.md @@ -0,0 +1,40 @@ +# 修复 /mp/common/merchant-qualifications 不按 visible 字段过滤 + +**类型**: BUG 修复(后端单点) +**前端处理者**: mmg(无前端动作, 后端透明修复) +**日期**: 2026-05-06 +**关联**: 工单 #1758 / PR #1760 + +--- + +## 现象 + +管理端「编辑旅行社」弹窗里把「是否在小程序展示」开关关闭(visible=0)后, 小程序 `GET /mp/common/merchant-qualifications` 仍返回该公司, 与开关语义不符。 + +## 根因 + +`TravelAgencyMapper.selectNonPrimaryEnabled()`(PR #1751 引入)只过滤 `status=ENABLED + 非主体`, 漏过 `visible=1`。 + +PR #1756 (Closes #1749) 后加 `agency.visible` 字段时未回头给本 mp 接口加过滤。 + +## 修复 + +`TravelAgencyMapper.selectNonPrimaryEnabled()` 加 `.eq(visible, 1)` 一行。 + +新增 `TravelAgencyMapperTest` 防回归: 用 `MockitoExtension + TableInfoHelper.initTableInfo` 模板, 断言 wrapper SQL 含 status/visible/is_primary 三个条件 + visible 用 `=` 比较 + paramNameValuePairs 值集合含 ENABLED/1/0。 + +## 影响 / 不影响 + +| 接口 | 是否受影响 | +|------|-----------| +| `/mp/common/merchant-qualifications` | ✅ 修复(只返 visible=1 的非主体公司) | +| `/mp/agency/primary` | ❌ 主体单独路径, 不在此修复范围 | +| admin 列表/详情、Feign `internal/agency/{id}` 等 | ❌ 不受影响 | + +## 缓存 + +`MpCommonController.merchantQualifications` 已声明 `@MpCache(deps={"table:travel_agency", "table:travel_agency_qualification"})`, admin update 走 `afterCommitAuditAndCacheBust` invalidate `table:travel_agency`, 配置已正确。 + +## 前端无需改动 + +接口 URL/响应结构无变化, 仅过滤行为变严, 之前隐藏的公司本来就不应出现在小程序合作商家页, 修复后符合预期。