hl-api-changelog/2026-03/17_0958/hl-product-service.md
2026-03-17 09:58:52 +08:00

239 KiB

产品服务 API 文档

服务: hl-product-service 接口总数: 106

目录

  • 产品文件夹管理 (4 个接口)
  • 产品管理 (10 个接口)
  • 产品线管理 (6 个接口)
  • 定价与费用管理 (20 个接口)
  • 定价公式管理 (19 个接口)
  • 家庭分组管理 (4 个接口)
  • 小程序-产品 (3 个接口)
  • 报价计算 (2 个接口)
  • 拼团批次管理 (12 个接口)
  • 行政区划搜索 (1 个接口)
  • 行程管理 (25 个接口)

产品文件夹管理

POST /admin/product/folder

创建文件夹

创建产品文件夹,用于组织管理产品。支持多级目录结构。 文件夹归属于创建人,普通管理员只能看到自己的文件夹。

请求体 创建文件夹请求

字段 类型 必填 说明
name string 文件夹名称
parentId string 父文件夹ID,为空则为根文件夹
sortOrder int 排序序号

响应 统一响应结果«产品文件夹VO»

字段 类型 必填 说明
code int 状态码
data 产品文件夹VO 响应数据
  children 产品文件夹VO[] 子文件夹列表
    children 产品文件夹VO[] 子文件夹列表
    createTime string 创建时间
    folderId string 文件夹ID
    name string 文件夹名称
    ownerId string 拥有者ID
    ownerName string 拥有者姓名
    parentId string 父文件夹ID
    productCount int 文件夹内产品数量
    sortOrder int 排序序号
    updateTime string 更新时间
  createTime string 创建时间
  folderId string 文件夹ID
  name string 文件夹名称
  ownerId string 拥有者ID
  ownerName string 拥有者姓名
  parentId string 父文件夹ID
  productCount int 文件夹内产品数量
  sortOrder int 排序序号
  updateTime string 更新时间
message string 响应消息

GET /admin/product/folder/tree

获取文件夹树

获取当前用户可见的文件夹树形结构。 普通管理员只能看到自己创建的文件夹,SUPER_ADMIN 可看到所有文件夹。 返回结构为嵌套的树形列表,包含每个文件夹的子文件夹。

响应 统一响应结果«List«产品文件夹VO»»

字段 类型 必填 说明
code int 状态码
data 产品文件夹VO[] 响应数据
  children 产品文件夹VO[] 子文件夹列表
    children 产品文件夹VO[] 子文件夹列表
    createTime string 创建时间
    folderId string 文件夹ID
    name string 文件夹名称
    ownerId string 拥有者ID
    ownerName string 拥有者姓名
    parentId string 父文件夹ID
    productCount int 文件夹内产品数量
    sortOrder int 排序序号
    updateTime string 更新时间
  createTime string 创建时间
  folderId string 文件夹ID
  name string 文件夹名称
  ownerId string 拥有者ID
  ownerName string 拥有者姓名
  parentId string 父文件夹ID
  productCount int 文件夹内产品数量
  sortOrder int 排序序号
  updateTime string 更新时间
message string 响应消息

PUT /admin/product/folder/{folderId}

更新文件夹

更新文件夹名称等信息。 权限说明普通管理员只能更新自己创建的文件夹,SUPER_ADMIN 可更新任何文件夹。

路径参数

参数 类型 必填 说明
folderId integer 文件夹ID

请求体 更新文件夹请求

字段 类型 必填 说明
name string 文件夹名称
sortOrder int 排序序号

响应 统一响应结果«产品文件夹VO»

字段 类型 必填 说明
code int 状态码
data 产品文件夹VO 响应数据
  children 产品文件夹VO[] 子文件夹列表
    children 产品文件夹VO[] 子文件夹列表
    createTime string 创建时间
    folderId string 文件夹ID
    name string 文件夹名称
    ownerId string 拥有者ID
    ownerName string 拥有者姓名
    parentId string 父文件夹ID
    productCount int 文件夹内产品数量
    sortOrder int 排序序号
    updateTime string 更新时间
  createTime string 创建时间
  folderId string 文件夹ID
  name string 文件夹名称
  ownerId string 拥有者ID
  ownerName string 拥有者姓名
  parentId string 父文件夹ID
  productCount int 文件夹内产品数量
  sortOrder int 排序序号
  updateTime string 更新时间
message string 响应消息

DELETE /admin/product/folder/{folderId}

删除文件夹

删除文件夹。如果文件夹下有产品,产品会自动移到根目录folderId 置空)。 普通管理员只能删除自己的文件夹,SUPER_ADMIN 可删除任何文件夹。

路径参数

参数 类型 必填 说明
folderId integer 文件夹ID

响应 统一响应结果«Void»


产品管理

POST /admin/product/item

创建产品(草稿)

创建一个新产品,初始状态为 DRAFT草稿

产品类型说明

  • CORE核心产品,标准旅游产品,支持上架/下架审批流程
  • GROUP小蒙马拼团,需配合团期批次管理,按人头计价
  • CUSTOM定制产品,由定制师为客户量身定制,按单计价
  • ROUTE线路产品,预设线路模板,按单计价

注意事项

  • 创建后需依次完善行程、定价、价格日历等信息
  • CUSTOM/ROUTE 产品的价格日历存储的是整单总价,不按人头乘算
  • GROUP 产品需额外创建团期批次才能报名

关联字典

  • product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾

请求体 创建产品请求

字段 类型 必填 说明
adultCount int 成人人数
babyCount int 婴儿人数
bookingNotice string 预定须知
cancelPolicy string 退改政策
carouselImages string[] 轮播图列表
carouselVideoUrl string 轮播视频URL
childCount int 儿童人数
creatorAvatarUrl string 定制师头像URL
creatorIntro string 创作者寄语
customizerId string 定制师ID
departureCity string 出发城市
destinationCity string 目的地城市
folderId string 所属文件夹ID
groupChatQrUrl string 群聊二维码URL
groupRoomId string 企微群聊ID(用于会话存档展示群消息)
isBooking boolean 是否预约产品
lineId string 产品线ID
maxAdultPerOrder int 每单最大成人数(不填则不限制)
maxChildPerOrder int 每单最大儿童数(不填则不限制)
mchId string 商户号shanhe/wenlu
minAdultPerOrder int 每单最少成人数(不填默认1)
name string 产品名称
productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
seasons string[] 适用季节列表
showChatGroup boolean 是否显示群聊入口
showReview boolean 是否显示评价
showTripDistance boolean 是否显示行程距离
showTripTime boolean 是否显示行程时间
subtitle string 副标题
tags string[] 产品标签列表
tripDays int 行程天数
warmTips string 温馨提示
youngChildCount int 小童人数

响应 统一响应结果«产品详情VO»

字段 类型 必填 说明
code int 状态码
data 产品详情VO 响应数据
  adultCount int 成人人数
  babyCount int 婴儿人数
  benefitsDescription 权益分组[] 权益说明(静态,所有产品相同)
    items 权益项[] 权益项列表
    title string 分组标题,如:儿童权益 (1.2m以下)
  bookingNotice string 预定须知
  cancelPolicy string 退改政策
  carouselImages string[] 轮播图列表
  carouselVideoUrl string 轮播视频URL
  chatMessages 群聊消息VO[] 群聊消息列表
    avatar string 用户头像URLtype=user时有效
    text string 消息内容
    type string 消息类型: user/creator
  childCount int 儿童人数
  costItems 产品成本项VO[] 成本项列表
    category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
    description string 成本项描述
    id string 成本项ID
    sortOrder int 排序序号
    title string 成本项标题
    type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  creatorAvatarUrl string 定制师头像URL
  creatorIntro string 创作者寄语
  customFees 产品自定义费用项VO[] 自定义费用项列表
    description string 费用说明
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    feeAmount number 费用金额
    feeName string 费用项名称
    feeUnit string 费用单位
    id string 费用项ID
    sortOrder int 排序序号
  customizerId string 定制师ID
  departureCity string 出发城市
  destinationCities string[] 途经城市列表(从行程节点资源去重提取)
  destinationCity string 目的地城市
  families 家庭分组VO[] 家庭分组列表(定制产品)
    adultCount int 成人数
    babyCount int 幼童数
    childCount int 儿童数
    familyId string 家庭ID
    familyName string 家庭名称
    sortOrder int 排序序号
    youngChildCount int 小童数
  folderId string 所属文件夹ID
  groupChatQrUrl string 群聊二维码URL
  groupRoomId string 企微群聊ID(用于会话存档展示群消息)
  isBooking boolean 是否预约产品
  itineraryDays 行程天VO[] 行程天列表
    dayId string 行程天ID
    dayNumber int 天数编号
    dayTitle string 天标题
    hotels 每日酒店VO[] 当日酒店列表
    nodes 行程节点VO[] 行程节点列表
    restaurants 用餐选项VO[] 当日用餐列表
    routeSummary string 路线概览
  lineId string 产品线ID
  lineName string 产品线名称
  lineSubtitle string 产品线副标题
  maxAdultPerOrder int 每单最大成人数(null=不限)
  maxChildPerOrder int 每单最大儿童数(null=不限)
  mchId string 商户号
  minAdultPerOrder int 每单最少成人数(null=默认1)
  name string 产品名称
  paymentMode string 支付模式FULL=全款 DEPOSIT=定金+尾款
  pricing 产品定价配置VO 定价配置
    adultExtraBed number 成人加床费
    babyPrice number 婴儿价
    balanceDueDays int 尾款支付截止天数出发前N天
    childDiscountPercent number 儿童折扣百分比
    childNoBed number 儿童不占床价
    childWithBed number 儿童占床价
    companionPrice number 陪同人员价格
    customTotalPrice number 定制产品总价CUSTOM模式下使用
    depositAmount number 定金金额
    depositRatio int 定金比例(百分比)
    extraCostPerPerson number 每人额外成本
    insuranceFee number 保险费用
    markupPercent number 加价百分比PERCENT模式下使用
    maxGroupSize int 最大成团人数
    mealBudget number 餐费预算
    minGroupSize int 最小成团人数
    paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
    pricingId string 定价配置ID
    pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
    productId string 产品ID
    profitAmount number 利润金额FIXED模式下使用
    profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
    singleRoomDiff number 单房差
    vehicleModelIds string[] 车型ID列表
    vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
  productId string 产品ID
  productNo string 产品编号
  productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
  publishedAt string 发布时间
  routeMapUrl string 路径图URL后端自动生成
  seasons string[] 适用季节列表
  showChatGroup boolean 是否显示群聊入口
  showReview boolean 是否显示评价
  showTripDistance boolean 是否显示行程距离
  showTripTime boolean 是否显示行程时间
  sortOrder int 排序序号
  staffConfigs 产品人员配置VO[] 人员配置列表(定制产品)
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    sortOrder int 排序序号
    staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
    staffTypeName string 人员类型名称
  startPrice number 起步价:未来一年价格日历中最低成人售价
  status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED
  subtitle string 副标题
  suppliesList 产品物资VO[] 物资列表
    billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
    costPerPerson number 每人成本
    coverUrl string 封面图URL
    dayNumber int 天数编号scope=DAY时生效
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    scope string 适用范围ALL=整个行程 DAY=指定天
    sortOrder int 排序序号
    suppliesId string 物资ID
    suppliesName string 物资名称
  tags string[] 产品标签列表
  teamExperienceYears int 团队经验年数
  tripDays int 行程天数
  tripNights int 行程晚数
  updateBy string 更新人ID
  updateTime string 更新时间
  warmTips string 温馨提示
  youngChildCount int 小童人数
message string 响应消息

GET /admin/product/item/list

产品列表

分页查询产品列表,支持多维度筛选和排序。

权限说明

  • 普通管理员只能看到自己创建的产品
  • SUPER_ADMIN 可看到所有产品

筛选条件:关键词(名称/副标题模糊匹配)、产品类型、状态、文件夹、产品线、季节、行程天数。 支持多状态筛选statuses 字段,逗号分隔)。

关联字典

  • product_type产品类型,筛选条件CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_status产品状态,筛选条件+返回字段DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单

查询参数

参数 类型 必填 说明 示例
folderId string 文件夹ID 1893012345678901234
keyword string 搜索关键词 丽江
lineId string 产品线ID 1893012345678901234
page integer(int32) 页码 1
pageSize integer(int32) 每页条数 20
productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团 CORE
season string 季节筛选 spring
sortBy string 排序字段name/tripDays/createTime/updateTime createTime
sortDir string 排序方向asc/desc desc
status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED PUBLISHED
statuses string 多状态筛选(逗号分隔) PUBLISHED,COMPLETED
tripDays integer(int32) 行程天数 5

响应 统一响应结果«分页结果«产品列表VO»»

字段 类型 必填 说明
code int 状态码
data 分页结果«产品列表VO» 响应数据
  page int 当前页码
  pageSize int 每页条数
  records 产品列表VO[] 数据列表
    adultCount int 成人数(私人定制/路书)
    approvalNo string 审批编号
    babyCount int 幼童数(私人定制/路书)
    childCount int 儿童数(私人定制/路书)
    coverImageUrl string 封面图URL
    createBy string 创建人ID
    createTime string 创建时间
    departureCity string 出发城市
    destinationCity string 目的地城市
    folderId string 所属文件夹ID
    groupRoomId string 企微群聊ID(用于会话存档展示群消息)
    isBooking boolean 是否预约产品
    lineId string 产品线ID
    lineName string 产品线名称
    maxAdultPerOrder int 每单最大成人数(null=不限)
    maxChildPerOrder int 每单最大儿童数(null=不限)
    mchId string 商户号
    minAdultPerOrder int 每单最少成人数(null=默认1)
    name string 产品名称
    pendingStatus string 待审批目标状态
    productId string 产品ID
    productNo string 产品编号
    productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
    seasons string[] 适用季节列表
    sortOrder int 排序序号
    status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED
    subtitle string 副标题
    tripDays int 行程天数
    tripNights int 行程晚数
    updateTime string 更新时间
    youngChildCount int 小童数(私人定制/路书)
  total int 总记录数
message string 响应消息

GET /admin/product/item/{productId}

获取产品详情

获取产品完整信息,包括基本信息、行程天列表、定价配置、费用项等。 返回数据包含关联的行程节点资源详情,适用于产品编辑页面。 不过滤产品状态,所有状态的产品都可查看。

关联字典

  • product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_status产品状态DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单
  • product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«产品详情VO»

字段 类型 必填 说明
code int 状态码
data 产品详情VO 响应数据
  adultCount int 成人人数
  babyCount int 婴儿人数
  benefitsDescription 权益分组[] 权益说明(静态,所有产品相同)
    items 权益项[] 权益项列表
    title string 分组标题,如:儿童权益 (1.2m以下)
  bookingNotice string 预定须知
  cancelPolicy string 退改政策
  carouselImages string[] 轮播图列表
  carouselVideoUrl string 轮播视频URL
  chatMessages 群聊消息VO[] 群聊消息列表
    avatar string 用户头像URLtype=user时有效
    text string 消息内容
    type string 消息类型: user/creator
  childCount int 儿童人数
  costItems 产品成本项VO[] 成本项列表
    category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
    description string 成本项描述
    id string 成本项ID
    sortOrder int 排序序号
    title string 成本项标题
    type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  creatorAvatarUrl string 定制师头像URL
  creatorIntro string 创作者寄语
  customFees 产品自定义费用项VO[] 自定义费用项列表
    description string 费用说明
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    feeAmount number 费用金额
    feeName string 费用项名称
    feeUnit string 费用单位
    id string 费用项ID
    sortOrder int 排序序号
  customizerId string 定制师ID
  departureCity string 出发城市
  destinationCities string[] 途经城市列表(从行程节点资源去重提取)
  destinationCity string 目的地城市
  families 家庭分组VO[] 家庭分组列表(定制产品)
    adultCount int 成人数
    babyCount int 幼童数
    childCount int 儿童数
    familyId string 家庭ID
    familyName string 家庭名称
    sortOrder int 排序序号
    youngChildCount int 小童数
  folderId string 所属文件夹ID
  groupChatQrUrl string 群聊二维码URL
  groupRoomId string 企微群聊ID(用于会话存档展示群消息)
  isBooking boolean 是否预约产品
  itineraryDays 行程天VO[] 行程天列表
    dayId string 行程天ID
    dayNumber int 天数编号
    dayTitle string 天标题
    hotels 每日酒店VO[] 当日酒店列表
    nodes 行程节点VO[] 行程节点列表
    restaurants 用餐选项VO[] 当日用餐列表
    routeSummary string 路线概览
  lineId string 产品线ID
  lineName string 产品线名称
  lineSubtitle string 产品线副标题
  maxAdultPerOrder int 每单最大成人数(null=不限)
  maxChildPerOrder int 每单最大儿童数(null=不限)
  mchId string 商户号
  minAdultPerOrder int 每单最少成人数(null=默认1)
  name string 产品名称
  paymentMode string 支付模式FULL=全款 DEPOSIT=定金+尾款
  pricing 产品定价配置VO 定价配置
    adultExtraBed number 成人加床费
    babyPrice number 婴儿价
    balanceDueDays int 尾款支付截止天数出发前N天
    childDiscountPercent number 儿童折扣百分比
    childNoBed number 儿童不占床价
    childWithBed number 儿童占床价
    companionPrice number 陪同人员价格
    customTotalPrice number 定制产品总价CUSTOM模式下使用
    depositAmount number 定金金额
    depositRatio int 定金比例(百分比)
    extraCostPerPerson number 每人额外成本
    insuranceFee number 保险费用
    markupPercent number 加价百分比PERCENT模式下使用
    maxGroupSize int 最大成团人数
    mealBudget number 餐费预算
    minGroupSize int 最小成团人数
    paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
    pricingId string 定价配置ID
    pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
    productId string 产品ID
    profitAmount number 利润金额FIXED模式下使用
    profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
    singleRoomDiff number 单房差
    vehicleModelIds string[] 车型ID列表
    vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
  productId string 产品ID
  productNo string 产品编号
  productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
  publishedAt string 发布时间
  routeMapUrl string 路径图URL后端自动生成
  seasons string[] 适用季节列表
  showChatGroup boolean 是否显示群聊入口
  showReview boolean 是否显示评价
  showTripDistance boolean 是否显示行程距离
  showTripTime boolean 是否显示行程时间
  sortOrder int 排序序号
  staffConfigs 产品人员配置VO[] 人员配置列表(定制产品)
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    sortOrder int 排序序号
    staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
    staffTypeName string 人员类型名称
  startPrice number 起步价:未来一年价格日历中最低成人售价
  status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED
  subtitle string 副标题
  suppliesList 产品物资VO[] 物资列表
    billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
    costPerPerson number 每人成本
    coverUrl string 封面图URL
    dayNumber int 天数编号scope=DAY时生效
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    scope string 适用范围ALL=整个行程 DAY=指定天
    sortOrder int 排序序号
    suppliesId string 物资ID
    suppliesName string 物资名称
  tags string[] 产品标签列表
  teamExperienceYears int 团队经验年数
  tripDays int 行程天数
  tripNights int 行程晚数
  updateBy string 更新人ID
  updateTime string 更新时间
  warmTips string 温馨提示
  youngChildCount int 小童人数
