diff --git a/changelogs/2026-03/2026-03-16_1650_522a737_feat_Knife4j.md b/changelogs/2026-03/2026-03-16_1650_522a737_feat_Knife4j.md new file mode 100644 index 0000000..80944f8 --- /dev/null +++ b/changelogs/2026-03/2026-03-16_1650_522a737_feat_Knife4j.md @@ -0,0 +1,1508 @@ +# 接口变更记录 — 2026-03-16 16:50 + +> **提交** `522a737` · **作者** wx · **时间** 2026-03-16 16:50:04 +0800 +> +> feat: Knife4j网关文档修复 + AI Bridge增强 + bootstrap默认Nacos改本地 + +## 变更总览 + +- **产品服务** + - InternalProduct (改1, 名13) + - MpProduct (名3) + - Product (名1) + - Quote (名1) +- **企微回调服务** + - WxCallback (名4) +- **小程序聚合服务** + - MpExplore (改5) + - MpOrder (改1) + - MpPayment (改1) +- **支付服务** + - InternalPayment (名3) +- **用户服务** + - AdminProfile (改1) + - InternalApproval (名3) + - InternalLoginLog (名1) + - InternalUser (名8) + - InternalWechat (改5) + - PublicDict (名1) + - SysJob (改4) +- **监控服务** + - InternalLog (改4, 名1) +- **订单服务** + - AdminAlbum (名1) + - AdminWorkOrder (名3) + - InternalDashboard (名3) + - InternalMpOrder (名3) + - InternalOrderTraveler (名1) + - InternalRefund (改2, 名3) +- **资源服务** + - InternalActivity (改1) + - InternalResource (改1) + - InternalCost (改1) + - InternalHotel (改1) + - InternalRestaurant (改1) + - InternalScenic (改1) + - InternalService (改1) + - ServiceItem (名5) + - InternalStaff (改1) + - InternalSupplies (改1) + - InternalVehicle (改1) + +--- + +## 产品服务 + +### InternalProduct + +#### ✏️ `POST` /internal/product/approval-result — 处理产品审批结果 + +- 接口名称: ~~~~ → **处理产品审批结果** +- 返回类型: `` → `Result` + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/product/{productId}/detail` | (无) → **获取产品详情(内部)** | +| `POST` | `/internal/product/{productId}/quote` | (无) → **报价计算(内部)** | +| `GET` | `/internal/product/{productId}/simple-quote` | (无) → **简单报价(内部)** | +| `POST` | `/internal/product/{productId}/deduct-stock` | (无) → **扣减库存(内部)** | +| `POST` | `/internal/product/{productId}/restore-stock` | (无) → **恢复库存(内部)** | +| `GET` | `/internal/product/{productId}/itinerary-resources` | (无) → **获取行程关联资源(内部)** | +| `PUT` | `/internal/product/{productId}/custom-status` | (无) → **变更定制产品状态(内部)** | +| `POST` | `/internal/product/batch/{batchId}/enroll` | (无) → **报名入团(内部)** | +| `POST` | `/internal/product/batch/{batchId}/unenroll` | (无) → **退出报名(内部)** | +| `GET` | `/internal/product/batch/{batchId}/info` | (无) → **批次信息(内部)** | +| `GET` | `/internal/product/{productId}/group-quote` | (无) → **GROUP产品报价(内部)** | +| `GET` | `/internal/product/{productId}/batches/calendar` | (无) → **团期日历数据(内部)** | +| `GET` | `/internal/product/batch/{batchId}/combos` | (无) → **批次套餐列表(内部)** | + +### MpProduct + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/mp/product/list` | 产品列表 → **产品列表(C端)** | +| `GET` | `/mp/product/{productId}` | 产品详情 → **产品详情(C端)** | +| `POST` | `/mp/product/{productId}/quote` | 报价计算 → **报价计算(C端)** | + +### Product + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `PUT` | `/admin/product/item/{productId}/status` | 产品状态变更(上架/下架等) → **产品状态变更(上架/下架/完成)** | + +### Quote + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/admin/product/item/{productId}/group-quote` | GROUP产品报价(按组合) → **GROUP产品报价(按套餐组合)** | + +--- + +## 企微回调服务 + +### WxCallback + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/wx/callback/app` | Callback URL verification → **回调URL验证** | +| `POST` | `/wx/callback/app` | Receive callback events → **接收回调事件** | +| `GET` | `/wx/callback/contacts` | Contact sync URL verification → **联系人同步URL验证** | +| `POST` | `/wx/callback/contacts` | Receive contact sync events → **接收联系人同步事件** | + +--- + +## 小程序聚合服务 + +### MpExplore + +#### ✏️ `GET` /mp/explore/list — 探索列表 + +- 返回类型: `` → `Result>` + +#### ✏️ `GET` /mp/explore/{id} — 探索详情 + +- 返回类型: `` → `Result>` + +#### ✏️ `POST` /mp/explore/{id}/view — 浏览+1 + +- 返回类型: `` → `Result` + +#### ✏️ `POST` /mp/explore/{id}/like — 切换点赞 + +- 返回类型: `` → `Result` + +#### ✏️ `POST` /mp/explore/{id}/favorite — 切换收藏 + +- 返回类型: `` → `Result` + +### MpOrder + +#### ✏️ `GET` /mp/order/lookup — 通过联系人手机号+姓名查找订单(无需登录) + +- 返回类型: `` → `Result>>` + +### MpPayment + +#### ✏️ `GET` /mp/payment/transactions/{orderId} — 查询支付状态 + +- 返回类型: `Result` → `` + +--- + +## 支付服务 + +### InternalPayment + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/payment/status/{orderId}` | Create prepay order (called by BFF) → **创建预支付订单** | +| `GET` | `/internal/payment/transactions/{orderId}` | Query payment status (called by BFF) → **查询支付状态** | +| `POST` | `/internal/payment/refund` | List all transactions for an order (called by BFF) → **订单交易记录列表** | + +--- + +## 用户服务 + +### AdminProfile + +#### ✏️ `GET` /admin/profile/dashboard — 工作台仪表盘(角色分发,支持时间范围) + +- 返回类型: `` → `Result` + +### InternalApproval + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `POST` | `/internal/wechat/submit-approval` | Submit approval to enterprise WeChat OA → **提交企业微信OA审批** | +| `POST` | `/internal/wechat/revoke-approval/{spNo}` | Revoke a pending approval in enterprise WeChat OA → **撤销企业微信OA审批** | +| `GET` | `/internal/wechat/approval-status/{spNo}` | Get approval status from enterprise WeChat OA → **查询企业微信OA审批状态** | + +### InternalLoginLog + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/login-logs` | Query login logs → **查询登录日志** | + +### InternalUser + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/user/admin/info/{adminId}` | Get admin basic info by ID → **根据ID获取管理员基本信息** | +| `POST` | `/internal/user/admin/batch-info` | Batch get admin basic info → **批量获取管理员基本信息** | +| `GET` | `/internal/user/departments` | Get all departments → **获取所有部门列表** | +| `GET` | `/internal/user/admin/dept-members/{deptId}` | Get admin IDs belonging to a department → **获取部门下的管理员ID列表** | +| `GET` | `/internal/user/admin/by-role-key` | Get admins by role key → **根据角色标识获取管理员列表** | +| `GET` | `/internal/user/find-by-phone` | Find C-end user ID by phone number → **根据手机号查找C端用户ID** | +| `POST` | `/internal/user/wechat/miniapp/generate-url-link` | Generate mini program URL Link for sharing → **生成小程序URL Link** | +| `POST` | `/internal/user/wechat/send-message` | Send WeChat message to users → **发送企业微信消息** | + +### InternalWechat + +#### ✏️ `POST` /internal/wechat/user/sync — 同步单个企微用户(回调触发) + +- 接口名称: ~~Sync single user from callback~~ → **同步单个企微用户(回调触发)** +- 返回类型: `` → `Result` + +**请求体变更** `WechatUserSyncDTO`: + + - ✏️ `userid`: 说明 "" → "企微用户ID" + - ✏️ `name`: 说明 "" → "用户名称" + - ✏️ `department`: 说明 "" → "所属部门ID(逗号分隔)" + - ✏️ `position`: 说明 "" → "职位" + - ✏️ `mobile`: 说明 "" → "手机号" + - ✏️ `gender`: 说明 "" → "性别: 1=男, 2=女, 0=未定义" + - ✏️ `email`: 说明 "" → "邮箱" + - ✏️ `avatar`: 说明 "" → "头像URL" + - ✏️ `status`: 说明 "" → "状态: 1=已激活, 2=已禁用, 4=未激活, 5=退出企业" + +#### ✏️ `DELETE` /internal/wechat/user/{userid} — 删除单个企微用户(回调触发) + +- 接口名称: ~~Delete single user from callback~~ → **删除单个企微用户(回调触发)** +- 返回类型: `` → `Result` + +#### ✏️ `POST` /internal/wechat/department/sync — 同步单个企微部门(回调触发) + +- 接口名称: ~~Sync single department from callback~~ → **同步单个企微部门(回调触发)** +- 返回类型: `` → `Result` + +**请求体变更** `WechatDeptSyncDTO`: + + - ✏️ `id`: 说明 "" → "部门ID" + - ✏️ `name`: 说明 "" → "部门名称" + - ✏️ `parentId`: 说明 "" → "上级部门ID" + - ✏️ `order`: 说明 "" → "排序值" + +#### ✏️ `POST` /internal/wechat/external-contact/event — 接收外部联系人变更事件 + +- 接口名称: ~~Receive external contact change event~~ → **接收外部联系人变更事件** +- 返回类型: `` → `Result` + +**请求体变更** `ExternalContactEventDTO`: + + - ✏️ `changeType`: 说明 "" → "变更类型: add_external_contact/del_follow_user/del_external_contact/edit_external_contact" + - ✏️ `userId`: 说明 "" → "员工企微用户ID" + - ✏️ `externalUserId`: 说明 "" → "外部联系人ID" + +#### ✏️ `DELETE` /internal/wechat/department/{deptId} — 删除单个企微部门(回调触发) + +- 接口名称: ~~Delete single department from callback~~ → **删除单个企微部门(回调触发)** +- 返回类型: `` → `Result` + +### PublicDict + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/dict/all` | 获取所有字典数据 → **获取所有字典数据(公开接口)** | + +### SysJob + +#### ✏️ `POST` /admin/job — 创建定时任务 + +- 返回类型: `Result` → `Result` + +**请求体变更** `CreateJobRequest`: + + - ✏️ `jobGroup`: 说明 "任务分组" → "任务分组,字典类型:job_group(DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步)" + - ✏️ `invokeTarget`: 说明 "调用目标(Bean名称.方法名)" → "调用目标(Bean名称.方法名),方法必须是无参公开方法" + - ✏️ `cronExpression`: 说明 "Cron表达式" → "Cron表达式,标准6位(秒 分 时 日 月 周)" + - ✏️ `misfirePolicy`: 说明 "计划执行策略:0=默认 1=立即触发 2=触发一次 3=不触发" → "计划执行策略,字典类型:job_misfire_policy(DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发)" +- 响应类型: `SysJob` → `SysJobVO` + +**响应变更** `SysJobVO`: + + - 🆕 `jobId` (`Long`) — 任务ID + - 🆕 `jobName` (`String`) — 任务名称 + - 🆕 `jobGroup` (`String`) — 任务分组 + - 🆕 `invokeTarget` (`String`) — 调用目标(Bean名称.方法名) + - 🆕 `cronExpression` (`String`) — Cron表达式 + - 🆕 `misfirePolicy` (`String`) — 计划执行策略 + - 🆕 `concurrent` (`Boolean`) — 是否允许并发执行 + - 🆕 `status` (`String`) — 任务状态 + - 🆕 `remark` (`String`) — 备注 + - 🆕 `createdAt` (`LocalDateTime`) — 创建时间 + - 🆕 `updatedAt` (`LocalDateTime`) — 更新时间 + +#### ✏️ `PUT` /admin/job/{jobId} — 更新定时任务 + +- 返回类型: `Result` → `Result` + +**请求体变更** `UpdateJobRequest`: + + - ✏️ `jobGroup`: 说明 "任务分组" → "任务分组,字典类型:job_group(DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步)" + - ✏️ `invokeTarget`: 说明 "调用目标(Bean名称.方法名)" → "调用目标(Bean名称.方法名),方法必须是无参公开方法" + - ✏️ `cronExpression`: 说明 "Cron表达式" → "Cron表达式,标准6位(秒 分 时 日 月 周)" + - ✏️ `misfirePolicy`: 说明 "计划执行策略:0=默认 1=立即触发 2=触发一次 3=不触发" → "计划执行策略,字典类型:job_misfire_policy(DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发)" +- 响应类型: `SysJob` → `SysJobVO` + +**响应变更** `SysJobVO`: + + - 🆕 `jobId` (`Long`) — 任务ID + - 🆕 `jobName` (`String`) — 任务名称 + - 🆕 `jobGroup` (`String`) — 任务分组 + - 🆕 `invokeTarget` (`String`) — 调用目标(Bean名称.方法名) + - 🆕 `cronExpression` (`String`) — Cron表达式 + - 🆕 `misfirePolicy` (`String`) — 计划执行策略 + - 🆕 `concurrent` (`Boolean`) — 是否允许并发执行 + - 🆕 `status` (`String`) — 任务状态 + - 🆕 `remark` (`String`) — 备注 + - 🆕 `createdAt` (`LocalDateTime`) — 创建时间 + - 🆕 `updatedAt` (`LocalDateTime`) — 更新时间 + +#### ✏️ `GET` /admin/job — 分页查询定时任务 + +- 返回类型: `Result>` → `Result>` +- 响应类型: `SysJob` → `SysJobVO` + +**响应变更** `SysJobVO`: + + - 🆕 `jobId` (`Long`) — 任务ID + - 🆕 `jobName` (`String`) — 任务名称 + - 🆕 `jobGroup` (`String`) — 任务分组 + - 🆕 `invokeTarget` (`String`) — 调用目标(Bean名称.方法名) + - 🆕 `cronExpression` (`String`) — Cron表达式 + - 🆕 `misfirePolicy` (`String`) — 计划执行策略 + - 🆕 `concurrent` (`Boolean`) — 是否允许并发执行 + - 🆕 `status` (`String`) — 任务状态 + - 🆕 `remark` (`String`) — 备注 + - 🆕 `createdAt` (`LocalDateTime`) — 创建时间 + - 🆕 `updatedAt` (`LocalDateTime`) — 更新时间 + +#### ✏️ `GET` /admin/job/{jobId}/logs — 查询任务日志 + +- 返回类型: `Result>` → `Result>` +- 响应类型: `SysJobLog` → `SysJobLogVO` + +**响应变更** `SysJobLogVO`: + + - 🆕 `jobLogId` (`Long`) — 日志ID + - 🆕 `jobId` (`Long`) — 任务ID + - 🆕 `jobName` (`String`) — 任务名称 + - 🆕 `invokeTarget` (`String`) — 调用目标 + - 🆕 `status` (`String`) — 执行状态 + - 🆕 `message` (`String`) — 执行结果/异常信息 + - 🆕 `startTime` (`LocalDateTime`) — 开始时间 + - 🆕 `endTime` (`LocalDateTime`) — 结束时间 + - 🆕 `createdAt` (`LocalDateTime`) — 创建时间 + +--- + +## 监控服务 + +### InternalLog + +#### ✏️ `POST` /internal/monitor/operation-log — 接收操作日志 + +- 接口名称: ~~Receive operation log~~ → **接收操作日志** +- 返回类型: `` → `Result` + +#### ✏️ `POST` /internal/monitor/error-log — 接收错误日志 + +- 接口名称: ~~Receive error log~~ → **接收错误日志** +- 返回类型: `` → `Result` + +#### ✏️ `POST` /internal/monitor/notification-log — 接收通知日志 + +- 接口名称: ~~Receive notification log~~ → **接收通知日志** +- 返回类型: `` → `Result` + +#### ✏️ `POST` /internal/monitor/approval-log — 接收审批日志 + +- 接口名称: ~~Receive approval log~~ → **接收审批日志** +- 返回类型: `` → `Result` + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/monitor/notification-log/customer-stats` | Get customer stats for a user (add/loss counts) → **获取用户客户统计** | + +--- + +## 订单服务 + +### AdminAlbum + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/admin/order/album/my-uploads` | 我的上传(当前管理员上传的所有相册文件) → **我的上传** | + +### AdminWorkOrder + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/admin/order/work-order/stats` | 工单统计(待处理数等) → **工单统计** | +| `PUT` | `/admin/order/work-order/{workOrderId}/process` | 处理工单(解决/驳回) → **处理工单(解决/驳回)** | +| `POST` | `/admin/order/work-order/{workOrderId}/comment` | 添加备注 → **添加工单备注** | + +### InternalDashboard + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/order/dashboard/overview-stats` | 概览统计(支持定制师/全局,支持今日/本周/本月) → **概览统计** | +| `GET` | `/internal/order/dashboard/trend` | 数据趋势(按天聚合) → **数据趋势** | +| `GET` | `/internal/order/dashboard/ranking` | 业绩排行(本月定制师排名) → **业绩排行** | + +### InternalMpOrder + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/mp/order/lookup` | 通过联系人手机号+姓名查找订单(无需登录) → **通过联系人手机号+姓名查找订单** | +| `POST` | `/internal/mp/order/bind-by-contact` | 绑定未绑定的订单(通过联系人手机号+姓名) → **绑定未绑定的订单** | +| `PUT` | `/internal/mp/order/{orderId}/mark-reviewed` | 标记订单已评价(评价服务回调) → **标记订单已评价** | + +### InternalOrderTraveler + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/order/traveler/validate/{orderId}` | 验证订单出行人信息(供支付服务调用) → **验证订单出行人信息** | + +### InternalRefund + +#### ✏️ `POST` /internal/order/refund-appeal-result — 企微退款申诉审批结果回调 + +- 返回类型: `` → `Result` + +#### ✏️ `POST` /internal/order/refund-application-result — 企微退款申请审批结果回调 + +- 返回类型: `` → `Result` + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/internal/mp/order/refund-reasons` | 退款原因列表 → **退款原因列表(C端)** | +| `GET` | `/internal/mp/order/refund/{applicationId}` | 退款申请详情 → **退款申请详情(C端)** | +| `GET` | `/internal/mp/order/{orderId}/refund-detail` | 根据订单ID获取最新退款申请详情 → **根据订单ID获取最新退款申请** | + +--- + +## 资源服务 + +### InternalActivity + +#### ✏️ `POST` /internal/activity/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### InternalResource + +#### ✏️ `POST` /internal/resource/approval-result — 处理审批回调 - 分发到9个资源领域服务 + +- 返回类型: `` → `Result` + +### InternalCost + +#### ✏️ `POST` /internal/cost/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### InternalHotel + +#### ✏️ `POST` /internal/hotel/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### InternalRestaurant + +#### ✏️ `POST` /internal/restaurant/approval-result — \u5904\u7406\u5ba1\u6279\u56de\u8c03\u7ed3\u679c + +- 返回类型: `` → `Result` + +### InternalScenic + +#### ✏️ `POST` /internal/scenic/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### InternalService + +#### ✏️ `POST` /internal/service/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### ServiceItem + +#### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `POST` | `/admin/service/item` | 创建服务 → **创建增值服务** | +| `GET` | `/admin/service/items` | 服务列表 → **增值服务列表** | +| `GET` | `/admin/service/item/{serviceId}` | 服务详情 → **增值服务详情** | +| `PUT` | `/admin/service/item/{serviceId}` | 更新服务 → **更新增值服务** | +| `DELETE` | `/admin/service/item/{serviceId}` | 删除服务 → **删除增值服务** | + +### InternalStaff + +#### ✏️ `POST` /internal/staff/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### InternalSupplies + +#### ✏️ `POST` /internal/supplies/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +### InternalVehicle + +#### ✏️ `POST` /internal/vehicle/approval-result — 处理审批回调结果 + +- 返回类型: `` → `Result` + +--- + +## 📦 其他数据对象变更 + +> 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应 + +### 产品服务 + +#### ✏️ BatchMaterialIdsRequest + + - ✏️ `materialIds`: 说明 "" → "素材ID列表" + +#### ✏️ FormulaStepRequest + + - ✏️ `expression`: 说明 "表达式" → "Aviator表达式(支持数学运算、条件判断、内置函数;可引用前置步骤的输出变量和公式变量表中的变量)" + +#### ✏️ GroupBatchCreateRequest + + - ✏️ `batchName`: 说明 "batch name" → "批次名称" + - ✏️ `departureDate`: 说明 "departure date" → "出发日期" + - ✏️ `enrollmentDeadline`: 说明 "enrollment deadline" → "报名截止日期,必须早于出发日期" + - ✏️ `maxParticipants`: 说明 "max participants" → "最大参团人数(报名人数达到上限后自动关闭报名)" + - ✏️ `remark`: 说明 "remark" → "备注说明" + +#### ✏️ GroupBatchDisbandRequest + + - ✏️ `reason`: 说明 "disband reason" → "解散原因(如:报名人数不足、行程调整等)" + +#### ✏️ GroupBatchStaffRequest + + - ✏️ `staffId`: 说明 "staff ID (from resource-service)" → "人员ID(来自资源服务的人员库)" + - ✏️ `staffRole`: 说明 "role in this batch: LEADER/PHOTOGRAPHER/DRIVER/OTHER" → "在该批次中的角色:LEADER(领队)/PHOTOGRAPHER(摄影师)/DRIVER(司机)/OTHER(其他)" + - ✏️ `remark`: 说明 "remark" → "备注(如:主导游、备用摄影师等)" + +#### ✏️ GroupBatchUpdateRequest + + - ✏️ `batchName`: 说明 "batch name" → "批次名称" + - ✏️ `departureDate`: 说明 "departure date" → "出发日期" + - ✏️ `enrollmentDeadline`: 说明 "enrollment deadline" → "报名截止日期" + - ✏️ `minParticipants`: 说明 "min participants" → "最低成团人数(0=不限制)" + - ✏️ `maxParticipants`: 说明 "max participants" → "最大参团人数(不能低于已报名人数)" + - ✏️ `remark`: 说明 "remark" → "备注说明" + - ✏️ `sortOrder`: 说明 "sort order" → "排序序号" + +#### ✏️ MaterialVO + + - ✏️ `materialId`: 说明 "" → "素材ID" + - ✏️ `ossUrl`: 说明 "" → "OSS访问URL" + - ✏️ `thumbnailUrl`: 说明 "" → "缩略图URL" + - ✏️ `materialName`: 说明 "" → "素材名称" + - ✏️ `fileType`: 说明 "" → "文件类型" + +#### ✏️ NodeCreateRequest + + - ✏️ `resourceType`: 说明 "关联资源类型:SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE" → "关联资源类型(关联后可从资源服务获取价格参与成本计算):SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE" + - ✏️ `resourceId`: 说明 "关联资源ID" → "关联资源ID(来自资源服务,关联后节点名称和图片可自动同步)" + - ✏️ `familyIds`: 说明 "所属家庭ID列表(定制产品按家庭分配)" → "所属家庭ID列表(仅CUSTOM定制产品使用,实现按家庭分配行程节点)" + +#### ✏️ PriceCalendarRequest + + - ✏️ `costAutoCalc`: 说明 "是否自动计算成本" → "是否自动计算成本(true时重新测算会自动更新此日期的价格)" + - ✏️ `stock`: 说明 "库存数量" → "库存数量(CORE/GROUP按人头扣减,CUSTOM/ROUTE按单扣减)" + - ✏️ `status`: 说明 "状态:OPEN=开放 CLOSED=关闭" → "状态:OPEN=开放预订 CLOSED=关闭(不可预订)" + +#### ✏️ PricingRequest + + - ✏️ `pricingMode`: 说明 "定价模式:AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价" → "定价模式:AUTO=根据行程资源价格自动计算 MANUAL=手动在价格日历设置每日价格 CUSTOM=定制产品整单定价" + - ✏️ `profitMode`: 说明 "利润模式:FIXED=固定金额 PERCENT=百分比" → "利润模式(AUTO模式下生效):FIXED=在成本基础上加固定金额 PERCENT=在成本基础上按百分比加价" + - ✏️ `childWithBed`: 说明 "儿童占床价" → "儿童加床费(childNeedBed=true时额外加收的费用)" + - ✏️ `childNoBed`: 说明 "儿童不占床价" → "儿童不占床价(暂未使用,预留字段)" + - ✏️ `babyPrice`: 说明 "婴儿价" → "婴儿固定价格(不随日期变化)" + - ✏️ `childDiscountPercent`: 说明 "儿童折扣百分比" → "小童折扣百分比(小童价=儿童价×此百分比/100,如70表示打7折)" + - ✏️ `customTotalPrice`: 说明 "定制产品总价(CUSTOM模式下使用)" → "定制产品总价(CUSTOM定价模式下使用,代表整单总价)" + - ✏️ `minGroupSize`: 说明 "最小成团人数" → "最小成团人数(CORE/GROUP产品用,影响均摊成本计算)" + - ✏️ `maxGroupSize`: 说明 "最大成团人数" → "最大成团人数(CORE/GROUP产品用)" + - ✏️ `paymentType`: 说明 "支付方式:FULL=全款 DEPOSIT=定金+尾款" → "支付方式:FULL=全款支付 DEPOSIT=定金+尾款分期支付" + - ✏️ `depositRatio`: 说明 "定金比例(百分比)" → "定金比例(百分比,如30代表30%。与depositAmount二选一,优先使用比例)" + - ✏️ `depositAmount`: 说明 "定金金额" → "定金金额(固定金额,与depositRatio二选一)" + - ✏️ `balanceDueDays`: 说明 "尾款支付截止天数(出发前N天)" → "尾款支付截止天数(出发前N天必须支付尾款,超时可能取消订单)" + +#### ✏️ ProductStatusRequest + + - ✏️ `status`: 说明 "目标状态:DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED" → "目标状态。核心/小蒙马:DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED;定制产品:COMPLETED" + - ✏️ `reason`: 说明 "状态变更原因(驳回时必填)" → "状态变更原因(驳回时必填;上架/下架审批时可填)" + +#### ✏️ RefBatchBindRequest + + - ✏️ `refs`: 说明 "" → "引用绑定列表" + +#### ✏️ RefBatchUnbindRequest + + - ✏️ `refs`: 说明 "" → "引用解绑列表" + +#### ✏️ RefBindRequest + + - ✏️ `materialId`: 说明 "" → "素材ID" + - ✏️ `bizType`: 说明 "" → "业务类型" + - ✏️ `bizId`: 说明 "" → "业务ID" + - ✏️ `bizName`: 说明 "" → "业务名称" + - ✏️ `usageType`: 说明 "" → "用途类型" + +#### ✏️ RefUnbindRequest + + - ✏️ `materialId`: 说明 "" → "素材ID" + - ✏️ `bizType`: 说明 "" → "业务类型" + - ✏️ `bizId`: 说明 "" → "业务ID" + - ✏️ `usageType`: 说明 "" → "用途类型" + +#### ✏️ ResourceCoverQuery + + - ✏️ `resourceType`: 说明 "" → "资源类型" + - ✏️ `resourceId`: 说明 "" → "资源ID" + +#### ✏️ ResourcePriceQuery + + - ✏️ `resourceIds`: 说明 "" → "资源ID列表" + - ✏️ `staffTypes`: 说明 "" → "人员类型列表" + - ✏️ `startDate`: 说明 "" → "开始日期" + - ✏️ `endDate`: 说明 "" → "结束日期" + - ✏️ `subType`: 说明 "" → "资源子类型(如酒店房型ID、车辆类别)" + +#### ✏️ ResourcePriceVO + + - ✏️ `resourceId`: 说明 "" → "资源ID" + - ✏️ `staffType`: 说明 "" → "人员类型" + - ✏️ `date`: 说明 "" → "日期" + - ✏️ `price`: 说明 "" → "价格" + - ✏️ `resourceName`: 说明 "" → "资源名称" + +### 企微回调服务 + +#### ✏️ ChatMessageVO + + - ✏️ `msgId`: 说明 "" → "消息ID" + - ✏️ `fromUser`: 说明 "" → "发送人ID" + - ✏️ `fromUserName`: 说明 "" → "发送人姓名" + - ✏️ `fromUserAvatar`: 说明 "" → "发送人头像" + - ✏️ `roomId`: 说明 "" → "群聊ID" + - ✏️ `msgTime`: 说明 "" → "消息时间戳" + - ✏️ `msgType`: 说明 "" → "消息类型" + - ✏️ `content`: 说明 "" → "消息内容" + +### 公共模块 + +#### ✏️ AdminBasicDTO + + - ✏️ `adminId`: 说明 "" → "管理员ID" + - ✏️ `username`: 说明 "" → "用户名" + - ✏️ `avatarUrl`: 说明 "" → "头像URL" + - ✏️ `wechatUserid`: 说明 "" → "企微用户ID" + - ✏️ `wechatName`: 说明 "" → "企微用户名称" + +#### ✏️ DepartmentDTO + + - ✏️ `deptId`: 说明 "" → "部门ID" + - ✏️ `deptName`: 说明 "" → "部门名称" + - ✏️ `parentId`: 说明 "" → "上级部门ID" + +#### ✏️ FileBindRefsDTO + + - ✏️ `bizType`: 说明 "" → "业务类型" + - ✏️ `bizId`: 说明 "" → "业务ID" + - ✏️ `fileIds`: 说明 "" → "文件ID列表" + +#### ✏️ FileUnbindRefsDTO + + - ✏️ `bizType`: 说明 "" → "业务类型" + - ✏️ `bizId`: 说明 "" → "业务ID" + +#### ✏️ OrderPayInfoDTO + + - ✏️ `orderId`: 说明 "" → "订单ID" + - ✏️ `orderNo`: 说明 "" → "订单编号" + - ✏️ `userId`: 说明 "" → "用户ID" + - ✏️ `mchId`: 说明 "" → "商户号" + - ✏️ `totalPrice`: 说明 "" → "总价" + - ✏️ `discountAmount`: 说明 "" → "优惠金额" + - ✏️ `depositAmount`: 说明 "" → "定金金额" + - ✏️ `paidAmount`: 说明 "" → "已支付金额" + - ✏️ `paymentMode`: 说明 "" → "支付模式: FULL=全款, DEPOSIT=定金+尾款" + - ✏️ `status`: 说明 "" → "订单状态" + - ✏️ `productName`: 说明 "" → "产品名称" + - ✏️ `isBooking`: 说明 "" → "是否预定产品: true=预定(定金可不填出行人), false=非预定(支付前必须填出行人)" + +#### ✏️ PaymentResultDTO + + - ✏️ `orderId`: 说明 "" → "订单ID" + - ✏️ `payType`: 说明 "" → "支付类型: FULL=全款, DEPOSIT=定金, BALANCE=尾款" + - ✏️ `paidAmount`: 说明 "" → "支付金额" + - ✏️ `transactionIdWx`: 说明 "" → "微信支付交易号" + +#### ✏️ RefundResultDTO + + - ✏️ `orderId`: 说明 "" → "订单ID" + - ✏️ `refundAmount`: 说明 "" → "退款金额" + - ✏️ `refundIdWx`: 说明 "" → "微信退款单号" + +#### ✏️ ResourceDetailDTO + + - ✏️ `resourceId`: 说明 "" → "资源ID" + - ✏️ `resourceType`: 说明 "" → "资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY" + - ✏️ `name`: 说明 "" → "资源名称" + - ✏️ `subtitle`: 说明 "" → "副标题" + - ✏️ `description`: 说明 "" → "简介/描述" + - ✏️ `cover`: 说明 "" → "封面图URL" + - ✏️ `images`: 说明 "" → "图片URL列表(轮播图)" + - ✏️ `address`: 说明 "" → "地址" + - ✏️ `longitude`: 说明 "" → "经度" + - ✏️ `latitude`: 说明 "" → "纬度" + - ✏️ `tags`: 说明 "" → "标签列表" + - ✏️ `featureIntro`: 说明 "" → "图文详情(featureIntro JSON)" + - ✏️ `rating`: 说明 "" → "评分" + - ✏️ `city`: 说明 "" → "所在城市" + +#### ✏️ TravelerValidationDTO + + - ✏️ `orderId`: 说明 "" → "订单ID" + - ✏️ `requiredCount`: 说明 "" → "需要的出行人数量" + - ✏️ `actualCount`: 说明 "" → "实际填写的出行人数量" + - ✏️ `isComplete`: 说明 "" → "是否完整(数量足够且信息完整)" + - ✏️ `incompleteTravelerIds`: 说明 "" → "信息不完整的出行人ID列表" + - ✏️ `message`: 说明 "" → "验证消息" + +#### ✏️ WechatMessageDTO + + - ✏️ `toUserIds`: 说明 "" → "接收用户ID列表" + - ✏️ `content`: 说明 "" → "消息内容" + +### 用户服务 + +#### ✏️ ContactRequest + + - ✏️ `channelType`: 说明 "渠道类型:ABOUT=关于我们 ONLINE_CS=在线客服 PHONE=电话咨询" → "渠道类型,关联字典contact_channel_type:ABOUT=关于我们, ONLINE_CS=在线客服, PHONE=电话咨询" + - ✏️ `status`: 说明 "状态:0=下线 1=上线" → "状态,关联字典common_status:0=下线, 1=上线" + +#### ✏️ ContactVO + + - ✏️ `channelType`: 说明 "渠道类型:ABOUT=关于我们 ONLINE_CS=在线客服 PHONE=电话咨询" → "渠道类型,关联字典contact_channel_type:ABOUT=关于我们, ONLINE_CS=在线客服, PHONE=电话咨询" + - ✏️ `status`: 说明 "状态:0=下线 1=上线" → "状态,关联字典common_status:0=下线, 1=上线" + +#### ✏️ CustomPushRequest + + - ✏️ `title`: 说明 "" → "推送标题" + - ✏️ `content`: 说明 "" → "推送内容" + - ✏️ `channel`: 说明 "" → "推送通道: INAPP/SMS/WECHAT_WORK" + - ✏️ `targetType`: 说明 "" → "目标类型: ALL_USERS/SPECIFIC_USERS" + - ✏️ `userIds`: 说明 "" → "目标用户ID列表(目标类型为SPECIFIC_USERS时必填)" + - ✏️ `categoryCode`: 说明 "" → "消息分类编码,默认SYSTEM" + - ✏️ `link`: 说明 "" → "跳转链接(站内信时使用)" + +#### ✏️ CustomPushResultVO + + - ✏️ `totalCount`: 说明 "" → "推送总数" + - ✏️ `successCount`: 说明 "" → "成功数" + - ✏️ `failCount`: 说明 "" → "失败数" + +#### ✏️ CustomerVO + + - ✏️ `status`: 说明 "状态:ACTIVE=正常 DISABLED=禁用" → "状态,关联字典user_status:ACTIVE=正常, BANNED=已封禁" + +#### ✏️ EventConfigVO + + - ✏️ `inappEnabled`: 说明 "站内信开关" → "站内信开关(0=关闭, 1=开启)" + - ✏️ `smsEnabled`: 说明 "短信开关" → "短信开关(0=关闭, 1=开启)" + - ✏️ `miniappEnabled`: 说明 "小程序订阅消息开关" → "小程序订阅消息开关(0=关闭, 1=开启)" + - ✏️ `oaEnabled`: 说明 "公众号模板消息开关" → "公众号模板消息开关(0=关闭, 1=开启)" + - ✏️ `weworkEnabled`: 说明 "企微通知开关" → "企微通知开关(0=关闭, 1=开启)" + - ✏️ `weworkReceiverType`: 说明 "企微接收人类型" → "企微接收人类型(ROLE=按角色, DEPT=按部门, SPECIFIC=指定人员)" + +#### ✏️ FavoriteRequest + + - ✏️ `targetType`: 说明 "收藏类型" → "收藏类型,关联字典favorite_resource_type" + +#### ✏️ FootprintRequest + + - ✏️ `resourceType`: 说明 "资源类型" → "资源类型,关联字典footprint_resource_type" + +#### ✏️ LoginLogVO + + - ✏️ `loginMethod`: 说明 "登录方式:PASSWORD=密码 WECHAT=企微扫码 TWO_FA=二次验证" → "登录方式,关联字典login_method:PASSWORD=密码登录, WECHAT_QR=企微扫码登录, TWO_FA=二次验证登录" + - ✏️ `status`: 说明 "登录状态:SUCCESS=成功 FAILED=失败" → "登录状态,关联字典login_status:SUCCESS=成功, FAILED=失败" + +#### ✏️ SendLogVO + + - ✏️ `channel`: 说明 "通道: INAPP/SMS/MINIAPP/OA/WEWORK" → "通道,关联字典notification_channel:INAPP=站内信, SMS=短信, MINIAPP=小程序订阅, OA=公众号模板, WEWORK=企业微信" + - ✏️ `status`: 说明 "发送状态: 0成功 1失败 2跳过" → "发送状态,关联字典notification_send_status:0=成功, 1=失败, 2=跳过" + +#### ✏️ TravelerRequest + + - ✏️ `travelerType`: 说明 "出行人类型(无需传入,后端根据出生日期自动判断)" → "出行人类型,关联字典traveler_type:ADULT=成人, CHILD=儿童, INFANT=婴儿(无需传入,后端根据birthday自动判断)" + - ✏️ `idCardType`: 说明 "证件类型:ID_CARD=身份证 PASSPORT=护照" → "证件类型,关联字典id_card_type:ID_CARD=身份证, PASSPORT=护照" + - ✏️ `gender`: 说明 "性别:0=女 1=男" → "性别,关联字典gender:0=女, 1=男" + +#### ✏️ UserSimpleVO + + - ✏️ `id`: 说明 "" → "用户ID" + - ✏️ `realName`: 说明 "" → "真实姓名" + - ✏️ `phone`: 说明 "" → "手机号" + - ✏️ `avatarUrl`: 说明 "" → "头像URL" + +#### ✏️ UserVO + + - ✏️ `status`: 说明 "状态:ACTIVE=正常 DISABLED=禁用" → "状态,关联字典user_status:ACTIVE=正常, BANNED=已封禁" + - ✏️ `idCardType`: 说明 "证件类型:ID_CARD=身份证 PASSPORT=护照" → "证件类型,关联字典id_card_type:ID_CARD=身份证, PASSPORT=护照" + - ✏️ `gender`: 说明 "性别:0=女 1=男" → "性别,关联字典gender:0=女, 1=男" + +### 素材服务 + +#### ✏️ ChunkUploadCancelRequest + + - ✏️ `uploadId`: 说明 "" → "上传ID" + +#### ✏️ ChunkUploadCompleteRequest + + - ✏️ `uploadId`: 说明 "" → "上传ID" + +#### ✏️ ChunkUploadInitRequest + + - ✏️ `filename`: 说明 "" → "文件名" + - ✏️ `fileSize`: 说明 "" → "文件大小(字节)" + - ✏️ `contentType`: 说明 "" → "文件MIME类型" + - ✏️ `groupKey`: 说明 "" → "分组标识" + - ✏️ `fileHash`: 说明 "" → "文件哈希值" + +#### ✏️ ChunkUploadInitVO + + - ✏️ `uploadId`: 说明 "" → "上传ID" + - ✏️ `chunkSize`: 说明 "" → "分片大小(字节)" + - ✏️ `fileId`: 说明 "" → "文件ID" + - ✏️ `ossKey`: 说明 "" → "OSS对象Key" + +#### ✏️ ChunkUploadPartVO + + - ✏️ `etag`: 说明 "" → "分片ETag标识" + +#### ✏️ FileBatchIdsRequest + + - ✏️ `fileIds`: 说明 "" → "文件ID列表" + +#### ✏️ FileUploadConfirmRequest + + - ✏️ `fileId`: 说明 "" → "文件ID" + +#### ✏️ FileUploadTokenRequest + + - ✏️ `fileName`: 说明 "" → "文件名" + - ✏️ `fileSize`: 说明 "" → "文件大小(字节)" + - ✏️ `fileHash`: 说明 "" → "文件哈希值" + - ✏️ `groupKey`: 说明 "" → "分组标识" + - ✏️ `forcePresigned`: 说明 "" → "是否强制使用预签名URL" + +#### ✏️ FileUploadTokenVO + + - ✏️ `fileId`: 说明 "" → "文件ID" + - ✏️ `contentType`: 说明 "" → "文件MIME类型" + - ✏️ `uploadMode`: 说明 "" → "上传模式" + - ✏️ `presignedUrl`: 说明 "" → "预签名上传URL" + - ✏️ `ossKey`: 说明 "" → "OSS对象Key" + - ✏️ `expireAt`: 说明 "" → "过期时间" + - ✏️ `stsToken`: 说明 "" → "STS临时凭证" + - ✏️ `bucket`: 说明 "" → "OSS存储桶名称" + - ✏️ `region`: 说明 "" → "OSS区域" + - ✏️ `file`: 说明 "" → "文件信息(秒传时返回)" + - ✏️ `accessKeyId`: 说明 "" → "访问密钥ID" + - ✏️ `accessKeySecret`: 说明 "" → "访问密钥Secret" + - ✏️ `securityToken`: 说明 "" → "安全令牌" + - ✏️ `expiration`: 说明 "" → "过期时间" + +#### ✏️ FileVO + + - ✏️ `fileId`: 说明 "" → "文件ID" + - ✏️ `fileName`: 说明 "" → "文件名" + - ✏️ `fileType`: 说明 "" → "文件类型" + - ✏️ `mimeType`: 说明 "" → "MIME类型" + - ✏️ `fileSize`: 说明 "" → "文件大小(字节)" + - ✏️ `fileHash`: 说明 "" → "文件哈希值" + - ✏️ `ossUrl`: 说明 "" → "OSS访问URL" + - ✏️ `thumbnailUrl`: 说明 "" → "缩略图URL" + - ✏️ `previewUrl`: 说明 "" → "预览URL" + - ✏️ `groupKey`: 说明 "" → "分组标识" + - ✏️ `status`: 说明 "" → "文件状态" + - ✏️ `refCount`: 说明 "" → "引用次数" + - ✏️ `createdAt`: 说明 "" → "创建时间" + +### 订单服务 + +#### ✏️ AdminCreateOrderRequest + + - ✏️ `userPhone`: 说明 "用户手机号(可选,用于关联C端用户)" → "用户手机号(可选,用于关联C端用户)。如匹配到已注册用户则自动绑定订单" + - ✏️ `expiryMinutes`: 说明 "支付时限(分钟),不传则使用全局默认值" → "支付时限(分钟),不传则使用全局默认值。超时未支付订单自动取消" + +#### ✏️ AdminRefundReviewRequest + + - ✏️ `action`: 说明 "审批结果(APPROVE/REJECT)" → "审批结果:APPROVE=通过(自动调起微信退款)、REJECT=拒绝(用户可发起申诉)" + - ✏️ `actualAmount`: 说明 "实际退款金额(审批通过时可调整)" → "实际退款金额(审批通过时可调整,不传则使用申请金额)。不能超过订单已付金额" + +#### ✏️ AdminUpdateOrderRequest + + - ✏️ `mchId`: 说明 "商户号" → "商户号(微信支付商户号,多商户场景使用)" + +#### ✏️ CreateWorkOrderRequest + + - ✏️ `type`: 说明 "工单类型: ROOM_CHANGE/ROOM_ADD/CHECKOUT_CHANGE/HOTEL_ISSUE/VEHICLE_CHANGE/SCENIC_ADD/SCENIC_REMOVE/OTHER" → "工单类型: ROOM_CHANGE(换房)/ROOM_ADD(加房)/CHECKOUT_CHANGE(改退房日期)/" + - ✏️ `priority`: 说明 "优先级: URGENT/NORMAL" → "优先级: URGENT(紧急,如当天出发需处理)/NORMAL(普通)" + - ✏️ `costDifference`: 说明 "差价(正数=加价, 负数=退费)" → "差价(正数=客户需补差价, 负数=需退费给客户)" + +#### ✏️ EarlyBirdPlanRequest + + - ✏️ `minPeople`: 说明 "最低人数" → "最低出行人数(含成人+儿童),订单人数>=此值才能享受优惠" + - ✏️ `discountAmount`: 说明 "优惠金额" → "优惠金额(从订单总价中扣减的固定金额)" + +#### ✏️ MpOrderQueryRequest + + - ✏️ `status`: 说明 "订单状态" → "订单状态(不传则查全部)。可选值:PENDING_PAY/DEPOSIT_PAID/PAID/CONFIRMED/PENDING_BALANCE/PENDING_DEPARTURE/TRAVELLING/COMPLETED/AFTER_SALE/REFUNDING/REFUNDED/CANCELLED" + +#### ✏️ MpUpdateOrderRequest + + - ✏️ `departureDate`: 说明 "出发日期" → "出发日期(修改出发日期会触发价格重算)" + +#### ✏️ RefundApplyRequest + + - ✏️ `refundType`: 说明 "退款类型(字典:refund_type)" → "退款类型:FULL=全额退款、PARTIAL=部分退款" + - ✏️ `reasonId`: 说明 "退款原因ID" → "退款原因ID(从退款原因列表接口获取)" + +#### ✏️ RefundPolicyRequest + + - ✏️ `minDays`: 说明 "距出发最少天数" → "距出发最少天数(含当天)。例如:minDays=7表示出发前7天及以上适用此规则" + - ✏️ `refundRatio`: 说明 "退款比例(百分比)" → "退款比例(百分比,0-100)。例如:80表示退已付金额的80%" + +#### ✏️ UpdateOrderStatusRequest + + - ✏️ `status`: 说明 "目标状态(字典:order_status)" → "目标状态。可选值:PENDING_PAY(待支付)/DEPOSIT_PAID(已付定金)/PAID(已全额支付)/" + +#### ✏️ WorkOrderVO + + - ✏️ `logId`: 说明 "" → "日志ID" + - ✏️ `action`: 说明 "" → "操作动作" + - ✏️ `actionLabel`: 说明 "" → "操作动作标签" + - ✏️ `content`: 说明 "" → "操作内容" + - ✏️ `operatorName`: 说明 "" → "操作人姓名" + - ✏️ `createdAt`: 说明 "" → "操作时间" + +### 资源服务 + +#### ✏️ RestaurantCreateRequest + + - ✏️ `cityName`: 说明 "城市标签" → "城市名称(纯文本输入)" + +#### ✏️ RestaurantListVO + + - ✏️ `cityName`: 说明 "城市标签" → "城市名称(纯文本)" + +#### ✏️ RestaurantQueryRequest + + - ✏️ `cityName`: 说明 "城市标签" → "城市名称筛选(纯文本)" + +#### ✏️ RestaurantUpdateRequest + + - ✏️ `cityName`: 说明 "城市标签" → "城市名称(纯文本输入)" + +#### ✏️ RestaurantVO + + - ✏️ `cityName`: 说明 "城市标签" → "城市名称(纯文本)" + +## 🗄️ 数据库变更 + +### `add_customer_service_role.sql` (新增) + +```sql +-- 新增客服角色 +-- 权限:查看全部订单、全部产品(含定制产品)、配置保险、配置合同、查看素材 + +-- 1. 创建角色 +INSERT INTO sys_role (role_id, role_name, role_key, sort_order, status) +VALUES (8, '客服', 'CUSTOMER_SERVICE', 8, 'ACTIVE'); + +-- 2. 分配菜单权限 +INSERT INTO sys_role_menu (role_id, menu_id) VALUES +-- 订单管理(查看,不含创建) +(8, 700), -- 订单管理(目录) +(8, 710), -- 订单列表 +(8, 730), -- 订单详情 +(8, 740), -- 早鸟优惠 +(8, 750), -- 工单管理 +-- 退款管理(查看) +(8, 6001), -- 退款管理(目录) +(8, 6010), -- 退款申请 +(8, 6020), -- 退款政策 +(8, 6030), -- 退款原因 +-- 产品管理(查看全部,含定制产品,不含增删改按钮) +(8, 500), -- 产品管理(目录) +(8, 510), -- 产品列表 +(8, 520), -- 产品线管理 +(8, 530), -- 团期管理 +-- 保险管理(配置) +(8, 800), -- 保险管理(目录) +(8, 810), -- 保险产品 +(8, 820), -- 保险订单 +(8, 830), -- 保险方案 +-- 合同管理(配置) +(8, 850), -- 合同管理(目录) +(8, 851), -- 合同列表 +(8, 852), -- 补充约定模板 +-- 素材库(查看) +(8, 1890000000000000100); -- 素材库 +``` + +### `dict_data_seed.sql` (修改) + +```sql +-- Dict Types (9 types) + (7, '任务日志状态', 'job_log_status', 'BASE', 'ACTIVE', NULL, NOW(), NOW()), + (8, '任务状态', 'job_status', 'BASE', 'ACTIVE', NULL, NOW(), NOW()), + (9, '任务分组', 'job_group', 'BASE', 'ACTIVE', NULL, NOW(), NOW()); +-- job_status +INSERT IGNORE INTO sys_dict_data (dict_data_id, dict_type, dict_label, dict_value, sort_order, status, remark, created_at, updated_at) +VALUES + (801, 'job_status', '启用', 'ACTIVE', 1, 'ACTIVE', 'success', NOW(), NOW()), + (802, 'job_status', '已暂停', 'PAUSED', 2, 'ACTIVE', 'info', NOW(), NOW()); + +-- job_group +INSERT IGNORE INTO sys_dict_data (dict_data_id, dict_type, dict_label, dict_value, sort_order, status, remark, created_at, updated_at) +VALUES + (901, 'job_group', '默认分组', 'DEFAULT', 1, 'ACTIVE', '', NOW(), NOW()), + (902, 'job_group', '系统任务', 'SYSTEM', 2, 'ACTIVE', 'primary', NOW(), NOW()), + (903, 'job_group', '企微同步', 'WECHAT', 3, 'ACTIVE', 'success', NOW(), NOW()), + (904, 'job_group', '保险同步', 'INSURANCE', 4, 'ACTIVE', 'warning', NOW(), NOW()); + +``` + +### `dict_fix_frontend.sql` (新增) + +```sql +-- ============================================================ +-- 前端缺失的字典类型和字典数据补齐 +-- 对比前端 hl-ui 代码 vs 后端 sys_dict_type 表 +-- ============================================================ + +-- 1. cities - 城市(树形字典,MobilePreview/useLocation用) +INSERT IGNORE INTO sys_dict_type (dict_type_id, dict_name, dict_type, category, status) +VALUES (1900000001, '城市', 'cities', 'BASE', 'ACTIVE'); + +INSERT IGNORE INTO sys_dict_data (dict_data_id, dict_type, dict_label, dict_value, sort_order, status) +VALUES +(1900100001, 'cities', '海拉尔', 'hailar', 1, 'ACTIVE'), +(1900100002, 'cities', '满洲里', 'manzhouli', 2, 'ACTIVE'), +(1900100003, 'cities', '额尔古纳', 'eergu', 3, 'ACTIVE'), +(1900100004, 'cities', '根河', 'genhe', 4, 'ACTIVE'), +(1900100005, 'cities', '牙克石', 'yakeshi', 5, 'ACTIVE'), +(1900100006, 'cities', '扎兰屯', 'zhalantun', 6, 'ACTIVE'), +(1900100007, 'cities', '阿尔山', 'aershan', 7, 'ACTIVE'), +(1900100008, 'cities', '室韦', 'shiwei', 8, 'ACTIVE'), +(1900100009, 'cities', '恩和', 'enhe', 9, 'ACTIVE'), +(1900100010, 'cities', '黑山头', 'heishantou', 10, 'ACTIVE'), +(1900100011, 'cities', '陈巴尔虎旗', 'chenbaerhu', 11, 'ACTIVE'), +(1900100012, 'cities', '新巴尔虎左旗', 'xinbaerhuzuo', 12, 'ACTIVE'), +(1900100013, 'cities', '新巴尔虎右旗', 'xinbaerhuyou', 13, 'ACTIVE'), +(1900100014, 'cities', '鄂温克旗', 'ewenke', 14, 'ACTIVE'), +(1900100015, 'cities', '莫尔道嘎', 'moerdaoga', 15, 'ACTIVE'); + +-- 2. city - 城市筛选(产品行程资源面板用) +INSERT IGNORE INTO sys_dict_type (dict_type_id, dict_name, dict_type, category, status) +VALUES (1900000002, '城市筛选', 'city', 'BASE', 'ACTIVE'); + +INSERT IGNORE INTO sys_dict_data (dict_data_id, dict_type, dict_label, dict_value, sort_order, status) +VALUES +(1900200001, 'city', '海拉尔', 'hailar', 1, 'ACTIVE'), +(1900200002, 'city', '满洲里', 'manzhouli', 2, 'ACTIVE'), +(1900200003, 'city', '额尔古纳', 'eergu', 3, 'ACTIVE'), +(1900200004, 'city', '根河', 'genhe', 4, 'ACTIVE'), +(1900200005, 'city', '阿尔山', 'aershan', 5, 'ACTIVE'), +(1900200006, 'city', '室韦', 'shiwei', 6, 'ACTIVE'), +(1900200007, 'city', '恩和', 'enhe', 7, 'ACTIVE'), +(1900200008, 'city', '黑山头', 'heishantou', 8, 'ACTIVE'); + +-- 3. city_label - 城市标签(餐厅列表筛选用) +INSERT IGNORE INTO sys_dict_type (dict_type_id, dict_name, dict_type, category, status) +VALUES (1900000003, '城市标签', 'city_label', 'BASE', 'ACTIVE'); + +INSERT IGNORE INTO sys_dict_data (dict_data_id, dict_type, dict_label, dict_value, sort_order, status) +VALUES +(1900300001, 'city_label', '海拉尔', 'hailar', 1, 'ACTIVE'), +(1900300002, 'city_label', '满洲里', 'manzhouli', 2, 'ACTIVE'), +(1900300003, 'city_label', '额尔古纳', 'eergu', 3, 'ACTIVE'), +(1900300004, 'city_label', '根河', 'genhe', 4, 'ACTIVE'), +(1900300005, 'city_label', '阿尔山', 'aershan', 5, 'ACTIVE'), +(1900300006, 'city_label', '室韦', 'shiwei', 6, 'ACTIVE'), +(1900300007, 'city_label', '恩和', 'enhe', 7, 'ACTIVE'), +(1900300008, 'city_label', '黑山头', 'heishantou', 8, 'ACTIVE'); + +-- 4. environment_type - 环境类型(餐厅编辑用,前端key是environment_type) +INSERT IGNORE INTO sys_dict_type (dict_type_id, dict_name, dict_type, category, status) +VALUES (1900000004, '环境类型', 'environment_type +``` + +## ⚙️ 配置变更 + +- `hl-callback-service/src/main/resources/bootstrap.yml` (修改) +- `hl-contract-service/src/main/resources/bootstrap.yml` (修改) +- `hl-file-service/src/main/resources/bootstrap.yml` (修改) +- `hl-gateway/src/main/resources/bootstrap.yml` (修改) +- `hl-guide-service/src/main/resources/bootstrap.yml` (修改) +- `hl-insurance-service/src/main/resources/bootstrap.yml` (修改) +- `hl-material-service/src/main/resources/bootstrap.yml` (修改) +- `hl-monitor-service/src/main/resources/bootstrap.yml` (修改) +- `hl-mp-service/src/main/resources/bootstrap.yml` (修改) +- `hl-order-service/src/main/resources/bootstrap.yml` (修改) +- `hl-payment-service/src/main/resources/bootstrap.yml` (修改) +- `hl-product-service/src/main/resources/bootstrap.yml` (修改) +- `hl-resource-service/src/main/resources/bootstrap.yml` (修改) +- `hl-review-service/src/main/resources/bootstrap.yml` (修改) +- `hl-task-service/src/main/resources/bootstrap.yml` (修改) +- `hl-user-service/src/main/resources/bootstrap.yml` (修改) + +
+📁 全部变更文件 (点击展开) + +``` +A design-01-mengma-detail.jpg +A design-mengma-100pct.jpg +A design-mengma-detail.jpg +M docs/CLAUDE_WORKFLOW/CODE_STANDARDS.md +M docs/CLAUDE_WORKFLOW/architect/GUIDE.md +M docs/CLAUDE_WORKFLOW/qa/GUIDE.md +M docs/CLAUDE_WORKFLOW/reviewer/GUIDE.md +M docs/CLAUDE_WORKFLOW/senior-dev/GUIDE.md +M hl-callback-service/src/main/java/com/hulalv/callback/config/Knife4jConfig.java +M hl-callback-service/src/main/java/com/hulalv/callback/controller/MsgAuditCallbackController.java +M hl-callback-service/src/main/java/com/hulalv/callback/controller/WxCallbackController.java +M hl-callback-service/src/main/java/com/hulalv/callback/feign/UserServiceClient.java +M hl-callback-service/src/main/java/com/hulalv/callback/feign/UserServiceClientFallback.java +M hl-callback-service/src/main/java/com/hulalv/callback/handler/ApprovalEventHandler.java +M hl-callback-service/src/main/java/com/hulalv/callback/handler/ContactChangeHandler.java +M hl-callback-service/src/main/java/com/hulalv/callback/handler/ExternalContactHandler.java +M hl-callback-service/src/main/java/com/hulalv/callback/msgaudit/InternalChatMessageController.java +M hl-callback-service/src/main/java/com/hulalv/callback/msgaudit/MsgAuditController.java +M hl-callback-service/src/main/java/com/hulalv/callback/msgaudit/vo/ChatMessageVO.java +M hl-callback-service/src/main/resources/bootstrap.yml +M hl-common/src/main/java/com/hulalv/common/dto/AdminBasicDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/DepartmentDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/ExternalContactEventDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/FileBindRefsDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/FileUnbindRefsDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/OrderPayInfoDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/PaymentResultDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/RefundResultDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/ResourceDetailDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/TravelerValidationDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/WechatDeptSyncDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/WechatMessageDTO.java +M hl-common/src/main/java/com/hulalv/common/dto/WechatUserSyncDTO.java +M hl-common/src/main/java/com/hulalv/common/feign/MonitorFeignClient.java +M hl-common/src/main/java/com/hulalv/common/feign/MonitorFeignFallbackFactory.java +M hl-common/src/main/java/com/hulalv/common/feign/OrderRefundFeignClient.java +M hl-common/src/main/java/com/hulalv/common/feign/OrderRefundFeignFallbackFactory.java +M hl-common/src/main/java/com/hulalv/common/feign/ProductApprovalFeignClient.java +M hl-common/src/main/java/com/hulalv/common/feign/ProductApprovalFeignFallbackFactory.java +M hl-common/src/main/java/com/hulalv/common/feign/ResourceApprovalFeignClient.java +M hl-common/src/main/java/com/hulalv/common/feign/ResourceApprovalFeignFallbackFactory.java +M hl-common/src/main/java/com/hulalv/common/weather/AmapWeatherClient.java +M hl-contract-service/src/main/java/com/hulalv/contract/config/Knife4jConfig.java +M hl-contract-service/src/main/java/com/hulalv/contract/controller/AdminClauseTemplateController.java +M hl-contract-service/src/main/java/com/hulalv/contract/controller/AdminContractController.java +M hl-contract-service/src/main/java/com/hulalv/contract/controller/ContractCallbackController.java +M hl-contract-service/src/main/java/com/hulalv/contract/controller/InternalContractController.java +M hl-contract-service/src/main/java/com/hulalv/contract/controller/InternalMpContractController.java +M hl-contract-service/src/main/resources/bootstrap.yml +M hl-file-service/src/main/java/com/hulalv/file/config/Knife4jConfig.java +M hl-file-service/src/main/java/com/hulalv/file/controller/FileController.java +M hl-file-service/src/main/java/com/hulalv/file/controller/InternalFileController.java +M hl-file-service/src/main/java/com/hulalv/file/controller/MpFileController.java +M hl-file-service/src/main/resources/bootstrap.yml +A hl-gateway/src/main/java/com/hulalv/gateway/config/WebResourceConfig.java +M hl-gateway/src/main/resources/bootstrap.yml +M hl-guide-service/src/main/java/com/hulalv/guide/controller/AdminGuideArticleController.java +M hl-guide-service/src/main/java/com/hulalv/guide/controller/AdminGuideCategoryController.java +M hl-guide-service/src/main/java/com/hulalv/guide/controller/AdminGuideTagController.java +M hl-guide-service/src/main/java/com/hulalv/guide/controller/InternalWikiController.java +M hl-guide-service/src/main/resources/bootstrap.yml +M hl-insurance-service/src/main/java/com/hulalv/insurance/config/Knife4jConfig.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/controller/AdminInsuranceController.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/controller/AdminInsuranceSchemeController.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/controller/InternalInsuranceController.java +M hl-insurance-service/src/main/resources/bootstrap.yml +M hl-material-service/src/main/java/com/hulalv/material/config/Knife4jConfig.java +M hl-material-service/src/main/java/com/hulalv/material/controller/InternalMaterialController.java +M hl-material-service/src/main/java/com/hulalv/material/controller/MaterialCategoryPermissionController.java +M hl-material-service/src/main/java/com/hulalv/material/controller/MaterialController.java +M hl-material-service/src/main/java/com/hulalv/material/controller/MaterialTagController.java +M hl-material-service/src/main/java/com/hulalv/material/controller/MpMaterialController.java +M hl-material-service/src/main/java/com/hulalv/material/feign/dto/ChunkUploadCancelRequest.java +M hl-material-service/src/main/java/com/hulalv/material/feign/dto/ChunkUploadCompleteRequest.java +M hl-material-service/src/main/java/com/hulalv/material/feign/dto/ChunkUploadInitRequest.java +M hl-material-service/src/main/java/com/hulalv/material/feign/dto/FileBatchIdsRequest.java +M hl-material-service/src/main/java/com/hulalv/material/feign/dto/FileUploadConfirmRequest.java +M hl-material-service/src/main/java/com/hulalv/material/feign/dto/FileUploadTokenRequest.java +M hl-material-service/src/main/java/com/hulalv/material/feign/vo/ChunkUploadInitVO.java +M hl-material-service/src/main/java/com/hulalv/material/feign/vo/ChunkUploadPartVO.java +M hl-material-service/src/main/java/com/hulalv/material/feign/vo/FileUploadTokenVO.java +M hl-material-service/src/main/java/com/hulalv/material/feign/vo/FileVO.java +M hl-material-service/src/main/resources/bootstrap.yml +M hl-monitor-service/src/main/java/com/hulalv/monitor/config/Knife4jConfig.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/ApprovalLogController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/DataRetentionController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/ErrorLogController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/InternalLogController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/LoginLogController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/MysqlMonitorController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/NotificationLogController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/OperationLogController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/RedisMonitorController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/RocketMqMonitorController.java +M hl-monitor-service/src/main/java/com/hulalv/monitor/controller/ServiceMonitorController.java +M hl-monitor-service/src/main/resources/bootstrap.yml +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpActivityController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpBadgeController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpBannerController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpConfigController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpContractController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpDesignerController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpDictController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpExploreController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpFavoriteController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpFootprintController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpHomeController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpHotelController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpInsuranceController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpInvoiceController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpLikeController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpOrderController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpPaymentController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpProductController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpRefundController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpRestaurantController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpReviewController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpScenicController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpSearchController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpTravelerController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpTripController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpUserController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpWeatherController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpWikiController.java +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpWishController.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpPaymentFeignClient.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpPaymentFeignFallbackFactory.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpUserFeignClient.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpUserFeignFallbackFactory.java +M hl-mp-service/src/main/resources/bootstrap.yml +M hl-order-service/src/main/java/com/hulalv/order/config/Knife4jConfig.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminAlbumController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminEarlyBirdController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminOrderConfigController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminOrderController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminOrderItineraryController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminOrderTodoController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminRefundController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminRefundPolicyController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/AdminWorkOrderController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalAlbumController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalDashboardController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalDesignerOrderController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalEarlyBirdController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalInvoiceController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalMpOrderController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalMpTripController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalOrderStatsController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalOrderTravelerController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalPaymentOrderController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalRefundController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/MpOrderController.java +M hl-order-service/src/main/java/com/hulalv/order/controller/MpWeatherController.java +M hl-order-service/src/main/java/com/hulalv/order/dto/AdminCreateOrderRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/AdminRefundReviewRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/AdminUpdateOrderRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/CreateWorkOrderRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/EarlyBirdPlanRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/InvoiceApplyRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/MpOrderQueryRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/MpUpdateOrderRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/RefundApplyRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/RefundPolicyRequest.java +M hl-order-service/src/main/java/com/hulalv/order/dto/UpdateOrderStatusRequest.java +M hl-order-service/src/main/java/com/hulalv/order/service/WeatherService.java +M hl-order-service/src/main/java/com/hulalv/order/vo/WorkOrderVO.java +M hl-order-service/src/main/resources/bootstrap.yml +M hl-payment-service/src/main/java/com/hulalv/payment/config/Knife4jConfig.java +M hl-payment-service/src/main/java/com/hulalv/payment/controller/AdminPaymentController.java +M hl-payment-service/src/main/java/com/hulalv/payment/controller/InternalPaymentController.java +M hl-payment-service/src/main/java/com/hulalv/payment/controller/PaymentCallbackController.java +M hl-payment-service/src/main/resources/bootstrap.yml +M hl-product-service/src/main/java/com/hulalv/product/config/Knife4jConfig.java +M hl-product-service/src/main/java/com/hulalv/product/controller/DistrictController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/FamilyController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/FormulaController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/GroupBatchController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/InternalMpProductController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/InternalProductController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/ItineraryController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/MpProductController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/PricingController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/ProductController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/ProductFolderController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/ProductLineController.java +M hl-product-service/src/main/java/com/hulalv/product/controller/QuoteController.java +M hl-product-service/src/main/java/com/hulalv/product/dto/FamilySaveRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/FormulaStepRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/GroupBatchCreateRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/GroupBatchDisbandRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/GroupBatchStaffRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/GroupBatchUpdateRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/NodeCreateRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/PriceCalendarRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/PricingRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/ProductStatusRequest.java +M hl-product-service/src/main/java/com/hulalv/product/dto/QuoteRequest.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/BatchMaterialIdsRequest.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/RefBatchBindRequest.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/RefBatchUnbindRequest.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/RefBindRequest.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/RefUnbindRequest.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/ResourceCoverQuery.java +M hl-product-service/src/main/java/com/hulalv/product/feign/dto/ResourcePriceQuery.java +M hl-product-service/src/main/java/com/hulalv/product/feign/vo/MaterialVO.java +M hl-product-service/src/main/java/com/hulalv/product/feign/vo/ResourcePriceVO.java +M hl-product-service/src/main/resources/bootstrap.yml +M hl-resource-service/src/main/java/com/hulalv/resource/activity/controller/ActivityController.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/controller/ActivityPriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/controller/ActivityTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/controller/InternalActivityController.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/controller/InternalMpActivityController.java +M hl-resource-service/src/main/java/com/hulalv/resource/config/Knife4jConfig.java +M hl-resource-service/src/main/java/com/hulalv/resource/controller/InternalMpResourceBriefController.java +M hl-resource-service/src/main/java/com/hulalv/resource/controller/InternalResourceController.java +M hl-resource-service/src/main/java/com/hulalv/resource/controller/InternalResourceDetailController.java +M hl-resource-service/src/main/java/com/hulalv/resource/controller/InternalResourcePriceController.java +M hl-resource-service/src/main/java/com/hulalv/resource/controller/InternalResourceStatsController.java +M hl-resource-service/src/main/java/com/hulalv/resource/cost/controller/CostItemController.java +M hl-resource-service/src/main/java/com/hulalv/resource/cost/controller/CostPriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/cost/controller/InternalCostController.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/controller/HotelController.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/controller/HotelTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/controller/InternalHotelController.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/controller/InternalMpHotelController.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/controller/RoomPriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/controller/RoomTypeController.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/controller/InternalMpRestaurantController.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/controller/InternalRestaurantController.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/controller/RestaurantController.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/controller/RestaurantTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/dto/RestaurantCreateRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/dto/RestaurantQueryRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/dto/RestaurantUpdateRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/vo/RestaurantListVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/restaurant/vo/RestaurantVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/controller/InternalMpScenicController.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/controller/InternalScenicController.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/controller/ScenicPriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/controller/ScenicSeasonController.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/controller/ScenicSpotController.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/controller/ScenicTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/controller/InternalServiceController.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/controller/ServiceItemController.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/controller/ServicePriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/controller/ServiceTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/controller/InternalStaffController.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/controller/StaffController.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/controller/StaffPriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/controller/StaffTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/supplies/controller/InternalSuppliesController.java +M hl-resource-service/src/main/java/com/hulalv/resource/supplies/controller/SuppliesController.java +M hl-resource-service/src/main/java/com/hulalv/resource/supplies/controller/SuppliesTagController.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/controller/InternalVehicleController.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/controller/VehicleModelController.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/controller/VehiclePriceCalendarController.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/controller/VehicleTagController.java +M hl-resource-service/src/main/resources/bootstrap.yml +M hl-review-service/src/main/java/com/hulalv/review/config/Knife4jConfig.java +M hl-review-service/src/main/java/com/hulalv/review/controller/AdminReviewController.java +M hl-review-service/src/main/java/com/hulalv/review/controller/InternalMpReviewController.java +M hl-review-service/src/main/java/com/hulalv/review/controller/InternalReviewController.java +M hl-review-service/src/main/resources/bootstrap.yml +M hl-task-service/src/main/java/com/hulalv/task/controller/BoardController.java +M hl-task-service/src/main/java/com/hulalv/task/controller/TaskController.java +M hl-task-service/src/main/resources/bootstrap.yml +M hl-user-service/src/main/java/com/hulalv/user/config/Knife4jConfig.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminAgreementController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminBannerController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminContactController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminCustomerController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminDesignerController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminExploreCategoryController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminFaqController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminFrontendConfigController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminProfileController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminTopicController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AdminUserController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/AuthController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/FavoriteController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/FootprintController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalApprovalController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalBadgeController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalBannerController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalContactController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalDesignerController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalExploreCategoryController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalFaqController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalFrontendConfigController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalLikeController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalLoginLogController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalMpCommonController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalMpDictController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalMpMessageController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalMpUserController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalOrderUserController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalTopicController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalUserController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalWechatController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/InternalWishController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/OfficialAccountCallbackController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/PublicDictController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/SysDictController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/SysJobController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/SysMenuController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/SysRoleController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/TravelerController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/UserController.java +M hl-user-service/src/main/java/com/hulalv/user/controller/WechatSyncController.java +M hl-user-service/src/main/java/com/hulalv/user/dto/AdminLoginRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/ContactRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/CreateAdminRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/CreateJobRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/FavoriteRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/FootprintRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/LoginRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/SwitchRoleRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/TravelerRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/UpdateAvatarRequest.java +M hl-user-service/src/main/java/com/hulalv/user/dto/UpdateJobRequest.java +M hl-user-service/src/main/java/com/hulalv/user/notification/controller/AdminNotificationController.java +M hl-user-service/src/main/java/com/hulalv/user/notification/dto/CustomPushRequest.java +M hl-user-service/src/main/java/com/hulalv/user/notification/vo/CustomPushResultVO.java +M hl-user-service/src/main/java/com/hulalv/user/notification/vo/EventConfigVO.java +M hl-user-service/src/main/java/com/hulalv/user/notification/vo/SendLogVO.java +M hl-user-service/src/main/java/com/hulalv/user/notification/vo/UserSimpleVO.java +M hl-user-service/src/main/java/com/hulalv/user/service/SysJobService.java +M hl-user-service/src/main/java/com/hulalv/user/vo/ContactVO.java +M hl-user-service/src/main/java/com/hulalv/user/vo/CustomerVO.java +M hl-user-service/src/main/java/com/hulalv/user/vo/LoginLogVO.java +A hl-user-service/src/main/java/com/hulalv/user/vo/SysJobLogVO.java +A hl-user-service/src/main/java/com/hulalv/user/vo/SysJobVO.java +M hl-user-service/src/main/java/com/hulalv/user/vo/UserVO.java +M hl-user-service/src/main/resources/bootstrap.yml +M hl-user-service/src/test/java/com/hulalv/user/service/SysJobServiceTest.java +A mastergo-overview.jpg +A scripts/ai-bridge/ai_bridge.py +A scripts/ai-bridge/ai_bridge.service +A scripts/ai-bridge/mg-mengma-detail.jpg +A scripts/ai-bridge/mg-preview.jpg +A scripts/ai-bridge/setup.sh +A scripts/ai-bridge/state.json +A scripts/api-changelog-sync.sh +A sql/add_customer_service_role.sql +M sql/dict_data_seed.sql +A sql/dict_fix_frontend.sql +``` +
\ No newline at end of file