200 次代码提交

作者 SHA1 备注 提交日期
API Changelog Bot
21ce4af85e hotfix(product-v2): 拖动行程字段抹平为 null 修复 (PR #2933)
P0 数据损坏 修复 + 真测通过, 前端无 API 变化无需改。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 10:11:47 +08:00
API Changelog Bot
704881d3c4 feat(product-v2): 行程天数拖拽重排
PR #2926 / Closes #2925

新增 POST /admin/product/item/{productId}/itinerary/reorder
- items: [{dayId, newDayNumber}, ...]
- 状态校验 (EDITABLE_STATUSES), @Idempotent 5s 防抖
- 子表 product_day_hotel 同步 day_number

测试服真测 T1-T5 全绿,单测 49/49 全绿。
前端 mmg 需实现拖动 UI + 调端点。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 09:19:36 +08:00
API Changelog Bot
2d38dcd139 docs: 二轮 CR P0 整改 (定制师反查 by-userid/by-openid)
PR #2924 后端内部 Feign 链路重构,前端无感知。

- 手机号不再走 Feign URL query (不出 user-service 进程)
- mp /mp/customizer/me + order-v2 sharerOpenid 反查从 2 次 Feign 减为 1 次
- SMS helper 抽取 + GlobalExceptionHandler.handleLoginFail 补单测

测试服真测 T1/T2/T3 全绿 + 单测 194 全绿。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 00:18:17 +08:00
API Changelog Bot
0bbb1bb9f9 fix: /mp/customizer/me 角色判定 P0 修复 + 网关白名单 + sharerOpenid 空串 (#2922 / PR #2923) 2026-05-22 22:50:38 +08:00
API Changelog Bot
539fc0fc6e feat(user): SMS 登录限定制师 + active role 自动切 CUSTOMIZER (#2918 / PR #2920) 2026-05-22 19:05:38 +08:00
yaosutu
c51c78512d feat(order-v2): admin 订单列表改造 changelog 追加 updateTime 排序 (PR #2916)
原 changelog (commit bf1788a) 漏了 updateTime 排序选项, 同文件追加:
- 关键变化总览: 列表排序补 "+ updateTime (最近更新)"
- 第 2 节排序枚举表: 加 updateTime 行 + 业务场景说明
- 前端建议段: 加"最近更新"下拉选项 + 与 createTime 区别提示
- 第 7 节测试建议: 加 updateTime DESC 验证 case
- 第 8 节关联: 加 PR #2916 + Issue #2915

Closes #2915
2026-05-22 18:55:36 +08:00
yaosutu
bf1788ae5e feat(order-v2): admin 订单列表+详情综合改造 (搜索/排序/行程/状态 tab)
覆盖今日 4 PR:
- PR #2903 详情新增 itinerary (景点+酒店 按天)
- PR #2906 列表 keyword 加联系电话 + 排序加 depositAmount
- PR #2909 完整 11 位手机号精确加密匹配 (修 #2906 假阳性)
- PR #2914 displayStatus 参数对齐原型 5 tab (修待出行 0 单 BUG)

前端动作:
- 搜索框 placeholder 提示完整手机号
- 排序下拉新增"订金金额"
- tab 切换迁到 displayStatus 参数
- 详情页"行程概览"段渲染 itinerary 字段

向后兼容: 不读新字段/不传新参数行为完全不变。

关联: Closes #2899 #2905 #2908 #2912
2026-05-22 18:20:05 +08:00
API Changelog Bot
933adcdcad feat(user/order): 定制师分享 + 锁定剩余次数 + AdminLoginResponse.mobile (#2907 / PR #2913) 2026-05-22 18:09:01 +08:00
API Changelog Bot
032bc3dd0a feat(user): 管理端手机号验证码登录 (#2889 / PR #2904) 2026-05-22 16:57:45 +08:00
API Changelog Bot
4b1d24c7e1 feat(user): admin_user 加 mobile 字段 (#2886 / PR #2897 / merge #2898) 2026-05-22 15:51:01 +08:00
API Changelog Bot
5371ba071b docs: /dict/all 外层 dictType 组新增 remark 字段 (HL PR #2827+#2828, Closes HL#2826) 2026-05-21 16:59:37 +08:00
wx
248c052e13 feat: 2026-05-21 fix mp message summary field misalign 2026-05-21 16:03:18 +08:00
API Changelog Bot
4061b956ea notify(2026-05-21): 素材审核拆除正式环境部署完成
- 正式 K3s hl-prod ns: hl-resource-service + hl-user-service 已部署 (commit 66c462c8)
- 正式 RDS round-trip 验证全过: material.review_status 列已 DROP, material_review_status 字典已删, 数据 5153 行完好
- 顺手记录踩坑: Flyway out-of-order 因 deploy-prod.sh 未 mvn clean 留孤儿 V99999999, 已根治 marker + rm 孤儿文件
2026-05-21 14:53:31 +08:00
API Changelog Bot
1dc7db6480 notify(2026-05-21): 素材审核拆除 + 团队成员角色字典化
- 21_refactor_material_remove_review_feature.md (Closes HL#2789, PR HL#2795)
  通知 mmg 删 reviewMaterials/rejectMaterials API 与批量审核/驳回 UI
  测试服已验证: GET material/list 无 reviewStatus 字段 + material_review_status 字典空

- 21_refactor_team_role_picker_use_staff_type_dict.md (Closes HL#2790, hl-api-changelog#7)
  通知 mmg StaffPickerModal.vue roleOptions 改 useDict('staff_type') 动态加载
  后端零改动 (staff_type 字典 7 项已就绪, 不含 DEPUTY_LEADER/DRIVER)
2026-05-21 14:04:34 +08:00
API Changelog Bot
751ed717d3 fix: 把 3 个 order-v3 changelog 从 changelogs/ 挪到 changelogs-v2/
错放原因:#2565 / #2569 / #2571 都是 order-v3 二期 PR,通知员漏判,写到了一期 changelogs/,
导致一期前端 mmg 在 sync-log 里看到了三条 v3 条目并反馈"全部跳过"。

按用户 2026-05-21 重申:order-v3 的任何内容严禁出现在 changelogs/,只能写 changelogs-v2/。

涉及文件:
- 18_2355_admin-order-v3-create-sharer-customizer.md (PR #2565)
- 19_feat_admin_order_list_consultant_name_filter.md (PR #2569)
- 19_fix_admin_order_detail_travelers_no_longer_empty.md (PR #2571)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 11:28:07 +08:00
API Changelog Bot
376e28930f changelog: refactor product-v2 餐饮选项 meal_option 字典化 (#2778) 2026-05-21 10:49:56 +08:00
API Changelog Bot
9b1f59c96c docs(changelog): #2677 素材列表分类查询严格只查自身(接口字段不变,语义变更)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 15:06:34 +08:00
API Changelog Bot
b2618f97e8 docs(changelog): 19_fix_hl_ui feetype 方案调整 '手动' → '其他'
用户决策更新:不要 null + v-if 那套,改为最小一行字面量替换:
feeType: '手动' → feeType: '其他'。"其他" 是合法分类,admin chip 和
C 端主标题都正常显示。脏数据清理 SQL 同步改为 UPDATE = '其他'。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:14:54 +08:00
API Changelog Bot
c03a32b4ac fix(hl-ui): 费用包含手动添加把"手动"塞进 feeType 导致 C 端显示成独立分类
CostDescPanel.vue:159 confirmIncludedAdd 硬编码 feeType:'手动',落库后 C 端
detail.js:428 把它当主标题渲染,在小程序产品详情显示成跟「景区/游玩项目」并列的
独立分类。改 feeType:null + 第 231 行 chip 加 v-if 即可。脏数据 1 条,产品
2056554654480248833 升级满洲里套娃酒店,建议运营 admin 自助删了重加。
纯前端 BUG,无后端接口/SQL/Nacos 改动,接收方 mmg。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:10:09 +08:00
yaosutu
9dfe5b270d feat(order-v3): 订单列表新增定制师姓名模糊筛选参数 consultantName(PR #2569) 2026-05-19 02:49:53 +08:00
yaosutu
67a38f91bf fix(admin-order-detail): PR #2571 补通 overview.travelers 真实出行人数据
订单详情接口 GET /v3/admin/order/{id} 的 overview.travelers 字段
原来恒为空数组占位,现已接通真实出行人列表(按 traveler_id 升序)。
字段口径与 /traveler/list 完全一致,admin 端明文返回敏感字段。
2026-05-19 02:47:37 +08:00
yaosutu
ffecdc6fd6 feat(前端changelog): PR#2565 管理端代下单 v3 接口新增分享追踪字段 + consultantSource 枚举新增 SHARED
- POST /admin/v3/orders 新增非必填字段 sharerOpenid / customizerId
- consultantSource 枚举新增 SHARED(C端分享锁定定制师)
- 新增错误码 581035 DEPOSIT_AMOUNT_EXCEEDS_TOTAL
- mchId 错误码从 MCH_RESOLVE_FAILED 变更为 AGENCY_NO_DEFAULT_MCHID
2026-05-18 23:56:12 +08:00
API Changelog Bot
40e0a3cc60 fix(product-v2): 快照列表创建人回填 + 还原弹窗文案中文化 (PR #2529) 2026-05-18 15:20:26 +08:00
API Changelog Bot
3c9cb3f89a feat(product-v2): 行程操作日志展开节点/天/住宿具体变化 (PR #2511) 2026-05-18 13:28:03 +08:00
API Changelog Bot
06c7a23261 feat(product-v2): 操作日志档位过滤 + 长字段友好展示 (PR #2505 #2508) 2026-05-18 13:17:15 +08:00
API Changelog Bot
66c02b1c6c fix: PR #2493 saveSnapshot 不改产品状态 + 修正 PR #2487 changelog
- 新增 18_fix_product_v2_snapshot_save_no_status_change.md (PR #2493)
- 修正 18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md
  Section 2 关于"PR #2487 保存退草稿"的描述, 改为指向 PR #2493 最终态
- mmg 弹窗文案: 「保存版本」弹窗删警告; 「还原版本」弹窗保留
2026-05-18 12:02:21 +08:00
API Changelog Bot
c7577b951d docs(product-v2): 补 PR #2487 状态彻底放开 + 保存后退草稿副作用警告
mmg 必看: PUBLISHED 产品点保存版本会立即下架, 审批中会撤销审批.
弹窗 UI 必须警告"保存后产品将退回草稿状态".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 11:27:41 +08:00
API Changelog Bot
1326504962 feat(product-v2): 费用包含自动生成去掉住宿 + 每节点 1 条独立 VO 带行程图标 (#2477)
PR wx/HL#2484, 测试服已部署 + 数据清理(117 条 / 32 产品).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 11:12:26 +08:00
API Changelog Bot
addb9cc8cf docs(product-v2): P2.3 changelog 补"@DataScope 拦截"实际效果说明
2026-05-18 测试服 e2e 验证发现: Service 层删了 checkPriceEditPermission
但外层 @DataScope 数据权限仍拦 CUSTOMIZER 非 owner 产品 (HTTP 403)。
权限放宽实际只解锁同公司多 CUSTOMIZER 协作场景, mmg 不要误导用户以为
"OPERATOR 角色也能保存任意产品"。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 10:48:59 +08:00
API Changelog Bot
7bb56dbd5c docs(product-v2): P2.3 快照保存放宽 + GROUP 班期 + 弹窗交互 (PR #2478)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 10:08:45 +08:00
API Changelog Bot
08bf4f0de7 refactor(order): OrderTodoVO.updateTime 在 my-list/contract-eligible 2 路径补返回 (#2469/#2468) 2026-05-18 09:39:26 +08:00
API Changelog Bot
e0250564b1 docs(product-v2): 产品全量快照按需保存+一键还原 (PR #2431)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:51:26 +08:00
API Changelog Bot
d84973ed4a docs(product-v2): 改价权限入口拦截 (PR #2427)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 15:34:02 +08:00
API Changelog Bot
cf06dc6afc docs(product-v2): 操作日志 P1 逐日聚合 diff + 跨产品检索 (PR #2423)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 14:16:12 +08:00
API Changelog Bot
d827a14dbe docs: fix mp product detail supplies cover_url (#2420, PR #2421) 2026-05-16 13:42:39 +08:00
API Changelog Bot
138f99221f docs: fix product_fee_item.name 128->512 (#2411, PR #2412) 2026-05-16 13:19:15 +08:00
API Changelog Bot
d7be5c267e docs(product-v2): 操作日志中文化 + 字段级 diff (PR #2355)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 20:01:21 +08:00
API Changelog Bot
330fc6e1a2 refactor(admin): 47 个 admin VO 续补 update 字段 (#2353/#2351)
PR #2348 漏扫严重 - 只看 controller/admin/ 子目录漏了 resource 服务大量按模块组织
的 Controller (scenic/hotel/restaurant/vehicle/staff/service/supplies/activity/cost)。
mmg 反馈 /admin/scenic/spots 缺 updatedAt 是表面,实际有 47 个 VO 受影响。
测试服 18/18 抽样验证通过。
2026-05-15 18:41:00 +08:00
API Changelog Bot
94b50ffd74 refactor(admin): 14 个查询 VO 补 updateTime/updatedAt (#2348/#2346)
测试服部署 + 5/5 抽样接口全验过,通知 mmg 前端可加「最后修改时间」列
2026-05-15 17:38:56 +08:00
API Changelog Bot
5cd14d03a6 feat: material batch move category API (PR #2347, issue #2345) 2026-05-15 17:35:39 +08:00
API Changelog Bot
492addcc68 docs(changelog): 资源 picker 去掉按产品线季节过滤,VO.seasons 改为交集 (Closes #2334, PR #2335)
测试服真测通过:
- Scenic 不传/传 productLineId total 都=66(未过滤)
- Activity 同款 total=56
- VO.seasons 为产品线季节 ∩ 资源季节
- Feign 失败回落资源全集 / seasonHighlights / coverUrl 切换保留
- supersedes 14_*scenic-season-filter*.md 与 14_*activity-season-filter*.md
2026-05-15 15:07:05 +08:00
API Changelog Bot
522b22b55f revert(changelog): 撤回 15_*remove_season_filter*,Claude 误解需求
用户真实需求是:前端传 productLineId,后端反查产品线 seasons 自动过滤
不是去掉筛选,而是把筛选从前端透传 seasons 改成后端按 productLineId 自动做。
新方案后端 PR 进行中。
2026-05-15 14:45:08 +08:00
API Changelog Bot
a096b34762 docs(changelog): 推翻 05-14 季节筛选,弹窗显示全量资源 + 标签只显示交集
05-15 用户反转 05-14 #2229/#2234 的"按产品线季节过滤"需求:
- 弹窗 4 个 tab(景区/游玩/餐厅/服务)展示全部资源,不再按 seasons 过滤
- 季节标签只渲染"产品季节 ∩ 资源季节"交集
- 后端 0 改动(seasons 参数本就可选),前端不再透传即可
- 推翻 14_*scenic-season-filter*.md 与 14_*activity-season-filter*.md
2026-05-15 14:41:34 +08:00
API Changelog Bot
60ebafda75 feat: refreshToken 滑动续期 changelog (HL PR #2312) 2026-05-15 10:27:34 +08:00
API Changelog Bot
f957215002 frontend: 景区/游玩项目 list 加季节标签列 (后端 seasons[] 字段早就返了)
mmg: 后端 PR #2229/#2234 已部署, /admin/scenic/spots + /admin/activity/items
records 已含 seasons 字段。但前端 list 表格没显示季节列。

精确改法已给:
- 景区列表 D:/work2/hl-ui/src/views/resource/scenic/index.vue line 417-456 columns 加 '季节' 列
- 游玩项目列表 D:/work2/hl-ui/src/views/resource/playservice/index.vue line 495 同款
- 渲染逻辑可读字典 product_season (含 4 季 dictValue+dictLabel+icon+color)

notify @mmg
2026-05-15 09:35:07 +08:00
API Changelog Bot
65f019ddb5 frontend[紧急]: SeasonDrawer 删月份选择器 (后端 PR #2295 已上线 + 字典 product_season 有全局定义)
mmg: 之前合并 changelog 把这事埋在了 14_feat_season_month_auto_and_description_dynamic_cover.md
B 部分, 没单独发, 你没注意到。本文件单独拎出来, 给精确文件:行号 + 改前/改后代码。

注: 字典 product_season 的 remark 字段已全局定义 spring=3-5月 / summer=6-8月 /
autumn=9-11月 / winter=12-2月, 后端硬编码与字典一致, 前端展示可读字典 remark。

notify @mmg
2026-05-15 09:33:50 +08:00
API Changelog Bot
823d5e2629 feat: 季节月份自动赋值 + 节点 description 详情季节动态覆盖 (PR #2295/#2296/#2301)
A. 季节月份自动 (PR #2295, Closes #2291): SaveRequest 删 monthStart/monthEnd,
   后端按 seasonType 自动赋 (spring 3-5 / summer 6-8 / autumn 9-11 / winter 12-2)

B. 节点 description 季节动态覆盖 (PR #2296+#2301, Closes #2293+#2298):
   admin/mp/internal 三路径详情装配时, seasonHighlights 非空 → 覆盖 description
   节点表 DB 字段保留不动 (用户手填永久存)

前端 mmg 删 SeasonDrawer 月份选择器即可。节点 description 字段名不变, 零前端改动。

notify @mmg

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 19:07:51 +08:00
API Changelog Bot
b06a5fc058 docs(auth): 补 switchRole 前端提醒 + 反向 cleanup 场景表 + #2294 2026-05-14 18:18:23 +08:00
API Changelog Bot
1fdc8530e8 patch(#2266): supplies-combo 列表/详情 items[] 也补 coverUrl (PR #2290 / Closes #2289) 2026-05-14 18:09:19 +08:00
API Changelog Bot
21190c640f frontend: 游玩项目编辑页加 SeasonDrawer 通知 mmg (后端 PR #2262 已上线但前端缺入口)
景区有 views/resource/scenic/SeasonDrawer.vue (322 行) 让运营配 4 季内容, 游玩项目
目录 views/resource/playservice/ 缺对应 SeasonDrawer → activity_season 表全空 →
admin/activity/items 接口 seasons 字段恒返 [] → 弹窗无季节标签 + 节点 cover
无法按季节切换。

文档给出 4 步精确操作:
1. src/api/playservice.js 加 3 方法 (照搬 scenic 同款)
2. 复制 scenic/SeasonDrawer.vue → playservice/SeasonDrawer.vue
3. 全局替换 scenicId → activityId + import @/api/scenic → @/api/playservice
4. playservice/index.vue 加入口按钮

VO 字段清单 + 完成后效果链路 + 关联打包做的另一件事 (ResourcePickerModal 补传 productLineId) 全部写清。

notify @mmg

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 18:01:51 +08:00