message string 响应消息

PUT /admin/product/item/{productId}

更新产品

更新产品基本信息,仅传入需要修改的字段,未传字段不会被覆盖。

权限说明

  • 普通管理员只能编辑自己创建的产品
  • SUPER_ADMIN 可编辑所有产品

注意:行程、定价、价格日历等通过各自独立的接口管理,不在此接口中处理。

关联字典

  • product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 更新产品请求

字段 类型 必填 说明
adultCount int 成人人数
babyCount int 婴儿人数
bookingNotice string 预定须知
cancelPolicy string 退改政策
carouselImages string[] 轮播图列表
carouselVideoUrl string 轮播视频URL
chatMessages 群聊消息VO[] 群聊消息列表
  avatar string 用户头像URLtype=user时有效
  text string 消息内容
  type string 消息类型: user/creator
childCount int 儿童人数
creatorAvatarUrl string 定制师头像URL
creatorIntro string 创作者寄语
customizerId string 定制师ID
departureCity string 出发城市
destinationCity string 目的地城市
folderId string 所属文件夹ID
groupChatQrUrl string 群聊二维码URL
groupRoomId string 企微群聊ID(用于会话存档展示群消息)
isBooking boolean 是否预约产品
lineId string 产品线ID
lineSubtitle string 产品线副标题
maxAdultPerOrder int 每单最大成人数(不填则不限制)
maxChildPerOrder int 每单最大儿童数(不填则不限制)
mchId string 商户号shanhe/wenlu
minAdultPerOrder int 每单最少成人数(不填默认1)
name string 产品名称
seasons string[] 适用季节列表
showChatGroup boolean 是否显示群聊入口
showReview boolean 是否显示评价
showTripDistance boolean 是否显示行程距离
showTripTime boolean 是否显示行程时间
sortOrder int 排序序号
subtitle string 副标题
tags string[] 产品标签列表
teamExperienceYears int 团队经验年数
tripDays int 行程天数
warmTips string 温馨提示
youngChildCount int 小童人数

响应 统一响应结果«产品详情VO»

字段 类型 必填 说明
code int 状态码
data 产品详情VO 响应数据
  adultCount int 成人人数
  babyCount int 婴儿人数
  benefitsDescription 权益分组[] 权益说明(静态,所有产品相同)
    items 权益项[] 权益项列表
    title string 分组标题,如:儿童权益 (1.2m以下)
  bookingNotice string 预定须知
  cancelPolicy string 退改政策
  carouselImages string[] 轮播图列表
  carouselVideoUrl string 轮播视频URL
  chatMessages 群聊消息VO[] 群聊消息列表
    avatar string 用户头像URLtype=user时有效
    text string 消息内容
    type string 消息类型: user/creator
  childCount int 儿童人数
  costItems 产品成本项VO[] 成本项列表
    category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
    description string 成本项描述
    id string 成本项ID
    sortOrder int 排序序号
    title string 成本项标题
    type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  creatorAvatarUrl string 定制师头像URL
  creatorIntro string 创作者寄语
  customFees 产品自定义费用项VO[] 自定义费用项列表
    description string 费用说明
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    feeAmount number 费用金额
    feeName string 费用项名称
    feeUnit string 费用单位
    id string 费用项ID
    sortOrder int 排序序号
  customizerId string 定制师ID
  departureCity string 出发城市
  destinationCities string[] 途经城市列表(从行程节点资源去重提取)
  destinationCity string 目的地城市
  families 家庭分组VO[] 家庭分组列表(定制产品)
    adultCount int 成人数
    babyCount int 幼童数
    childCount int 儿童数
    familyId string 家庭ID
    familyName string 家庭名称
    sortOrder int 排序序号
    youngChildCount int 小童数
  folderId string 所属文件夹ID
  groupChatQrUrl string 群聊二维码URL
  groupRoomId string 企微群聊ID(用于会话存档展示群消息)
  isBooking boolean 是否预约产品
  itineraryDays 行程天VO[] 行程天列表
    dayId string 行程天ID
    dayNumber int 天数编号
    dayTitle string 天标题
    hotels 每日酒店VO[] 当日酒店列表
    nodes 行程节点VO[] 行程节点列表
    restaurants 用餐选项VO[] 当日用餐列表
    routeSummary string 路线概览
  lineId string 产品线ID
  lineName string 产品线名称
  lineSubtitle string 产品线副标题
  maxAdultPerOrder int 每单最大成人数(null=不限)
  maxChildPerOrder int 每单最大儿童数(null=不限)
  mchId string 商户号
  minAdultPerOrder int 每单最少成人数(null=默认1)
  name string 产品名称
  paymentMode string 支付模式FULL=全款 DEPOSIT=定金+尾款
  pricing 产品定价配置VO 定价配置
    adultExtraBed number 成人加床费
    babyPrice number 婴儿价
    balanceDueDays int 尾款支付截止天数出发前N天
    childDiscountPercent number 儿童折扣百分比
    childNoBed number 儿童不占床价
    childWithBed number 儿童占床价
    companionPrice number 陪同人员价格
    customTotalPrice number 定制产品总价CUSTOM模式下使用
    depositAmount number 定金金额
    depositRatio int 定金比例(百分比)
    extraCostPerPerson number 每人额外成本
    insuranceFee number 保险费用
    markupPercent number 加价百分比PERCENT模式下使用
    maxGroupSize int 最大成团人数
    mealBudget number 餐费预算
    minGroupSize int 最小成团人数
    paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
    pricingId string 定价配置ID
    pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
    productId string 产品ID
    profitAmount number 利润金额FIXED模式下使用
    profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
    singleRoomDiff number 单房差
    vehicleModelIds string[] 车型ID列表
    vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
  productId string 产品ID
  productNo string 产品编号
  productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
  publishedAt string 发布时间
  routeMapUrl string 路径图URL后端自动生成
  seasons string[] 适用季节列表
  showChatGroup boolean 是否显示群聊入口
  showReview boolean 是否显示评价
  showTripDistance boolean 是否显示行程距离
  showTripTime boolean 是否显示行程时间
  sortOrder int 排序序号
  staffConfigs 产品人员配置VO[] 人员配置列表(定制产品)
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    sortOrder int 排序序号
    staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
    staffTypeName string 人员类型名称
  startPrice number 起步价:未来一年价格日历中最低成人售价
  status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED
  subtitle string 副标题
  suppliesList 产品物资VO[] 物资列表
    billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
    costPerPerson number 每人成本
    coverUrl string 封面图URL
    dayNumber int 天数编号scope=DAY时生效
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    scope string 适用范围ALL=整个行程 DAY=指定天
    sortOrder int 排序序号
    suppliesId string 物资ID
    suppliesName string 物资名称
  tags string[] 产品标签列表
  teamExperienceYears int 团队经验年数
  tripDays int 行程天数
  tripNights int 行程晚数
  updateBy string 更新人ID
  updateTime string 更新时间
  warmTips string 温馨提示
  youngChildCount int 小童人数
message string 响应消息

DELETE /admin/product/item/{productId}

删除产品

软删除产品(设置 deleted_at 字段)。

权限说明普通管理员只能删除自己创建的产品,SUPER_ADMIN 可删除所有产品。 限制已上架PUBLISHED的产品不能直接删除,需先下架。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«Void»


POST /admin/product/item/{productId}/copy

复制产品

深度复制产品,包括行程天、行程节点、定价配置、住宿、餐饮、物资、人员配置等所有关联数据。

复制后的产品状态为 DRAFT,名称自动添加"(副本)"后缀。 适用场景:基于已有产品快速创建新产品。

关联字典

  • product_type产品类型,返回字段CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_status产品状态,复制后固定为 DRAFT

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«产品详情VO»

字段 类型 必填 说明
code int 状态码
data 产品详情VO 响应数据
  adultCount int 成人人数
  babyCount int 婴儿人数
  benefitsDescription 权益分组[] 权益说明(静态,所有产品相同)
    items 权益项[] 权益项列表
    title string 分组标题,如:儿童权益 (1.2m以下)
  bookingNotice string 预定须知
  cancelPolicy string 退改政策
  carouselImages string[] 轮播图列表
  carouselVideoUrl string 轮播视频URL
  chatMessages 群聊消息VO[] 群聊消息列表
    avatar string 用户头像URLtype=user时有效
    text string 消息内容
    type string 消息类型: user/creator
  childCount int 儿童人数
  costItems 产品成本项VO[] 成本项列表
    category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
    description string 成本项描述
    id string 成本项ID
    sortOrder int 排序序号
    title string 成本项标题
    type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  creatorAvatarUrl string 定制师头像URL
  creatorIntro string 创作者寄语
  customFees 产品自定义费用项VO[] 自定义费用项列表
    description string 费用说明
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    feeAmount number 费用金额
    feeName string 费用项名称
    feeUnit string 费用单位
    id string 费用项ID
    sortOrder int 排序序号
  customizerId string 定制师ID
  departureCity string 出发城市
  destinationCities string[] 途经城市列表(从行程节点资源去重提取)
  destinationCity string 目的地城市
  families 家庭分组VO[] 家庭分组列表(定制产品)
    adultCount int 成人数
    babyCount int 幼童数
    childCount int 儿童数
    familyId string 家庭ID
    familyName string 家庭名称
    sortOrder int 排序序号
    youngChildCount int 小童数
  folderId string 所属文件夹ID
  groupChatQrUrl string 群聊二维码URL
  groupRoomId string 企微群聊ID(用于会话存档展示群消息)
  isBooking boolean 是否预约产品
  itineraryDays 行程天VO[] 行程天列表
    dayId string 行程天ID
    dayNumber int 天数编号
    dayTitle string 天标题
    hotels 每日酒店VO[] 当日酒店列表
    nodes 行程节点VO[] 行程节点列表
    restaurants 用餐选项VO[] 当日用餐列表
    routeSummary string 路线概览
  lineId string 产品线ID
  lineName string 产品线名称
  lineSubtitle string 产品线副标题
  maxAdultPerOrder int 每单最大成人数(null=不限)
  maxChildPerOrder int 每单最大儿童数(null=不限)
  mchId string 商户号
  minAdultPerOrder int 每单最少成人数(null=默认1)
  name string 产品名称
  paymentMode string 支付模式FULL=全款 DEPOSIT=定金+尾款
  pricing 产品定价配置VO 定价配置
    adultExtraBed number 成人加床费
    babyPrice number 婴儿价
    balanceDueDays int 尾款支付截止天数出发前N天
    childDiscountPercent number 儿童折扣百分比
    childNoBed number 儿童不占床价
    childWithBed number 儿童占床价
    companionPrice number 陪同人员价格
    customTotalPrice number 定制产品总价CUSTOM模式下使用
    depositAmount number 定金金额
    depositRatio int 定金比例(百分比)
    extraCostPerPerson number 每人额外成本
    insuranceFee number 保险费用
    markupPercent number 加价百分比PERCENT模式下使用
    maxGroupSize int 最大成团人数
    mealBudget number 餐费预算
    minGroupSize int 最小成团人数
    paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
    pricingId string 定价配置ID
    pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
    productId string 产品ID
    profitAmount number 利润金额FIXED模式下使用
    profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
    singleRoomDiff number 单房差
    vehicleModelIds string[] 车型ID列表
    vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
  productId string 产品ID
  productNo string 产品编号
  productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
  publishedAt string 发布时间
  routeMapUrl string 路径图URL后端自动生成
  seasons string[] 适用季节列表
  showChatGroup boolean 是否显示群聊入口
  showReview boolean 是否显示评价
  showTripDistance boolean 是否显示行程距离
  showTripTime boolean 是否显示行程时间
  sortOrder int 排序序号
  staffConfigs 产品人员配置VO[] 人员配置列表(定制产品)
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    sortOrder int 排序序号
    staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
    staffTypeName string 人员类型名称
  startPrice number 起步价:未来一年价格日历中最低成人售价
  status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED
  subtitle string 副标题
  suppliesList 产品物资VO[] 物资列表
    billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
    costPerPerson number 每人成本
    coverUrl string 封面图URL
    dayNumber int 天数编号scope=DAY时生效
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    scope string 适用范围ALL=整个行程 DAY=指定天
    sortOrder int 排序序号
    suppliesId string 物资ID
    suppliesName string 物资名称
  tags string[] 产品标签列表
  teamExperienceYears int 团队经验年数
  tripDays int 行程天数
  tripNights int 行程晚数
  updateBy string 更新人ID
  updateTime string 更新时间
  warmTips string 温馨提示
  youngChildCount int 小童人数
message string 响应消息

POST /admin/product/item/{productId}/generate-route-map

手动生成路径图

根据产品行程节点的经纬度信息,调用地图API生成行程路径图。

通常在行程编辑完成后手动触发,生成结果为 OSS 图片 URL。 如果行程节点没有经纬度信息,则无法生成路径图。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«string»

字段 类型 必填 说明
code int 状态码
data string 响应数据
message string 响应消息

PUT /admin/product/item/{productId}/move

移动产品到文件夹

将产品移动到指定文件夹,或移出文件夹folderId 传空字符串或 null。 文件夹用于组织管理产品,不影响产品的业务逻辑。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 产品移动请求

字段 类型 必填 说明
folderId string 目标文件夹ID,为空则移动到根目录

响应 统一响应结果«Void»


POST /admin/product/item/{productId}/share-link

生成定制产品分享链接

为 CUSTOM定制产品生成小程序分享链接,用于定制师发送给客户查看方案。

限制:仅 CUSTOM 类型且状态为 COMPLETED 的产品可生成。 权限普通管理员只能为自己创建的产品生成链接,SUPER_ADMIN 不受限制。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«分享链接响应»

字段 类型 必填 说明
code int 状态码
data 分享链接响应 响应数据
  expireTime object 链接过期时间(Unix时间戳)
  productId long 产品ID
  productName string 产品名称
  urlLink string 微信URL Link
message string 响应消息

PUT /admin/product/item/{productId}/status

产品状态变更(上架/下架/完成)

根据产品类型,状态流转规则不同:

核心产品(CORE) / 小蒙马(GROUP):支持上架/下架,需企微审批

  • DRAFT → PENDING_REVIEW → REVIEWED → PUBLISHED上架
  • PUBLISHED → UNPUBLISHED下架
  • UNPUBLISHED → PUBLISHED重新上架
  • REJECTED → DRAFT驳回后重新编辑

定制产品(CUSTOM):仅支持完成,无上架/下架概念

  • DRAFT → COMPLETED定制师完成设计
  • COMPLETED → ORDERED客户下单,系统自动变更
  • ORDERED → COMPLETED订单取消/退款后回退)

