# refactor: 字典/配置/酒店/活动/景点/餐厅等管理端修改后小程序立即生效 > **服务**: hl-user-service + hl-resource-service + hl-mp-service > **PR**: #894 + #896 > **Issue**: #892 + #893 > **日期**: 2026-04-19 > **前端是否需要改动**: **无需改动**(后端行为修复,原调用继续工作且立即可见新数据) --- ## 一、背景 继 PR #891 修好轮播图缓存问题后,排查发现项目内还有 6 个 Service 存在相同反模式。本次批量修复让以下对外接口都支持"管理端修改立即生效": - `/admin/dict/type/*`、`/admin/dict/data/*` → `/mp/dict/*` - `/admin/frontend-config/*` → `/mp/config/*` - `/admin/hotel/*` → `/mp/hotel/*` - `/admin/activity/*` → `/mp/activity/*` - `/admin/scenic/*` → `/mp/scenic/*` - `/admin/restaurant/*` → `/mp/restaurant/*` **前端可清理的历史 workaround**: - 保存后刷新页面 / 二次请求 / 延迟拉取 - 本地"乐观更新"对应数据 - "请稍后刷新"类 toast 提示 --- ## 二、变更接口清单 | # | 接口组 | 变更类型 | 前端改动 | |---|-------|---------|---------| | 1 | `/admin/dict/type/*` 、 `/admin/dict/data/*` CUD | 行为修复:保存立即生效 | 无需 | | 2 | `/mp/dict/*` | 缓存 TTL 30min → 5min | 无需 | | 3 | `/admin/frontend-config/*` CUD | 行为修复:保存立即生效 | 无需 | | 4 | `/mp/config/*` | 缓存 TTL 30min → 5min | 无需 | | 5 | `/admin/hotel/*`、`/admin/activity/*`、`/admin/scenic/*`、`/admin/restaurant/*` CUD 及批量操作 | 行为修复:保存立即生效;**原本批量操作漏清缓存的 bug 也修复** | 无需 | | 6 | `/mp/hotel/*`、`/mp/activity/*`、`/mp/scenic/*`、`/mp/restaurant/*` | 无变化(TTL 已合理) | 无需 | **请求/响应结构完全不变**。 --- ## 三、修复说明 1. 抽公共工具 `CacheEvictAfterCommit`,把缓存清理统一推迟到事务提交后 2. 6 个 Service 所有写方法改用这个工具 3. Dict/Config 过长的读端 TTL 从 30 分钟降到 5 分钟(兜底) 4. 顺带修复 resource 4 个 Service 的 `batchUpdateStatus/batchDelete` 原本**根本没清缓存**的 bug ## 四、前端行动项 **无需任何代码改动**。可评估清理以下历史 workaround: | 可移除的 workaround | 原因 | |--------------------|------| | 字典列表保存后手动刷新 | 缓存立即失效 | | 配置改完调 `refresh()` 二次拉取 | 同上 | | 酒店/活动/景点/餐厅列表保存后 setTimeout 重拉 | 同上 | | "请稍后刷新"类 toast | 可改为"保存成功" | ## 五、测试环境已验证 改 banner title → MP `/mp/banner/active` 立即返回新值(同一 pattern,其他 Service 沿用)。