关联字典

  • product_type产品类型,影响状态流转规则CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_status产品状态,请求+返回字段DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 产品状态变更请求

字段 类型 必填 说明
reason string 状态变更原因(驳回时必填;上架/下架审批时可填)
status string 目标状态。核心/小蒙马DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED;定制产品COMPLETED

响应 统一响应结果«Void»


产品线管理

POST /admin/product/line

创建产品线

创建产品线,用于对产品进行业务分类(如:亲子游、蜜月游、探险游等)。 产品线在小程序端可作为筛选条件,帮助用户快速找到感兴趣的产品类别。

请求体 创建产品线请求

字段 类型 必填 说明
coverImageUrl string 封面图URL
description string 产品线描述
name string 产品线名称
sortOrder int 排序序号

响应 统一响应结果«产品线VO»

字段 类型 必填 说明
code int 状态码
data 产品线VO 响应数据
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  description string 产品线描述
  lineId string 产品线ID
  name string 产品线名称
  productCount int 关联产品数量
  sortOrder int 排序序号
  status string 状态ACTIVE=启用 INACTIVE=停用
  updateTime string 更新时间
message string 响应消息

GET /admin/product/line/active

所有启用的产品线

获取所有启用状态的产品线,不分页。 适用于产品编辑时的产品线下拉选择,以及小程序端的筛选项。

响应 统一响应结果«List«产品线VO»»

字段 类型 必填 说明
code int 状态码
data 产品线VO[] 响应数据
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  description string 产品线描述
  lineId string 产品线ID
  name string 产品线名称
  productCount int 关联产品数量
  sortOrder int 排序序号
  status string 状态ACTIVE=启用 INACTIVE=停用
  updateTime string 更新时间
message string 响应消息

GET /admin/product/line/list

产品线列表(分页)

分页查询产品线列表,支持按名称关键词筛选。

查询参数

参数 类型 必填 说明 示例
keyword string 搜索关键词 丽江
page integer(int32) 页码 1
pageSize integer(int32) 每页条数 20
status string 产品线状态ACTIVE=启用 INACTIVE=停用 ACTIVE

响应 统一响应结果«分页结果«产品线VO»»

字段 类型 必填 说明
code int 状态码
data 分页结果«产品线VO» 响应数据
  page int 当前页码
  pageSize int 每页条数
  records 产品线VO[] 数据列表
    coverImageUrl string 封面图URL
    createBy string 创建人ID
    createTime string 创建时间
    description string 产品线描述
    lineId string 产品线ID
    name string 产品线名称
    productCount int 关联产品数量
    sortOrder int 排序序号
    status string 状态ACTIVE=启用 INACTIVE=停用
    updateTime string 更新时间
  total int 总记录数
message string 响应消息

GET /admin/product/line/{lineId}

产品线详情

获取指定产品线的完整信息。

路径参数

参数 类型 必填 说明
lineId integer 产品线ID

响应 统一响应结果«产品线VO»

字段 类型 必填 说明
code int 状态码
data 产品线VO 响应数据
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  description string 产品线描述
  lineId string 产品线ID
  name string 产品线名称
  productCount int 关联产品数量
  sortOrder int 排序序号
  status string 状态ACTIVE=启用 INACTIVE=停用
  updateTime string 更新时间
message string 响应消息

PUT /admin/product/line/{lineId}

更新产品线

更新产品线名称、描述、状态等信息。

路径参数

参数 类型 必填 说明
lineId integer 产品线ID

请求体 更新产品线请求

字段 类型 必填 说明
coverImageUrl string 封面图URL
description string 产品线描述
name string 产品线名称
sortOrder int 排序序号
status string 产品线状态ACTIVE=启用 INACTIVE=停用

响应 统一响应结果«产品线VO»

字段 类型 必填 说明
code int 状态码
data 产品线VO 响应数据
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  description string 产品线描述
  lineId string 产品线ID
  name string 产品线名称
  productCount int 关联产品数量
  sortOrder int 排序序号
  status string 状态ACTIVE=启用 INACTIVE=停用
  updateTime string 更新时间
message string 响应消息

DELETE /admin/product/line/{lineId}

删除产品线

删除产品线(软删除)。已关联产品的产品线仍可删除,但关联产品的产品线字段不会被清空。

路径参数

参数 类型 必填 说明
lineId integer 产品线ID

响应 统一响应结果«Void»


定价与费用管理

POST /admin/product/item/{productId}/cost-item

添加费用项

添加产品的费用包含/不包含说明项。

用于在产品详情页展示"费用包含"和"费用不包含"信息。 仅用于前端展示,不参与报价计算。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 成本项请求

字段 类型 必填 说明
category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
description string 成本项描述
sortOrder int 排序序号
title string 成本项标题
type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用

响应 统一响应结果«产品成本项VO»

字段 类型 必填 说明
code int 状态码
data 产品成本项VO 响应数据
  category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
  description string 成本项描述
  id string 成本项ID
  sortOrder int 排序序号
  title string 成本项标题
  type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
message string 响应消息

PUT /admin/product/item/{productId}/cost-item/{itemId}

更新费用项

更新费用包含/不包含说明项的内容。仅用于前端展示,不参与报价计算。

路径参数

参数 类型 必填 说明
itemId integer 费用项ID
productId integer 产品ID

请求体 成本项请求

字段 类型 必填 说明
category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
description string 成本项描述
sortOrder int 排序序号
title string 成本项标题
type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用

响应 统一响应结果«产品成本项VO»

字段 类型 必填 说明
code int 状态码
data 产品成本项VO 响应数据
  category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
  description string 成本项描述
  id string 成本项ID
  sortOrder int 排序序号
  title string 成本项标题
  type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
message string 响应消息

DELETE /admin/product/item/{productId}/cost-item/{itemId}

删除费用项

删除费用包含/不包含说明项。

路径参数

参数 类型 必填 说明
itemId integer 费用项ID
productId integer 产品ID

响应 统一响应结果«Void»


GET /admin/product/item/{productId}/cost-items

获取费用项列表

获取产品的所有费用包含/不包含说明项列表。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«产品成本项VO»»

字段 类型 必填 说明
code int 状态码
data 产品成本项VO[] 响应数据
  category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
  description string 成本项描述
  id string 成本项ID
  sortOrder int 排序序号
  title string 成本项标题
  type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
message string 响应消息

POST /admin/product/item/{productId}/custom-fee

添加自定义费用

添加产品级别的自定义费用项,直接设置金额,参与成本自动计算。

与额外成本关联不同,自定义费用不关联资源服务的费用项,而是直接指定费用名称和金额。 适用于临时性或一次性的费用。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 自定义费用项请求

字段 类型 必填 说明
description string 费用说明
familyIds string[] 所属家庭ID列表定制产品按家庭分配
feeAmount number 费用金额
feeName string 费用项名称
feeUnit string 费用单位
sortOrder int 排序序号

响应 统一响应结果«产品自定义费用项VO»

字段 类型 必填 说明
code int 状态码
data 产品自定义费用项VO 响应数据
  description string 费用说明
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  feeAmount number 费用金额
  feeName string 费用项名称
  feeUnit string 费用单位
  id string 费用项ID
  sortOrder int 排序序号
message string 响应消息

PUT /admin/product/item/{productId}/custom-fee/{feeId}

更新自定义费用

更新自定义费用项的名称、金额等信息。修改后会影响成本自动计算结果。

路径参数

参数 类型 必填 说明
feeId integer 自定义费用ID
productId integer 产品ID

请求体 自定义费用项请求

字段 类型 必填 说明
description string 费用说明
familyIds string[] 所属家庭ID列表定制产品按家庭分配
feeAmount number 费用金额
feeName string 费用项名称
feeUnit string 费用单位
sortOrder int 排序序号

响应 统一响应结果«产品自定义费用项VO»

字段 类型 必填 说明
code int 状态码
data 产品自定义费用项VO 响应数据
  description string 费用说明
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  feeAmount number 费用金额
  feeName string 费用项名称
  feeUnit string 费用单位
  id string 费用项ID
  sortOrder int 排序序号
message string 响应消息

DELETE /admin/product/item/{productId}/custom-fee/{feeId}

删除自定义费用

删除自定义费用项。删除后该费用不再计入成本自动计算。

路径参数

参数 类型 必填 说明
feeId integer 自定义费用ID
productId integer 产品ID

响应 统一响应结果«Void»


GET /admin/product/item/{productId}/custom-fees

获取自定义费用列表

获取产品的所有自定义费用项列表。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«产品自定义费用项VO»»

字段 类型 必填 说明
code int 状态码
data 产品自定义费用项VO[] 响应数据
  description string 费用说明
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  feeAmount number 费用金额
  feeName string 费用项名称
  feeUnit string 费用单位
  id string 费用项ID
  sortOrder int 排序序号
message string 响应消息

POST /admin/product/item/{productId}/extra-cost

添加额外成本关联

关联资源服务中的费用项cost_item到产品,参与成本自动计算。

额外成本是指不包含在行程节点中、但需要计入总成本的费用。 例如:导游服务费、保险费、通讯费等固定运营开支。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 额外成本请求

字段 类型 必填 说明
costItemId long 额外成本项ID关联费用项资源
daily boolean 是否按天计算true=按天计算(乘以天数) false=整个行程一次
familyIds string[] 所属家庭ID列表定制产品按家庭分配
quantity int 数量
sortOrder int 排序序号

响应 统一响应结果«产品额外成本VO»

字段 类型 必填 说明
code int 状态码
data 产品额外成本VO 响应数据
  applyRole string 适用角色
  categoryCode string 费用类别编码
  costItemId string 费用项ID
  costItemName string 费用项名称
  daily boolean 是否按天计算true=按天计算(乘以天数) false=整个行程一次
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  sortOrder int 排序序号
  unit string 单位
  unitPrice number 单价
message string 响应消息

PUT /admin/product/item/{productId}/extra-cost/{ecId}

更新额外成本关联

更新额外成本关联的费用项、数量等信息。修改后会影响成本自动计算结果。

路径参数

参数 类型 必填 说明
ecId integer 额外成本ID
productId integer 产品ID

请求体 额外成本请求

字段 类型 必填 说明
costItemId long 额外成本项ID关联费用项资源
daily boolean 是否按天计算true=按天计算(乘以天数) false=整个行程一次
familyIds string[] 所属家庭ID列表定制产品按家庭分配
quantity int 数量
sortOrder int 排序序号

响应 统一响应结果«产品额外成本VO»

字段 类型 必填 说明
code int 状态码
data 产品额外成本VO 响应数据
  applyRole string 适用角色
  categoryCode string 费用类别编码
  costItemId string 费用项ID
  costItemName string 费用项名称
  daily boolean 是否按天计算true=按天计算(乘以天数) false=整个行程一次
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  sortOrder int 排序序号
  unit string 单位
  unitPrice number 单价
message string 响应消息

DELETE /admin/product/item/{productId}/extra-cost/{ecId}

删除额外成本关联

删除额外成本关联记录。删除后该费用项不再计入成本自动计算。

路径参数

参数 类型 必填 说明
ecId integer 额外成本ID
productId integer 产品ID

响应 统一响应结果«Void»


GET /admin/product/item/{productId}/extra-costs

获取额外成本关联列表

获取产品关联的所有额外成本项列表,包含费用项名称、金额等信息。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«产品额外成本VO»»

字段 类型 必填 说明
code int 状态码
data 产品额外成本VO[] 响应数据
  applyRole string 适用角色
  categoryCode string 费用类别编码
  costItemId string 费用项ID
  costItemName string 费用项名称
  daily boolean 是否按天计算true=按天计算(乘以天数) false=整个行程一次
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  sortOrder int 排序序号
  unit string 单位
  unitPrice number 单价
message string 响应消息

GET /admin/product/item/{productId}/price-calendar

获取月度价格日历

获取指定月份的价格日历数据列表。

每条数据包含:日期、成人售价/成本价、儿童售价/成本价、库存、状态OPEN/CLOSED等。 CORE/GROUP 产品:价格为单人价格,按人头 × 价格计算总价。 CUSTOM/ROUTE 产品:价格为整单总价,不乘以人头数。

路径参数

参数 类型 必填 说明
productId integer 产品ID

查询参数

参数 类型 必填 说明 示例
month integer(int32) 月份
year integer(int32) 年份

响应 统一响应结果«List«产品价格日历VO»»

字段 类型 必填 说明
code int 状态码
data 产品价格日历VO[] 响应数据
  adultCostPrice number 成人成本价
  adultProfit number 成人利润
  adultSellPrice number 成人售价
  childCostPrice number 儿童成本价
  childProfit number 儿童利润
  childSellPrice number 儿童售价
  costAutoCalc boolean 是否自动计算成本
  date string 日期
  id string 价格日历ID
  profitRate number 利润率(百分比)
  remark string 备注
  sold int 已售数量
  status string 状态OPEN=开放 CLOSED=关闭
  stock int 库存数量
message string 响应消息

POST /admin/product/item/{productId}/price-calendar

设置单日价格

设置或更新指定日期的价格和库存。如果该日期已有记录则更新,否则新建。

可设置成人售价/成本价、儿童售价/成本价、库存数量、状态OPEN/CLOSED。 状态为 CLOSED 的日期不会出现在小程序端的可选日期中。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 价格日历请求

字段 类型 必填 说明
adultCostPrice number 成人成本价
adultCount int 成人人数GROUP产品自动测算用
adultSellPrice number 成人售价
childCostPrice number 儿童成本价
childSellPrice number 儿童售价
costAutoCalc boolean 是否自动计算成本true时重新测算会自动更新此日期的价格
date string 日期
remark string 备注
status string 状态OPEN=开放预订 CLOSED=关闭(不可预订)
stock int 库存数量CORE/GROUP按人头扣减,CUSTOM/ROUTE按单扣减

响应 统一响应结果«产品价格日历VO»

字段 类型 必填 说明
code int 状态码
data 产品价格日历VO 响应数据
  adultCostPrice number 成人成本价
  adultProfit number 成人利润
  adultSellPrice number 成人售价
  childCostPrice number 儿童成本价
  childProfit number 儿童利润
  childSellPrice number 儿童售价
  costAutoCalc boolean 是否自动计算成本
  date string 日期
  id string 价格日历ID
  profitRate number 利润率(百分比)
  remark string 备注
  sold int 已售数量
  status string 状态OPEN=开放 CLOSED=关闭
  stock int 库存数量
message string 响应消息

POST /admin/product/item/{productId}/price-calendar/auto-calc

自动计算成本并同步到价格日历

根据出发日期和人数,自动计算成本并将结果写入价格日历。

与测算预览不同,此接口会实际更新价格日历数据。 计算逻辑:查询各资源的价格日历 → 汇总成本 → 应用公式和利润规则 → 写入结果。

关联字典

  • vehicle_type车型车辆费用成本计算

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 报价请求

字段 类型 必填 说明
adultCount int 成人人数
babyCount int 婴儿人数(按固定 babyPrice 计算)
childCount int 儿童人数(占床,按儿童价计算)
childNeedBed boolean 儿童是否加床true 时额外加收 childWithBed 费用)
departureDate string 出发日期
youngChildCount int 小童人数(不占床,按儿童价 × childDiscountPercent 折扣比例计算)

响应 统一响应结果«报价结果VO»

字段 类型 必填 说明
code int 状态码
data 报价结果VO 响应数据
  customFeeCost number 自定义费用合计(定制产品)
  dayCosts 每日成本明细[] 每日成本明细列表
    activityCost number 活动成本
    dayCostTotal number 当日成本合计
    dayNumber int 天数编号
    diningCost number 餐饮成本
    extraCost number 额外成本
    hotelCost number 酒店成本
    scenicCost number 景区成本
    serviceCost number 服务成本
    staffCost number 人员成本
    vehicleCost number 车辆成本
  extraCostItems 额外成本明细项[] 额外成本明细列表
    costItemName string 成本项名称
    daily boolean 是否按天计算
    days int 天数(按天计算时)
    quantity int 数量
    subtotal number 小计金额
    unitPrice number 单价
  extraCostPerPerson number 每人额外成本
  extraCostTotal number 额外成本合计
  familyCosts 家庭成本明细[] 家庭分组成本明细(定制产品,有分组时返回)
    activityCost number 活动成本
    adultCount int 成人数
    babyCost number 婴儿固定成本
    babyCount int 幼童数
    childCount int 儿童数
    costPerPerson number 人均成本(家庭成本/付费人头)
    customFeeCost number 自定义费用成本
    extraCost number 额外成本
    familyId string 家庭ID
    familyName string 家庭名称
    headcount int 人头数
    hotelCost number 酒店成本
    insuranceCost number 保险成本
    payingHeadcount int 付费人头数(不含幼童)
    personCosts 每人成本明细[] 每人分项成本列表
    scenicCost number 景区成本
    sellPricePerPerson number 人均售价(家庭售价/付费人头)
    serviceCost number 服务成本
    staffCost number 人员成本
    suppliesCost number 物资成本
    totalCost number 家庭成本合计
    totalProfit number 家庭利润合计
    totalSellPrice number 家庭售价合计
    vehicleCost number 车辆成本
    youngChildCount int 小童数
  grandTotalCost number 总成本合计
  grandTotalProfit number 总利润合计
  grandTotalSellPrice number 总售价合计
  insuranceFee number 保险费用
  profitRate number 利润率(百分比)
  staffCost number 人员成本
  suppliesCost number 物资成本
  totalAdultCost number 成人总成本
  totalAdultProfit number 成人总利润
  totalAdultSellPrice number 成人总售价
  totalBabyCost number 婴儿总成本
  totalBabySellPrice number 婴儿总售价
  totalChildCost number 儿童总成本
  totalChildSellPrice number 儿童总售价
  totalYoungChildCost number 小童总成本
  totalYoungChildSellPrice number 小童总售价
  warnings string[] 警告信息列表
message string 响应消息

POST /admin/product/item/{productId}/price-calendar/batch

批量设置价格

批量设置日期范围内的价格和库存,支持按星期筛选。

指定 startDate 和 endDate 日期范围,可选 selectedWeekdays 过滤星期几。 示例设置5月1日-5月31日的工作日周一到周五=[1,2,3,4,5])价格。 selectedWeekdays 为空时,范围内所有日期都会被设置。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 批量设置价格日历请求

字段 类型 必填 说明
adultCostPrice number 成人成本价
adultSellPrice number 成人售价
childCostPrice number 儿童成本价
childSellPrice number 儿童售价
costAutoCalc boolean 是否自动计算成本
endDate string 结束日期
remark string 备注
selectedWeekdays int[] 选中的星期(1=周一...7=周日),为空或包含全部则不过滤
startDate string 开始日期
status string 状态OPEN=开放 CLOSED=关闭
stock int 库存数量

响应 统一响应结果«List«产品价格日历VO»»

字段 类型 必填 说明
code int 状态码
data 产品价格日历VO[] 响应数据
  adultCostPrice number 成人成本价
  adultProfit number 成人利润
  adultSellPrice number 成人售价
  childCostPrice number 儿童成本价
  childProfit number 儿童利润
  childSellPrice number 儿童售价
  costAutoCalc boolean 是否自动计算成本
  date string 日期
  id string 价格日历ID
  profitRate number 利润率(百分比)
  remark string 备注
  sold int 已售数量
  status string 状态OPEN=开放 CLOSED=关闭
  stock int 库存数量
message string 响应消息

POST /admin/product/item/{productId}/price-calendar/calc-preview

测算预览(不写入数据库)

根据行程中的资源价格日历,自动计算指定日期的成本价和售价,仅预览不保存。

用于在设置价格日历前预览自动计算的结果。 计算逻辑:汇总当天所有行程节点关联资源的价格 → 应用公式引擎 → 加上利润。 GROUP 产品需要传 adultCount 参数(影响均摊计算)。

关联字典

  • vehicle_type车型车辆费用成本测算

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 成本预览请求

字段 类型 必填 说明
adultCount int 成人人数GROUP产品用
date string 日期

响应 统一响应结果«成本预览VO»

字段 类型 必填 说明
code int 状态码
data 成本预览VO 响应数据
  adultCostPrice number 成人成本价
  adultSellPrice number 成人售价
  childCostPrice number 儿童成本价
  childSellPrice number 儿童售价
  warnings string[] 警告信息列表
message string 响应消息

POST /admin/product/item/{productId}/price-calendar/recalculate

重新测算所有自动测算日期的价格

重新计算价格日历中所有 costAutoCalc=true 的日期的成本价和售价。

适用场景:资源价格调整后,批量刷新所有自动计算的价格日历。 返回更新的日期数量和详情。手动设置的价格costAutoCalc=false不受影响。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«Map«string,object»»

字段 类型 必填 说明
code int 状态码
data object 响应数据
message string 响应消息

GET /admin/product/item/{productId}/pricing

获取定价规则

获取产品的定价配置,包括定价模式、利润设置、儿童/婴儿价格、支付方式等。 如果产品尚未设置定价规则,返回 null。

关联字典

  • vehicle_type车型费用配置中车辆相关成本显示

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«产品定价配置VO»

字段 类型 必填 说明
code int 状态码
data 产品定价配置VO 响应数据
  adultExtraBed number 成人加床费
  babyPrice number 婴儿价
  balanceDueDays int 尾款支付截止天数出发前N天
  childDiscountPercent number 儿童折扣百分比
  childNoBed number 儿童不占床价
  childWithBed number 儿童占床价
  companionPrice number 陪同人员价格
  customTotalPrice number 定制产品总价CUSTOM模式下使用
  depositAmount number 定金金额
  depositRatio int 定金比例(百分比)
  extraCostPerPerson number 每人额外成本
  insuranceFee number 保险费用
  markupPercent number 加价百分比PERCENT模式下使用
  maxGroupSize int 最大成团人数
  mealBudget number 餐费预算
  minGroupSize int 最小成团人数
  paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
  pricingId string 定价配置ID
  pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
  productId string 产品ID
  profitAmount number 利润金额FIXED模式下使用
  profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
  singleRoomDiff number 单房差
  vehicleModelIds string[] 车型ID列表
  vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
message string 响应消息

POST /admin/product/item/{productId}/pricing

保存定价规则

保存或更新产品的定价配置(一个产品仅一条定价记录,重复调用为覆盖更新)。

定价模式

  • AUTO自动计算,通过公式引擎根据行程资源价格自动测算成本和售价
  • MANUAL手动定价,直接在价格日历中手动设置每日价格
  • CUSTOM定制定价,设置整单总价customTotalPrice,不按人头

利润模式AUTO 模式下生效):

  • FIXED固定金额加价,售价 = 成本 + profitAmount
  • PERCENT百分比加价,售价 = 成本 × (1 + markupPercent/100)

支付方式FULL=全款支付,DEPOSIT=定金+尾款(需设置 depositRatio 或 depositAmount

关联字典

  • vehicle_type车型费用配置中车辆相关成本计算

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 定价配置请求

字段 类型 必填 说明
adultExtraBed number 成人加床费
babyPrice number 婴儿固定价格(不随日期变化)
balanceDueDays int 尾款支付截止天数出发前N天必须支付尾款,超时可能取消订单
childDiscountPercent number 小童折扣百分比(小童价=儿童价×此百分比/100,如70表示打7折
childNoBed number 儿童不占床价(暂未使用,预留字段)
childWithBed number 儿童加床费childNeedBed=true时额外加收的费用
companionPrice number 陪同人员价格
customTotalPrice number 定制产品总价CUSTOM定价模式下使用,代表整单总价
depositAmount number 定金金额固定金额,与depositRatio二选一
depositRatio int 定金比例百分比,如30代表30%。与depositAmount二选一,优先使用比例
extraCostPerPerson number 每人额外成本
insuranceFee number 保险费用
markupPercent number 加价百分比PERCENT模式下使用
maxGroupSize int 最大成团人数CORE/GROUP产品用
mealBudget number 餐费预算
minGroupSize int 最小成团人数CORE/GROUP产品用,影响均摊成本计算
paymentType string 支付方式FULL=全款支付 DEPOSIT=定金+尾款分期支付
pricingMode string 定价模式AUTO=根据行程资源价格自动计算 MANUAL=手动在价格日历设置每日价格 CUSTOM=定制产品整单定价
profitAmount number 利润金额FIXED模式下使用
profitMode string 利润模式AUTO模式下生效FIXED=在成本基础上加固定金额 PERCENT=在成本基础上按百分比加价
singleRoomDiff number 单房差
vehicleModelIds long[] 车型ID列表

响应 统一响应结果«产品定价配置VO»

字段 类型 必填 说明
code int 状态码
data 产品定价配置VO 响应数据
  adultExtraBed number 成人加床费
  babyPrice number 婴儿价
  balanceDueDays int 尾款支付截止天数出发前N天
  childDiscountPercent number 儿童折扣百分比
  childNoBed number 儿童不占床价
  childWithBed number 儿童占床价
  companionPrice number 陪同人员价格
  customTotalPrice number 定制产品总价CUSTOM模式下使用
  depositAmount number 定金金额
  depositRatio int 定金比例(百分比)
  extraCostPerPerson number 每人额外成本
  insuranceFee number 保险费用
  markupPercent number 加价百分比PERCENT模式下使用
  maxGroupSize int 最大成团人数
  mealBudget number 餐费预算
  minGroupSize int 最小成团人数
  paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
  pricingId string 定价配置ID
  pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
  productId string 产品ID
  profitAmount number 利润金额FIXED模式下使用
  profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
  singleRoomDiff number 单房差
  vehicleModelIds string[] 车型ID列表
  vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
message string 响应消息

定价公式管理

POST /admin/product/formula/group

创建公式组

创建一个新的定价公式组。创建后默认为未激活状态。

公式组编码groupCode在同一产品类型下必须唯一。 建议命名规范:{产品类型}_PRICING_V{版本号},如 CORE_PRICING_V2。

关联字典

  • product_type产品类型,公式组所属类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

请求体 公式组请求

字段 类型 必填 说明
description string 描述
groupCode string 公式组编码
groupName string 公式组名称
productType string 适用产品类型CORE/ROUTE/CUSTOM/GROUP

响应 统一响应结果«公式组VO»

字段 类型 必填 说明
code int 状态码
data 公式组VO 响应数据
  createTime string 创建时间
  description string 描述
  groupCode string 公式组编码
  groupId string 公式组ID
  groupName string 公式组名称
  isActive boolean 是否激活
  productType string 适用产品类型
  stepCount int 步骤数量
  version int 版本号
message string 响应消息

GET /admin/product/formula/group/list

公式组列表

获取定价公式组列表,可按产品类型筛选。

公式引擎说明:定价公式用于自动计算产品的成本价和售价。 每种产品类型可以有多个公式组,但同一时间只能有一个激活的公式组。 公式组包含多个步骤,按顺序执行,每步计算一个中间变量或最终结果。

关联字典

  • product_type产品类型,筛选条件CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

查询参数

参数 类型 必填 说明 示例
productType string productType

响应 统一响应结果«List«公式组VO»»

字段 类型 必填 说明
code int 状态码
data 公式组VO[] 响应数据
  createTime string 创建时间
  description string 描述
  groupCode string 公式组编码
  groupId string 公式组ID
  groupName string 公式组名称
  isActive boolean 是否激活
  productType string 适用产品类型
  stepCount int 步骤数量
  version int 版本号
message string 响应消息

GET /admin/product/formula/group/{groupId}

公式组详情

获取公式组完整信息。

关联字典

  • product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

路径参数

参数 类型 必填 说明
groupId integer groupId

响应 统一响应结果«公式组VO»

字段 类型 必填 说明
code int 状态码
data 公式组VO 响应数据
  createTime string 创建时间
  description string 描述
  groupCode string 公式组编码
  groupId string 公式组ID
  groupName string 公式组名称
  isActive boolean 是否激活
  productType string 适用产品类型
  stepCount int 步骤数量
  version int 版本号
message string 响应消息

PUT /admin/product/formula/group/{groupId}

更新公式组

更新公式组信息。

关联字典

  • product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

路径参数

参数 类型 必填 说明
groupId integer groupId

请求体 公式组请求

字段 类型 必填 说明
description string 描述
groupCode string 公式组编码
groupName string 公式组名称
productType string 适用产品类型CORE/ROUTE/CUSTOM/GROUP

响应 统一响应结果«公式组VO»

字段 类型 必填 说明
code int 状态码
data 公式组VO 响应数据
  createTime string 创建时间
  description string 描述
  groupCode string 公式组编码
  groupId string 公式组ID
  groupName string 公式组名称
  isActive boolean 是否激活
  productType string 适用产品类型
  stepCount int 步骤数量
  version int 版本号
message string 响应消息

DELETE /admin/product/formula/group/{groupId}

删除公式组

删除公式组及其下所有步骤。 限制:已激活的公式组不能删除,需先激活其他公式组。

路径参数

参数 类型 必填 说明
groupId integer groupId

响应 统一响应结果«Void»


PUT /admin/product/formula/group/{groupId}/activate

激活公式组

激活指定公式组,同时自动停用同产品类型下的其他公式组。

同一产品类型下只能有一个激活的公式组,激活操作具有排他性。 激活后,该产品类型的自动成本计算将使用此公式组。

关联字典

  • product_type产品类型,同类型排他激活CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

路径参数

参数 类型 必填 说明
groupId integer groupId

响应 统一响应结果«Void»


GET /admin/product/formula/group/{groupId}/steps

公式步骤列表

获取公式组下所有步骤,按执行顺序executionOrder升序排列。 步骤按顺序依次执行,前一步的输出变量可作为后续步骤的输入。

路径参数

参数 类型 必填 说明
groupId integer groupId

响应 统一响应结果«List«公式步骤VO»»

字段 类型 必填 说明
code int 状态码
data 公式步骤VO[] 响应数据
  createTime string 创建时间
  description string 描述
  executionOrder int 执行顺序
  expression string 表达式
  formulaId string 公式ID
  groupId string 公式组ID
  inputVars string 输入变量(逗号分隔)
  isEnabled boolean 是否启用
  outputVar string 输出变量名
  stepCode string 步骤编码
  stepName string 步骤名称
  updateTime string 更新时间
message string 响应消息

POST /admin/product/formula/step

创建公式步骤

在公式组中创建一个计算步骤。

表达式语法:使用 Aviator 表达式引擎,支持数学运算、条件判断、内置函数等。 示例:baseCost = adultCount * adultUnitCost + childCount * childUnitCost

输入变量:可引用公式变量表中定义的变量,或前置步骤的输出变量。 输出变量:每个步骤必须指定一个输出变量名,供后续步骤引用。

请求体 公式步骤请求

字段 类型 必填 说明
changeNote string 变更说明
description string 描述
executionOrder int 执行顺序
expression string Aviator表达式支持数学运算、条件判断、内置函数;可引用前置步骤的输出变量和公式变量表中的变量
groupId long 公式组ID
inputVars string 输入变量(逗号分隔)
outputVar string 输出变量名
stepCode string 步骤编码
stepName string 步骤名称

响应 统一响应结果«公式步骤VO»

字段 类型 必填 说明
code int 状态码
data 公式步骤VO 响应数据
  createTime string 创建时间
  description string 描述
  executionOrder int 执行顺序
  expression string 表达式
  formulaId string 公式ID
  groupId string 公式组ID
  inputVars string 输入变量(逗号分隔)
  isEnabled boolean 是否启用
  outputVar string 输出变量名
  stepCode string 步骤编码
  stepName string 步骤名称
  updateTime string 更新时间
message string 响应消息

GET /admin/product/formula/step/{formulaId}

公式步骤详情

获取单个公式步骤的完整信息,包含表达式、输入/输出变量、执行顺序等。

路径参数

参数 类型 必填 说明
formulaId integer formulaId

响应 统一响应结果«公式步骤VO»

字段 类型 必填 说明
code int 状态码
data 公式步骤VO 响应数据
  createTime string 创建时间
  description string 描述
  executionOrder int 执行顺序
  expression string 表达式
  formulaId string 公式ID
  groupId string 公式组ID
  inputVars string 输入变量(逗号分隔)
  isEnabled boolean 是否启用
  outputVar string 输出变量名
  stepCode string 步骤编码
  stepName string 步骤名称
  updateTime string 更新时间
message string 响应消息

PUT /admin/product/formula/step/{formulaId}

更新公式步骤

更新公式步骤的表达式、输入/输出变量等。 每次更新会自动保存一个版本快照,可通过版本历史接口查看和回滚。

路径参数

参数 类型 必填 说明
formulaId integer formulaId

请求体 公式步骤请求

字段 类型 必填 说明
changeNote string 变更说明
description string 描述
executionOrder int 执行顺序
expression string Aviator表达式支持数学运算、条件判断、内置函数;可引用前置步骤的输出变量和公式变量表中的变量
groupId long 公式组ID
inputVars string 输入变量(逗号分隔)
outputVar string 输出变量名
stepCode string 步骤编码
stepName string 步骤名称

响应 统一响应结果«公式步骤VO»

字段 类型 必填 说明
code int 状态码
data 公式步骤VO 响应数据
  createTime string 创建时间
  description string 描述
  executionOrder int 执行顺序
  expression string 表达式
  formulaId string 公式ID
  groupId string 公式组ID
  inputVars string 输入变量(逗号分隔)
  isEnabled boolean 是否启用
  outputVar string 输出变量名
  stepCode string 步骤编码
  stepName string 步骤名称
  updateTime string 更新时间
message string 响应消息

DELETE /admin/product/formula/step/{formulaId}

删除公式步骤

删除指定的公式步骤。删除后其他步骤的执行顺序不会自动调整。 注意:如果后续步骤引用了被删步骤的输出变量,执行时会报错。

路径参数

参数 类型 必填 说明
formulaId integer formulaId

响应 统一响应结果«Void»


PUT /admin/product/formula/step/{formulaId}/rollback/{versionNum}

回滚公式步骤到指定版本

将公式步骤回滚到历史版本。 回滚操作会用历史版本的表达式、变量等覆盖当前内容,并创建一个新的版本记录。

路径参数

参数 类型 必填 说明
formulaId integer formulaId
versionNum integer versionNum

响应 统一响应结果«公式步骤VO»

字段 类型 必填 说明
code int 状态码
data 公式步骤VO 响应数据
  createTime string 创建时间
  description string 描述
  executionOrder int 执行顺序
  expression string 表达式
  formulaId string 公式ID
  groupId string 公式组ID
  inputVars string 输入变量(逗号分隔)
  isEnabled boolean 是否启用
  outputVar string 输出变量名
  stepCode string 步骤编码
  stepName string 步骤名称
  updateTime string 更新时间
message string 响应消息

PUT /admin/product/formula/step/{formulaId}/toggle

启用/禁用公式步骤

切换公式步骤的启用状态。 禁用的步骤在公式执行时会被跳过,不影响其他步骤的执行。 适用场景:临时跳过某个计算步骤进行调试或测试。

路径参数

参数 类型 必填 说明
formulaId integer formulaId

响应 统一响应结果«Void»


GET /admin/product/formula/step/{formulaId}/versions

公式步骤版本历史

获取公式步骤的所有历史版本列表,按版本号倒序。 每次更新步骤表达式会自动创建新版本,方便追溯和回滚。

路径参数

参数 类型 必填 说明
formulaId integer formulaId

响应 统一响应结果«List«公式版本历史VO»»

字段 类型 必填 说明
code int 状态码
data 公式版本历史VO[] 响应数据
  changeNote string 变更说明
  changedBy string 变更人ID
  createTime string 创建时间
  expression string 表达式
  formulaId string 公式ID
  versionId string 版本ID
  versionNum int 版本号
message string 响应消息

POST /admin/product/formula/test

测试公式执行

使用自定义变量值测试公式组的执行结果,不影响任何业务数据。

传入公式组ID和测试变量变量名→值的映射,返回每个步骤的执行结果。 适用于公式调试:验证表达式是否正确、计算结果是否符合预期。 如果某步骤执行出错,会在结果中标明错误信息。

请求体 公式测试请求

字段 类型 必填 说明
groupId long 公式组ID
variables object 测试变量(变量名→值)

响应 统一响应结果«公式测试结果VO»

字段 类型 必填 说明
code int 状态码
data 公式测试结果VO 响应数据
  errorMessage string 错误信息
  finalVariables object 最终变量表
  stepResults 步骤执行结果[] 各步骤执行结果
    errorMessage string 错误信息
    executionTimeMs long 执行耗时(毫秒)
    expression string 表达式
    outputValue object 输出值
    outputVar string 输出变量名
    stepCode string 步骤编码
    stepName string 步骤名称
    success boolean 是否成功
  success boolean 是否成功
  totalTimeMs long 总耗时(毫秒)
message string 响应消息

POST /admin/product/formula/var

创建公式变量

创建公式变量定义。变量名varName全局唯一,建议使用驼峰命名。 可指定适用的产品类型列表productTypes,为空则适用于所有类型。

关联字典

  • product_type产品类型,变量适用范围CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

请求体 公式变量请求

字段 类型 必填 说明
category string 变量分类INPUT/INTERMEDIATE/OUTPUT
defaultValue string 默认值
description string 描述
productTypes string[] 适用产品类型列表
varName string 变量名
varType string 变量类型DECIMAL/INTEGER/BOOLEAN/STRING

响应 统一响应结果«公式变量VO»

字段 类型 必填 说明
code int 状态码
data 公式变量VO 响应数据
  category string 变量分类INPUT/INTERMEDIATE/OUTPUT
  defaultValue string 默认值
  description string 描述
  productTypes string[] 适用产品类型列表
  varId string 变量ID
  varName string 变量名
  varType string 变量类型DECIMAL/INTEGER/BOOLEAN/STRING
message string 响应消息

GET /admin/product/formula/var/list

公式变量列表

获取公式变量列表,可按变量分类筛选。

变量分类

  • INPUT输入变量,从业务数据获取如成人人数、资源单价
  • INTERMEDIATE中间变量,由公式步骤计算得出
  • OUTPUT输出变量,最终报价结果如总成本、售价

查询参数

参数 类型 必填 说明 示例
category string category

响应 统一响应结果«List«公式变量VO»»

字段 类型 必填 说明
code int 状态码
data 公式变量VO[] 响应数据
  category string 变量分类INPUT/INTERMEDIATE/OUTPUT
  defaultValue string 默认值
  description string 描述
  productTypes string[] 适用产品类型列表
  varId string 变量ID
  varName string 变量名
  varType string 变量类型DECIMAL/INTEGER/BOOLEAN/STRING
message string 响应消息

PUT /admin/product/formula/var/{varId}

更新公式变量

更新公式变量定义。

关联字典

  • product_type产品类型,变量适用范围CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

路径参数

参数 类型 必填 说明
varId integer varId

请求体 公式变量请求

字段 类型 必填 说明
category string 变量分类INPUT/INTERMEDIATE/OUTPUT
defaultValue string 默认值
description string 描述
productTypes string[] 适用产品类型列表
varName string 变量名
varType string 变量类型DECIMAL/INTEGER/BOOLEAN/STRING

响应 统一响应结果«公式变量VO»

字段 类型 必填 说明
code int 状态码
data 公式变量VO 响应数据
  category string 变量分类INPUT/INTERMEDIATE/OUTPUT
  defaultValue string 默认值
  description string 描述
  productTypes string[] 适用产品类型列表
  varId string 变量ID
  varName string 变量名
  varType string 变量类型DECIMAL/INTEGER/BOOLEAN/STRING
message string 响应消息

DELETE /admin/product/formula/var/{varId}

删除公式变量

删除公式变量定义。 注意:如果有公式步骤引用了该变量,删除后步骤执行时会报错。建议先确认无引用再删除。

路径参数

参数 类型 必填 说明
varId integer varId

响应 统一响应结果«Void»


家庭分组管理

GET /admin/product/item/{productId}/families

获取家庭分组列表

获取产品的家庭分组列表,按排序序号升序。

仅适用于 CUSTOM定制产品。 家庭分组用于将定制产品的行程按家庭单位分配,每个家庭可以有不同的人数和行程安排。 行程节点通过 familyIds 字段关联到具体的家庭分组。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«家庭分组VO»»

字段 类型 必填 说明
code int 状态码
data 家庭分组VO[] 响应数据
  adultCount int 成人数
  babyCount int 幼童数
  childCount int 儿童数
  familyId string 家庭ID
  familyName string 家庭名称
  sortOrder int 排序序号
  youngChildCount int 小童数
message string 响应消息

POST /admin/product/item/{productId}/family

添加家庭分组

为 CUSTOM 定制产品添加一个家庭分组,指定家庭名称和各类型人数。 添加后可在行程节点中关联此家庭,实现按家庭分配行程。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 家庭分组保存请求

字段 类型 必填 说明
adultCount int 成人数
babyCount int 幼童数
childCount int 儿童数
familyName string 家庭名称
sortOrder int 排序序号
youngChildCount int 小童数

响应 统一响应结果«家庭分组VO»

字段 类型 必填 说明
code int 状态码
data 家庭分组VO 响应数据
  adultCount int 成人数
  babyCount int 幼童数
  childCount int 儿童数
  familyId string 家庭ID
  familyName string 家庭名称
  sortOrder int 排序序号
  youngChildCount int 小童数
message string 响应消息

PUT /admin/product/item/{productId}/family/{familyId}

更新家庭分组

更新家庭分组的名称、各类型人数等信息。 仅适用于 CUSTOM定制产品

路径参数

参数 类型 必填 说明
familyId integer 家庭ID
productId integer 产品ID

请求体 家庭分组保存请求

字段 类型 必填 说明
adultCount int 成人数
babyCount int 幼童数
childCount int 儿童数
familyName string 家庭名称
sortOrder int 排序序号
youngChildCount int 小童数

响应 统一响应结果«家庭分组VO»

字段 类型 必填 说明
code int 状态码
data 家庭分组VO 响应数据
  adultCount int 成人数
  babyCount int 幼童数
  childCount int 儿童数
  familyId string 家庭ID
  familyName string 家庭名称
  sortOrder int 排序序号
  youngChildCount int 小童数
message string 响应消息

DELETE /admin/product/item/{productId}/family/{familyId}

删除家庭分组

删除家庭分组。如果有行程节点通过 familyIds 关联了该分组,需要手动移除关联。 仅适用于 CUSTOM定制产品

路径参数

参数 类型 必填 说明
familyId integer 家庭ID
productId integer 产品ID

响应 统一响应结果«Void»


小程序-产品

GET /mp/product/list

产品列表C端

小程序端产品列表接口,仅返回已上架PUBLISHED的产品。

支持按产品类型、季节、行程天数、目的地、产品线、支付模式、定制师等筛选。 默认按 sortOrder 排序,也可按价格或行程天数排序。

关联字典

  • product_type产品类型,筛选条件CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

查询参数

参数 类型 必填 说明 示例
designerId integer(int64) 定制师ID创建者ID筛选 1893012345678901234
destination string 目的地筛选 丽江
keyword string 搜索关键词(产品名称) 丽江
lineId string 产品线ID筛选 1893012345678901234
page integer(int32) 页码 1
pageSize integer(int32) 每页条数 10
paymentMode string 支付模式筛选FULL=全款 DEPOSIT=定金+尾款 null=全部 DEPOSIT
productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团 CORE
season string 季节筛选 spring
sortBy string 排序字段price/tripDays/default(默认按sortOrder) price
sortDir string 排序方向asc/desc asc
tripDays integer(int32) 行程天数筛选 5

响应 统一响应结果«分页结果«C端产品列表VO»»

字段 类型 必填 说明
code int 状态码
data 分页结果«C端产品列表VO» 响应数据
  page int 当前页码
  pageSize int 每页条数
  records C端产品列表VO[] 数据列表
    coverImageUrl string 封面图URL
    creatorAvatarUrl string 定制师头像URL
    departureCity string 出发城市
    destinationCity string 目的地城市
    lineName string 产品线名称
    name string 产品名称
    paymentMode string 支付模式FULL=全款 DEPOSIT=定金+尾款
    productId string 产品ID
    productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
    routeMapUrl string 路径图URL
    seasons string[] 适用季节列表
    startPrice number 起步价(来自定价配置)
    subtitle string 副标题
    tags string[] 产品标签列表
    tripDays int 行程天数
    tripNights int 行程晚数
  total int 总记录数
message string 响应消息

GET /mp/product/{productId}

产品详情C端

小程序端产品详情接口,仅返回已上架PUBLISHED的产品。 包含完整的行程信息、定价配置、费用说明、创作者寄语等。 未上架的产品会返回 404 错误。

关联字典

  • product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品
  • product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«产品详情VO»

字段 类型 必填 说明
code int 状态码
data 产品详情VO 响应数据
  adultCount int 成人人数
  babyCount int 婴儿人数
  benefitsDescription 权益分组[] 权益说明(静态,所有产品相同)
    items 权益项[] 权益项列表
    title string 分组标题,如:儿童权益 (1.2m以下)
  bookingNotice string 预定须知
  cancelPolicy string 退改政策
  carouselImages string[] 轮播图列表
  carouselVideoUrl string 轮播视频URL
  chatMessages 群聊消息VO[] 群聊消息列表
    avatar string 用户头像URLtype=user时有效
    text string 消息内容
    type string 消息类型: user/creator
  childCount int 儿童人数
  costItems 产品成本项VO[] 成本项列表
    category string 成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER
    description string 成本项描述
    id string 成本项ID
    sortOrder int 排序序号
    title string 成本项标题
    type string 成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用
  coverImageUrl string 封面图URL
  createBy string 创建人ID
  createTime string 创建时间
  creatorAvatarUrl string 定制师头像URL
  creatorIntro string 创作者寄语
  customFees 产品自定义费用项VO[] 自定义费用项列表
    description string 费用说明
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    feeAmount number 费用金额
    feeName string 费用项名称
    feeUnit string 费用单位
    id string 费用项ID
    sortOrder int 排序序号
  customizerId string 定制师ID
  departureCity string 出发城市
  destinationCities string[] 途经城市列表(从行程节点资源去重提取)
  destinationCity string 目的地城市
  families 家庭分组VO[] 家庭分组列表(定制产品)
    adultCount int 成人数
    babyCount int 幼童数
    childCount int 儿童数
    familyId string 家庭ID
    familyName string 家庭名称
    sortOrder int 排序序号
    youngChildCount int 小童数
  folderId string 所属文件夹ID
  groupChatQrUrl string 群聊二维码URL
  groupRoomId string 企微群聊ID(用于会话存档展示群消息)
  isBooking boolean 是否预约产品
  itineraryDays 行程天VO[] 行程天列表
    dayId string 行程天ID
    dayNumber int 天数编号
    dayTitle string 天标题
    hotels 每日酒店VO[] 当日酒店列表
    nodes 行程节点VO[] 行程节点列表
    restaurants 用餐选项VO[] 当日用餐列表
    routeSummary string 路线概览
  lineId string 产品线ID
  lineName string 产品线名称
  lineSubtitle string 产品线副标题
  maxAdultPerOrder int 每单最大成人数(null=不限)
  maxChildPerOrder int 每单最大儿童数(null=不限)
  mchId string 商户号
  minAdultPerOrder int 每单最少成人数(null=默认1)
  name string 产品名称
  paymentMode string 支付模式FULL=全款 DEPOSIT=定金+尾款
  pricing 产品定价配置VO 定价配置
    adultExtraBed number 成人加床费
    babyPrice number 婴儿价
    balanceDueDays int 尾款支付截止天数出发前N天
    childDiscountPercent number 儿童折扣百分比
    childNoBed number 儿童不占床价
    childWithBed number 儿童占床价
    companionPrice number 陪同人员价格
    customTotalPrice number 定制产品总价CUSTOM模式下使用
    depositAmount number 定金金额
    depositRatio int 定金比例(百分比)
    extraCostPerPerson number 每人额外成本
    insuranceFee number 保险费用
    markupPercent number 加价百分比PERCENT模式下使用
    maxGroupSize int 最大成团人数
    mealBudget number 餐费预算
    minGroupSize int 最小成团人数
    paymentType string 支付方式FULL=全款 DEPOSIT=定金+尾款
    pricingId string 定价配置ID
    pricingMode string 定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价
    productId string 产品ID
    profitAmount number 利润金额FIXED模式下使用
    profitMode string 利润模式FIXED=固定金额 PERCENT=百分比
    singleRoomDiff number 单房差
    vehicleModelIds string[] 车型ID列表
    vehicleWarning string 车辆绑定警告信息(为空表示绑定成功)
  productId string 产品ID
  productNo string 产品编号
  productType string 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团
  publishedAt string 发布时间
  routeMapUrl string 路径图URL后端自动生成
  seasons string[] 适用季节列表
  showChatGroup boolean 是否显示群聊入口
  showReview boolean 是否显示评价
  showTripDistance boolean 是否显示行程距离
  showTripTime boolean 是否显示行程时间
  sortOrder int 排序序号
  staffConfigs 产品人员配置VO[] 人员配置列表(定制产品)
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    sortOrder int 排序序号
    staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
    staffTypeName string 人员类型名称
  startPrice number 起步价:未来一年价格日历中最低成人售价
  status string 产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED
  subtitle string 副标题
  suppliesList 产品物资VO[] 物资列表
    billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
    costPerPerson number 每人成本
    coverUrl string 封面图URL
    dayNumber int 天数编号scope=DAY时生效
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    id string 记录ID
    quantity int 数量
    scope string 适用范围ALL=整个行程 DAY=指定天
    sortOrder int 排序序号
    suppliesId string 物资ID
    suppliesName string 物资名称
  tags string[] 产品标签列表
  teamExperienceYears int 团队经验年数
  tripDays int 行程天数
  tripNights int 行程晚数
  updateBy string 更新人ID
  updateTime string 更新时间
  warmTips string 温馨提示
  youngChildCount int 小童人数
message string 响应消息

POST /mp/product/{productId}/quote

报价计算C端

小程序端报价计算接口,根据用户选择的日期和人数计算总价。 内部会校验产品是否存在且已上架。 详细计算逻辑参见管理后台的报价计算接口说明。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 报价请求

字段 类型 必填 说明
adultCount int 成人人数
babyCount int 婴儿人数(按固定 babyPrice 计算)
childCount int 儿童人数(占床,按儿童价计算)
childNeedBed boolean 儿童是否加床true 时额外加收 childWithBed 费用)
departureDate string 出发日期
youngChildCount int 小童人数(不占床,按儿童价 × childDiscountPercent 折扣比例计算)

响应 统一响应结果«报价结果VO»

字段 类型 必填 说明
code int 状态码
data 报价结果VO 响应数据
  customFeeCost number 自定义费用合计(定制产品)
  dayCosts 每日成本明细[] 每日成本明细列表
    activityCost number 活动成本
    dayCostTotal number 当日成本合计
    dayNumber int 天数编号
    diningCost number 餐饮成本
    extraCost number 额外成本
    hotelCost number 酒店成本
    scenicCost number 景区成本
    serviceCost number 服务成本
    staffCost number 人员成本
    vehicleCost number 车辆成本
  extraCostItems 额外成本明细项[] 额外成本明细列表
    costItemName string 成本项名称
    daily boolean 是否按天计算
    days int 天数(按天计算时)
    quantity int 数量
    subtotal number 小计金额
    unitPrice number 单价
  extraCostPerPerson number 每人额外成本
  extraCostTotal number 额外成本合计
  familyCosts 家庭成本明细[] 家庭分组成本明细(定制产品,有分组时返回)
    activityCost number 活动成本
    adultCount int 成人数
    babyCost number 婴儿固定成本
    babyCount int 幼童数
    childCount int 儿童数
    costPerPerson number 人均成本(家庭成本/付费人头)
    customFeeCost number 自定义费用成本
    extraCost number 额外成本
    familyId string 家庭ID
    familyName string 家庭名称
    headcount int 人头数
    hotelCost number 酒店成本
    insuranceCost number 保险成本
    payingHeadcount int 付费人头数(不含幼童)
    personCosts 每人成本明细[] 每人分项成本列表
    scenicCost number 景区成本
    sellPricePerPerson number 人均售价(家庭售价/付费人头)
    serviceCost number 服务成本
    staffCost number 人员成本
    suppliesCost number 物资成本
    totalCost number 家庭成本合计
    totalProfit number 家庭利润合计
    totalSellPrice number 家庭售价合计
    vehicleCost number 车辆成本
    youngChildCount int 小童数
  grandTotalCost number 总成本合计
  grandTotalProfit number 总利润合计
  grandTotalSellPrice number 总售价合计
  insuranceFee number 保险费用
  profitRate number 利润率(百分比)
  staffCost number 人员成本
  suppliesCost number 物资成本
  totalAdultCost number 成人总成本
  totalAdultProfit number 成人总利润
  totalAdultSellPrice number 成人总售价
  totalBabyCost number 婴儿总成本
  totalBabySellPrice number 婴儿总售价
  totalChildCost number 儿童总成本
  totalChildSellPrice number 儿童总售价
  totalYoungChildCost number 小童总成本
  totalYoungChildSellPrice number 小童总售价
  warnings string[] 警告信息列表
message string 响应消息

报价计算

GET /admin/product/item/{productId}/group-quote

GROUP产品报价按套餐组合

为 GROUP小蒙马拼团产品按团期批次和套餐组合计算报价。

GROUP 产品的价格由批次下的套餐组合combo决定,不同组合有不同的成人/儿童人数搭配和价格。 传入 batchId 指定团期批次,adultCount 用于匹配合适的套餐组合。

与普通报价的区别普通报价从价格日历取单价,GROUP 报价从套餐组合取打包价。

关联字典

  • product_type产品类型,仅限GROUPGROUP=小蒙马拼团

路径参数

参数 类型 必填 说明
productId integer 产品ID

查询参数

参数 类型 必填 说明 示例
adultCount integer(int32) 成人人数
batchId integer(int64) 团期ID

响应 统一响应结果«GROUP产品报价结果»

字段 类型 必填 说明
code int 状态码
data GROUP产品报价结果 响应数据
  adultCostPrice number 成人成本价(单房差+每人费用)
  adultSellPrice number 成人售价
  childCostPrice number 儿童成本价(每人费用,不含酒店)
  childSellPrice number 儿童售价
  code int 返回码: 0=成功, 1=非GROUP产品, 2=错误
  dayCosts 每日成本明细[] 每日成本明细
    activityCost number 活动成本
    dayCostTotal number 当日成本合计
    dayNumber int 天数编号
    diningCost number 餐饮成本
    extraCost number 额外成本
    hotelCost number 酒店成本
    scenicCost number 景区成本
    serviceCost number 服务成本
    staffCost number 人员成本
    vehicleCost number 车辆成本
  extraCostItems 额外成本明细项[] 额外成本明细列表
    costItemName string 成本项名称
    daily boolean 是否按天计算
    days int 天数(按天计算时)
    quantity int 数量
    subtotal number 小计金额
    unitPrice number 单价
  extraCostPerPerson number 额外成本(人均)
  extraCostTotal number 额外成本总额(团队)
  hotelCostTotal number 酒店总成本
  message string 错误信息(code!=0时)
  perPersonCost number 每人成本(不含酒店)
  profitMode string 利润模式
  singleRoomSupplement number 单房差(酒店总成本/2)
  warnings string[] 警告信息
message string 响应消息

POST /admin/product/item/{productId}/quote

计算报价

根据出发日期和人数组合,计算产品的完整报价。

计算流程

  1. 从价格日历获取指定日期的单价
  2. 按人数类型分别计算:成人 × 成人价、儿童 × 儿童价
  3. 小童按儿童价 × 折扣比例childDiscountPercent计算
  4. 婴儿使用固定价格babyPrice
  5. 儿童加床childNeedBed=true额外加收 childWithBed 费用

CUSTOM/ROUTE 产品:价格日历存的是整单总价,不按人头乘算。 GROUP 产品:建议使用 group-quote 接口,支持套餐组合报价。

关联字典

  • product_type产品类型,影响计算逻辑CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 报价请求

字段 类型 必填 说明
adultCount int 成人人数
babyCount int 婴儿人数(按固定 babyPrice 计算)
childCount int 儿童人数(占床,按儿童价计算)
childNeedBed boolean 儿童是否加床true 时额外加收 childWithBed 费用)
departureDate string 出发日期
youngChildCount int 小童人数(不占床,按儿童价 × childDiscountPercent 折扣比例计算)

响应 统一响应结果«报价结果VO»

字段 类型 必填 说明
code int 状态码
data 报价结果VO 响应数据
  customFeeCost number 自定义费用合计(定制产品)
  dayCosts 每日成本明细[] 每日成本明细列表
    activityCost number 活动成本
    dayCostTotal number 当日成本合计
    dayNumber int 天数编号
    diningCost number 餐饮成本
    extraCost number 额外成本
    hotelCost number 酒店成本
    scenicCost number 景区成本
    serviceCost number 服务成本
    staffCost number 人员成本
    vehicleCost number 车辆成本
  extraCostItems 额外成本明细项[] 额外成本明细列表
    costItemName string 成本项名称
    daily boolean 是否按天计算
    days int 天数(按天计算时)
    quantity int 数量
    subtotal number 小计金额
    unitPrice number 单价
  extraCostPerPerson number 每人额外成本
  extraCostTotal number 额外成本合计
  familyCosts 家庭成本明细[] 家庭分组成本明细(定制产品,有分组时返回)
    activityCost number 活动成本
    adultCount int 成人数
    babyCost number 婴儿固定成本
    babyCount int 幼童数
    childCount int 儿童数
    costPerPerson number 人均成本(家庭成本/付费人头)
    customFeeCost number 自定义费用成本
    extraCost number 额外成本
    familyId string 家庭ID
    familyName string 家庭名称
    headcount int 人头数
    hotelCost number 酒店成本
    insuranceCost number 保险成本
    payingHeadcount int 付费人头数(不含幼童)
    personCosts 每人成本明细[] 每人分项成本列表
    scenicCost number 景区成本
    sellPricePerPerson number 人均售价(家庭售价/付费人头)
    serviceCost number 服务成本
    staffCost number 人员成本
    suppliesCost number 物资成本
    totalCost number 家庭成本合计
    totalProfit number 家庭利润合计
    totalSellPrice number 家庭售价合计
    vehicleCost number 车辆成本
    youngChildCount int 小童数
  grandTotalCost number 总成本合计
  grandTotalProfit number 总利润合计
  grandTotalSellPrice number 总售价合计
  insuranceFee number 保险费用
  profitRate number 利润率(百分比)
  staffCost number 人员成本
  suppliesCost number 物资成本
  totalAdultCost number 成人总成本
  totalAdultProfit number 成人总利润
  totalAdultSellPrice number 成人总售价
  totalBabyCost number 婴儿总成本
  totalBabySellPrice number 婴儿总售价
  totalChildCost number 儿童总成本
  totalChildSellPrice number 儿童总售价
  totalYoungChildCost number 小童总成本
  totalYoungChildSellPrice number 小童总售价
  warnings string[] 警告信息列表
message string 响应消息

拼团批次管理

POST /admin/product/item/{productId}/batch

创建主批次

为 GROUP小蒙马拼团产品创建一个团期主批次。

仅适用于 GROUP 产品类型。 每个批次有独立的出发日期、报名截止日期、人数上限。 创建后状态为 PENDING待开放,需手动开启报名。

批次状态流转PENDING → ENROLLING报名中→ CONFIRMED已成团→ CLOSED已关闭 任意报名状态均可被解散DISBANDED

关联字典

  • product_type产品类型,仅限GROUPGROUP=小蒙马拼团
  • batch_status批次状态PENDING=待开放, ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭, DISBANDED=已解散, IN_PROGRESS=进行中, FINISHED=已结束

路径参数

参数 类型 必填 说明
productId integer productId

请求体 创建拼团批次请求

字段 类型 必填 说明
batchName string 批次名称
departureDate string 出发日期
enrollmentDeadline string 报名截止日期,必须早于出发日期
maxParticipants int 最大参团人数(报名人数达到上限后自动关闭报名)
minParticipants int 最低成团人数0=不限制,达到此人数自动变为CONFIRMED状态
remark string 备注说明
sortOrder int 排序序号(越小越靠前)

响应 统一响应结果«团批次VO»

字段 类型 必填 说明
code int 状态码
data 团批次VO 响应数据
  batchId string 批次ID
  batchLabel string 批次标签(简称)
  batchName string 批次名称
  batchNo string 批次编号
  batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
  createBy string 创建人ID
  createTime string 创建时间
  departureDate string 出发日期
  endDate string 结束日期
  enrolledCount int 已报名人数
  enrollmentDeadline string 报名截止日期
  maxParticipants int 最大人数
  minParticipants int 最少成团人数
  parentBatchId string 父批次ID(子批次时有值)
  productId string 产品ID
  remainingSlots int 剩余名额
  remark string 备注
  sortOrder int 排序
  subBatches 团批次VO[] 子批次列表(树形)
    batchId string 批次ID
    batchLabel string 批次标签(简称)
    batchName string 批次名称
    batchNo string 批次编号
    batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
    createBy string 创建人ID
    createTime string 创建时间
    departureDate string 出发日期
    endDate string 结束日期
    enrolledCount int 已报名人数
    enrollmentDeadline string 报名截止日期
    maxParticipants int 最大人数
    minParticipants int 最少成团人数
    parentBatchId string 父批次ID(子批次时有值)
    productId string 产品ID
    remainingSlots int 剩余名额
    remark string 备注
    sortOrder int 排序
    subBatches 团批次VO[] 子批次列表(树形)
    updateTime string 更新时间
  updateTime string 更新时间
message string 响应消息

GET /admin/product/item/{productId}/batch/list

批次列表(树形)

获取产品所有批次,以树形结构返回(主批次包含子批次列表)。 按出发日期升序排列,包含每个批次的报名人数和剩余名额。

关联字典

  • batch_status批次状态,返回字段PENDING=待开放, ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭, DISBANDED=已解散, IN_PROGRESS=进行中, FINISHED=已结束

路径参数

参数 类型 必填 说明
productId integer productId

响应 统一响应结果«List«团批次VO»»

字段 类型 必填 说明
code int 状态码
data 团批次VO[] 响应数据
  batchId string 批次ID
  batchLabel string 批次标签(简称)
  batchName string 批次名称
  batchNo string 批次编号
  batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
  createBy string 创建人ID
  createTime string 创建时间
  departureDate string 出发日期
  endDate string 结束日期
  enrolledCount int 已报名人数
  enrollmentDeadline string 报名截止日期
  maxParticipants int 最大人数
  minParticipants int 最少成团人数
  parentBatchId string 父批次ID(子批次时有值)
  productId string 产品ID
  remainingSlots int 剩余名额
  remark string 备注
  sortOrder int 排序
  subBatches 团批次VO[] 子批次列表(树形)
    batchId string 批次ID
    batchLabel string 批次标签(简称)
    batchName string 批次名称
    batchNo string 批次编号
    batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
    createBy string 创建人ID
    createTime string 创建时间
    departureDate string 出发日期
    endDate string 结束日期
    enrolledCount int 已报名人数
    enrollmentDeadline string 报名截止日期
    maxParticipants int 最大人数
    minParticipants int 最少成团人数
    parentBatchId string 父批次ID(子批次时有值)
    productId string 产品ID
    remainingSlots int 剩余名额
    remark string 备注
    sortOrder int 排序
    subBatches 团批次VO[] 子批次列表(树形)
    updateTime string 更新时间
  updateTime string 更新时间
message string 响应消息

GET /admin/product/item/{productId}/batch/{batchId}

批次详情

获取单个批次的完整信息,包括批次基本信息、服务人员配置、套餐组合等。

关联字典

  • batch_status批次状态PENDING=待开放, ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭, DISBANDED=已解散, IN_PROGRESS=进行中, FINISHED=已结束
  • staff_type人员类型,服务人员配置GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

响应 统一响应结果«团批次详情VO»

字段 类型 必填 说明
code int 状态码
data 团批次详情VO 响应数据
  batchId string 批次ID
  batchLabel string 批次标签(简称)
  batchName string 批次名称
  batchNo string 批次编号
  batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
  createBy string 创建人ID
  createTime string 创建时间
  departureDate string 出发日期
  endDate string 结束日期
  enrolledCount int 已报名人数
  enrollmentDeadline string 报名截止日期
  maxParticipants int 最大人数
  minParticipants int 最少成团人数
  parentBatchId string 父批次ID(子批次时有值)
  productId string 产品ID
  remainingSlots int 剩余名额
  remark string 备注
  sortOrder int 排序
  staff 团批次服务人员VO[] 服务人员列表
    batchId string 批次ID
    createTime string 创建时间
    id string 记录ID
    productId string 产品ID
    remark string 备注
    sortOrder int 排序
    staffId string 服务人员ID
    staffName string 姓名
    staffPhone string 手机号
    staffRole string 角色: GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
  subBatches 团批次VO[] 子批次列表(树形)
    batchId string 批次ID
    batchLabel string 批次标签(简称)
    batchName string 批次名称
    batchNo string 批次编号
    batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
    createBy string 创建人ID
    createTime string 创建时间
    departureDate string 出发日期
    endDate string 结束日期
    enrolledCount int 已报名人数
    enrollmentDeadline string 报名截止日期
    maxParticipants int 最大人数
    minParticipants int 最少成团人数
    parentBatchId string 父批次ID(子批次时有值)
    productId string 产品ID
    remainingSlots int 剩余名额
    remark string 备注
    sortOrder int 排序
    subBatches 团批次VO[] 子批次列表(树形)
    updateTime string 更新时间
  updateTime string 更新时间
message string 响应消息

PUT /admin/product/item/{productId}/batch/{batchId}

更新批次

更新批次基本信息。仅传入需要修改的字段。 已有报名人员的批次修改人数上限时,不能低于已报名人数。

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

请求体 更新拼团批次请求

字段 类型 必填 说明
batchName string 批次名称
departureDate string 出发日期
enrollmentDeadline string 报名截止日期
maxParticipants int 最大参团人数(不能低于已报名人数)
minParticipants int 最低成团人数0=不限制)
remark string 备注说明
sortOrder int 排序序号

响应 统一响应结果«团批次VO»

字段 类型 必填 说明
code int 状态码
data 团批次VO 响应数据
  batchId string 批次ID
  batchLabel string 批次标签(简称)
  batchName string 批次名称
  batchNo string 批次编号
  batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
  createBy string 创建人ID
  createTime string 创建时间
  departureDate string 出发日期
  endDate string 结束日期
  enrolledCount int 已报名人数
  enrollmentDeadline string 报名截止日期
  maxParticipants int 最大人数
  minParticipants int 最少成团人数
  parentBatchId string 父批次ID(子批次时有值)
  productId string 产品ID
  remainingSlots int 剩余名额
  remark string 备注
  sortOrder int 排序
  subBatches 团批次VO[] 子批次列表(树形)
    batchId string 批次ID
    batchLabel string 批次标签(简称)
    batchName string 批次名称
    batchNo string 批次编号
    batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
    createBy string 创建人ID
    createTime string 创建时间
    departureDate string 出发日期
    endDate string 结束日期
    enrolledCount int 已报名人数
    enrollmentDeadline string 报名截止日期
    maxParticipants int 最大人数
    minParticipants int 最少成团人数
    parentBatchId string 父批次ID(子批次时有值)
    productId string 产品ID
    remainingSlots int 剩余名额
    remark string 备注
    sortOrder int 排序
    subBatches 团批次VO[] 子批次列表(树形)
    updateTime string 更新时间
  updateTime string 更新时间
message string 响应消息

DELETE /admin/product/item/{productId}/batch/{batchId}

删除批次

删除批次(软删除)。 限制:已有报名人员的批次不能直接删除,需先解散批次。

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

响应 统一响应结果«Void»


PUT /admin/product/item/{productId}/batch/{batchId}/close

关闭报名(ENROLLING/CONFIRMED->CLOSED)

关闭批次报名,不再接受新的报名。 已报名的订单不受影响,仅阻止新增报名。 适用于报名截止日期到达或手动提前关闭的场景。

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

响应 统一响应结果«Void»


POST /admin/product/item/{productId}/batch/{batchId}/disband

解散批次

解散批次并处理已报名的订单。

重要:解散操作会触发以下流程:

  1. 批次状态变更为 DISBANDED
  2. 通过 MQ 消息通知订单服务,自动取消该批次下的所有未完成订单
  3. 已支付订单会触发退款流程

必须填写解散原因(如:报名人数不足、行程调整等)。

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

请求体 解散批次请求

字段 类型 必填 说明
reason string 解散原因(如:报名人数不足、行程调整等)

响应 统一响应结果«Void»


PUT /admin/product/item/{productId}/batch/{batchId}/open

开启报名(PENDING->ENROLLING)

将批次从 PENDING 状态变更为 ENROLLING报名中。 开启后用户可在小程序端看到该团期并报名。 前提条件产品必须已上架PUBLISHED

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

响应 统一响应结果«Void»


GET /admin/product/item/{productId}/batch/{batchId}/staff

服务人员列表

关联字典

  • staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

响应 统一响应结果«List«团批次服务人员VO»»

字段 类型 必填 说明
code int 状态码
data 团批次服务人员VO[] 响应数据
  batchId string 批次ID
  createTime string 创建时间
  id string 记录ID
  productId string 产品ID
  remark string 备注
  sortOrder int 排序
  staffId string 服务人员ID
  staffName string 姓名
  staffPhone string 手机号
  staffRole string 角色: GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
message string 响应消息

POST /admin/product/item/{productId}/batch/{batchId}/staff

保存服务人员(全量替换)

保存批次的服务人员配置,采用全量替换模式(先删后增)。

每次提交完整的人员列表,替换掉该批次原有的所有人员配置。 人员来源于资源服务的人员库,通过 staffId 关联。 角色类型LEADER(领队)/PHOTOGRAPHER(摄影师)/DRIVER(司机)/OTHER(其他)

关联字典

  • staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

请求体 批次服务人员分配请求[]

响应 统一响应结果«List«团批次服务人员VO»»

字段 类型 必填 说明
code int 状态码
data 团批次服务人员VO[] 响应数据
  batchId string 批次ID
  createTime string 创建时间
  id string 记录ID
  productId string 产品ID
  remark string 备注
  sortOrder int 排序
  staffId string 服务人员ID
  staffName string 姓名
  staffPhone string 手机号
  staffRole string 角色: GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
message string 响应消息

POST /admin/product/item/{productId}/batch/{batchId}/staff/copy-from/{sourceId}

从其他批次复制服务人员

将源批次的服务人员配置复制到当前批次(全量替换当前批次已有人员)。 适用场景:多个团期使用相同的服务人员班底。

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId
sourceId integer sourceId

响应 统一响应结果«List«团批次服务人员VO»»

字段 类型 必填 说明
code int 状态码
data 团批次服务人员VO[] 响应数据
  batchId string 批次ID
  createTime string 创建时间
  id string 记录ID
  productId string 产品ID
  remark string 备注
  sortOrder int 排序
  staffId string 服务人员ID
  staffName string 姓名
  staffPhone string 手机号
  staffRole string 角色: GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
message string 响应消息

POST /admin/product/item/{productId}/batch/{batchId}/sub-batch

创建子批次(溢出)

当主批次人数满员时,创建子批次接收溢出报名。

子批次共享主批次的出发日期和行程,但有独立的人数上限和报名人数。 适用场景:某团期特别火爆,需要扩容但希望分开管理。 子批次在列表中显示为主批次的子级节点。

路径参数

参数 类型 必填 说明
batchId integer batchId
productId integer productId

请求体 创建拼团批次请求

字段 类型 必填 说明
batchName string 批次名称
departureDate string 出发日期
enrollmentDeadline string 报名截止日期,必须早于出发日期
maxParticipants int 最大参团人数(报名人数达到上限后自动关闭报名)
minParticipants int 最低成团人数0=不限制,达到此人数自动变为CONFIRMED状态
remark string 备注说明
sortOrder int 排序序号(越小越靠前)

响应 统一响应结果«团批次VO»

字段 类型 必填 说明
code int 状态码
data 团批次VO 响应数据
  batchId string 批次ID
  batchLabel string 批次标签(简称)
  batchName string 批次名称
  batchNo string 批次编号
  batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
  createBy string 创建人ID
  createTime string 创建时间
  departureDate string 出发日期
  endDate string 结束日期
  enrolledCount int 已报名人数
  enrollmentDeadline string 报名截止日期
  maxParticipants int 最大人数
  minParticipants int 最少成团人数
  parentBatchId string 父批次ID(子批次时有值)
  productId string 产品ID
  remainingSlots int 剩余名额
  remark string 备注
  sortOrder int 排序
  subBatches 团批次VO[] 子批次列表(树形)
    batchId string 批次ID
    batchLabel string 批次标签(简称)
    batchName string 批次名称
    batchNo string 批次编号
    batchStatus string 批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED
    createBy string 创建人ID
    createTime string 创建时间
    departureDate string 出发日期
    endDate string 结束日期
    enrolledCount int 已报名人数
    enrollmentDeadline string 报名截止日期
    maxParticipants int 最大人数
    minParticipants int 最少成团人数
    parentBatchId string 父批次ID(子批次时有值)
    productId string 产品ID
    remainingSlots int 剩余名额
    remark string 备注
    sortOrder int 排序
    subBatches 团批次VO[] 子批次列表(树形)
    updateTime string 更新时间
  updateTime string 更新时间
message string 响应消息

行政区划搜索

GET /admin/product/district/search

搜索行政区划(城市/区县)

通过高德地图 API 搜索行政区划,用于产品的出发城市和目的地城市选择。 输入关键词(如"丽江"、"昆明"),返回匹配的城市/区县列表,包含行政区划编码。

关联字典

  • cities城市搜索结果可用于产品行程中的城市预览
  • city城市筛选搜索结果可用于资源面板城市筛选

查询参数

参数 类型 必填 说明 示例
keywords string 搜索关键词

响应 统一响应结果«List«行政区划搜索结果»»

字段 类型 必填 说明
code int 状态码
data 行政区划搜索结果[] 响应数据
  adcode string 行政区编码
  level string 级别: city/district
  levelName string 级别中文名
  name string 行政区名称
message string 响应消息

行程管理

PUT /admin/product/dining/{id}

更新餐饮推荐

更新餐饮推荐的餐厅、用餐类型(早/午/晚)、描述等信息。

路径参数

参数 类型 必填 说明
id integer 餐饮推荐ID

请求体 用餐选项请求

字段 类型 必填 说明
coverUrl string 餐食封面图URL
mealTypes string 餐次:早餐/午餐/晚餐
priceInfo string 价格信息
quantity int 数量
restaurantId string 餐厅IDGROUP产品可不传
restaurantName string 餐厅/餐食名称
sortOrder int 排序序号
unitPrice number 餐食单价(元,GROUP产品用于成本计算)

响应 统一响应结果«用餐选项VO»

字段 类型 必填 说明
code int 状态码
data 用餐选项VO 响应数据
  coverUrl string 餐食封面图URL
  dayNumber int 天数编号
  id string 记录ID
  mealTypes string 餐次:早餐/午餐/晚餐
  priceInfo string 价格信息
  quantity int 数量
  restaurantId string 餐厅ID
  restaurantName string 餐厅/餐食名称
  sortOrder int 排序序号
  unitPrice number 餐食单价(元)
message string 响应消息

DELETE /admin/product/dining/{id}

删除餐饮推荐

删除指定的餐饮推荐记录。

路径参数

参数 类型 必填 说明
id integer 餐饮推荐ID

响应 统一响应结果«Void»


PUT /admin/product/hotel/{id}

更新每日住宿

更新住宿记录的酒店、房型、数量等信息。

路径参数

参数 类型 必填 说明
id integer 住宿记录ID

请求体 每日酒店配置请求

字段 类型 必填 说明
coverUrl string 封面图URL
familyIds string[] 所属家庭ID列表定制产品,不传=所有家庭共享)
familyRoomConfig object 家庭房间分配(定制产品):{familyId: roomCount},如 {"123": 2, "456": 1}
hotelId string 酒店ID
hotelName string 酒店名称
isDefault boolean 是否默认酒店
roomCount int 房间数量
roomTypeId string 关联房型ID定制产品必填,核心产品为空
roomTypeName string 房型名称
sortOrder int 排序序号

响应 统一响应结果«每日酒店VO»

字段 类型 必填 说明
code int 状态码
data 每日酒店VO 响应数据
  coverUrl string 封面图URL
  dayNumber int 天数编号
  familyIds string[] 所属家庭ID列表NULL=所有家庭共享)
  familyRoomConfig object 家庭房间分配:{familyId: roomCount}
  hotelId string 酒店ID
  hotelName string 酒店名称
  id string 记录ID
  isDefault boolean 是否默认酒店
  roomCount int 房间数量
  roomTypeId string 房型ID
  roomTypeName string 房型名称
  sortOrder int 排序序号
message string 响应消息

DELETE /admin/product/hotel/{id}

删除每日住宿

删除指定住宿记录。删除后该天的住宿成本会从报价中移除。

路径参数

参数 类型 必填 说明
id integer 住宿记录ID

响应 统一响应结果«Void»


PUT /admin/product/item/{productId}/day/{dayNumber}

更新行程天

更新指定天的行程信息,如当天主题、概述等。 行程天在创建产品时根据 tripDays 自动生成,不支持单独增删,只能更新。 dayNumber 从 1 开始,对应第几天的行程。

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

请求体 行程天请求

字段 类型 必填 说明
dayTitle string 天标题
routeSummary string 路线概览

响应 统一响应结果«行程天VO»

字段 类型 必填 说明
code int 状态码
data 行程天VO 响应数据
  dayId string 行程天ID
  dayNumber int 天数编号
  dayTitle string 天标题
  hotels 每日酒店VO[] 当日酒店列表
    coverUrl string 封面图URL
    dayNumber int 天数编号
    familyIds string[] 所属家庭ID列表NULL=所有家庭共享)
    familyRoomConfig object 家庭房间分配:{familyId: roomCount}
    hotelId string 酒店ID
    hotelName string 酒店名称
    id string 记录ID
    isDefault boolean 是否默认酒店
    roomCount int 房间数量
    roomTypeId string 房型ID
    roomTypeName string 房型名称
    sortOrder int 排序序号
  nodes 行程节点VO[] 行程节点列表
    costPrice number 资源成本价(来自资源价格日历)
    dayId string 所属行程天ID
    description string 节点描述
    distanceKm number 距离(公里)
    durationMinutes int 时长(分钟)
    emojiIcon string 表情图标
    extraData string 扩展数据JSON格式
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    images string[] 节点图片列表
    latitude number 纬度
    longitude number 经度
    nodeId string 节点ID
    nodeName string 节点名称
    nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
    quantity int 数量
    resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    resourceId string 关联资源ID
    resourceName string 关联资源名称
    resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
    sortOrder int 排序序号
    startTime string 开始时间
  restaurants 用餐选项VO[] 当日用餐列表
    coverUrl string 餐食封面图URL
    dayNumber int 天数编号
    id string 记录ID
    mealTypes string 餐次:早餐/午餐/晚餐
    priceInfo string 价格信息
    quantity int 数量
    restaurantId string 餐厅ID
    restaurantName string 餐厅/餐食名称
    sortOrder int 排序序号
    unitPrice number 餐食单价(元)
  routeSummary string 路线概览
message string 响应消息

GET /admin/product/item/{productId}/day/{dayNumber}/dining

获取某天的餐厅推荐列表

获取指定天的所有餐饮推荐,包含餐厅名称、用餐类型、描述等信息。

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

响应 统一响应结果«List«用餐选项VO»»

字段 类型 必填 说明
code int 状态码
data 用餐选项VO[] 响应数据
  coverUrl string 餐食封面图URL
  dayNumber int 天数编号
  id string 记录ID
  mealTypes string 餐次:早餐/午餐/晚餐
  priceInfo string 价格信息
  quantity int 数量
  restaurantId string 餐厅ID
  restaurantName string 餐厅/餐食名称
  sortOrder int 排序序号
  unitPrice number 餐食单价(元)
message string 响应消息

POST /admin/product/item/{productId}/day/{dayNumber}/dining

添加每日餐厅推荐

为指定天添加餐饮推荐,关联资源服务中的餐厅。 用于展示当天的用餐安排,可按早/午/晚分类。

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

请求体 用餐选项请求

字段 类型 必填 说明
coverUrl string 餐食封面图URL
mealTypes string 餐次:早餐/午餐/晚餐
priceInfo string 价格信息
quantity int 数量
restaurantId string 餐厅IDGROUP产品可不传
restaurantName string 餐厅/餐食名称
sortOrder int 排序序号
unitPrice number 餐食单价(元,GROUP产品用于成本计算)

响应 统一响应结果«用餐选项VO»

字段 类型 必填 说明
code int 状态码
data 用餐选项VO 响应数据
  coverUrl string 餐食封面图URL
  dayNumber int 天数编号
  id string 记录ID
  mealTypes string 餐次:早餐/午餐/晚餐
  priceInfo string 价格信息
  quantity int 数量
  restaurantId string 餐厅ID
  restaurantName string 餐厅/餐食名称
  sortOrder int 排序序号
  unitPrice number 餐食单价(元)
message string 响应消息

POST /admin/product/item/{productId}/day/{dayNumber}/hotel

添加每日住宿

为指定天添加住宿安排,关联资源服务中的酒店和房型。 每天可以有多个住宿选项(如不同档次),参与成本自动计算。 住宿费用会体现在价格日历的成本计算中。

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

请求体 每日酒店配置请求

字段 类型 必填 说明
coverUrl string 封面图URL
familyIds string[] 所属家庭ID列表定制产品,不传=所有家庭共享)
familyRoomConfig object 家庭房间分配(定制产品):{familyId: roomCount},如 {"123": 2, "456": 1}
hotelId string 酒店ID
hotelName string 酒店名称
isDefault boolean 是否默认酒店
roomCount int 房间数量
roomTypeId string 关联房型ID定制产品必填,核心产品为空
roomTypeName string 房型名称
sortOrder int 排序序号

响应 统一响应结果«每日酒店VO»

字段 类型 必填 说明
code int 状态码
data 每日酒店VO 响应数据
  coverUrl string 封面图URL
  dayNumber int 天数编号
  familyIds string[] 所属家庭ID列表NULL=所有家庭共享)
  familyRoomConfig object 家庭房间分配:{familyId: roomCount}
  hotelId string 酒店ID
  hotelName string 酒店名称
  id string 记录ID
  isDefault boolean 是否默认酒店
  roomCount int 房间数量
  roomTypeId string 房型ID
  roomTypeName string 房型名称
  sortOrder int 排序序号
message string 响应消息

GET /admin/product/item/{productId}/day/{dayNumber}/hotels

获取某天的住宿列表

获取指定天的所有住宿安排,包含酒店名称、房型、数量等信息。

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

响应 统一响应结果«List«每日酒店VO»»

字段 类型 必填 说明
code int 状态码
data 每日酒店VO[] 响应数据
  coverUrl string 封面图URL
  dayNumber int 天数编号
  familyIds string[] 所属家庭ID列表NULL=所有家庭共享)
  familyRoomConfig object 家庭房间分配:{familyId: roomCount}
  hotelId string 酒店ID
  hotelName string 酒店名称
  id string 记录ID
  isDefault boolean 是否默认酒店
  roomCount int 房间数量
  roomTypeId string 房型ID
  roomTypeName string 房型名称
  sortOrder int 排序序号
message string 响应消息

POST /admin/product/item/{productId}/day/{dayNumber}/node

添加行程节点

在指定天添加一个行程节点。节点是行程的最小单元,可关联资源服务中的景区、酒店、活动等。

节点类型TRANSPORT(交通)/SCENIC(景区)/DINING(餐饮)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)

CUSTOM 定制产品特有:可通过 familyIds 指定节点所属的家庭分组,实现按家庭分配行程。 新建节点自动追加到当天最后位置,可通过排序接口调整顺序。

关联字典

  • city城市,资源面板筛选用用于在添加节点时按城市筛选可选资源

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

请求体 创建行程节点请求

字段 类型 必填 说明
description string 节点描述
distanceKm number 距离(公里)
durationMinutes int 时长(分钟)
emojiIcon string 表情图标
extraData string 扩展数据JSON格式
familyIds string[] 所属家庭ID列表仅CUSTOM定制产品使用,实现按家庭分配行程节点
images string[] 节点图片列表
latitude number 纬度
longitude number 经度
nodeName string 节点名称
nodeType string 节点类型TRANSPORT(交通)/SCENIC(景区)/DINING(餐饮)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)
quantity int 数量
resourceId string 关联资源ID来自资源服务,关联后节点名称和图片可自动同步
resourceType string 关联资源类型关联后可从资源服务获取价格参与成本计算SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
startTime string 开始时间

响应 统一响应结果«行程节点VO»

字段 类型 必填 说明
code int 状态码
data 行程节点VO 响应数据
  costPrice number 资源成本价(来自资源价格日历)
  dayId string 所属行程天ID
  description string 节点描述
  distanceKm number 距离(公里)
  durationMinutes int 时长(分钟)
  emojiIcon string 表情图标
  extraData string 扩展数据JSON格式
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  images string[] 节点图片列表
  latitude number 纬度
  longitude number 经度
  nodeId string 节点ID
  nodeName string 节点名称
  nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
  quantity int 数量
  resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    address string 地址
    city string 所在城市
    cover string 封面图URL
    description string 简介/描述
    featureIntro string 图文详情featureIntro JSON
    images string[] 图片URL列表轮播图
    latitude number 纬度
    longitude number 经度
    name string 资源名称
    rating number 评分
    resourceId string 资源ID
    resourceType string 资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY
    subtitle string 副标题
    tags string[] 标签列表
  resourceId string 关联资源ID
  resourceName string 关联资源名称
  resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
  sortOrder int 排序序号
  startTime string 开始时间
message string 响应消息

GET /admin/product/item/{productId}/day/{dayNumber}/nodes

获取某天的节点列表

获取指定天的所有行程节点,按排序顺序返回。 每个节点包含类型、名称、时间、关联资源信息、图片等完整数据。

关联字典

  • city城市资源面板城市筛选
  • cities城市ID映射城市名称预览

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

响应 统一响应结果«List«行程节点VO»»

字段 类型 必填 说明
code int 状态码
data 行程节点VO[] 响应数据
  costPrice number 资源成本价(来自资源价格日历)
  dayId string 所属行程天ID
  description string 节点描述
  distanceKm number 距离(公里)
  durationMinutes int 时长(分钟)
  emojiIcon string 表情图标
  extraData string 扩展数据JSON格式
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  images string[] 节点图片列表
  latitude number 纬度
  longitude number 经度
  nodeId string 节点ID
  nodeName string 节点名称
  nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
  quantity int 数量
  resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    address string 地址
    city string 所在城市
    cover string 封面图URL
    description string 简介/描述
    featureIntro string 图文详情featureIntro JSON
    images string[] 图片URL列表轮播图
    latitude number 纬度
    longitude number 经度
    name string 资源名称
    rating number 评分
    resourceId string 资源ID
    resourceType string 资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY
    subtitle string 副标题
    tags string[] 标签列表
  resourceId string 关联资源ID
  resourceName string 关联资源名称
  resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
  sortOrder int 排序序号
  startTime string 开始时间
message string 响应消息

PUT /admin/product/item/{productId}/day/{dayNumber}/nodes/sort

行程节点拖拽排序

重新排列指定天的所有行程节点顺序。前端拖拽排序后,将新的节点ID顺序全量提交。 nodeIds 列表中的顺序即为新的排序顺序(从上到下)。

路径参数

参数 类型 必填 说明
dayNumber integer 天数编号
productId integer 产品ID

请求体 节点排序请求

字段 类型 必填 说明
nodeIds string[] 节点ID有序列表,按期望排序顺序排列

响应 统一响应结果«Void»


GET /admin/product/item/{productId}/days

获取行程天列表

获取产品所有行程天的信息,按 dayNumber 升序排列。 每一天包含当天主题、概述等信息,不包含节点详情(节点通过单独接口获取)。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«行程天VO»»

字段 类型 必填 说明
code int 状态码
data 行程天VO[] 响应数据
  dayId string 行程天ID
  dayNumber int 天数编号
  dayTitle string 天标题
  hotels 每日酒店VO[] 当日酒店列表
    coverUrl string 封面图URL
    dayNumber int 天数编号
    familyIds string[] 所属家庭ID列表NULL=所有家庭共享)
    familyRoomConfig object 家庭房间分配:{familyId: roomCount}
    hotelId string 酒店ID
    hotelName string 酒店名称
    id string 记录ID
    isDefault boolean 是否默认酒店
    roomCount int 房间数量
    roomTypeId string 房型ID
    roomTypeName string 房型名称
    sortOrder int 排序序号
  nodes 行程节点VO[] 行程节点列表
    costPrice number 资源成本价(来自资源价格日历)
    dayId string 所属行程天ID
    description string 节点描述
    distanceKm number 距离(公里)
    durationMinutes int 时长(分钟)
    emojiIcon string 表情图标
    extraData string 扩展数据JSON格式
    familyIds string[] 所属家庭ID列表定制产品按家庭分配
    images string[] 节点图片列表
    latitude number 纬度
    longitude number 经度
    nodeId string 节点ID
    nodeName string 节点名称
    nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
    quantity int 数量
    resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    resourceId string 关联资源ID
    resourceName string 关联资源名称
    resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
    sortOrder int 排序序号
    startTime string 开始时间
  restaurants 用餐选项VO[] 当日用餐列表
    coverUrl string 餐食封面图URL
    dayNumber int 天数编号
    id string 记录ID
    mealTypes string 餐次:早餐/午餐/晚餐
    priceInfo string 价格信息
    quantity int 数量
    restaurantId string 餐厅ID
    restaurantName string 餐厅/餐食名称
    sortOrder int 排序序号
    unitPrice number 餐食单价(元)
  routeSummary string 路线概览
message string 响应消息

POST /admin/product/item/{productId}/staff-config

添加人员配置

为产品添加服务人员配置(如领队、摄影师、司机等),关联资源服务中的人员。 人员配置是产品级别的模板,GROUP 产品的实际人员在团期批次中单独分配。 人员费用参与成本自动计算。

关联字典

  • staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 人员配置请求

字段 类型 必填 说明
familyIds string[] 所属家庭ID列表定制产品按家庭分配
quantity int 数量
sortOrder int 排序序号
staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER

响应 统一响应结果«产品人员配置VO»

字段 类型 必填 说明
code int 状态码
data 产品人员配置VO 响应数据
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  sortOrder int 排序序号
  staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
  staffTypeName string 人员类型名称
message string 响应消息

GET /admin/product/item/{productId}/staff-configs

获取产品人员配置列表

关联字典

  • staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«产品人员配置VO»»

字段 类型 必填 说明
code int 状态码
data 产品人员配置VO[] 响应数据
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  sortOrder int 排序序号
  staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
  staffTypeName string 人员类型名称
message string 响应消息

GET /admin/product/item/{productId}/supplies

获取产品物资列表

获取产品关联的所有物资配品,包含物资名称、数量、单价等信息。

路径参数

参数 类型 必填 说明
productId integer 产品ID

响应 统一响应结果«List«产品物资VO»»

字段 类型 必填 说明
code int 状态码
data 产品物资VO[] 响应数据
  billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
  costPerPerson number 每人成本
  coverUrl string 封面图URL
  dayNumber int 天数编号scope=DAY时生效
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  scope string 适用范围ALL=整个行程 DAY=指定天
  sortOrder int 排序序号
  suppliesId string 物资ID
  suppliesName string 物资名称
message string 响应消息

POST /admin/product/item/{productId}/supplies

添加物资配品

为产品添加物资配品(如帐篷、睡袋、登山杖等),关联资源服务中的物资。 物资配品是产品级别的,不区分具体哪一天,参与成本计算。

路径参数

参数 类型 必填 说明
productId integer 产品ID

请求体 物资配置请求

字段 类型 必填 说明
billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
costPerPerson number 每人成本
coverUrl string 封面图URL
dayNumber int 天数编号scope=DAY时生效
familyIds string[] 所属家庭ID列表定制产品按家庭分配
quantity int 数量
scope string 适用范围ALL=整个行程 DAY=指定天
sortOrder int 排序序号
suppliesId string 物资ID
suppliesName string 物资名称

响应 统一响应结果«产品物资VO»

字段 类型 必填 说明
code int 状态码
data 产品物资VO 响应数据
  billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
  costPerPerson number 每人成本
  coverUrl string 封面图URL
  dayNumber int 天数编号scope=DAY时生效
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  scope string 适用范围ALL=整个行程 DAY=指定天
  sortOrder int 排序序号
  suppliesId string 物资ID
  suppliesName string 物资名称
message string 响应消息

PUT /admin/product/node/{nodeId}

更新行程节点

更新行程节点信息,仅传入需要修改的字段。 可修改节点名称、时间、关联资源、图片、描述等。

关联字典

  • city城市资源面板城市筛选
  • cities城市ID映射城市名称预览

路径参数

参数 类型 必填 说明
nodeId integer 行程节点ID

请求体 更新行程节点请求

字段 类型 必填 说明
description string 节点描述
distanceKm number 距离(公里)
durationMinutes int 时长(分钟)
emojiIcon string 表情图标
extraData string 扩展数据JSON格式
familyIds string[] 所属家庭ID列表定制产品按家庭分配
images string[] 节点图片列表
latitude number 纬度
longitude number 经度
nodeName string 节点名称
nodeType string 节点类型TRANSPORT(交通)/SCENIC(景区)/DINING(餐饮)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)
quantity int 数量
resourceId string 关联资源ID
resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
startTime string 开始时间

响应 统一响应结果«行程节点VO»

字段 类型 必填 说明
code int 状态码
data 行程节点VO 响应数据
  costPrice number 资源成本价(来自资源价格日历)
  dayId string 所属行程天ID
  description string 节点描述
  distanceKm number 距离(公里)
  durationMinutes int 时长(分钟)
  emojiIcon string 表情图标
  extraData string 扩展数据JSON格式
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  images string[] 节点图片列表
  latitude number 纬度
  longitude number 经度
  nodeId string 节点ID
  nodeName string 节点名称
  nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
  quantity int 数量
  resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    address string 地址
    city string 所在城市
    cover string 封面图URL
    description string 简介/描述
    featureIntro string 图文详情featureIntro JSON
    images string[] 图片URL列表轮播图
    latitude number 纬度
    longitude number 经度
    name string 资源名称
    rating number 评分
    resourceId string 资源ID
    resourceType string 资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY
    subtitle string 副标题
    tags string[] 标签列表
  resourceId string 关联资源ID
  resourceName string 关联资源名称
  resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
  sortOrder int 排序序号
  startTime string 开始时间
message string 响应消息

DELETE /admin/product/node/{nodeId}

删除行程节点

删除指定行程节点,同天其他节点的排序自动调整。

路径参数

参数 类型 必填 说明
nodeId integer 行程节点ID

响应 统一响应结果«Void»


POST /admin/product/node/{nodeId}/copy

复制行程节点

复制指定节点到同一天的末尾位置,包括节点的所有属性(名称、资源关联、图片等)。 适用场景:同一天有相似的行程安排时快速复制。

路径参数

参数 类型 必填 说明
nodeId integer 行程节点ID

响应 统一响应结果«行程节点VO»

字段 类型 必填 说明
code int 状态码
data 行程节点VO 响应数据
  costPrice number 资源成本价(来自资源价格日历)
  dayId string 所属行程天ID
  description string 节点描述
  distanceKm number 距离(公里)
  durationMinutes int 时长(分钟)
  emojiIcon string 表情图标
  extraData string 扩展数据JSON格式
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  images string[] 节点图片列表
  latitude number 纬度
  longitude number 经度
  nodeId string 节点ID
  nodeName string 节点名称
  nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
  quantity int 数量
  resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    address string 地址
    city string 所在城市
    cover string 封面图URL
    description string 简介/描述
    featureIntro string 图文详情featureIntro JSON
    images string[] 图片URL列表轮播图
    latitude number 纬度
    longitude number 经度
    name string 资源名称
    rating number 评分
    resourceId string 资源ID
    resourceType string 资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY
    subtitle string 副标题
    tags string[] 标签列表
  resourceId string 关联资源ID
  resourceName string 关联资源名称
  resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
  sortOrder int 排序序号
  startTime string 开始时间
message string 响应消息

PUT /admin/product/node/{nodeId}/move

移动行程节点到其他天

将节点从当前天移动到目标天的末尾位置。 移动后原天和目标天的节点排序自动调整。

路径参数

参数 类型 必填 说明
nodeId integer 行程节点ID

请求体 节点移动请求

字段 类型 必填 说明
targetDayNumber int 目标天数编号

响应 统一响应结果«行程节点VO»

字段 类型 必填 说明
code int 状态码
data 行程节点VO 响应数据
  costPrice number 资源成本价(来自资源价格日历)
  dayId string 所属行程天ID
  description string 节点描述
  distanceKm number 距离(公里)
  durationMinutes int 时长(分钟)
  emojiIcon string 表情图标
  extraData string 扩展数据JSON格式
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  images string[] 节点图片列表
  latitude number 纬度
  longitude number 经度
  nodeId string 节点ID
  nodeName string 节点名称
  nodeType string 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE
  quantity int 数量
  resourceDetail 资源详情 绑定资源的详细信息(含图片、地址等)
    address string 地址
    city string 所在城市
    cover string 封面图URL
    description string 简介/描述
    featureIntro string 图文详情featureIntro JSON
    images string[] 图片URL列表轮播图
    latitude number 纬度
    longitude number 经度
    name string 资源名称
    rating number 评分
    resourceId string 资源ID
    resourceType string 资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY
    subtitle string 副标题
    tags string[] 标签列表
  resourceId string 关联资源ID
  resourceName string 关联资源名称
  resourceType string 关联资源类型SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE
  sortOrder int 排序序号
  startTime string 开始时间
message string 响应消息

PUT /admin/product/staff-config/{id}

更新人员配置

关联字典

  • staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
id integer 人员配置ID

请求体 人员配置请求

字段 类型 必填 说明
familyIds string[] 所属家庭ID列表定制产品按家庭分配
quantity int 数量
sortOrder int 排序序号
staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER

响应 统一响应结果«产品人员配置VO»

字段 类型 必填 说明
code int 状态码
data 产品人员配置VO 响应数据
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  sortOrder int 排序序号
  staffType string 人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER
  staffTypeName string 人员类型名称
message string 响应消息

DELETE /admin/product/staff-config/{id}

删除人员配置

删除指定的人员配置记录。删除后该人员费用不再计入成本。

关联字典

  • staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他

路径参数

参数 类型 必填 说明
id integer 人员配置ID

响应 统一响应结果«Void»


PUT /admin/product/supplies/{id}

更新物资配品

更新物资配品的关联物资、数量等信息。修改后会影响成本自动计算结果。

路径参数

参数 类型 必填 说明
id integer 物资配品ID

请求体 物资配置请求

字段 类型 必填 说明
billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
costPerPerson number 每人成本
coverUrl string 封面图URL
dayNumber int 天数编号scope=DAY时生效
familyIds string[] 所属家庭ID列表定制产品按家庭分配
quantity int 数量
scope string 适用范围ALL=整个行程 DAY=指定天
sortOrder int 排序序号
suppliesId string 物资ID
suppliesName string 物资名称

响应 统一响应结果«产品物资VO»

字段 类型 必填 说明
code int 状态码
data 产品物资VO 响应数据
  billingType string 计费方式BY_PERSON=按人头 BY_COUNT=按次/按件
  costPerPerson number 每人成本
  coverUrl string 封面图URL
  dayNumber int 天数编号scope=DAY时生效
  familyIds string[] 所属家庭ID列表定制产品按家庭分配
  id string 记录ID
  quantity int 数量
  scope string 适用范围ALL=整个行程 DAY=指定天
  sortOrder int 排序序号
  suppliesId string 物资ID
  suppliesName string 物资名称
message string 响应消息

DELETE /admin/product/supplies/{id}

删除物资配品

删除指定的物资配品记录。删除后该物资费用不再计入成本。

路径参数

参数 类型 必填 说明
id integer 物资配品ID

响应 统一响应结果«Void»