hl-api-changelog/.swagger/hl-product-service.json

15056 行
428 KiB
JSON

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

{
"swagger": "2.0",
"info": {
"title": "产品服务",
"version": "1.0.0"
},
"basePath": "/",
"paths": {
"/admin/product/booking-terms": {
"post": {
"tags": [
"预订条款管理"
],
"summary": "创建预订条款",
"description": "创建后默认启用",
"operationId": "createUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "termsRequest",
"description": "termsRequest",
"required": true,
"schema": {
"$ref": "#/definitions/预订条款请求",
"originalRef": "预订条款请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«预订条款VO»",
"originalRef": "统一响应结果«预订条款VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«预订条款VO»",
"originalRef": "统一响应结果«预订条款VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/booking-terms/enabled": {
"get": {
"tags": [
"预订条款管理"
],
"summary": "启用的预订条款列表",
"description": "仅返回启用状态的条款,供产品设计时选择",
"operationId": "listEnabledUsingGET",
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«预订条款VO»»",
"originalRef": "统一响应结果«List«预订条款VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«预订条款VO»»",
"originalRef": "统一响应结果«List«预订条款VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/booking-terms/list": {
"get": {
"tags": [
"预订条款管理"
],
"summary": "预订条款列表",
"description": "返回所有预订条款(含禁用),按创建时间倒序",
"operationId": "listUsingGET",
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«预订条款VO»»",
"originalRef": "统一响应结果«List«预订条款VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«预订条款VO»»",
"originalRef": "统一响应结果«List«预订条款VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/booking-terms/{termsId}": {
"get": {
"tags": [
"预订条款管理"
],
"summary": "预订条款详情",
"operationId": "detailUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "termsId",
"in": "path",
"description": "预订条款ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«预订条款VO»",
"originalRef": "统一响应结果«预订条款VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«预订条款VO»",
"originalRef": "统一响应结果«预订条款VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"预订条款管理"
],
"summary": "修改预订条款",
"operationId": "updateUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "termsId",
"in": "path",
"description": "预订条款ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "termsRequest",
"description": "termsRequest",
"required": true,
"schema": {
"$ref": "#/definitions/预订条款请求",
"originalRef": "预订条款请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«预订条款VO»",
"originalRef": "统一响应结果«预订条款VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«预订条款VO»",
"originalRef": "统一响应结果«预订条款VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"预订条款管理"
],
"summary": "删除预订条款",
"description": "软删除,已绑定的产品不受影响(产品详情会显示为空)",
"operationId": "deleteUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "termsId",
"in": "path",
"description": "预订条款ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/booking-terms/{termsId}/toggle": {
"put": {
"tags": [
"预订条款管理"
],
"summary": "启用/禁用预订条款",
"description": "禁用后不再出现在产品设计的可选列表中,已绑定的产品不受影响",
"operationId": "toggleUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "enabled",
"in": "query",
"description": "是否启用",
"required": false,
"type": "boolean",
"allowEmptyValue": false
},
{
"name": "termsId",
"in": "path",
"description": "预订条款ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/dining/{id}": {
"put": {
"tags": [
"行程管理"
],
"summary": "更新餐饮推荐",
"description": "更新餐饮推荐的餐厅、用餐类型(早/午/晚)、描述等信息。",
"operationId": "updateDiningOptionUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "餐饮推荐ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "餐饮推荐请求",
"required": false,
"schema": {
"$ref": "#/definitions/用餐选项请求",
"originalRef": "用餐选项请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«用餐选项VO»",
"originalRef": "统一响应结果«用餐选项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«用餐选项VO»",
"originalRef": "统一响应结果«用餐选项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"行程管理"
],
"summary": "删除餐饮推荐",
"description": "删除指定的餐饮推荐记录。",
"operationId": "deleteDiningOptionUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "餐饮推荐ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/district/search": {
"get": {
"tags": [
"行政区划搜索"
],
"summary": "搜索行政区划(城市/区县/镇)",
"description": "通过高德地图 API 搜索行政区划,用于产品的出发城市和目的地城市选择。\n输入关键词如\"丽江\"、\"黑山头\"),返回匹配的城市/区县/镇列表,包含行政区划编码。\n\n**关联字典**\n- cities城市搜索结果可用于产品行程中的城市预览\n- city城市筛选搜索结果可用于资源面板城市筛选",
"operationId": "searchUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "keywords",
"in": "query",
"description": "搜索关键词",
"required": false,
"type": "string",
"allowEmptyValue": false
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«行政区划搜索结果»»",
"originalRef": "统一响应结果«List«行政区划搜索结果»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«行政区划搜索结果»»",
"originalRef": "统一响应结果«List«行政区划搜索结果»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/folder": {
"post": {
"tags": [
"产品文件夹管理"
],
"summary": "创建文件夹",
"description": "创建产品文件夹,用于组织管理产品。支持多级目录结构。\n文件夹归属于创建人,普通管理员只能看到自己的文件夹。",
"operationId": "createFolderUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "创建文件夹请求",
"required": false,
"schema": {
"$ref": "#/definitions/创建文件夹请求",
"originalRef": "创建文件夹请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品文件夹VO»",
"originalRef": "统一响应结果«产品文件夹VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品文件夹VO»",
"originalRef": "统一响应结果«产品文件夹VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/folder/tree": {
"get": {
"tags": [
"产品文件夹管理"
],
"summary": "获取文件夹树",
"description": "获取当前用户可见的文件夹树形结构。\n普通管理员只能看到自己创建的文件夹,SUPER_ADMIN 可看到所有文件夹。\n返回结构为嵌套的树形列表,包含每个文件夹的子文件夹。",
"operationId": "getFolderTreeUsingGET",
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品文件夹VO»»",
"originalRef": "统一响应结果«List«产品文件夹VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品文件夹VO»»",
"originalRef": "统一响应结果«List«产品文件夹VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/folder/{folderId}": {
"put": {
"tags": [
"产品文件夹管理"
],
"summary": "更新文件夹",
"description": "更新文件夹名称等信息。\n**权限说明**普通管理员只能更新自己创建的文件夹,SUPER_ADMIN 可更新任何文件夹。",
"operationId": "updateFolderUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "folderId",
"in": "path",
"description": "文件夹ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "更新文件夹请求",
"required": false,
"schema": {
"$ref": "#/definitions/更新文件夹请求",
"originalRef": "更新文件夹请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品文件夹VO»",
"originalRef": "统一响应结果«产品文件夹VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品文件夹VO»",
"originalRef": "统一响应结果«产品文件夹VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"产品文件夹管理"
],
"summary": "删除文件夹",
"description": "删除文件夹。如果文件夹下有产品,产品会自动移到根目录folderId 置空)。\n普通管理员只能删除自己的文件夹,SUPER_ADMIN 可删除任何文件夹。",
"operationId": "deleteFolderUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "folderId",
"in": "path",
"description": "文件夹ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/group": {
"post": {
"tags": [
"定价公式管理"
],
"summary": "创建公式组",
"description": "创建一个新的定价公式组。创建后默认为未激活状态。\n\n公式组编码groupCode在同一产品类型下必须唯一。\n建议命名规范{产品类型}_PRICING_V{版本号},如 CORE_PRICING_V2。\n\n**关联字典**\n- product_type产品类型,公式组所属类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "createGroupUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式组请求",
"originalRef": "公式组请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式组VO»",
"originalRef": "统一响应结果«公式组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式组VO»",
"originalRef": "统一响应结果«公式组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/group/list": {
"get": {
"tags": [
"定价公式管理"
],
"summary": "公式组列表",
"description": "获取定价公式组列表,可按产品类型筛选。\n\n**公式引擎说明**:定价公式用于自动计算产品的成本价和售价。\n每种产品类型可以有多个公式组,但同一时间只能有一个激活的公式组。\n公式组包含多个步骤,按顺序执行,每步计算一个中间变量或最终结果。\n\n**关联字典**\n- product_type产品类型,筛选条件CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "listGroupsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productType",
"in": "query",
"description": "productType",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式组VO»»",
"originalRef": "统一响应结果«List«公式组VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式组VO»»",
"originalRef": "统一响应结果«List«公式组VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/group/{groupId}": {
"get": {
"tags": [
"定价公式管理"
],
"summary": "公式组详情",
"description": "获取公式组完整信息。\n\n**关联字典**\n- product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "getGroupUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "groupId",
"in": "path",
"description": "groupId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式组VO»",
"originalRef": "统一响应结果«公式组VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式组VO»",
"originalRef": "统一响应结果«公式组VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"定价公式管理"
],
"summary": "更新公式组",
"description": "更新公式组信息。\n\n**关联字典**\n- product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "updateGroupUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "groupId",
"in": "path",
"description": "groupId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式组请求",
"originalRef": "公式组请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式组VO»",
"originalRef": "统一响应结果«公式组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式组VO»",
"originalRef": "统一响应结果«公式组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"定价公式管理"
],
"summary": "删除公式组",
"description": "删除公式组及其下所有步骤。\n**限制**:已激活的公式组不能删除,需先激活其他公式组。",
"operationId": "deleteGroupUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "groupId",
"in": "path",
"description": "groupId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/group/{groupId}/activate": {
"put": {
"tags": [
"定价公式管理"
],
"summary": "激活公式组",
"description": "激活指定公式组,同时自动停用同产品类型下的其他公式组。\n\n同一产品类型下只能有一个激活的公式组,激活操作具有排他性。\n激活后,该产品类型的自动成本计算将使用此公式组。\n\n**关联字典**\n- product_type产品类型,同类型排他激活CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "activateGroupUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "groupId",
"in": "path",
"description": "groupId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/group/{groupId}/steps": {
"get": {
"tags": [
"定价公式管理"
],
"summary": "公式步骤列表",
"description": "获取公式组下所有步骤,按执行顺序executionOrder升序排列。\n步骤按顺序依次执行,前一步的输出变量可作为后续步骤的输入。",
"operationId": "listStepsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "groupId",
"in": "path",
"description": "groupId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式步骤VO»»",
"originalRef": "统一响应结果«List«公式步骤VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式步骤VO»»",
"originalRef": "统一响应结果«List«公式步骤VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/step": {
"post": {
"tags": [
"定价公式管理"
],
"summary": "创建公式步骤",
"description": "在公式组中创建一个计算步骤。\n\n**表达式语法**:使用 Aviator 表达式引擎,支持数学运算、条件判断、内置函数等。\n示例`baseCost = adultCount * adultUnitCost + childCount * childUnitCost`\n\n**输入变量**:可引用公式变量表中定义的变量,或前置步骤的输出变量。\n**输出变量**:每个步骤必须指定一个输出变量名,供后续步骤引用。",
"operationId": "createStepUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式步骤请求",
"originalRef": "公式步骤请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/step/{formulaId}": {
"get": {
"tags": [
"定价公式管理"
],
"summary": "公式步骤详情",
"description": "获取单个公式步骤的完整信息,包含表达式、输入/输出变量、执行顺序等。",
"operationId": "getStepUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "formulaId",
"in": "path",
"description": "formulaId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"定价公式管理"
],
"summary": "更新公式步骤",
"description": "更新公式步骤的表达式、输入/输出变量等。\n每次更新会自动保存一个版本快照,可通过版本历史接口查看和回滚。",
"operationId": "updateStepUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "formulaId",
"in": "path",
"description": "formulaId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式步骤请求",
"originalRef": "公式步骤请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"定价公式管理"
],
"summary": "删除公式步骤",
"description": "删除指定的公式步骤。删除后其他步骤的执行顺序不会自动调整。\n**注意**:如果后续步骤引用了被删步骤的输出变量,执行时会报错。",
"operationId": "deleteStepUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "formulaId",
"in": "path",
"description": "formulaId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/step/{formulaId}/rollback/{versionNum}": {
"put": {
"tags": [
"定价公式管理"
],
"summary": "回滚公式步骤到指定版本",
"description": "将公式步骤回滚到历史版本。\n回滚操作会用历史版本的表达式、变量等覆盖当前内容,并创建一个新的版本记录。",
"operationId": "rollbackStepUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "formulaId",
"in": "path",
"description": "formulaId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "versionNum",
"in": "path",
"description": "versionNum",
"required": true,
"type": "integer",
"format": "int32"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式步骤VO»",
"originalRef": "统一响应结果«公式步骤VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/step/{formulaId}/toggle": {
"put": {
"tags": [
"定价公式管理"
],
"summary": "启用/禁用公式步骤",
"description": "切换公式步骤的启用状态。\n禁用的步骤在公式执行时会被跳过,不影响其他步骤的执行。\n适用场景临时跳过某个计算步骤进行调试或测试。",
"operationId": "toggleStepUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "formulaId",
"in": "path",
"description": "formulaId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/step/{formulaId}/versions": {
"get": {
"tags": [
"定价公式管理"
],
"summary": "公式步骤版本历史",
"description": "获取公式步骤的所有历史版本列表,按版本号倒序。\n每次更新步骤表达式会自动创建新版本,方便追溯和回滚。",
"operationId": "listVersionsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "formulaId",
"in": "path",
"description": "formulaId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式版本历史VO»»",
"originalRef": "统一响应结果«List«公式版本历史VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式版本历史VO»»",
"originalRef": "统一响应结果«List«公式版本历史VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/test": {
"post": {
"tags": [
"定价公式管理"
],
"summary": "测试公式执行",
"description": "使用自定义变量值测试公式组的执行结果,不影响任何业务数据。\n\n传入公式组ID和测试变量变量名→值的映射,返回每个步骤的执行结果。\n适用于公式调试验证表达式是否正确、计算结果是否符合预期。\n如果某步骤执行出错,会在结果中标明错误信息。",
"operationId": "testFormulasUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式测试请求",
"originalRef": "公式测试请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式测试结果VO»",
"originalRef": "统一响应结果«公式测试结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式测试结果VO»",
"originalRef": "统一响应结果«公式测试结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/var": {
"post": {
"tags": [
"定价公式管理"
],
"summary": "创建公式变量",
"description": "创建公式变量定义。变量名varName全局唯一,建议使用驼峰命名。\n可指定适用的产品类型列表productTypes,为空则适用于所有类型。\n\n**关联字典**\n- product_type产品类型,变量适用范围CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "createVarUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式变量请求",
"originalRef": "公式变量请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式变量VO»",
"originalRef": "统一响应结果«公式变量VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式变量VO»",
"originalRef": "统一响应结果«公式变量VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/var/list": {
"get": {
"tags": [
"定价公式管理"
],
"summary": "公式变量列表",
"description": "获取公式变量列表,可按变量分类筛选。\n\n**变量分类**\n- INPUT输入变量,从业务数据获取如成人人数、资源单价\n- INTERMEDIATE中间变量,由公式步骤计算得出\n- OUTPUT输出变量,最终报价结果如总成本、售价",
"operationId": "listVarsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "category",
"in": "query",
"description": "category",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式变量VO»»",
"originalRef": "统一响应结果«List«公式变量VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«公式变量VO»»",
"originalRef": "统一响应结果«List«公式变量VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/formula/var/{varId}": {
"put": {
"tags": [
"定价公式管理"
],
"summary": "更新公式变量",
"description": "更新公式变量定义。\n\n**关联字典**\n- product_type产品类型,变量适用范围CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "updateVarUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/公式变量请求",
"originalRef": "公式变量请求"
}
},
{
"name": "varId",
"in": "path",
"description": "varId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式变量VO»",
"originalRef": "统一响应结果«公式变量VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«公式变量VO»",
"originalRef": "统一响应结果«公式变量VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"定价公式管理"
],
"summary": "删除公式变量",
"description": "删除公式变量定义。\n**注意**:如果有公式步骤引用了该变量,删除后步骤执行时会报错。建议先确认无引用再删除。",
"operationId": "deleteVarUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "varId",
"in": "path",
"description": "varId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/hotel/{id}": {
"put": {
"tags": [
"行程管理"
],
"summary": "更新每日住宿",
"description": "更新住宿记录的酒店、房型、数量等信息。",
"operationId": "updateHotelUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "住宿记录ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "每日住宿请求",
"required": false,
"schema": {
"$ref": "#/definitions/每日酒店配置请求",
"originalRef": "每日酒店配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«每日酒店VO»",
"originalRef": "统一响应结果«每日酒店VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«每日酒店VO»",
"originalRef": "统一响应结果«每日酒店VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"行程管理"
],
"summary": "删除每日住宿",
"description": "删除指定住宿记录。删除后该天的住宿成本会从报价中移除。",
"operationId": "deleteHotelUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "住宿记录ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item": {
"post": {
"tags": [
"产品管理"
],
"summary": "创建产品(草稿)",
"description": "创建一个新产品,初始状态为 DRAFT草稿。\n\n**产品类型说明**\n- CORE核心产品,标准旅游产品,支持上架/下架审批流程\n- GROUP小蒙马拼团,需配合团期批次管理,按人头计价\n- CUSTOM定制产品,由定制师为客户量身定制,按单计价\n- ROUTE线路产品,预设线路模板,按单计价\n\n**注意事项**\n- 创建后需依次完善行程、定价、价格日历等信息\n- CUSTOM/ROUTE 产品的价格日历存储的是整单总价,不按人头乘算\n- GROUP 产品需额外创建团期批次才能报名\n\n**关联字典**\n- product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾",
"operationId": "createProductUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "创建产品请求",
"required": false,
"schema": {
"$ref": "#/definitions/创建产品请求",
"originalRef": "创建产品请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/list": {
"get": {
"tags": [
"产品管理"
],
"summary": "产品列表",
"description": "分页查询产品列表,支持多维度筛选和排序。\n\n**权限说明**\n- 普通管理员只能看到自己创建的产品\n- SUPER_ADMIN 可看到所有产品\n\n**筛选条件**:关键词(名称/副标题模糊匹配)、产品类型、状态、文件夹、产品线、季节、行程天数。\n支持多状态筛选statuses 字段,逗号分隔)。\n\n**关联字典**\n- product_type产品类型,筛选条件CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_status产品状态,筛选条件+返回字段DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单",
"operationId": "listProductsUsingGET_1",
"produces": [
"*/*"
],
"parameters": [
{
"name": "folderId",
"in": "query",
"description": "文件夹ID",
"required": false,
"type": "string",
"x-example": "1893012345678901234"
},
{
"name": "keyword",
"in": "query",
"description": "搜索关键词",
"required": false,
"type": "string",
"x-example": "丽江"
},
{
"name": "lineId",
"in": "query",
"description": "产品线ID",
"required": false,
"type": "string",
"x-example": "1893012345678901234"
},
{
"name": "page",
"in": "query",
"description": "页码",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1
},
{
"name": "pageSize",
"in": "query",
"description": "每页条数",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 20
},
{
"name": "productType",
"in": "query",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团",
"required": false,
"type": "string",
"x-example": "CORE"
},
{
"name": "season",
"in": "query",
"description": "季节筛选",
"required": false,
"type": "string",
"x-example": "spring"
},
{
"name": "sortBy",
"in": "query",
"description": "排序字段name/tripDays/createTime/updateTime",
"required": false,
"type": "string",
"x-example": "createTime"
},
{
"name": "sortDir",
"in": "query",
"description": "排序方向asc/desc",
"required": false,
"type": "string",
"x-example": "desc"
},
{
"name": "status",
"in": "query",
"description": "产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED",
"required": false,
"type": "string",
"x-example": "PUBLISHED"
},
{
"name": "statuses",
"in": "query",
"description": "多状态筛选(逗号分隔)",
"required": false,
"type": "string",
"x-example": "PUBLISHED,COMPLETED"
},
{
"name": "tripDays",
"in": "query",
"description": "行程天数",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 5
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分页结果«产品列表VO»»",
"originalRef": "统一响应结果«分页结果«产品列表VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分页结果«产品列表VO»»",
"originalRef": "统一响应结果«分页结果«产品列表VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/save": {
"post": {
"tags": [
"产品管理"
],
"summary": "保存产品(统一创建/更新)",
"description": "统一的产品保存接口,根据是否传入 productId 自动判断创建或更新:\n\n- **不传 productId**:创建新产品(草稿),此时 productType 必填\n- **传入 productId**:更新已有产品,仅修改传入的字段\n\n**包含字段**:产品基本信息(名称/副标题/行程天数/出发城市等)、标签列表(tags)、季节列表(seasons)、轮播图/视频、展示开关、政策文本、定制师信息等全部产品属性。\n\n**权限说明**\n- 创建:任何管理员可创建\n- 更新普通管理员只能编辑自己创建的产品,SUPER_ADMIN 可编辑所有产品\n\n**关联字典**\n- product_type产品类型,创建时必填CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_status产品状态,返回字段DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单\n- product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾",
"operationId": "saveProductUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "保存产品请求",
"required": false,
"schema": {
"$ref": "#/definitions/保存产品请求(创建或更新)",
"originalRef": "保存产品请求(创建或更新)"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}": {
"get": {
"tags": [
"产品管理"
],
"summary": "获取产品详情",
"description": "获取产品完整信息,包括基本信息、行程天列表、定价配置、费用项等。\n返回数据包含关联的行程节点资源详情,适用于产品编辑页面。\n不过滤产品状态,所有状态的产品都可查看。\n\n**关联字典**\n- product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_status产品状态DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单\n- product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾",
"operationId": "getProductUsingGET_1",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"产品管理"
],
"summary": "更新产品",
"description": "更新产品基本信息,仅传入需要修改的字段,未传字段不会被覆盖。\n\n**权限说明**\n- 普通管理员只能编辑自己创建的产品\n- SUPER_ADMIN 可编辑所有产品\n\n**注意**:行程、定价、价格日历等通过各自独立的接口管理,不在此接口中处理。\n\n**关联字典**\n- product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾",
"operationId": "updateProductUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "更新产品请求",
"required": false,
"schema": {
"$ref": "#/definitions/更新产品请求",
"originalRef": "更新产品请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"产品管理"
],
"summary": "删除产品",
"description": "软删除产品(设置 deleted_at 字段)。\n\n**权限说明**普通管理员只能删除自己创建的产品,SUPER_ADMIN 可删除所有产品。\n**限制**已上架PUBLISHED的产品不能直接删除,需先下架。",
"operationId": "deleteProductUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch": {
"post": {
"tags": [
"拼团批次管理"
],
"summary": "创建主批次",
"description": "为 GROUP小蒙马拼团产品创建一个团期主批次。\n\n**仅适用于 GROUP 产品类型**。\n每个批次有独立的出发日期、报名截止日期、人数上限。\n创建后状态为 PENDING待开放,需手动开启报名。\n\n**批次状态流转**PENDING → ENROLLING报名中→ CONFIRMED已成团→ CLOSED已关闭\n任意报名状态均可被解散DISBANDED。\n\n**关联字典**\n- product_type产品类型,仅限GROUPGROUP=小蒙马拼团\n- batch_status批次状态PENDING=待开放, ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭, DISBANDED=已解散, IN_PROGRESS=进行中, FINISHED=已结束",
"operationId": "createBatchUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/创建拼团批次请求",
"originalRef": "创建拼团批次请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次VO»",
"originalRef": "统一响应结果«团批次VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次VO»",
"originalRef": "统一响应结果«团批次VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/list": {
"get": {
"tags": [
"拼团批次管理"
],
"summary": "批次列表(树形)",
"description": "获取产品所有批次,以树形结构返回(主批次包含子批次列表)。\n按出发日期升序排列,包含每个批次的报名人数和剩余名额。\n\n**关联字典**\n- batch_status批次状态,返回字段PENDING=待开放, ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭, DISBANDED=已解散, IN_PROGRESS=进行中, FINISHED=已结束",
"operationId": "listBatchesUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次VO»»",
"originalRef": "统一响应结果«List«团批次VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次VO»»",
"originalRef": "统一响应结果«List«团批次VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}": {
"get": {
"tags": [
"拼团批次管理"
],
"summary": "批次详情",
"description": "获取单个批次的完整信息,包括批次基本信息、服务人员配置、套餐组合等。\n\n**关联字典**\n- batch_status批次状态PENDING=待开放, ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭, DISBANDED=已解散, IN_PROGRESS=进行中, FINISHED=已结束\n- staff_type人员类型,服务人员配置GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "getBatchDetailUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次详情VO»",
"originalRef": "统一响应结果«团批次详情VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次详情VO»",
"originalRef": "统一响应结果«团批次详情VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"拼团批次管理"
],
"summary": "更新批次",
"description": "更新批次基本信息。仅传入需要修改的字段。\n已有报名人员的批次修改人数上限时,不能低于已报名人数。",
"operationId": "updateBatchUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/更新拼团批次请求",
"originalRef": "更新拼团批次请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次VO»",
"originalRef": "统一响应结果«团批次VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次VO»",
"originalRef": "统一响应结果«团批次VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"拼团批次管理"
],
"summary": "删除批次",
"description": "删除批次(软删除)。\n**限制**:已有报名人员的批次不能直接删除,需先解散批次。",
"operationId": "deleteBatchUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}/close": {
"put": {
"tags": [
"拼团批次管理"
],
"summary": "关闭报名(ENROLLING/CONFIRMED->CLOSED)",
"description": "关闭批次报名,不再接受新的报名。\n已报名的订单不受影响,仅阻止新增报名。\n适用于报名截止日期到达或手动提前关闭的场景。",
"operationId": "closeEnrollmentUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}/disband": {
"post": {
"tags": [
"拼团批次管理"
],
"summary": "解散批次",
"description": "解散批次并处理已报名的订单。\n\n**重要**:解散操作会触发以下流程:\n1. 批次状态变更为 DISBANDED\n2. 通过 MQ 消息通知订单服务,自动取消该批次下的所有未完成订单\n3. 已支付订单会触发退款流程\n\n必须填写解散原因报名人数不足、行程调整等。",
"operationId": "disbandBatchUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/解散批次请求",
"originalRef": "解散批次请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}/open": {
"put": {
"tags": [
"拼团批次管理"
],
"summary": "开启报名(PENDING->ENROLLING)",
"description": "将批次从 PENDING 状态变更为 ENROLLING报名中。\n开启后用户可在小程序端看到该团期并报名。\n前提条件产品必须已上架PUBLISHED。",
"operationId": "openEnrollmentUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}/staff": {
"get": {
"tags": [
"拼团批次管理"
],
"summary": "服务人员列表",
"description": "**关联字典**\n- staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "listStaffUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»",
"originalRef": "统一响应结果«List«团批次服务人员VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»",
"originalRef": "统一响应结果«List«团批次服务人员VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"post": {
"tags": [
"拼团批次管理"
],
"summary": "保存服务人员(全量替换)",
"description": "保存批次的服务人员配置,采用全量替换模式(先删后增)。\n\n每次提交完整的人员列表,替换掉该批次原有的所有人员配置。\n人员来源于资源服务的人员库,通过 staffId 关联。\n**角色类型**LEADER(领队)/PHOTOGRAPHER(摄影师)/DRIVER(司机)/OTHER(其他)\n\n**关联字典**\n- staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "saveStaffUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "requests",
"description": "requests",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/批次服务人员分配请求",
"originalRef": "批次服务人员分配请求"
}
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»",
"originalRef": "统一响应结果«List«团批次服务人员VO»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»",
"originalRef": "统一响应结果«List«团批次服务人员VO»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}/staff/copy-from/{sourceId}": {
"post": {
"tags": [
"拼团批次管理"
],
"summary": "从其他批次复制服务人员",
"description": "将源批次的服务人员配置复制到当前批次(全量替换当前批次已有人员)。\n适用场景多个团期使用相同的服务人员班底。",
"operationId": "copyStaffUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "sourceId",
"in": "path",
"description": "sourceId",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»",
"originalRef": "统一响应结果«List«团批次服务人员VO»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»",
"originalRef": "统一响应结果«List«团批次服务人员VO»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/batch/{batchId}/sub-batch": {
"post": {
"tags": [
"拼团批次管理"
],
"summary": "创建子批次(溢出)",
"description": "当主批次人数满员时,创建子批次接收溢出报名。\n\n子批次共享主批次的出发日期和行程,但有独立的人数上限和报名人数。\n适用场景某团期特别火爆,需要扩容但希望分开管理。\n子批次在列表中显示为主批次的子级节点。",
"operationId": "createSubBatchUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "batchId",
"in": "path",
"description": "batchId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "productId",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "request",
"required": true,
"schema": {
"$ref": "#/definitions/创建拼团批次请求",
"originalRef": "创建拼团批次请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次VO»",
"originalRef": "统一响应结果«团批次VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«团批次VO»",
"originalRef": "统一响应结果«团批次VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/copy": {
"post": {
"tags": [
"产品管理"
],
"summary": "复制产品",
"description": "深度复制产品,包括行程天、行程节点、定价配置、住宿、餐饮、物资、人员配置等所有关联数据。\n\n复制后的产品状态为 DRAFT,名称自动添加\"(副本)\"后缀。\n适用场景基于已有产品快速创建新产品。\n\n**关联字典**\n- product_type产品类型,返回字段CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_status产品状态,复制后固定为 DRAFT",
"operationId": "copyProductUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/cost-item": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "添加费用项",
"description": "添加产品的费用包含/不包含说明项。\n\n用于在产品详情页展示\"费用包含\"和\"费用不包含\"信息。\n仅用于前端展示,不参与报价计算。",
"operationId": "addCostItemUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "费用项请求",
"required": false,
"schema": {
"$ref": "#/definitions/成本项请求",
"originalRef": "成本项请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品成本项VO»",
"originalRef": "统一响应结果«产品成本项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品成本项VO»",
"originalRef": "统一响应结果«产品成本项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/cost-item/{itemId}": {
"put": {
"tags": [
"定价与费用管理"
],
"summary": "更新费用项",
"description": "更新费用包含/不包含说明项的内容。仅用于前端展示,不参与报价计算。",
"operationId": "updateCostItemUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "费用项ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "费用项请求",
"required": false,
"schema": {
"$ref": "#/definitions/成本项请求",
"originalRef": "成本项请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品成本项VO»",
"originalRef": "统一响应结果«产品成本项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品成本项VO»",
"originalRef": "统一响应结果«产品成本项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"定价与费用管理"
],
"summary": "删除费用项",
"description": "删除费用包含/不包含说明项。",
"operationId": "deleteCostItemUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "费用项ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/cost-items": {
"get": {
"tags": [
"定价与费用管理"
],
"summary": "获取费用项列表",
"description": "获取产品的所有费用包含/不包含说明项列表。",
"operationId": "listCostItemsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品成本项VO»»",
"originalRef": "统一响应结果«List«产品成本项VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品成本项VO»»",
"originalRef": "统一响应结果«List«产品成本项VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/custom-fee": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "添加自定义费用",
"description": "添加产品级别的自定义费用项,直接设置金额,参与成本自动计算。\n\n与额外成本关联不同,自定义费用不关联资源服务的费用项,而是直接指定费用名称和金额。\n适用于临时性或一次性的费用。",
"operationId": "addCustomFeeUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "自定义费用请求",
"required": false,
"schema": {
"$ref": "#/definitions/自定义费用项请求",
"originalRef": "自定义费用项请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品自定义费用项VO»",
"originalRef": "统一响应结果«产品自定义费用项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品自定义费用项VO»",
"originalRef": "统一响应结果«产品自定义费用项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/custom-fee/{feeId}": {
"put": {
"tags": [
"定价与费用管理"
],
"summary": "更新自定义费用",
"description": "更新自定义费用项的名称、金额等信息。修改后会影响成本自动计算结果。",
"operationId": "updateCustomFeeUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "feeId",
"in": "path",
"description": "自定义费用ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "自定义费用请求",
"required": false,
"schema": {
"$ref": "#/definitions/自定义费用项请求",
"originalRef": "自定义费用项请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品自定义费用项VO»",
"originalRef": "统一响应结果«产品自定义费用项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品自定义费用项VO»",
"originalRef": "统一响应结果«产品自定义费用项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"定价与费用管理"
],
"summary": "删除自定义费用",
"description": "删除自定义费用项。删除后该费用不再计入成本自动计算。",
"operationId": "deleteCustomFeeUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "feeId",
"in": "path",
"description": "自定义费用ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/custom-fees": {
"get": {
"tags": [
"定价与费用管理"
],
"summary": "获取自定义费用列表",
"description": "获取产品的所有自定义费用项列表。",
"operationId": "listCustomFeesUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品自定义费用项VO»»",
"originalRef": "统一响应结果«List«产品自定义费用项VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品自定义费用项VO»»",
"originalRef": "统一响应结果«List«产品自定义费用项VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}": {
"put": {
"tags": [
"行程管理"
],
"summary": "更新行程天",
"description": "更新指定天的行程信息,如当天主题、概述等。\n行程天在创建产品时根据 tripDays 自动生成,不支持单独增删,只能更新。\ndayNumber 从 1 开始,对应第几天的行程。",
"operationId": "updateDayUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "行程天请求",
"required": false,
"schema": {
"$ref": "#/definitions/行程天请求",
"originalRef": "行程天请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程天VO»",
"originalRef": "统一响应结果«行程天VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程天VO»",
"originalRef": "统一响应结果«行程天VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}/dining": {
"get": {
"tags": [
"行程管理"
],
"summary": "获取某天的餐厅推荐列表",
"description": "获取指定天的所有餐饮推荐,包含餐厅名称、用餐类型、描述等信息。",
"operationId": "listDiningUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«用餐选项VO»»",
"originalRef": "统一响应结果«List«用餐选项VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«用餐选项VO»»",
"originalRef": "统一响应结果«List«用餐选项VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"post": {
"tags": [
"行程管理"
],
"summary": "添加每日餐厅推荐",
"description": "为指定天添加餐饮推荐,关联资源服务中的餐厅。\n用于展示当天的用餐安排,可按早/午/晚分类。",
"operationId": "addDiningOptionUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "餐饮推荐请求",
"required": false,
"schema": {
"$ref": "#/definitions/用餐选项请求",
"originalRef": "用餐选项请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«用餐选项VO»",
"originalRef": "统一响应结果«用餐选项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«用餐选项VO»",
"originalRef": "统一响应结果«用餐选项VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}/hotel": {
"post": {
"tags": [
"行程管理"
],
"summary": "添加每日住宿",
"description": "为指定天添加住宿安排,关联资源服务中的酒店和房型。\n每天可以有多个住宿选项如不同档次,参与成本自动计算。\n住宿费用会体现在价格日历的成本计算中。",
"operationId": "addHotelUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "每日住宿请求",
"required": false,
"schema": {
"$ref": "#/definitions/每日酒店配置请求",
"originalRef": "每日酒店配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«每日酒店VO»",
"originalRef": "统一响应结果«每日酒店VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«每日酒店VO»",
"originalRef": "统一响应结果«每日酒店VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}/hotels": {
"get": {
"tags": [
"行程管理"
],
"summary": "获取某天的住宿列表",
"description": "获取指定天的所有住宿安排,包含酒店名称、房型、数量等信息。",
"operationId": "listHotelsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«每日酒店VO»»",
"originalRef": "统一响应结果«List«每日酒店VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«每日酒店VO»»",
"originalRef": "统一响应结果«List«每日酒店VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}/node": {
"post": {
"tags": [
"行程管理"
],
"summary": "添加行程节点",
"description": "在指定天添加一个行程节点。节点是行程的最小单元,可关联资源服务中的景区、酒店、活动等。\n\n**节点类型**TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)\n\n**CUSTOM 定制产品特有**:可通过 familyIds 指定节点所属的家庭分组,实现按家庭分配行程。\n新建节点自动追加到当天最后位置,可通过排序接口调整顺序。\n\n**关联字典**\n- city城市,资源面板筛选用用于在添加节点时按城市筛选可选资源",
"operationId": "createNodeUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "创建节点请求",
"required": false,
"schema": {
"$ref": "#/definitions/创建行程节点请求",
"originalRef": "创建行程节点请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}/nodes": {
"get": {
"tags": [
"行程管理"
],
"summary": "获取某天的节点列表",
"description": "获取指定天的所有行程节点,按排序顺序返回。\n每个节点包含类型、名称、时间、关联资源信息、图片等完整数据。\n\n**关联字典**\n- city城市资源面板城市筛选\n- cities城市ID映射城市名称预览",
"operationId": "listNodesUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«行程节点VO»»",
"originalRef": "统一响应结果«List«行程节点VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«行程节点VO»»",
"originalRef": "统一响应结果«List«行程节点VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/day/{dayNumber}/nodes/sort": {
"put": {
"tags": [
"行程管理"
],
"summary": "行程节点拖拽排序",
"description": "重新排列指定天的所有行程节点顺序。前端拖拽排序后,将新的节点ID顺序全量提交。\nnodeIds 列表中的顺序即为新的排序顺序(从上到下)。",
"operationId": "sortNodesUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "dayNumber",
"in": "path",
"description": "天数编号",
"required": false,
"type": "integer",
"format": "int32"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "节点排序请求",
"required": false,
"schema": {
"$ref": "#/definitions/节点排序请求",
"originalRef": "节点排序请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/days": {
"get": {
"tags": [
"行程管理"
],
"summary": "获取行程天列表",
"description": "获取产品所有行程天的信息,按 dayNumber 升序排列。\n每一天包含当天主题、概述等信息,不包含节点详情节点通过单独接口获取。",
"operationId": "listDaysUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«行程天VO»»",
"originalRef": "统一响应结果«List«行程天VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«行程天VO»»",
"originalRef": "统一响应结果«List«行程天VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/extra-cost": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "添加额外成本关联",
"description": "关联资源服务中的费用项cost_item到产品,参与成本自动计算。\n\n额外成本是指不包含在行程节点中、但需要计入总成本的费用。\n例如导游服务费、保险费、通讯费等固定运营开支。",
"operationId": "addExtraCostUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "额外成本请求",
"required": false,
"schema": {
"$ref": "#/definitions/额外成本请求",
"originalRef": "额外成本请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品额外成本VO»",
"originalRef": "统一响应结果«产品额外成本VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品额外成本VO»",
"originalRef": "统一响应结果«产品额外成本VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/extra-cost/{ecId}": {
"put": {
"tags": [
"定价与费用管理"
],
"summary": "更新额外成本关联",
"description": "更新额外成本关联的费用项、数量等信息。修改后会影响成本自动计算结果。",
"operationId": "updateExtraCostUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "ecId",
"in": "path",
"description": "额外成本ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "额外成本请求",
"required": false,
"schema": {
"$ref": "#/definitions/额外成本请求",
"originalRef": "额外成本请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品额外成本VO»",
"originalRef": "统一响应结果«产品额外成本VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品额外成本VO»",
"originalRef": "统一响应结果«产品额外成本VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"定价与费用管理"
],
"summary": "删除额外成本关联",
"description": "删除额外成本关联记录。删除后该费用项不再计入成本自动计算。",
"operationId": "removeExtraCostUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "ecId",
"in": "path",
"description": "额外成本ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/extra-costs": {
"get": {
"tags": [
"定价与费用管理"
],
"summary": "获取额外成本关联列表",
"description": "获取产品关联的所有额外成本项列表,包含费用项名称、金额等信息。",
"operationId": "listExtraCostsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品额外成本VO»»",
"originalRef": "统一响应结果«List«产品额外成本VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品额外成本VO»»",
"originalRef": "统一响应结果«List«产品额外成本VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/families": {
"get": {
"tags": [
"家庭分组管理"
],
"summary": "获取家庭分组列表",
"description": "获取产品的家庭分组列表,按排序序号升序。\n\n**仅适用于 CUSTOM定制产品**。\n家庭分组用于将定制产品的行程按家庭单位分配,每个家庭可以有不同的人数和行程安排。\n行程节点通过 familyIds 字段关联到具体的家庭分组。",
"operationId": "listFamiliesUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«家庭分组VO»»",
"originalRef": "统一响应结果«List«家庭分组VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«家庭分组VO»»",
"originalRef": "统一响应结果«List«家庭分组VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/family": {
"post": {
"tags": [
"家庭分组管理"
],
"summary": "添加家庭分组",
"description": "为 CUSTOM 定制产品添加一个家庭分组,指定家庭名称和各类型人数。\n添加后可在行程节点中关联此家庭,实现按家庭分配行程。",
"operationId": "addFamilyUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "家庭分组请求",
"required": false,
"schema": {
"$ref": "#/definitions/家庭分组保存请求",
"originalRef": "家庭分组保存请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«家庭分组VO»",
"originalRef": "统一响应结果«家庭分组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«家庭分组VO»",
"originalRef": "统一响应结果«家庭分组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/family/{familyId}": {
"put": {
"tags": [
"家庭分组管理"
],
"summary": "更新家庭分组",
"description": "更新家庭分组的名称、各类型人数等信息。\n**仅适用于 CUSTOM定制产品**。",
"operationId": "updateFamilyUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "familyId",
"in": "path",
"description": "家庭ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "家庭分组请求",
"required": false,
"schema": {
"$ref": "#/definitions/家庭分组保存请求",
"originalRef": "家庭分组保存请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«家庭分组VO»",
"originalRef": "统一响应结果«家庭分组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«家庭分组VO»",
"originalRef": "统一响应结果«家庭分组VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"家庭分组管理"
],
"summary": "删除家庭分组",
"description": "删除家庭分组。如果有行程节点通过 familyIds 关联了该分组,需要手动移除关联。\n**仅适用于 CUSTOM定制产品**。",
"operationId": "deleteFamilyUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "familyId",
"in": "path",
"description": "家庭ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/generate-route-map": {
"post": {
"tags": [
"产品管理"
],
"summary": "手动生成路径图",
"description": "根据产品行程节点的经纬度信息,调用地图API生成行程路径图。\n\n通常在行程编辑完成后手动触发,生成结果为 OSS 图片 URL。\n如果行程节点没有经纬度信息,则无法生成路径图。",
"operationId": "generateRouteMapUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«string»",
"originalRef": "统一响应结果«string»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«string»",
"originalRef": "统一响应结果«string»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/group-quote": {
"get": {
"tags": [
"报价计算"
],
"summary": "GROUP产品报价按套餐组合",
"description": "为 GROUP小蒙马拼团产品按团期批次计算报价。\n\n**算价逻辑**\n- 单房差 = 酒店总成本 ÷ 每房成人数(团期配置)\n- 成人价 = 单房差 + 人均成本 + 利润\n- 儿童价 = 人均成本 + 利润(不含酒店)\n- 空床补差 = (房间数×每房成人数 - 成人数) × 单房差\n- 总售价 = 成人价×成人数 + 儿童价×儿童数 + 空床补差\n\n**关联字典**\n- product_type产品类型,仅限GROUPGROUP=小蒙马拼团",
"operationId": "calculateGroupQuoteUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "adultCount",
"in": "query",
"description": "成人人数",
"required": false,
"type": "integer",
"default": 2,
"format": "int32",
"allowEmptyValue": false
},
{
"name": "batchId",
"in": "query",
"description": "团期ID",
"required": false,
"type": "integer",
"format": "int64",
"allowEmptyValue": false
},
{
"name": "childCount",
"in": "query",
"description": "儿童人数",
"required": false,
"type": "integer",
"default": 0,
"format": "int32",
"allowEmptyValue": false
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "roomCount",
"in": "query",
"description": "房间数",
"required": false,
"type": "integer",
"default": 1,
"format": "int32",
"allowEmptyValue": false
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«GROUP产品报价结果»",
"originalRef": "统一响应结果«GROUP产品报价结果»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«GROUP产品报价结果»",
"originalRef": "统一响应结果«GROUP产品报价结果»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/move": {
"put": {
"tags": [
"产品管理"
],
"summary": "移动产品到文件夹",
"description": "将产品移动到指定文件夹,或移出文件夹folderId 传空字符串或 null。\n文件夹用于组织管理产品,不影响产品的业务逻辑。",
"operationId": "moveProductUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "移动产品请求",
"required": false,
"schema": {
"$ref": "#/definitions/产品移动请求",
"originalRef": "产品移动请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/price-calendar": {
"get": {
"tags": [
"定价与费用管理"
],
"summary": "获取月度价格日历",
"description": "获取指定月份的价格日历数据列表。\n\n每条数据包含日期、成人售价/成本价、儿童售价/成本价、库存、状态OPEN/CLOSED等。\n**CORE/GROUP 产品**:价格为单人价格,按人头 × 价格计算总价。\n**CUSTOM/ROUTE 产品**:价格为整单总价,不乘以人头数。",
"operationId": "getMonthCalendarUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "month",
"in": "query",
"description": "月份",
"required": false,
"type": "integer",
"format": "int32",
"allowEmptyValue": false
},
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"name": "year",
"in": "query",
"description": "年份",
"required": false,
"type": "integer",
"format": "int32",
"allowEmptyValue": false
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品价格日历VO»»",
"originalRef": "统一响应结果«List«产品价格日历VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品价格日历VO»»",
"originalRef": "统一响应结果«List«产品价格日历VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"post": {
"tags": [
"定价与费用管理"
],
"summary": "设置单日价格",
"description": "设置或更新指定日期的价格和库存。如果该日期已有记录则更新,否则新建。\n\n可设置成人售价/成本价、儿童售价/成本价、库存数量、状态OPEN/CLOSED。\n状态为 CLOSED 的日期不会出现在小程序端的可选日期中。",
"operationId": "setDayPriceUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "价格日历请求",
"required": false,
"schema": {
"$ref": "#/definitions/价格日历请求",
"originalRef": "价格日历请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品价格日历VO»",
"originalRef": "统一响应结果«产品价格日历VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品价格日历VO»",
"originalRef": "统一响应结果«产品价格日历VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/price-calendar/auto-calc": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "自动计算成本并同步到价格日历",
"description": "根据出发日期和人数,自动计算成本并将结果写入价格日历。\n\n与测算预览不同,此接口会实际更新价格日历数据。\n计算逻辑查询各资源的价格日历 → 汇总成本 → 应用公式和利润规则 → 写入结果。\n\n**关联字典**\n- vehicle_type车型车辆费用成本计算",
"operationId": "autoCalcCostUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "报价请求",
"required": false,
"schema": {
"$ref": "#/definitions/报价请求",
"originalRef": "报价请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«报价结果VO»",
"originalRef": "统一响应结果«报价结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«报价结果VO»",
"originalRef": "统一响应结果«报价结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/price-calendar/batch": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "批量设置价格",
"description": "批量设置日期范围内的价格和库存,支持按星期筛选。\n\n指定 startDate 和 endDate 日期范围,可选 selectedWeekdays 过滤星期几。\n示例设置5月1日-5月31日的工作日周一到周五=[1,2,3,4,5])价格。\nselectedWeekdays 为空时,范围内所有日期都会被设置。",
"operationId": "batchSetPricesUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "批量价格请求",
"required": false,
"schema": {
"$ref": "#/definitions/批量设置价格日历请求",
"originalRef": "批量设置价格日历请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品价格日历VO»»",
"originalRef": "统一响应结果«List«产品价格日历VO»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品价格日历VO»»",
"originalRef": "统一响应结果«List«产品价格日历VO»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/price-calendar/calc-preview": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "测算预览(不写入数据库)",
"description": "根据行程中的资源价格日历,自动计算指定日期的成本价和售价,仅预览不保存。\n\n用于在设置价格日历前预览自动计算的结果。\n计算逻辑汇总当天所有行程节点关联资源的价格 → 应用公式引擎 → 加上利润。\nGROUP 产品需要传 adultCount 参数(影响均摊计算)。\n\n**关联字典**\n- vehicle_type车型车辆费用成本测算",
"operationId": "calcPreviewUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "测算预览请求",
"required": false,
"schema": {
"$ref": "#/definitions/成本预览请求",
"originalRef": "成本预览请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«成本预览VO»",
"originalRef": "统一响应结果«成本预览VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«成本预览VO»",
"originalRef": "统一响应结果«成本预览VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/price-calendar/recalculate": {
"post": {
"tags": [
"定价与费用管理"
],
"summary": "重新测算所有自动测算日期的价格",
"description": "重新计算价格日历中所有 costAutoCalc=true 的日期的成本价和售价。\n\n适用场景资源价格调整后,批量刷新所有自动计算的价格日历。\n返回更新的日期数量和详情。手动设置的价格costAutoCalc=false不受影响。",
"operationId": "recalculateUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Map«string,object»»",
"originalRef": "统一响应结果«Map«string,object»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Map«string,object»»",
"originalRef": "统一响应结果«Map«string,object»»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/pricing": {
"get": {
"tags": [
"定价与费用管理"
],
"summary": "获取定价规则",
"description": "获取产品的定价配置,包括定价模式、利润设置、儿童/婴儿价格、支付方式等。\n如果产品尚未设置定价规则,返回 null。\n\n**关联字典**\n- vehicle_type车型费用配置中车辆相关成本显示",
"operationId": "getPricingUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品定价配置VO»",
"originalRef": "统一响应结果«产品定价配置VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品定价配置VO»",
"originalRef": "统一响应结果«产品定价配置VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"post": {
"tags": [
"定价与费用管理"
],
"summary": "保存定价规则",
"description": "保存或更新产品的定价配置(一个产品仅一条定价记录,重复调用为覆盖更新)。\n\n**定价模式**\n- AUTO自动计算,通过公式引擎根据行程资源价格自动测算成本和售价\n- MANUAL手动定价,直接在价格日历中手动设置每日价格\n- CUSTOM定制定价,设置整单总价customTotalPrice,不按人头\n\n**利润模式**AUTO 模式下生效):\n- FIXED固定金额加价,售价 = 成本 + profitAmount\n- PERCENT百分比加价,售价 = 成本 × (1 + markupPercent/100)\n\n**支付方式**FULL=全款支付,DEPOSIT=定金+尾款(需设置 depositRatio 或 depositAmount\n\n**关联字典**\n- vehicle_type车型费用配置中车辆相关成本计算",
"operationId": "savePricingUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "定价规则请求",
"required": false,
"schema": {
"$ref": "#/definitions/定价配置请求",
"originalRef": "定价配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品定价配置VO»",
"originalRef": "统一响应结果«产品定价配置VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品定价配置VO»",
"originalRef": "统一响应结果«产品定价配置VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/quote": {
"post": {
"tags": [
"报价计算"
],
"summary": "计算报价",
"description": "根据出发日期和人数组合,计算产品的完整报价。\n\n**计算流程**\n1. 从价格日历获取指定日期的单价\n2. 按人数类型分别计算:成人 × 成人价、儿童 × 儿童价\n3. 小童按儿童价 × 折扣比例childDiscountPercent计算\n4. 婴儿使用固定价格babyPrice\n5. 儿童加床childNeedBed=true额外加收 childWithBed 费用\n\n**CUSTOM/ROUTE 产品**:价格日历存的是整单总价,不按人头乘算。\n**GROUP 产品**:建议使用 group-quote 接口,支持套餐组合报价。\n\n**关联字典**\n- product_type产品类型,影响计算逻辑CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "calculateQuoteUsingPOST_1",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "报价请求",
"required": false,
"schema": {
"$ref": "#/definitions/报价请求",
"originalRef": "报价请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«报价结果VO»",
"originalRef": "统一响应结果«报价结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«报价结果VO»",
"originalRef": "统一响应结果«报价结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/share-link": {
"post": {
"tags": [
"产品管理"
],
"summary": "生成定制产品分享链接",
"description": "为 CUSTOM定制产品生成小程序分享链接,用于定制师发送给客户查看方案。\n\n**限制**:仅 CUSTOM 类型且状态为 COMPLETED 的产品可生成。\n**权限**普通管理员只能为自己创建的产品生成链接,SUPER_ADMIN 不受限制。",
"operationId": "generateShareLinkUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分享链接响应»",
"originalRef": "统一响应结果«分享链接响应»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分享链接响应»",
"originalRef": "统一响应结果«分享链接响应»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/staff-config": {
"post": {
"tags": [
"行程管理"
],
"summary": "添加人员配置",
"description": "为产品添加服务人员配置(如领队、摄影师、司机等),关联资源服务中的人员。\n人员配置是产品级别的模板,GROUP 产品的实际人员在团期批次中单独分配。\n人员费用参与成本自动计算。\n\n**关联字典**\n- staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "addStaffConfigUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "人员配置请求",
"required": false,
"schema": {
"$ref": "#/definitions/人员配置请求",
"originalRef": "人员配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品人员配置VO»",
"originalRef": "统一响应结果«产品人员配置VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品人员配置VO»",
"originalRef": "统一响应结果«产品人员配置VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/staff-configs": {
"get": {
"tags": [
"行程管理"
],
"summary": "获取产品人员配置列表",
"description": "**关联字典**\n- staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "listStaffConfigsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品人员配置VO»»",
"originalRef": "统一响应结果«List«产品人员配置VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品人员配置VO»»",
"originalRef": "统一响应结果«List«产品人员配置VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/status": {
"put": {
"tags": [
"产品管理"
],
"summary": "产品状态变更(上架/下架/完成)",
"description": "根据产品类型,状态流转规则不同:\n\n**核心产品(CORE) / 小蒙马(GROUP)**:支持上架/下架,需企微审批\n- DRAFT → PENDING_REVIEW → REVIEWED → PUBLISHED上架\n- PUBLISHED → UNPUBLISHED下架\n- UNPUBLISHED → PUBLISHED重新上架\n- REJECTED → DRAFT驳回后重新编辑\n\n**定制产品(CUSTOM)**:仅支持完成,无上架/下架概念\n- DRAFT → COMPLETED定制师完成设计\n- COMPLETED → ORDERED客户下单,系统自动变更\n- ORDERED → COMPLETED订单取消/退款后回退)\n\n**关联字典**\n- product_type产品类型,影响状态流转规则CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_status产品状态,请求+返回字段DRAFT=草稿, PENDING_REVIEW=待审核, REVIEWED=已审核, REJECTED=已驳回, PUBLISHED=已上架, UNPUBLISHED=已下架, COMPLETED=已完成, ORDERED=已下单",
"operationId": "changeStatusUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "状态变更请求",
"required": false,
"schema": {
"$ref": "#/definitions/产品状态变更请求",
"originalRef": "产品状态变更请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/item/{productId}/supplies": {
"get": {
"tags": [
"行程管理"
],
"summary": "获取产品物资列表",
"description": "获取产品关联的所有物资配品,包含物资名称、数量、单价等信息。",
"operationId": "listSuppliesUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品物资VO»»",
"originalRef": "统一响应结果«List«产品物资VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品物资VO»»",
"originalRef": "统一响应结果«List«产品物资VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"post": {
"tags": [
"行程管理"
],
"summary": "添加物资配品",
"description": "为产品添加物资配品(如帐篷、睡袋、登山杖等),关联资源服务中的物资。\n物资配品是产品级别的,不区分具体哪一天,参与成本计算。",
"operationId": "addSuppliesUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "物资配品请求",
"required": false,
"schema": {
"$ref": "#/definitions/物资配置请求",
"originalRef": "物资配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品物资VO»",
"originalRef": "统一响应结果«产品物资VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品物资VO»",
"originalRef": "统一响应结果«产品物资VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/line": {
"post": {
"tags": [
"产品线管理"
],
"summary": "创建产品线",
"description": "创建产品线,用于对产品进行业务分类(如:亲子游、蜜月游、探险游等)。\n产品线在小程序端可作为筛选条件,帮助用户快速找到感兴趣的产品类别。",
"operationId": "createLineUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "request",
"description": "创建产品线请求",
"required": false,
"schema": {
"$ref": "#/definitions/创建产品线请求",
"originalRef": "创建产品线请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品线VO»",
"originalRef": "统一响应结果«产品线VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品线VO»",
"originalRef": "统一响应结果«产品线VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/line/active": {
"get": {
"tags": [
"产品线管理"
],
"summary": "所有启用的产品线",
"description": "获取所有启用状态的产品线,不分页。\n适用于产品编辑时的产品线下拉选择,以及小程序端的筛选项。",
"operationId": "listAllActiveUsingGET",
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品线VO»»",
"originalRef": "统一响应结果«List«产品线VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«产品线VO»»",
"originalRef": "统一响应结果«List«产品线VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/line/list": {
"get": {
"tags": [
"产品线管理"
],
"summary": "产品线列表(分页)",
"description": "分页查询产品线列表,支持按名称关键词筛选。",
"operationId": "listLinesUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "keyword",
"in": "query",
"description": "搜索关键词",
"required": false,
"type": "string",
"x-example": "丽江"
},
{
"name": "page",
"in": "query",
"description": "页码",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1
},
{
"name": "pageSize",
"in": "query",
"description": "每页条数",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 20
},
{
"name": "status",
"in": "query",
"description": "产品线状态ACTIVE=启用 INACTIVE=停用",
"required": false,
"type": "string",
"x-example": "ACTIVE"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分页结果«产品线VO»»",
"originalRef": "统一响应结果«分页结果«产品线VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分页结果«产品线VO»»",
"originalRef": "统一响应结果«分页结果«产品线VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/line/{lineId}": {
"get": {
"tags": [
"产品线管理"
],
"summary": "产品线详情",
"description": "获取指定产品线的完整信息。",
"operationId": "getLineUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "lineId",
"in": "path",
"description": "产品线ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品线VO»",
"originalRef": "统一响应结果«产品线VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品线VO»",
"originalRef": "统一响应结果«产品线VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"产品线管理"
],
"summary": "更新产品线",
"description": "更新产品线名称、描述、状态等信息。",
"operationId": "updateLineUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "lineId",
"in": "path",
"description": "产品线ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "更新产品线请求",
"required": false,
"schema": {
"$ref": "#/definitions/更新产品线请求",
"originalRef": "更新产品线请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品线VO»",
"originalRef": "统一响应结果«产品线VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品线VO»",
"originalRef": "统一响应结果«产品线VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"产品线管理"
],
"summary": "删除产品线",
"description": "删除产品线(软删除)。已关联产品的产品线仍可删除,但关联产品的产品线字段不会被清空。",
"operationId": "deleteLineUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "lineId",
"in": "path",
"description": "产品线ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/node/{nodeId}": {
"put": {
"tags": [
"行程管理"
],
"summary": "更新行程节点",
"description": "更新行程节点信息,仅传入需要修改的字段。\n可修改节点名称、时间、关联资源、图片、描述等。\n\n**关联字典**\n- city城市资源面板城市筛选\n- cities城市ID映射城市名称预览",
"operationId": "updateNodeUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "nodeId",
"in": "path",
"description": "行程节点ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "更新节点请求",
"required": false,
"schema": {
"$ref": "#/definitions/更新行程节点请求",
"originalRef": "更新行程节点请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"行程管理"
],
"summary": "删除行程节点",
"description": "删除指定行程节点,同天其他节点的排序自动调整。",
"operationId": "deleteNodeUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "nodeId",
"in": "path",
"description": "行程节点ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/node/{nodeId}/copy": {
"post": {
"tags": [
"行程管理"
],
"summary": "复制行程节点",
"description": "复制指定节点到同一天的末尾位置,包括节点的所有属性(名称、资源关联、图片等)。\n适用场景同一天有相似的行程安排时快速复制。",
"operationId": "copyNodeUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "nodeId",
"in": "path",
"description": "行程节点ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/node/{nodeId}/move": {
"put": {
"tags": [
"行程管理"
],
"summary": "移动行程节点到其他天",
"description": "将节点从当前天移动到目标天的末尾位置。\n移动后原天和目标天的节点排序自动调整。",
"operationId": "moveNodeUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "nodeId",
"in": "path",
"description": "行程节点ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "节点移动请求",
"required": false,
"schema": {
"$ref": "#/definitions/节点移动请求",
"originalRef": "节点移动请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«行程节点VO»",
"originalRef": "统一响应结果«行程节点VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/staff-config/{id}": {
"put": {
"tags": [
"行程管理"
],
"summary": "更新人员配置",
"description": "**关联字典**\n- staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "updateStaffConfigUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "人员配置ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "人员配置请求",
"required": false,
"schema": {
"$ref": "#/definitions/人员配置请求",
"originalRef": "人员配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品人员配置VO»",
"originalRef": "统一响应结果«产品人员配置VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品人员配置VO»",
"originalRef": "统一响应结果«产品人员配置VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"行程管理"
],
"summary": "删除人员配置",
"description": "删除指定的人员配置记录。删除后该人员费用不再计入成本。\n\n**关联字典**\n- staff_type人员类型GUIDE=领队, DRIVER=司机, PHOTOGRAPHER=摄影师, ASSISTANT=助理, OTHER=其他",
"operationId": "deleteStaffConfigUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "人员配置ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/supplies/{id}": {
"put": {
"tags": [
"行程管理"
],
"summary": "更新物资配品",
"description": "更新物资配品的关联物资、数量等信息。修改后会影响成本自动计算结果。",
"operationId": "updateSuppliesUsingPUT",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "物资配品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "物资配品请求",
"required": false,
"schema": {
"$ref": "#/definitions/物资配置请求",
"originalRef": "物资配置请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品物资VO»",
"originalRef": "统一响应结果«产品物资VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品物资VO»",
"originalRef": "统一响应结果«产品物资VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"行程管理"
],
"summary": "删除物资配品",
"description": "删除指定的物资配品记录。删除后该物资费用不再计入成本。",
"operationId": "deleteSuppliesUsingDELETE",
"produces": [
"*/*"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "物资配品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/warm-tips": {
"post": {
"tags": [
"温馨提示管理"
],
"summary": "创建温馨提示",
"description": "创建后默认启用",
"operationId": "createUsingPOST_1",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "tipsRequest",
"description": "tipsRequest",
"required": true,
"schema": {
"$ref": "#/definitions/温馨提示请求",
"originalRef": "温馨提示请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«温馨提示VO»",
"originalRef": "统一响应结果«温馨提示VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«温馨提示VO»",
"originalRef": "统一响应结果«温馨提示VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/warm-tips/enabled": {
"get": {
"tags": [
"温馨提示管理"
],
"summary": "启用的温馨提示列表",
"description": "仅返回启用状态的提示,供产品设计时选择",
"operationId": "listEnabledUsingGET_1",
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«温馨提示VO»»",
"originalRef": "统一响应结果«List«温馨提示VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«温馨提示VO»»",
"originalRef": "统一响应结果«List«温馨提示VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/warm-tips/list": {
"get": {
"tags": [
"温馨提示管理"
],
"summary": "温馨提示列表",
"description": "返回所有温馨提示(含禁用),按创建时间倒序",
"operationId": "listUsingGET_1",
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«温馨提示VO»»",
"originalRef": "统一响应结果«List«温馨提示VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«List«温馨提示VO»»",
"originalRef": "统一响应结果«List«温馨提示VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/warm-tips/{tipsId}": {
"get": {
"tags": [
"温馨提示管理"
],
"summary": "温馨提示详情",
"operationId": "detailUsingGET_1",
"produces": [
"*/*"
],
"parameters": [
{
"name": "tipsId",
"in": "path",
"description": "温馨提示ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«温馨提示VO»",
"originalRef": "统一响应结果«温馨提示VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«温馨提示VO»",
"originalRef": "统一响应结果«温馨提示VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"put": {
"tags": [
"温馨提示管理"
],
"summary": "修改温馨提示",
"operationId": "updateUsingPUT_1",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "tipsId",
"in": "path",
"description": "温馨提示ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "tipsRequest",
"description": "tipsRequest",
"required": true,
"schema": {
"$ref": "#/definitions/温馨提示请求",
"originalRef": "温馨提示请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«温馨提示VO»",
"originalRef": "统一响应结果«温馨提示VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«温馨提示VO»",
"originalRef": "统一响应结果«温馨提示VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
},
"delete": {
"tags": [
"温馨提示管理"
],
"summary": "删除温馨提示",
"description": "软删除,已绑定的产品不受影响(产品详情会显示为空)",
"operationId": "deleteUsingDELETE_1",
"produces": [
"*/*"
],
"parameters": [
{
"name": "tipsId",
"in": "path",
"description": "温馨提示ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/admin/product/warm-tips/{tipsId}/toggle": {
"put": {
"tags": [
"温馨提示管理"
],
"summary": "启用/禁用温馨提示",
"description": "禁用后不再出现在产品设计的可选列表中,已绑定的产品不受影响",
"operationId": "toggleUsingPUT_1",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "enabled",
"in": "query",
"description": "是否启用",
"required": false,
"type": "boolean",
"allowEmptyValue": false
},
{
"name": "tipsId",
"in": "path",
"description": "温馨提示ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«Void»",
"originalRef": "统一响应结果«Void»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/mp/product/list": {
"get": {
"tags": [
"小程序-产品"
],
"summary": "产品列表C端",
"description": "小程序端产品列表接口,仅返回已上架PUBLISHED的产品。\n\n支持按产品类型、季节、行程天数、目的地、产品线、支付模式、定制师等筛选。\n默认按 sortOrder 排序,也可按价格或行程天数排序。\n\n**关联字典**\n- product_type产品类型,筛选条件CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品",
"operationId": "listProductsUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "designerId",
"in": "query",
"description": "定制师ID创建者ID筛选",
"required": false,
"type": "integer",
"format": "int64",
"x-example": 1893012345678901234
},
{
"name": "destination",
"in": "query",
"description": "目的地筛选",
"required": false,
"type": "string",
"x-example": "丽江"
},
{
"name": "keyword",
"in": "query",
"description": "搜索关键词(产品名称)",
"required": false,
"type": "string",
"x-example": "丽江"
},
{
"name": "lineId",
"in": "query",
"description": "产品线ID筛选",
"required": false,
"type": "string",
"x-example": "1893012345678901234"
},
{
"name": "page",
"in": "query",
"description": "页码",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1
},
{
"name": "pageSize",
"in": "query",
"description": "每页条数",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 10
},
{
"name": "paymentMode",
"in": "query",
"description": "支付模式筛选FULL=全款 DEPOSIT=定金+尾款 null=全部",
"required": false,
"type": "string",
"x-example": "DEPOSIT"
},
{
"name": "productType",
"in": "query",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团",
"required": false,
"type": "string",
"x-example": "CORE"
},
{
"name": "season",
"in": "query",
"description": "季节筛选",
"required": false,
"type": "string",
"x-example": "spring"
},
{
"name": "sortBy",
"in": "query",
"description": "排序字段price/tripDays/default(默认按sortOrder)",
"required": false,
"type": "string",
"x-example": "price"
},
{
"name": "sortDir",
"in": "query",
"description": "排序方向asc/desc",
"required": false,
"type": "string",
"x-example": "asc"
},
{
"name": "tripDays",
"in": "query",
"description": "行程天数筛选",
"required": false,
"type": "integer",
"format": "int32",
"x-example": 5
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分页结果«C端产品列表VO»»",
"originalRef": "统一响应结果«分页结果«C端产品列表VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«分页结果«C端产品列表VO»»",
"originalRef": "统一响应结果«分页结果«C端产品列表VO»»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/mp/product/{productId}": {
"get": {
"tags": [
"小程序-产品"
],
"summary": "产品详情C端",
"description": "小程序端产品详情接口,仅返回已上架PUBLISHED的产品。\n包含完整的行程信息、定价配置、费用说明、创作者寄语等。\n未上架的产品会返回 404 错误。\n\n**关联字典**\n- product_type产品类型CORE=核心产品, GROUP=小蒙马拼团, CUSTOM=定制产品, ROUTE=线路产品\n- product_category产品分类family=亲子游, honeymoon=蜜月游, photography=旅拍, experience=体验, driving=自驾",
"operationId": "getProductUsingGET",
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«产品详情VO»",
"originalRef": "统一响应结果«产品详情VO»"
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
},
"/mp/product/{productId}/quote": {
"post": {
"tags": [
"小程序-产品"
],
"summary": "报价计算C端",
"description": "小程序端报价计算接口,根据用户选择的日期和人数计算总价。\n内部会校验产品是否存在且已上架。\n详细计算逻辑参见管理后台的报价计算接口说明。",
"operationId": "calculateQuoteUsingPOST",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"name": "productId",
"in": "path",
"description": "产品ID",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "body",
"name": "request",
"description": "报价请求",
"required": false,
"schema": {
"$ref": "#/definitions/报价请求",
"originalRef": "报价请求"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«报价结果VO»",
"originalRef": "统一响应结果«报价结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"responsesObject": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/统一响应结果«报价结果VO»",
"originalRef": "统一响应结果«报价结果VO»"
}
},
"201": {
"description": "Created"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
},
"deprecated": false,
"x-order": "2147483647"
}
}
},
"definitions": {
"C端产品列表VO": {
"type": "object",
"properties": {
"coverImageUrl": {
"type": "string",
"description": "封面图URL"
},
"creatorAvatarUrl": {
"type": "string",
"description": "定制师头像URL"
},
"departureCity": {
"type": "string",
"description": "出发城市"
},
"destinationCity": {
"type": "string",
"description": "目的地城市"
},
"lineName": {
"type": "string",
"description": "产品线名称"
},
"name": {
"type": "string",
"description": "产品名称"
},
"paymentMode": {
"type": "string",
"description": "支付模式FULL=全款 DEPOSIT=定金+尾款"
},
"productId": {
"type": "string",
"description": "产品ID"
},
"productType": {
"type": "string",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团"
},
"routeMapUrl": {
"type": "string",
"description": "路径图URL"
},
"seasonLabels": {
"type": "array",
"description": "适用季节列表(中文)",
"items": {
"type": "string"
}
},
"seasons": {
"type": "array",
"description": "适用季节列表(编码)",
"items": {
"type": "string"
}
},
"startPrice": {
"type": "number",
"description": "起步价(来自定价配置)"
},
"subtitle": {
"type": "string",
"description": "副标题"
},
"tags": {
"type": "array",
"description": "产品标签列表",
"items": {
"type": "string"
}
},
"tripDays": {
"type": "integer",
"format": "int32",
"description": "行程天数"
},
"tripNights": {
"type": "integer",
"format": "int32",
"description": "行程晚数"
}
},
"title": "C端产品列表VO"
},
"GROUP产品报价结果": {
"type": "object",
"properties": {
"adultCostPrice": {
"type": "number",
"description": "成人成本价(单房差+每人费用)"
},
"adultCount": {
"type": "integer",
"format": "int32",
"description": "成人数"
},
"adultSellPrice": {
"type": "number",
"description": "成人售价"
},
"adultsPerRoom": {
"type": "integer",
"format": "int32",
"description": "每间房入住成人数"
},
"childCostPrice": {
"type": "number",
"description": "儿童成本价(每人费用,不含酒店)"
},
"childCount": {
"type": "integer",
"format": "int32",
"description": "儿童数"
},
"childSellPrice": {
"type": "number",
"description": "儿童售价"
},
"code": {
"type": "integer",
"format": "int32",
"description": "返回码: 0=成功, 1=非GROUP产品, 2=错误"
},
"dayCosts": {
"type": "array",
"description": "每日成本明细",
"items": {
"$ref": "#/definitions/每日成本明细",
"originalRef": "每日成本明细"
}
},
"emptyBedSupplement": {
"type": "number",
"description": "空床补差 = (房间数×每房成人数 - 成人数) × 单房差"
},
"extraCostItems": {
"type": "array",
"description": "额外成本明细列表",
"items": {
"$ref": "#/definitions/额外成本明细项",
"originalRef": "额外成本明细项"
}
},
"extraCostPerPerson": {
"type": "number",
"description": "额外成本(人均)"
},
"extraCostTotal": {
"type": "number",
"description": "额外成本总额(团队)"
},
"hotelCostTotal": {
"type": "number",
"description": "酒店总成本"
},
"message": {
"type": "string",
"description": "错误信息(code!=0时)"
},
"perPersonCost": {
"type": "number",
"description": "每人成本(不含酒店)"
},
"profitMode": {
"type": "string",
"description": "利润模式"
},
"roomCount": {
"type": "integer",
"format": "int32",
"description": "选择的房间数"
},
"singleRoomSupplement": {
"type": "number",
"description": "单房差 = 成人售价 - 儿童售价"
},
"totalSellPrice": {
"type": "number",
"description": "总售价 = 成人价×成人数 + 儿童价×儿童数 + 空床补差"
},
"warnings": {
"type": "array",
"description": "警告信息",
"items": {
"type": "string"
}
}
},
"title": "GROUP产品报价结果"
},
"产品人员配置VO": {
"type": "object",
"properties": {
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"id": {
"type": "string",
"description": "记录ID"
},
"quantity": {
"type": "integer",
"format": "int32",
"description": "数量"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"staffType": {
"type": "string",
"description": "人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER"
},
"staffTypeName": {
"type": "string",
"description": "人员类型名称"
}
},
"title": "产品人员配置VO"
},
"产品价格日历VO": {
"type": "object",
"properties": {
"adultCostPrice": {
"type": "number",
"description": "成人成本价"
},
"adultProfit": {
"type": "number",
"description": "成人利润"
},
"adultSellPrice": {
"type": "number",
"description": "成人售价"
},
"childCostPrice": {
"type": "number",
"description": "儿童成本价"
},
"childProfit": {
"type": "number",
"description": "儿童利润"
},
"childSellPrice": {
"type": "number",
"description": "儿童售价"
},
"costAutoCalc": {
"type": "boolean",
"description": "是否自动计算成本"
},
"date": {
"type": "string",
"format": "date",
"description": "日期"
},
"id": {
"type": "string",
"description": "价格日历ID"
},
"profitRate": {
"type": "number",
"description": "利润率(百分比)"
},
"remark": {
"type": "string",
"description": "备注"
},
"sold": {
"type": "integer",
"format": "int32",
"description": "已售数量"
},
"status": {
"type": "string",
"description": "状态OPEN=开放 CLOSED=关闭"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "库存数量"
}
},
"title": "产品价格日历VO"
},
"产品列表VO": {
"type": "object",
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"description": "成人数(私人定制/路书)"
},
"approvalNo": {
"type": "string",
"description": "审批编号"
},
"babyCount": {
"type": "integer",
"format": "int32",
"description": "幼童数(私人定制/路书)"
},
"childCount": {
"type": "integer",
"format": "int32",
"description": "儿童数(私人定制/路书)"
},
"coverImageUrl": {
"type": "string",
"description": "封面图URL"
},
"createBy": {
"type": "string",
"description": "创建人ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"departureCity": {
"type": "string",
"description": "出发城市"
},
"destinationCity": {
"type": "string",
"description": "目的地城市"
},
"folderId": {
"type": "string",
"description": "所属文件夹ID"
},
"groupRoomId": {
"type": "string",
"description": "企微群聊ID(用于会话存档展示群消息)"
},
"isBooking": {
"type": "boolean",
"description": "是否预约产品"
},
"lineId": {
"type": "string",
"description": "产品线ID"
},
"lineName": {
"type": "string",
"description": "产品线名称"
},
"maxAdultPerOrder": {
"type": "integer",
"format": "int32",
"description": "每单最大成人数(null=不限)"
},
"maxChildPerOrder": {
"type": "integer",
"format": "int32",
"description": "每单最大儿童数(null=不限)"
},
"mchId": {
"type": "string",
"description": "商户号"
},
"minAdultPerOrder": {
"type": "integer",
"format": "int32",
"description": "每单最少成人数(null=默认1)"
},
"name": {
"type": "string",
"description": "产品名称"
},
"pendingStatus": {
"type": "string",
"description": "待审批目标状态"
},
"productId": {
"type": "string",
"description": "产品ID"
},
"productNo": {
"type": "string",
"description": "产品编号"
},
"productType": {
"type": "string",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团"
},
"seasonLabels": {
"type": "array",
"description": "适用季节列表(中文)",
"items": {
"type": "string"
}
},
"seasons": {
"type": "array",
"description": "适用季节列表(编码)",
"items": {
"type": "string"
}
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"status": {
"type": "string",
"description": "产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED"
},
"subtitle": {
"type": "string",
"description": "副标题"
},
"tripDays": {
"type": "integer",
"format": "int32",
"description": "行程天数"
},
"tripNights": {
"type": "integer",
"format": "int32",
"description": "行程晚数"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"description": "小童数(私人定制/路书)"
}
},
"title": "产品列表VO"
},
"产品定价配置VO": {
"type": "object",
"properties": {
"adultExtraBed": {
"type": "number",
"description": "成人加床费"
},
"babyPrice": {
"type": "number",
"description": "婴儿价"
},
"balanceDueDays": {
"type": "integer",
"format": "int32",
"description": "尾款支付截止天数出发前N天"
},
"childDiscountPercent": {
"type": "number",
"description": "儿童折扣百分比"
},
"childNoBed": {
"type": "number",
"description": "儿童不占床价"
},
"childWithBed": {
"type": "number",
"description": "儿童占床价"
},
"companionPrice": {
"type": "number",
"description": "陪同人员价格"
},
"customTotalPrice": {
"type": "number",
"description": "定制产品总价CUSTOM模式下使用"
},
"depositAmount": {
"type": "number",
"description": "定金金额"
},
"depositRatio": {
"type": "integer",
"format": "int32",
"description": "定金比例(百分比)"
},
"extraCostPerPerson": {
"type": "number",
"description": "每人额外成本"
},
"insuranceFee": {
"type": "number",
"description": "保险费用"
},
"markupPercent": {
"type": "number",
"description": "加价百分比PERCENT模式下使用"
},
"maxGroupSize": {
"type": "integer",
"format": "int32",
"description": "最大成团人数"
},
"mealBudget": {
"type": "number",
"description": "餐费预算"
},
"minGroupSize": {
"type": "integer",
"format": "int32",
"description": "最小成团人数"
},
"paymentType": {
"type": "string",
"description": "支付方式FULL=全款 DEPOSIT=定金+尾款"
},
"pricingId": {
"type": "string",
"description": "定价配置ID"
},
"pricingMode": {
"type": "string",
"description": "定价模式AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价"
},
"productId": {
"type": "string",
"description": "产品ID"
},
"profitAmount": {
"type": "number",
"description": "利润金额FIXED模式下使用"
},
"profitMode": {
"type": "string",
"description": "利润模式FIXED=固定金额 PERCENT=百分比"
},
"singleRoomDiff": {
"type": "number",
"description": "单房差"
},
"vehicleModelIds": {
"type": "array",
"description": "车型ID列表",
"items": {
"type": "string"
}
},
"vehicleWarning": {
"type": "string",
"description": "车辆绑定警告信息(为空表示绑定成功)"
}
},
"title": "产品定价配置VO"
},
"产品成本项VO": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER"
},
"description": {
"type": "string",
"description": "成本项描述"
},
"id": {
"type": "string",
"description": "成本项ID"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"title": {
"type": "string",
"description": "成本项标题"
},
"type": {
"type": "string",
"description": "成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用"
}
},
"title": "产品成本项VO"
},
"产品文件夹VO": {
"type": "object",
"properties": {
"children": {
"type": "array",
"description": "子文件夹列表",
"items": {
"$ref": "#/definitions/产品文件夹VO",
"originalRef": "产品文件夹VO"
}
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"folderId": {
"type": "string",
"description": "文件夹ID"
},
"name": {
"type": "string",
"description": "文件夹名称"
},
"ownerId": {
"type": "string",
"description": "拥有者ID"
},
"ownerName": {
"type": "string",
"description": "拥有者姓名"
},
"parentId": {
"type": "string",
"description": "父文件夹ID"
},
"productCount": {
"type": "integer",
"format": "int32",
"description": "文件夹内产品数量"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "产品文件夹VO"
},
"产品物资VO": {
"type": "object",
"properties": {
"billingType": {
"type": "string",
"description": "计费方式BY_PERSON=按人头 BY_COUNT=按次/按件"
},
"costPerPerson": {
"type": "number",
"description": "每人成本"
},
"coverUrl": {
"type": "string",
"description": "封面图URL"
},
"dayNumber": {
"type": "integer",
"format": "int32",
"description": "天数编号scope=DAY时生效"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"id": {
"type": "string",
"description": "记录ID"
},
"quantity": {
"type": "integer",
"format": "int32",
"description": "数量"
},
"scope": {
"type": "string",
"description": "适用范围ALL=整个行程 DAY=指定天"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"suppliesId": {
"type": "string",
"description": "物资ID"
},
"suppliesName": {
"type": "string",
"description": "物资名称"
}
},
"title": "产品物资VO"
},
"产品状态变更请求": {
"type": "object",
"required": [
"status"
],
"properties": {
"reason": {
"type": "string",
"example": "行程信息不完整,请补充",
"description": "状态变更原因(驳回时必填;上架/下架审批时可填)"
},
"status": {
"type": "string",
"example": "PUBLISHED",
"description": "目标状态。核心/小蒙马DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED;定制产品COMPLETED"
}
},
"title": "产品状态变更请求"
},
"产品移动请求": {
"type": "object",
"properties": {
"folderId": {
"type": "string",
"example": 1893012345678901234,
"description": "目标文件夹ID,为空则移动到根目录"
}
},
"title": "产品移动请求"
},
"产品线VO": {
"type": "object",
"properties": {
"coverImageUrl": {
"type": "string",
"description": "封面图URL"
},
"createBy": {
"type": "string",
"description": "创建人ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"description": {
"type": "string",
"description": "产品线描述"
},
"lineId": {
"type": "string",
"description": "产品线ID"
},
"name": {
"type": "string",
"description": "产品线名称"
},
"productCount": {
"type": "integer",
"format": "int32",
"description": "关联产品数量"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"status": {
"type": "string",
"description": "状态ACTIVE=启用 INACTIVE=停用"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "产品线VO"
},
"产品自定义费用项VO": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "费用说明"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"feeAmount": {
"type": "number",
"description": "费用金额"
},
"feeName": {
"type": "string",
"description": "费用项名称"
},
"feeUnit": {
"type": "string",
"description": "费用单位"
},
"id": {
"type": "string",
"description": "费用项ID"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
}
},
"title": "产品自定义费用项VO"
},
"产品详情VO": {
"type": "object",
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"description": "成人人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"description": "婴儿人数"
},
"benefitsDescription": {
"type": "array",
"description": "权益说明(静态,所有产品相同)",
"items": {
"$ref": "#/definitions/权益分组",
"originalRef": "权益分组"
}
},
"bookingTermsContent": {
"type": "string",
"description": "预订条款内容"
},
"bookingTermsId": {
"type": "string",
"description": "预订条款ID"
},
"bookingTermsName": {
"type": "string",
"description": "预订条款名称"
},
"carouselImages": {
"type": "array",
"description": "轮播图列表",
"items": {
"type": "string"
}
},
"carouselVideoUrl": {
"type": "string",
"description": "轮播视频URL"
},
"chatMessages": {
"type": "array",
"description": "群聊消息列表",
"items": {
"$ref": "#/definitions/群聊消息VO",
"originalRef": "群聊消息VO"
}
},
"childCount": {
"type": "integer",
"format": "int32",
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"description": "联系电话(定制产品)"
},
"costItems": {
"type": "array",
"description": "成本项列表",
"items": {
"$ref": "#/definitions/产品成本项VO",
"originalRef": "产品成本项VO"
}
},
"coverImageUrl": {
"type": "string",
"description": "封面图URL"
},
"createBy": {
"type": "string",
"description": "创建人ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"creatorAvatarUrl": {
"type": "string",
"description": "定制师头像URL"
},
"creatorIntro": {
"type": "string",
"description": "创作者寄语"
},
"customFees": {
"type": "array",
"description": "自定义费用项列表",
"items": {
"$ref": "#/definitions/产品自定义费用项VO",
"originalRef": "产品自定义费用项VO"
}
},
"customerName": {
"type": "string",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"description": "定制师ID"
},
"departureCity": {
"type": "string",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"description": "出发日期(定制产品)"
},
"destinationCities": {
"type": "array",
"description": "途经城市列表(从行程节点资源去重提取)",
"items": {
"type": "string"
}
},
"destinationCity": {
"type": "string",
"description": "目的地城市"
},
"families": {
"type": "array",
"description": "家庭分组列表(定制产品)",
"items": {
"$ref": "#/definitions/家庭分组VO",
"originalRef": "家庭分组VO"
}
},
"folderId": {
"type": "string",
"description": "所属文件夹ID"
},
"groupChatQrUrl": {
"type": "string",
"description": "群聊二维码URL"
},
"groupRoomId": {
"type": "string",
"description": "企微群聊ID(用于会话存档展示群消息)"
},
"isBooking": {
"type": "boolean",
"description": "是否预约产品"
},
"itineraryDays": {
"type": "array",
"description": "行程天列表",
"items": {
"$ref": "#/definitions/行程天VO",
"originalRef": "行程天VO"
}
},
"lineId": {
"type": "string",
"description": "产品线ID"
},
"lineName": {
"type": "string",
"description": "产品线名称"
},
"lineSubtitle": {
"type": "string",
"description": "产品线副标题"
},
"maxAdultPerOrder": {
"type": "integer",
"format": "int32",
"description": "每单最大成人数(null=不限)"
},
"maxChildPerOrder": {
"type": "integer",
"format": "int32",
"description": "每单最大儿童数(null=不限)"
},
"mchId": {
"type": "string",
"description": "商户号"
},
"minAdultPerOrder": {
"type": "integer",
"format": "int32",
"description": "每单最少成人数(null=默认1)"
},
"name": {
"type": "string",
"description": "产品名称"
},
"paymentMode": {
"type": "string",
"description": "支付模式FULL=全款 DEPOSIT=定金+尾款"
},
"pricing": {
"description": "定价配置",
"$ref": "#/definitions/产品定价配置VO",
"originalRef": "产品定价配置VO"
},
"productId": {
"type": "string",
"description": "产品ID"
},
"productNo": {
"type": "string",
"description": "产品编号"
},
"productType": {
"type": "string",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团"
},
"publishedAt": {
"type": "string",
"format": "date-time",
"description": "发布时间"
},
"refundPolicyId": {
"type": "string",
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"refundPolicyName": {
"type": "string",
"description": "退款政策名称(已废弃)"
},
"routeMapUrl": {
"type": "string",
"description": "路径图URL后端自动生成"
},
"seasonLabels": {
"type": "array",
"description": "适用季节列表(中文)",
"items": {
"type": "string"
}
},
"seasons": {
"type": "array",
"description": "适用季节列表(编码)",
"items": {
"type": "string"
}
},
"showChatGroup": {
"type": "boolean",
"description": "是否显示群聊入口"
},
"showReview": {
"type": "boolean",
"description": "是否显示评价"
},
"showTripDistance": {
"type": "boolean",
"description": "是否显示行程距离"
},
"showTripTime": {
"type": "boolean",
"description": "是否显示行程时间"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"staffConfigs": {
"type": "array",
"description": "人员配置列表(定制产品)",
"items": {
"$ref": "#/definitions/产品人员配置VO",
"originalRef": "产品人员配置VO"
}
},
"startPrice": {
"type": "number",
"description": "起步价:未来一年价格日历中最低成人售价"
},
"status": {
"type": "string",
"description": "产品状态DRAFT/PENDING_REVIEW/REVIEWED/REJECTED/PUBLISHED/UNPUBLISHED/COMPLETED"
},
"subtitle": {
"type": "string",
"description": "副标题"
},
"suppliesList": {
"type": "array",
"description": "物资列表",
"items": {
"$ref": "#/definitions/产品物资VO",
"originalRef": "产品物资VO"
}
},
"tags": {
"type": "array",
"description": "产品标签列表",
"items": {
"type": "string"
}
},
"teamExperienceYears": {
"type": "integer",
"format": "int32",
"description": "团队经验年数"
},
"tripDays": {
"type": "integer",
"format": "int32",
"description": "行程天数"
},
"tripNights": {
"type": "integer",
"format": "int32",
"description": "行程晚数"
},
"updateBy": {
"type": "string",
"description": "更新人ID"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
},
"warmTipsContent": {
"type": "string",
"description": "温馨提示内容"
},
"warmTipsId": {
"type": "string",
"description": "温馨提示ID"
},
"warmTipsName": {
"type": "string",
"description": "温馨提示名称"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"description": "小童人数"
}
},
"title": "产品详情VO"
},
"产品额外成本VO": {
"type": "object",
"properties": {
"applyRole": {
"type": "string",
"description": "适用角色"
},
"categoryCode": {
"type": "string",
"description": "费用类别编码"
},
"costItemId": {
"type": "string",
"description": "费用项ID"
},
"costItemName": {
"type": "string",
"description": "费用项名称"
},
"daily": {
"type": "boolean",
"description": "是否按天计算true=按天计算(乘以天数) false=整个行程一次"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"id": {
"type": "string",
"description": "记录ID"
},
"quantity": {
"type": "integer",
"format": "int32",
"description": "数量"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"unit": {
"type": "string",
"description": "单位"
},
"unitPrice": {
"type": "number",
"description": "单价"
}
},
"title": "产品额外成本VO"
},
"人员配置请求": {
"type": "object",
"required": [
"quantity",
"staffType"
],
"properties": {
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"quantity": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "数量"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "排序序号"
},
"staffType": {
"type": "string",
"example": "GUIDE",
"description": "人员类型GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER"
}
},
"title": "人员配置请求"
},
"价格日历请求": {
"type": "object",
"required": [
"date"
],
"properties": {
"adultCostPrice": {
"type": "number",
"example": 2800.0,
"description": "成人成本价"
},
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人人数GROUP产品自动测算用"
},
"adultSellPrice": {
"type": "number",
"example": 3980.0,
"description": "成人售价"
},
"childCostPrice": {
"type": "number",
"example": 1800.0,
"description": "儿童成本价"
},
"childSellPrice": {
"type": "number",
"example": 2680.0,
"description": "儿童售价"
},
"costAutoCalc": {
"type": "boolean",
"example": true,
"description": "是否自动计算成本true时重新测算会自动更新此日期的价格"
},
"date": {
"type": "string",
"format": "date",
"example": "2026-05-01",
"description": "日期"
},
"remark": {
"type": "string",
"example": "五一黄金周特价",
"description": "备注"
},
"status": {
"type": "string",
"example": "OPEN",
"description": "状态OPEN=开放预订 CLOSED=关闭(不可预订)"
},
"stock": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "库存数量CORE/GROUP按人头扣减,CUSTOM/ROUTE按单扣减"
}
},
"title": "价格日历请求"
},
"保存产品请求(创建或更新)": {
"type": "object",
"required": [
"name"
],
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "婴儿人数"
},
"bookingTermsId": {
"type": "string",
"example": 1893012345678901234,
"description": "预订条款ID关联预订条款模板"
},
"carouselImages": {
"type": "array",
"description": "轮播图列表",
"items": {
"type": "string"
}
},
"carouselVideoUrl": {
"type": "string",
"example": "https://oss.example.com/video.mp4",
"description": "轮播视频URL"
},
"chatMessages": {
"type": "array",
"description": "群聊消息列表",
"items": {
"$ref": "#/definitions/群聊消息VO",
"originalRef": "群聊消息VO"
}
},
"childCount": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"example": 13800138000,
"description": "联系电话(定制产品)"
},
"coverImageUrl": {
"type": "string",
"example": "https://oss.example.com/cover.jpg",
"description": "封面图URL"
},
"creatorAvatarUrl": {
"type": "string",
"example": "https://oss.example.com/avatar.jpg",
"description": "定制师头像URL"
},
"creatorIntro": {
"type": "string",
"example": "带你体验最地道的丽江风情",
"description": "创作者寄语"
},
"customerName": {
"type": "string",
"example": "张三",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"example": 1893012345678901234,
"description": "定制师ID"
},
"departureCity": {
"type": "string",
"example": "昆明",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-01",
"description": "出发日期(定制产品)"
},
"destinationCity": {
"type": "string",
"example": "丽江",
"description": "目的地城市"
},
"folderId": {
"type": "string",
"example": 1893012345678901234,
"description": "所属文件夹ID"
},
"groupChatQrUrl": {
"type": "string",
"example": "https://oss.example.com/qr.jpg",
"description": "群聊二维码URL"
},
"groupRoomId": {
"type": "string",
"description": "企微群聊ID(用于会话存档展示群消息)"
},
"isBooking": {
"type": "boolean",
"example": false,
"description": "是否预约产品"
},
"lineId": {
"type": "string",
"example": 1893012345678901234,
"description": "产品线ID"
},
"lineSubtitle": {
"type": "string",
"example": "亲子游",
"description": "产品线副标题"
},
"maxAdultPerOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每单最大成人数(不填则不限制)"
},
"maxChildPerOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每单最大儿童数(不填则不限制)"
},
"mchId": {
"type": "string",
"example": "shanhe",
"description": "商户号shanhe/wenlu"
},
"minAdultPerOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "每单最少成人数(不填默认1)"
},
"name": {
"type": "string",
"example": "丽江5日深度游",
"description": "产品名称"
},
"productId": {
"type": "integer",
"format": "int64",
"example": 1893012345678901234,
"description": "产品ID传入则更新,不传则创建"
},
"productType": {
"type": "string",
"example": "CORE",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团(创建时必填,更新时忽略)"
},
"refundPolicyId": {
"type": "string",
"example": 1893012345678901234,
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"example": {
"FULL": "1893012345678901234",
"DEPOSIT": "1893012345678901235"
},
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"seasons": {
"type": "array",
"example": [
"春",
"夏"
],
"description": "适用季节列表,如 [\"春\",\"夏\",\"秋\",\"冬\"]",
"items": {
"type": "string"
}
},
"showChatGroup": {
"type": "boolean",
"example": true,
"description": "是否显示群聊入口"
},
"showReview": {
"type": "boolean",
"example": true,
"description": "是否显示评价"
},
"showTripDistance": {
"type": "boolean",
"example": true,
"description": "是否显示行程距离"
},
"showTripTime": {
"type": "boolean",
"example": true,
"description": "是否显示行程时间"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
},
"subtitle": {
"type": "string",
"example": "探访纳西文化,邂逅玉龙雪山",
"description": "副标题"
},
"tags": {
"type": "array",
"example": [
"亲子游",
"摄影"
],
"description": "产品标签列表,如 [\"亲子游\",\"摄影\"]",
"items": {
"type": "string"
}
},
"teamExperienceYears": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "团队经验年数"
},
"tripDays": {
"type": "integer",
"format": "int32",
"example": 5,
"description": "行程天数"
},
"warmTipsId": {
"type": "string",
"example": 1893012345678901234,
"description": "温馨提示ID关联温馨提示模板"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "小童人数"
}
},
"title": "保存产品请求(创建或更新)"
},
"公式变量VO": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "变量分类INPUT/INTERMEDIATE/OUTPUT"
},
"defaultValue": {
"type": "string",
"description": "默认值"
},
"description": {
"type": "string",
"description": "描述"
},
"productTypes": {
"type": "array",
"description": "适用产品类型列表",
"items": {
"type": "string"
}
},
"varId": {
"type": "string",
"description": "变量ID"
},
"varName": {
"type": "string",
"description": "变量名"
},
"varType": {
"type": "string",
"description": "变量类型DECIMAL/INTEGER/BOOLEAN/STRING"
}
},
"title": "公式变量VO"
},
"公式变量请求": {
"type": "object",
"required": [
"category",
"varName",
"varType"
],
"properties": {
"category": {
"type": "string",
"example": "INPUT",
"description": "变量分类INPUT/INTERMEDIATE/OUTPUT"
},
"defaultValue": {
"type": "string",
"example": 0,
"description": "默认值"
},
"description": {
"type": "string",
"example": "成人单价成本",
"description": "描述"
},
"productTypes": {
"type": "array",
"example": [
"CORE",
"ROUTE"
],
"description": "适用产品类型列表",
"items": {
"type": "string"
}
},
"varName": {
"type": "string",
"example": "adultUnitCost",
"description": "变量名"
},
"varType": {
"type": "string",
"example": "DECIMAL",
"description": "变量类型DECIMAL/INTEGER/BOOLEAN/STRING"
}
},
"title": "公式变量请求"
},
"公式步骤VO": {
"type": "object",
"properties": {
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"description": {
"type": "string",
"description": "描述"
},
"executionOrder": {
"type": "integer",
"format": "int32",
"description": "执行顺序"
},
"expression": {
"type": "string",
"description": "表达式"
},
"formulaId": {
"type": "string",
"description": "公式ID"
},
"groupId": {
"type": "string",
"description": "公式组ID"
},
"inputVars": {
"type": "string",
"description": "输入变量(逗号分隔)"
},
"isEnabled": {
"type": "boolean",
"description": "是否启用"
},
"outputVar": {
"type": "string",
"description": "输出变量名"
},
"stepCode": {
"type": "string",
"description": "步骤编码"
},
"stepName": {
"type": "string",
"description": "步骤名称"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "公式步骤VO"
},
"公式步骤请求": {
"type": "object",
"required": [
"expression",
"groupId",
"outputVar",
"stepCode",
"stepName"
],
"properties": {
"changeNote": {
"type": "string",
"example": "初始创建",
"description": "变更说明"
},
"description": {
"type": "string",
"example": "根据人数和单价计算基础成本",
"description": "描述"
},
"executionOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "执行顺序"
},
"expression": {
"type": "string",
"example": "baseCost = adultCount * adultUnitCost + childCount * childUnitCost",
"description": "Aviator表达式支持数学运算、条件判断、内置函数;可引用前置步骤的输出变量和公式变量表中的变量"
},
"groupId": {
"type": "integer",
"format": "int64",
"example": 1893012345678901234,
"description": "公式组ID"
},
"inputVars": {
"type": "string",
"example": "adultCount,adultUnitCost,childCount,childUnitCost",
"description": "输入变量(逗号分隔)"
},
"outputVar": {
"type": "string",
"example": "baseCost",
"description": "输出变量名"
},
"stepCode": {
"type": "string",
"example": "CALC_BASE_COST",
"description": "步骤编码"
},
"stepName": {
"type": "string",
"example": "计算基础成本",
"description": "步骤名称"
}
},
"title": "公式步骤请求"
},
"公式测试结果VO": {
"type": "object",
"properties": {
"errorMessage": {
"type": "string",
"description": "错误信息"
},
"finalVariables": {
"type": "object",
"description": "最终变量表"
},
"stepResults": {
"type": "array",
"description": "各步骤执行结果",
"items": {
"$ref": "#/definitions/步骤执行结果",
"originalRef": "步骤执行结果"
}
},
"success": {
"type": "boolean",
"description": "是否成功"
},
"totalTimeMs": {
"type": "integer",
"format": "int64",
"description": "总耗时(毫秒)"
}
},
"title": "公式测试结果VO"
},
"公式测试请求": {
"type": "object",
"required": [
"groupId",
"variables"
],
"properties": {
"groupId": {
"type": "integer",
"format": "int64",
"example": 1893012345678901234,
"description": "公式组ID"
},
"variables": {
"type": "object",
"description": "测试变量(变量名→值)"
}
},
"title": "公式测试请求"
},
"公式版本历史VO": {
"type": "object",
"properties": {
"changeNote": {
"type": "string",
"description": "变更说明"
},
"changedBy": {
"type": "string",
"description": "变更人ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"expression": {
"type": "string",
"description": "表达式"
},
"formulaId": {
"type": "string",
"description": "公式ID"
},
"versionId": {
"type": "string",
"description": "版本ID"
},
"versionNum": {
"type": "integer",
"format": "int32",
"description": "版本号"
}
},
"title": "公式版本历史VO"
},
"公式组VO": {
"type": "object",
"properties": {
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"description": {
"type": "string",
"description": "描述"
},
"groupCode": {
"type": "string",
"description": "公式组编码"
},
"groupId": {
"type": "string",
"description": "公式组ID"
},
"groupName": {
"type": "string",
"description": "公式组名称"
},
"isActive": {
"type": "boolean",
"description": "是否激活"
},
"productType": {
"type": "string",
"description": "适用产品类型"
},
"stepCount": {
"type": "integer",
"format": "int32",
"description": "步骤数量"
},
"version": {
"type": "integer",
"format": "int32",
"description": "版本号"
}
},
"title": "公式组VO"
},
"公式组请求": {
"type": "object",
"required": [
"groupCode",
"groupName",
"productType"
],
"properties": {
"description": {
"type": "string",
"example": "核心产品标准报价公式",
"description": "描述"
},
"groupCode": {
"type": "string",
"example": "CORE_PRICING_V1",
"description": "公式组编码"
},
"groupName": {
"type": "string",
"example": "核心产品定价公式",
"description": "公式组名称"
},
"productType": {
"type": "string",
"example": "CORE",
"description": "适用产品类型CORE/ROUTE/CUSTOM/GROUP"
}
},
"title": "公式组请求"
},
"分享链接响应": {
"type": "object",
"properties": {
"expireTime": {
"type": "object",
"description": "链接过期时间(Unix时间戳)"
},
"productId": {
"type": "integer",
"format": "int64",
"description": "产品ID"
},
"productName": {
"type": "string",
"description": "产品名称"
},
"urlLink": {
"type": "string",
"description": "微信URL Link"
}
},
"title": "分享链接响应"
},
"分页结果«C端产品列表VO»": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "当前页码"
},
"pageSize": {
"type": "integer",
"format": "int32",
"example": 20,
"description": "每页条数"
},
"records": {
"type": "array",
"description": "数据列表",
"items": {
"$ref": "#/definitions/C端产品列表VO",
"originalRef": "C端产品列表VO"
}
},
"total": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "总记录数"
}
},
"title": "分页结果«C端产品列表VO»"
},
"分页结果«产品列表VO»": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "当前页码"
},
"pageSize": {
"type": "integer",
"format": "int32",
"example": 20,
"description": "每页条数"
},
"records": {
"type": "array",
"description": "数据列表",
"items": {
"$ref": "#/definitions/产品列表VO",
"originalRef": "产品列表VO"
}
},
"total": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "总记录数"
}
},
"title": "分页结果«产品列表VO»"
},
"分页结果«产品线VO»": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "当前页码"
},
"pageSize": {
"type": "integer",
"format": "int32",
"example": 20,
"description": "每页条数"
},
"records": {
"type": "array",
"description": "数据列表",
"items": {
"$ref": "#/definitions/产品线VO",
"originalRef": "产品线VO"
}
},
"total": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "总记录数"
}
},
"title": "分页结果«产品线VO»"
},
"创建产品线请求": {
"type": "object",
"required": [
"name"
],
"properties": {
"coverImageUrl": {
"type": "string",
"example": "https://oss.example.com/cover.jpg",
"description": "封面图URL"
},
"description": {
"type": "string",
"example": "丽江古城及周边精品旅游线路",
"description": "产品线描述"
},
"name": {
"type": "string",
"example": "丽江精品线路",
"description": "产品线名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
}
},
"title": "创建产品线请求"
},
"创建产品请求": {
"type": "object",
"required": [
"name",
"productType"
],
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "婴儿人数"
},
"bookingTermsId": {
"type": "string",
"example": 1893012345678901234,
"description": "预订条款ID关联预订条款模板"
},
"carouselImages": {
"type": "array",
"description": "轮播图列表",
"items": {
"type": "string"
}
},
"carouselVideoUrl": {
"type": "string",
"example": "https://oss.example.com/video.mp4",
"description": "轮播视频URL"
},
"childCount": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"example": 13800138000,
"description": "联系电话(定制产品)"
},
"creatorAvatarUrl": {
"type": "string",
"example": "https://oss.example.com/avatar.jpg",
"description": "定制师头像URL"
},
"creatorIntro": {
"type": "string",
"example": "带你体验最地道的丽江风情",
"description": "创作者寄语"
},
"customerName": {
"type": "string",
"example": "张三",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"example": 1893012345678901234,
"description": "定制师ID"
},
"departureCity": {
"type": "string",
"example": "昆明",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-01",
"description": "出发日期(定制产品)"
},
"destinationCity": {
"type": "string",
"example": "丽江",
"description": "目的地城市"
},
"folderId": {
"type": "string",
"example": 1893012345678901234,
"description": "所属文件夹ID"
},
"groupChatQrUrl": {
"type": "string",
"example": "https://oss.example.com/qr.jpg",
"description": "群聊二维码URL"
},
"groupRoomId": {
"type": "string",
"description": "企微群聊ID(用于会话存档展示群消息)"
},
"isBooking": {
"type": "boolean",
"example": false,
"description": "是否预约产品"
},
"lineId": {
"type": "string",
"example": 1893012345678901234,
"description": "产品线ID"
},
"maxAdultPerOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每单最大成人数(不填则不限制)"
},
"maxChildPerOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每单最大儿童数(不填则不限制)"
},
"mchId": {
"type": "string",
"example": "shanhe",
"description": "商户号shanhe/wenlu"
},
"minAdultPerOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "每单最少成人数(不填默认1)"
},
"name": {
"type": "string",
"example": "丽江5日深度游",
"description": "产品名称"
},
"productType": {
"type": "string",
"example": "CORE",
"description": "产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团"
},
"refundPolicyId": {
"type": "string",
"example": 1893012345678901234,
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"example": {
"FULL": "1893012345678901234",
"DEPOSIT": "1893012345678901235"
},
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"seasons": {
"type": "array",
"description": "适用季节列表",
"items": {
"type": "string"
}
},
"showChatGroup": {
"type": "boolean",
"example": true,
"description": "是否显示群聊入口"
},
"showReview": {
"type": "boolean",
"example": true,
"description": "是否显示评价"
},
"showTripDistance": {
"type": "boolean",
"example": true,
"description": "是否显示行程距离"
},
"showTripTime": {
"type": "boolean",
"example": true,
"description": "是否显示行程时间"
},
"subtitle": {
"type": "string",
"example": "探访纳西文化,邂逅玉龙雪山",
"description": "副标题"
},
"tags": {
"type": "array",
"description": "产品标签列表",
"items": {
"type": "string"
}
},
"tripDays": {
"type": "integer",
"format": "int32",
"example": 5,
"description": "行程天数"
},
"warmTipsId": {
"type": "string",
"example": 1893012345678901234,
"description": "温馨提示ID关联温馨提示模板"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "小童人数"
}
},
"title": "创建产品请求"
},
"创建拼团批次请求": {
"type": "object",
"required": [
"batchName",
"departureDate",
"enrollmentDeadline",
"maxParticipants",
"maxRooms"
],
"properties": {
"adultsPerRoom": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每间房入住成人数默认2,用于计算单房差酒店总成本÷此值"
},
"batchName": {
"type": "string",
"example": "7月20日第1批",
"description": "批次名称"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-20",
"description": "出发日期"
},
"enrollmentDeadline": {
"type": "string",
"format": "date",
"example": "2026-07-15",
"description": "报名截止日期,必须早于出发日期"
},
"maxParticipants": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "最大参团人数(报名人数达到上限后自动关闭报名)"
},
"maxRooms": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "总房间数(下单时扣减房间库存)"
},
"minParticipants": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "最低成团人数0=不限制,达到此人数自动变为CONFIRMED状态"
},
"remark": {
"type": "string",
"example": "暑期特别批次",
"description": "备注说明"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "排序序号(越小越靠前)"
}
},
"title": "创建拼团批次请求"
},
"创建文件夹请求": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "国内线路",
"description": "文件夹名称"
},
"parentId": {
"type": "string",
"example": 1893012345678901234,
"description": "父文件夹ID,为空则为根文件夹"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
}
},
"title": "创建文件夹请求"
},
"创建行程节点请求": {
"type": "object",
"required": [
"nodeName",
"nodeType"
],
"properties": {
"description": {
"type": "string",
"example": "漫步古城,感受纳西文化",
"description": "节点描述"
},
"distanceKm": {
"type": "number",
"example": 15.5,
"description": "距离(公里)"
},
"durationMinutes": {
"type": "integer",
"format": "int32",
"example": 120,
"description": "时长(分钟)"
},
"emojiIcon": {
"type": "string",
"example": "city_sunset",
"description": "表情图标"
},
"extraData": {
"type": "string",
"description": "扩展数据JSON格式"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表仅CUSTOM定制产品使用,实现按家庭分配行程节点",
"items": {
"type": "string"
}
},
"images": {
"type": "array",
"description": "节点图片列表",
"items": {
"type": "string"
}
},
"latitude": {
"type": "number",
"example": 26.872108,
"description": "纬度"
},
"longitude": {
"type": "number",
"example": 100.233026,
"description": "经度"
},
"nodeName": {
"type": "string",
"example": "丽江古城游览",
"description": "节点名称"
},
"nodeType": {
"type": "string",
"example": "SCENIC",
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)"
},
"quantity": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "数量"
},
"resourceId": {
"type": "string",
"example": 1893012345678901234,
"description": "关联资源ID来自资源服务,关联后节点名称和图片可自动同步"
},
"resourceType": {
"type": "string",
"example": "SCENIC",
"description": "关联资源类型关联后可从资源服务获取价格参与成本计算SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE"
},
"startTime": {
"type": "string",
"example": "09:00",
"description": "开始时间"
}
},
"title": "创建行程节点请求"
},
"团批次VO": {
"type": "object",
"properties": {
"adultsPerRoom": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每间房入住成人数(用于计算单房差)"
},
"batchId": {
"type": "string",
"example": 2026280000000000001,
"description": "批次ID"
},
"batchLabel": {
"type": "string",
"example": "五一团",
"description": "批次标签(简称)"
},
"batchName": {
"type": "string",
"example": "2026年五一黄金周第一批",
"description": "批次名称"
},
"batchNo": {
"type": "string",
"example": "B20260501-01",
"description": "批次编号"
},
"batchStatus": {
"type": "string",
"example": "ENROLLING",
"description": "批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED"
},
"bookedRooms": {
"type": "integer",
"format": "int32",
"example": 5,
"description": "已预订房间数"
},
"createBy": {
"type": "string",
"example": 2026260000000000001,
"description": "创建人ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-05-01",
"description": "出发日期"
},
"endDate": {
"type": "string",
"format": "date",
"example": "2026-05-05",
"description": "结束日期"
},
"enrolledCount": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "已报名人数"
},
"enrollmentDeadline": {
"type": "string",
"format": "date",
"example": "2026-04-25",
"description": "报名截止日期"
},
"maxParticipants": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "最大人数"
},
"maxRooms": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "总房间数"
},
"minParticipants": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "最少成团人数"
},
"parentBatchId": {
"type": "string",
"example": 2026280000000000001,
"description": "父批次ID(子批次时有值)"
},
"productId": {
"type": "string",
"example": 2026270000000000001,
"description": "产品ID"
},
"remainingRooms": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "剩余房间数"
},
"remainingSlots": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "剩余名额"
},
"remark": {
"type": "string",
"description": "备注"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序"
},
"subBatches": {
"type": "array",
"description": "子批次列表(树形)",
"items": {
"$ref": "#/definitions/团批次VO",
"originalRef": "团批次VO"
}
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "团批次VO"
},
"团批次服务人员VO": {
"type": "object",
"properties": {
"batchId": {
"type": "string",
"example": 2026280000000000001,
"description": "批次ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"id": {
"type": "string",
"example": 2026280000000000020,
"description": "记录ID"
},
"productId": {
"type": "string",
"example": 2026270000000000001,
"description": "产品ID"
},
"remark": {
"type": "string",
"description": "备注"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序"
},
"staffId": {
"type": "string",
"example": 2026250000000000001,
"description": "服务人员ID"
},
"staffName": {
"type": "string",
"example": "张导",
"description": "姓名"
},
"staffPhone": {
"type": "string",
"example": 13800138000,
"description": "手机号"
},
"staffRole": {
"type": "string",
"example": "GUIDE",
"description": "角色: GUIDE/GUIDE_ASSISTANT/PHOTOGRAPHER/LEADER/OTHER"
}
},
"title": "团批次服务人员VO"
},
"团批次详情VO": {
"type": "object",
"properties": {
"adultsPerRoom": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每间房入住成人数(用于计算单房差)"
},
"batchId": {
"type": "string",
"example": 2026280000000000001,
"description": "批次ID"
},
"batchLabel": {
"type": "string",
"example": "五一团",
"description": "批次标签(简称)"
},
"batchName": {
"type": "string",
"example": "2026年五一黄金周第一批",
"description": "批次名称"
},
"batchNo": {
"type": "string",
"example": "B20260501-01",
"description": "批次编号"
},
"batchStatus": {
"type": "string",
"example": "ENROLLING",
"description": "批次状态: PENDING/ENROLLING/CONFIRMED/FULL/CLOSED/IN_PROGRESS/FINISHED/DISBANDED"
},
"bookedRooms": {
"type": "integer",
"format": "int32",
"example": 5,
"description": "已预订房间数"
},
"createBy": {
"type": "string",
"example": 2026260000000000001,
"description": "创建人ID"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-05-01",
"description": "出发日期"
},
"endDate": {
"type": "string",
"format": "date",
"example": "2026-05-05",
"description": "结束日期"
},
"enrolledCount": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "已报名人数"
},
"enrollmentDeadline": {
"type": "string",
"format": "date",
"example": "2026-04-25",
"description": "报名截止日期"
},
"maxParticipants": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "最大人数"
},
"maxRooms": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "总房间数"
},
"minParticipants": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "最少成团人数"
},
"parentBatchId": {
"type": "string",
"example": 2026280000000000001,
"description": "父批次ID(子批次时有值)"
},
"productId": {
"type": "string",
"example": 2026270000000000001,
"description": "产品ID"
},
"remainingRooms": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "剩余房间数"
},
"remainingSlots": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "剩余名额"
},
"remark": {
"type": "string",
"description": "备注"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序"
},
"staff": {
"type": "array",
"description": "服务人员列表",
"items": {
"$ref": "#/definitions/团批次服务人员VO",
"originalRef": "团批次服务人员VO"
}
},
"subBatches": {
"type": "array",
"description": "子批次列表(树形)",
"items": {
"$ref": "#/definitions/团批次VO",
"originalRef": "团批次VO"
}
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "团批次详情VO"
},
"定价配置请求": {
"type": "object",
"properties": {
"adultExtraBed": {
"type": "number",
"example": 200.0,
"description": "成人加床费"
},
"babyPrice": {
"type": "number",
"example": 300.0,
"description": "婴儿固定价格(不随日期变化)"
},
"balanceDueDays": {
"type": "integer",
"format": "int32",
"example": 7,
"description": "尾款支付截止天数出发前N天必须支付尾款,超时可能取消订单"
},
"childDiscountPercent": {
"type": "number",
"example": 70.0,
"description": "小童折扣百分比(小童价=儿童价×此百分比/100,如70表示打7折"
},
"childNoBed": {
"type": "number",
"example": 1200.0,
"description": "儿童不占床价(暂未使用,预留字段)"
},
"childWithBed": {
"type": "number",
"example": 1800.0,
"description": "儿童加床费childNeedBed=true时额外加收的费用"
},
"companionPrice": {
"type": "number",
"example": 0.0,
"description": "陪同人员价格"
},
"customTotalPrice": {
"type": "number",
"example": 28800.0,
"description": "定制产品总价CUSTOM定价模式下使用,代表整单总价"
},
"depositAmount": {
"type": "number",
"example": 1000.0,
"description": "定金金额固定金额,与depositRatio二选一"
},
"depositRatio": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "定金比例百分比,如30代表30%。与depositAmount二选一,优先使用比例"
},
"extraCostPerPerson": {
"type": "number",
"example": 50.0,
"description": "每人额外成本"
},
"insuranceFee": {
"type": "number",
"example": 50.0,
"description": "保险费用"
},
"markupPercent": {
"type": "number",
"example": 20.0,
"description": "加价百分比PERCENT模式下使用"
},
"maxGroupSize": {
"type": "integer",
"format": "int32",
"example": 16,
"description": "最大成团人数CORE/GROUP产品用"
},
"mealBudget": {
"type": "number",
"example": 100.0,
"description": "餐费预算"
},
"minGroupSize": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "最小成团人数CORE/GROUP产品用,影响均摊成本计算"
},
"paymentType": {
"type": "string",
"example": "FULL",
"description": "支付方式FULL=全款支付 DEPOSIT=定金+尾款分期支付"
},
"pricingMode": {
"type": "string",
"example": "AUTO",
"description": "定价模式AUTO=根据行程资源价格自动计算 MANUAL=手动在价格日历设置每日价格 CUSTOM=定制产品整单定价"
},
"profitAmount": {
"type": "number",
"example": 500.0,
"description": "利润金额FIXED模式下使用"
},
"profitMode": {
"type": "string",
"example": "FIXED",
"description": "利润模式AUTO模式下生效FIXED=在成本基础上加固定金额 PERCENT=在成本基础上按百分比加价"
},
"singleRoomDiff": {
"type": "number",
"example": 300.0,
"description": "单房差"
},
"vehicleModelIds": {
"type": "array",
"description": "车型ID列表",
"items": {
"type": "integer",
"format": "int64"
}
}
},
"title": "定价配置请求"
},
"家庭分组VO": {
"type": "object",
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"description": "成人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"description": "幼童数"
},
"childCount": {
"type": "integer",
"format": "int32",
"description": "儿童数"
},
"familyId": {
"type": "string",
"description": "家庭ID"
},
"familyName": {
"type": "string",
"description": "家庭名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"description": "小童数"
}
},
"title": "家庭分组VO"
},
"家庭分组保存请求": {
"type": "object",
"required": [
"familyName"
],
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "幼童数"
},
"childCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "儿童数"
},
"familyName": {
"type": "string",
"example": "家庭1",
"description": "家庭名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "排序序号"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "小童数"
}
},
"title": "家庭分组保存请求",
"description": "仅适用于CUSTOM定制产品,用于将行程按家庭单位分配"
},
"家庭成本明细": {
"type": "object",
"properties": {
"activityCost": {
"type": "number",
"description": "活动成本"
},
"adultCount": {
"type": "integer",
"format": "int32",
"description": "成人数"
},
"babyCost": {
"type": "number",
"description": "婴儿固定成本"
},
"babyCount": {
"type": "integer",
"format": "int32",
"description": "幼童数"
},
"childCount": {
"type": "integer",
"format": "int32",
"description": "儿童数"
},
"costPerPerson": {
"type": "number",
"description": "人均成本(家庭成本/付费人头)"
},
"customFeeCost": {
"type": "number",
"description": "自定义费用成本"
},
"extraCost": {
"type": "number",
"description": "额外成本"
},
"familyId": {
"type": "string",
"description": "家庭ID"
},
"familyName": {
"type": "string",
"description": "家庭名称"
},
"headcount": {
"type": "integer",
"format": "int32",
"description": "人头数"
},
"hotelCost": {
"type": "number",
"description": "酒店成本"
},
"insuranceCost": {
"type": "number",
"description": "保险成本"
},
"payingHeadcount": {
"type": "integer",
"format": "int32",
"description": "付费人头数(不含幼童)"
},
"personCosts": {
"type": "array",
"description": "每人分项成本列表",
"items": {
"$ref": "#/definitions/每人成本明细",
"originalRef": "每人成本明细"
}
},
"scenicCost": {
"type": "number",
"description": "景区成本"
},
"sellPricePerPerson": {
"type": "number",
"description": "人均售价(家庭售价/付费人头)"
},
"serviceCost": {
"type": "number",
"description": "服务成本"
},
"staffCost": {
"type": "number",
"description": "人员成本"
},
"suppliesCost": {
"type": "number",
"description": "物资成本"
},
"totalCost": {
"type": "number",
"description": "家庭成本合计"
},
"totalProfit": {
"type": "number",
"description": "家庭利润合计"
},
"totalSellPrice": {
"type": "number",
"description": "家庭售价合计"
},
"vehicleCost": {
"type": "number",
"description": "车辆成本"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"description": "小童数"
}
},
"title": "家庭成本明细"
},
"成本项请求": {
"type": "object",
"required": [
"category",
"title",
"type"
],
"properties": {
"category": {
"type": "string",
"example": "HOTEL",
"description": "成本项类别HOTEL/SCENIC/VEHICLE/ACTIVITY/SERVICE/DINING/OTHER"
},
"description": {
"type": "string",
"example": "含早餐,标准双人间",
"description": "成本项描述"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
},
"title": {
"type": "string",
"example": "丽江古城酒店住宿",
"description": "成本项标题"
},
"type": {
"type": "string",
"example": "INCLUDED",
"description": "成本项类型INCLUDED=费用包含 EXCLUDED=费用不含 SELF_PAY=自理费用"
}
},
"title": "成本项请求"
},
"成本预览VO": {
"type": "object",
"properties": {
"adultCostPrice": {
"type": "number",
"description": "成人成本价"
},
"adultSellPrice": {
"type": "number",
"description": "成人售价"
},
"childCostPrice": {
"type": "number",
"description": "儿童成本价"
},
"childSellPrice": {
"type": "number",
"description": "儿童售价"
},
"warnings": {
"type": "array",
"description": "警告信息列表",
"items": {
"type": "string"
}
}
},
"title": "成本预览VO"
},
"成本预览请求": {
"type": "object",
"required": [
"date"
],
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人人数GROUP产品用"
},
"date": {
"type": "string",
"format": "date",
"example": "2026-05-01",
"description": "日期"
}
},
"title": "成本预览请求"
},
"批次服务人员分配请求": {
"type": "object",
"required": [
"staffId",
"staffRole"
],
"properties": {
"remark": {
"type": "string",
"example": "主导游",
"description": "备注(如:主导游、备用摄影师等)"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "排序序号(越小越靠前)"
},
"staffId": {
"type": "integer",
"format": "int64",
"example": 1760000000000001,
"description": "人员ID来自资源服务的人员库"
},
"staffRole": {
"type": "string",
"example": "LEADER",
"description": "在该批次中的角色LEADER(领队)/PHOTOGRAPHER(摄影师)/DRIVER(司机)/OTHER(其他)"
}
},
"title": "批次服务人员分配请求"
},
"批量设置价格日历请求": {
"type": "object",
"required": [
"endDate",
"startDate"
],
"properties": {
"adultCostPrice": {
"type": "number",
"example": 2800.0,
"description": "成人成本价"
},
"adultSellPrice": {
"type": "number",
"example": 3980.0,
"description": "成人售价"
},
"childCostPrice": {
"type": "number",
"example": 1800.0,
"description": "儿童成本价"
},
"childSellPrice": {
"type": "number",
"example": 2680.0,
"description": "儿童售价"
},
"costAutoCalc": {
"type": "boolean",
"example": true,
"description": "是否自动计算成本"
},
"endDate": {
"type": "string",
"format": "date",
"example": "2026-05-07",
"description": "结束日期"
},
"remark": {
"type": "string",
"example": "五一黄金周特价",
"description": "备注"
},
"selectedWeekdays": {
"type": "array",
"example": [
1,
2,
3,
4,
5
],
"description": "选中的星期(1=周一...7=周日),为空或包含全部则不过滤",
"items": {
"type": "integer",
"format": "int32"
}
},
"startDate": {
"type": "string",
"format": "date",
"example": "2026-05-01",
"description": "开始日期"
},
"status": {
"type": "string",
"example": "OPEN",
"description": "状态OPEN=开放 CLOSED=关闭"
},
"stock": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "库存数量"
}
},
"title": "批量设置价格日历请求"
},
"报价结果VO": {
"type": "object",
"properties": {
"customFeeCost": {
"type": "number",
"description": "自定义费用合计(定制产品)"
},
"dayCosts": {
"type": "array",
"description": "每日成本明细列表",
"items": {
"$ref": "#/definitions/每日成本明细",
"originalRef": "每日成本明细"
}
},
"extraCostItems": {
"type": "array",
"description": "额外成本明细列表",
"items": {
"$ref": "#/definitions/额外成本明细项",
"originalRef": "额外成本明细项"
}
},
"extraCostPerPerson": {
"type": "number",
"description": "每人额外成本"
},
"extraCostTotal": {
"type": "number",
"description": "额外成本合计"
},
"familyCosts": {
"type": "array",
"description": "家庭分组成本明细(定制产品,有分组时返回)",
"items": {
"$ref": "#/definitions/家庭成本明细",
"originalRef": "家庭成本明细"
}
},
"grandTotalCost": {
"type": "number",
"description": "总成本合计"
},
"grandTotalProfit": {
"type": "number",
"description": "总利润合计"
},
"grandTotalSellPrice": {
"type": "number",
"description": "总售价合计"
},
"insuranceFee": {
"type": "number",
"description": "保险费用"
},
"profitRate": {
"type": "number",
"description": "利润率(百分比)"
},
"staffCost": {
"type": "number",
"description": "人员成本"
},
"suppliesCost": {
"type": "number",
"description": "物资成本"
},
"totalAdultCost": {
"type": "number",
"description": "成人总成本"
},
"totalAdultProfit": {
"type": "number",
"description": "成人总利润"
},
"totalAdultSellPrice": {
"type": "number",
"description": "成人总售价"
},
"totalBabyCost": {
"type": "number",
"description": "婴儿总成本"
},
"totalBabySellPrice": {
"type": "number",
"description": "婴儿总售价"
},
"totalChildCost": {
"type": "number",
"description": "儿童总成本"
},
"totalChildSellPrice": {
"type": "number",
"description": "儿童总售价"
},
"totalYoungChildCost": {
"type": "number",
"description": "小童总成本"
},
"totalYoungChildSellPrice": {
"type": "number",
"description": "小童总售价"
},
"warnings": {
"type": "array",
"description": "警告信息列表",
"items": {
"type": "string"
}
}
},
"title": "报价结果VO"
},
"报价请求": {
"type": "object",
"required": [
"adultCount",
"departureDate"
],
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "婴儿人数(按固定 babyPrice 计算)"
},
"childCount": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "儿童人数(占床,按儿童价计算)"
},
"childNeedBed": {
"type": "boolean",
"example": false,
"description": "儿童是否加床true 时额外加收 childWithBed 费用)"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-05-01",
"description": "出发日期"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "小童人数(不占床,按儿童价 × childDiscountPercent 折扣比例计算)"
}
},
"title": "报价请求"
},
"更新产品线请求": {
"type": "object",
"properties": {
"coverImageUrl": {
"type": "string",
"example": "https://oss.example.com/cover.jpg",
"description": "封面图URL"
},
"description": {
"type": "string",
"example": "丽江古城及周边精品旅游线路",
"description": "产品线描述"
},
"name": {
"type": "string",
"example": "丽江精品线路",
"description": "产品线名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
},
"status": {
"type": "string",
"example": "ACTIVE",
"description": "产品线状态ACTIVE=启用 INACTIVE=停用"
}
},
"title": "更新产品线请求"
},
"更新产品请求": {
"type": "object",
"properties": {
"adultCount": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "成人人数"
},
"babyCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "婴儿人数"
},
"bookingTermsId": {
"type": "string",
"example": 1893012345678901234,
"description": "预订条款ID关联预订条款模板"
},
"carouselImages": {
"type": "array",
"description": "轮播图列表",
"items": {
"type": "string"
}
},
"carouselVideoUrl": {
"type": "string",
"example": "https://oss.example.com/video.mp4",
"description": "轮播视频URL"
},
"chatMessages": {
"type": "array",
"description": "群聊消息列表",
"items": {
"$ref": "#/definitions/群聊消息VO",
"originalRef": "群聊消息VO"
}
},
"childCount": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"example": 13800138000,
"description": "联系电话(定制产品)"
},
"creatorAvatarUrl": {
"type": "string",
"example": "https://oss.example.com/avatar.jpg",
"description": "定制师头像URL"
},
"creatorIntro": {
"type": "string",
"example": "带你体验最地道的丽江风情",
"description": "创作者寄语"
},
"customerName": {
"type": "string",
"example": "张三",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"example": 1893012345678901234,
"description": "定制师ID"
},
"departureCity": {
"type": "string",
"example": "昆明",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-01",
"description": "出发日期(定制产品)"
},
"destinationCity": {
"type": "string",
"example": "丽江",
"description": "目的地城市"
},
"folderId": {
"type": "string",
"example": 1893012345678901234,
"description": "所属文件夹ID"
},
"groupChatQrUrl": {
"type": "string",
"example": "https://oss.example.com/qr.jpg",
"description": "群聊二维码URL"
},
"groupRoomId": {
"type": "string",
"description": "企微群聊ID(用于会话存档展示群消息)"
},
"isBooking": {
"type": "boolean",
"example": false,
"description": "是否预约产品"
},
"lineId": {
"type": "string",
"example": 1893012345678901234,
"description": "产品线ID"
},
"lineSubtitle": {
"type": "string",
"example": "亲子游",
"description": "产品线副标题"
},
"maxAdultPerOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每单最大成人数(不填则不限制)"
},
"maxChildPerOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每单最大儿童数(不填则不限制)"
},
"mchId": {
"type": "string",
"example": "shanhe",
"description": "商户号shanhe/wenlu"
},
"minAdultPerOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "每单最少成人数(不填默认1)"
},
"name": {
"type": "string",
"example": "丽江5日深度游",
"description": "产品名称"
},
"refundPolicyId": {
"type": "string",
"example": 1893012345678901234,
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"example": {
"FULL": "1893012345678901234",
"DEPOSIT": "1893012345678901235"
},
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"seasons": {
"type": "array",
"description": "适用季节列表",
"items": {
"type": "string"
}
},
"showChatGroup": {
"type": "boolean",
"example": true,
"description": "是否显示群聊入口"
},
"showReview": {
"type": "boolean",
"example": true,
"description": "是否显示评价"
},
"showTripDistance": {
"type": "boolean",
"example": true,
"description": "是否显示行程距离"
},
"showTripTime": {
"type": "boolean",
"example": true,
"description": "是否显示行程时间"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
},
"subtitle": {
"type": "string",
"example": "探访纳西文化,邂逅玉龙雪山",
"description": "副标题"
},
"tags": {
"type": "array",
"description": "产品标签列表",
"items": {
"type": "string"
}
},
"teamExperienceYears": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "团队经验年数"
},
"tripDays": {
"type": "integer",
"format": "int32",
"example": 5,
"description": "行程天数"
},
"warmTipsId": {
"type": "string",
"example": 1893012345678901234,
"description": "温馨提示ID关联温馨提示模板"
},
"youngChildCount": {
"type": "integer",
"format": "int32",
"example": 0,
"description": "小童人数"
}
},
"title": "更新产品请求"
},
"更新拼团批次请求": {
"type": "object",
"properties": {
"adultsPerRoom": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "每间房入住成人数默认2,用于计算单房差"
},
"batchName": {
"type": "string",
"example": "7月20日第1批",
"description": "批次名称"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-20",
"description": "出发日期"
},
"enrollmentDeadline": {
"type": "string",
"format": "date",
"example": "2026-07-15",
"description": "报名截止日期"
},
"maxParticipants": {
"type": "integer",
"format": "int32",
"example": 30,
"description": "最大参团人数(不能低于已报名人数)"
},
"maxRooms": {
"type": "integer",
"format": "int32",
"example": 15,
"description": "总房间数(不能低于已预订房间数)"
},
"minParticipants": {
"type": "integer",
"format": "int32",
"example": 10,
"description": "最低成团人数0=不限制)"
},
"remark": {
"type": "string",
"description": "备注说明"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
}
},
"title": "更新拼团批次请求"
},
"更新文件夹请求": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "国内线路",
"description": "文件夹名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "排序序号"
}
},
"title": "更新文件夹请求"
},
"更新行程节点请求": {
"type": "object",
"properties": {
"description": {
"type": "string",
"example": "漫步古城,感受纳西文化",
"description": "节点描述"
},
"distanceKm": {
"type": "number",
"example": 15.5,
"description": "距离(公里)"
},
"durationMinutes": {
"type": "integer",
"format": "int32",
"example": 120,
"description": "时长(分钟)"
},
"emojiIcon": {
"type": "string",
"example": "city_sunset",
"description": "表情图标"
},
"extraData": {
"type": "string",
"description": "扩展数据JSON格式"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"images": {
"type": "array",
"description": "节点图片列表",
"items": {
"type": "string"
}
},
"latitude": {
"type": "number",
"example": 26.872108,
"description": "纬度"
},
"longitude": {
"type": "number",
"example": 100.233026,
"description": "经度"
},
"nodeName": {
"type": "string",
"example": "丽江古城游览",
"description": "节点名称"
},
"nodeType": {
"type": "string",
"example": "SCENIC",
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)"
},
"quantity": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "数量"
},
"resourceId": {
"type": "string",
"example": 1893012345678901234,
"description": "关联资源ID"
},
"resourceType": {
"type": "string",
"example": "SCENIC",
"description": "关联资源类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/STAFF"
},
"startTime": {
"type": "string",
"example": "09:00",
"description": "开始时间"
}
},
"title": "更新行程节点请求"
},
"权益分组": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "权益项列表",
"items": {
"$ref": "#/definitions/权益项",
"originalRef": "权益项"
}
},
"title": {
"type": "string",
"description": "分组标题,如:儿童权益 (1.2m以下)"
}
},
"title": "权益分组"
},
"权益项": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "类别,如:门票、住宿、餐饮"
},
"description": {
"type": "string",
"description": "说明,如:含全部景点儿童票"
}
},
"title": "权益项"
},
"步骤执行结果": {
"type": "object",
"properties": {
"errorMessage": {
"type": "string",
"description": "错误信息"
},
"executionTimeMs": {
"type": "integer",
"format": "int64",
"description": "执行耗时(毫秒)"
},
"expression": {
"type": "string",
"description": "表达式"
},
"outputValue": {
"type": "object",
"description": "输出值"
},
"outputVar": {
"type": "string",
"description": "输出变量名"
},
"stepCode": {
"type": "string",
"description": "步骤编码"
},
"stepName": {
"type": "string",
"description": "步骤名称"
},
"success": {
"type": "boolean",
"description": "是否成功"
}
},
"title": "步骤执行结果"
},
"每人成本明细": {
"type": "object",
"properties": {
"activityCost": {
"type": "number",
"description": "活动成本"
},
"babyCost": {
"type": "number",
"description": "婴儿固定成本"
},
"customFeeCost": {
"type": "number",
"description": "自定义费用成本"
},
"extraCost": {
"type": "number",
"description": "额外成本"
},
"hotelCost": {
"type": "number",
"description": "酒店成本"
},
"insuranceCost": {
"type": "number",
"description": "保险成本"
},
"label": {
"type": "string",
"description": "人员标签(如 成人1、儿童1、婴儿1"
},
"personType": {
"type": "string",
"description": "人员类型ADULT/CHILD/YOUNG_CHILD/BABY"
},
"scenicCost": {
"type": "number",
"description": "景区成本"
},
"serviceCost": {
"type": "number",
"description": "服务成本"
},
"staffCost": {
"type": "number",
"description": "人员成本"
},
"suppliesCost": {
"type": "number",
"description": "物资成本"
},
"totalCost": {
"type": "number",
"description": "个人成本合计"
},
"vehicleCost": {
"type": "number",
"description": "车辆成本"
}
},
"title": "每人成本明细"
},
"每日成本明细": {
"type": "object",
"properties": {
"activityCost": {
"type": "number",
"description": "活动成本"
},
"dayCostTotal": {
"type": "number",
"description": "当日成本合计"
},
"dayNumber": {
"type": "integer",
"format": "int32",
"description": "天数编号"
},
"diningCost": {
"type": "number",
"description": "餐饮成本"
},
"extraCost": {
"type": "number",
"description": "额外成本"
},
"hotelCost": {
"type": "number",
"description": "酒店成本(整间价)"
},
"scenicCost": {
"type": "number",
"description": "景区成本"
},
"serviceCost": {
"type": "number",
"description": "服务成本"
},
"singleRoomSupplement": {
"type": "number",
"description": "单房差当日酒店成本÷每房成人数,GROUP产品专用"
},
"staffCost": {
"type": "number",
"description": "人员成本"
},
"vehicleCost": {
"type": "number",
"description": "车辆成本"
}
},
"title": "每日成本明细"
},
"每日酒店VO": {
"type": "object",
"properties": {
"coverUrl": {
"type": "string",
"description": "封面图URL"
},
"dayNumber": {
"type": "integer",
"format": "int32",
"description": "天数编号"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表NULL=所有家庭共享)",
"items": {
"type": "string"
}
},
"familyRoomConfig": {
"type": "object",
"description": "家庭房间分配:{familyId: roomCount}",
"additionalProperties": {
"type": "integer",
"format": "int32"
}
},
"hotelId": {
"type": "string",
"description": "酒店ID"
},
"hotelName": {
"type": "string",
"description": "酒店名称"
},
"id": {
"type": "string",
"description": "记录ID"
},
"isDefault": {
"type": "boolean",
"description": "是否默认酒店"
},
"roomCount": {
"type": "integer",
"format": "int32",
"description": "房间数量"
},
"roomTypeId": {
"type": "string",
"description": "房型ID"
},
"roomTypeName": {
"type": "string",
"description": "房型名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
}
},
"title": "每日酒店VO"
},
"每日酒店配置请求": {
"type": "object",
"required": [
"hotelId"
],
"properties": {
"coverUrl": {
"type": "string",
"example": "https://oss.example.com/hotel-cover.jpg",
"description": "封面图URL"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品,不传=所有家庭共享)",
"items": {
"type": "string"
}
},
"familyRoomConfig": {
"type": "object",
"description": "家庭房间分配(定制产品):{familyId: roomCount},如 {\"123\": 2, \"456\": 1}",
"additionalProperties": {
"type": "integer",
"format": "int32"
}
},
"hotelId": {
"type": "string",
"example": 1893012345678901234,
"description": "酒店ID"
},
"hotelName": {
"type": "string",
"example": "丽江和府洲际度假酒店",
"description": "酒店名称"
},
"isDefault": {
"type": "boolean",
"example": true,
"description": "是否默认酒店"
},
"roomCount": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "房间数量"
},
"roomTypeId": {
"type": "string",
"example": 1893012345678901234,
"description": "关联房型ID定制产品必填,核心产品为空"
},
"roomTypeName": {
"type": "string",
"example": "豪华山景大床房",
"description": "房型名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
}
},
"title": "每日酒店配置请求"
},
"温馨提示VO": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "提示内容(富文本)"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"createdBy": {
"type": "integer",
"format": "int64",
"description": "创建人ID"
},
"enabled": {
"type": "boolean",
"description": "是否启用"
},
"remark": {
"type": "string",
"description": "备注"
},
"tipsId": {
"type": "integer",
"format": "int64",
"description": "温馨提示ID"
},
"tipsName": {
"type": "string",
"description": "提示名称"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "温馨提示VO"
},
"温馨提示请求": {
"type": "object",
"required": [
"content",
"tipsName"
],
"properties": {
"content": {
"type": "string",
"description": "提示内容(富文本)"
},
"remark": {
"type": "string",
"example": "适用于草原类产品",
"description": "备注"
},
"tipsName": {
"type": "string",
"example": "草原游温馨提示",
"description": "提示名称"
}
},
"title": "温馨提示请求"
},
"物资配置请求": {
"type": "object",
"required": [
"suppliesId"
],
"properties": {
"billingType": {
"type": "string",
"example": "BY_PERSON",
"description": "计费方式BY_PERSON=按人头 BY_COUNT=按次/按件"
},
"costPerPerson": {
"type": "number",
"example": 30.0,
"description": "每人成本"
},
"coverUrl": {
"type": "string",
"description": "封面图URL"
},
"dayNumber": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "天数编号scope=DAY时生效"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"quantity": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "数量"
},
"scope": {
"type": "string",
"example": "ALL",
"description": "适用范围ALL=整个行程 DAY=指定天"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
},
"suppliesId": {
"type": "string",
"example": 1893012345678901234,
"description": "物资ID"
},
"suppliesName": {
"type": "string",
"example": "登山杖",
"description": "物资名称"
}
},
"title": "物资配置请求"
},
"用餐选项VO": {
"type": "object",
"properties": {
"coverUrl": {
"type": "string",
"description": "餐食封面图URL"
},
"dayNumber": {
"type": "integer",
"format": "int32",
"description": "天数编号"
},
"id": {
"type": "string",
"description": "记录ID"
},
"mealTypes": {
"type": "string",
"description": "餐次:早餐/午餐/晚餐"
},
"priceInfo": {
"type": "string",
"description": "价格信息"
},
"quantity": {
"type": "integer",
"format": "int32",
"description": "数量"
},
"restaurantId": {
"type": "string",
"description": "餐厅ID"
},
"restaurantName": {
"type": "string",
"description": "餐厅/餐食名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"unitPrice": {
"type": "number",
"description": "餐食单价(元)"
}
},
"title": "用餐选项VO"
},
"用餐选项请求": {
"type": "object",
"properties": {
"coverUrl": {
"type": "string",
"example": "https://oss.example.com/meal.jpg",
"description": "餐食封面图URL"
},
"mealTypes": {
"type": "string",
"example": "午餐",
"description": "餐次:早餐/午餐/晚餐"
},
"priceInfo": {
"type": "string",
"example": "人均80元",
"description": "价格信息"
},
"quantity": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "数量"
},
"restaurantId": {
"type": "string",
"example": 1893012345678901234,
"description": "餐厅IDGROUP产品可不传"
},
"restaurantName": {
"type": "string",
"example": "纳西风味餐厅",
"description": "餐厅/餐食名称"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
},
"unitPrice": {
"type": "number",
"example": 80.0,
"description": "餐食单价(元,GROUP产品用于成本计算)"
}
},
"title": "用餐选项请求"
},
"统一响应结果«GROUP产品报价结果»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/GROUP产品报价结果",
"originalRef": "GROUP产品报价结果"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«GROUP产品报价结果»"
},
"统一响应结果«List«产品人员配置VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品人员配置VO",
"originalRef": "产品人员配置VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品人员配置VO»»"
},
"统一响应结果«List«产品价格日历VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品价格日历VO",
"originalRef": "产品价格日历VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品价格日历VO»»"
},
"统一响应结果«List«产品成本项VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品成本项VO",
"originalRef": "产品成本项VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品成本项VO»»"
},
"统一响应结果«List«产品文件夹VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品文件夹VO",
"originalRef": "产品文件夹VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品文件夹VO»»"
},
"统一响应结果«List«产品物资VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品物资VO",
"originalRef": "产品物资VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品物资VO»»"
},
"统一响应结果«List«产品线VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品线VO",
"originalRef": "产品线VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品线VO»»"
},
"统一响应结果«List«产品自定义费用项VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品自定义费用项VO",
"originalRef": "产品自定义费用项VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品自定义费用项VO»»"
},
"统一响应结果«List«产品额外成本VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/产品额外成本VO",
"originalRef": "产品额外成本VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«产品额外成本VO»»"
},
"统一响应结果«List«公式变量VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/公式变量VO",
"originalRef": "公式变量VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«公式变量VO»»"
},
"统一响应结果«List«公式步骤VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/公式步骤VO",
"originalRef": "公式步骤VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«公式步骤VO»»"
},
"统一响应结果«List«公式版本历史VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/公式版本历史VO",
"originalRef": "公式版本历史VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«公式版本历史VO»»"
},
"统一响应结果«List«公式组VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/公式组VO",
"originalRef": "公式组VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«公式组VO»»"
},
"统一响应结果«List«团批次VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/团批次VO",
"originalRef": "团批次VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«团批次VO»»"
},
"统一响应结果«List«团批次服务人员VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/团批次服务人员VO",
"originalRef": "团批次服务人员VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«团批次服务人员VO»»"
},
"统一响应结果«List«家庭分组VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/家庭分组VO",
"originalRef": "家庭分组VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«家庭分组VO»»"
},
"统一响应结果«List«每日酒店VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/每日酒店VO",
"originalRef": "每日酒店VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«每日酒店VO»»"
},
"统一响应结果«List«温馨提示VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/温馨提示VO",
"originalRef": "温馨提示VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«温馨提示VO»»"
},
"统一响应结果«List«用餐选项VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/用餐选项VO",
"originalRef": "用餐选项VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«用餐选项VO»»"
},
"统一响应结果«List«行政区划搜索结果»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/行政区划搜索结果",
"originalRef": "行政区划搜索结果"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«行政区划搜索结果»»"
},
"统一响应结果«List«行程天VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/行程天VO",
"originalRef": "行程天VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«行程天VO»»"
},
"统一响应结果«List«行程节点VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/行程节点VO",
"originalRef": "行程节点VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«行程节点VO»»"
},
"统一响应结果«List«预订条款VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "array",
"description": "响应数据",
"items": {
"$ref": "#/definitions/预订条款VO",
"originalRef": "预订条款VO"
}
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«List«预订条款VO»»"
},
"统一响应结果«Map«string,object»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "object",
"description": "响应数据"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«Map«string,object»»"
},
"统一响应结果«Void»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«Void»"
},
"统一响应结果«string»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"type": "string",
"description": "响应数据"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«string»"
},
"统一响应结果«产品人员配置VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品人员配置VO",
"originalRef": "产品人员配置VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品人员配置VO»"
},
"统一响应结果«产品价格日历VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品价格日历VO",
"originalRef": "产品价格日历VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品价格日历VO»"
},
"统一响应结果«产品定价配置VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品定价配置VO",
"originalRef": "产品定价配置VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品定价配置VO»"
},
"统一响应结果«产品成本项VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品成本项VO",
"originalRef": "产品成本项VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品成本项VO»"
},
"统一响应结果«产品文件夹VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品文件夹VO",
"originalRef": "产品文件夹VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品文件夹VO»"
},
"统一响应结果«产品物资VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品物资VO",
"originalRef": "产品物资VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品物资VO»"
},
"统一响应结果«产品线VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品线VO",
"originalRef": "产品线VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品线VO»"
},
"统一响应结果«产品自定义费用项VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品自定义费用项VO",
"originalRef": "产品自定义费用项VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品自定义费用项VO»"
},
"统一响应结果«产品详情VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品详情VO",
"originalRef": "产品详情VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品详情VO»"
},
"统一响应结果«产品额外成本VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/产品额外成本VO",
"originalRef": "产品额外成本VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«产品额外成本VO»"
},
"统一响应结果«公式变量VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/公式变量VO",
"originalRef": "公式变量VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«公式变量VO»"
},
"统一响应结果«公式步骤VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/公式步骤VO",
"originalRef": "公式步骤VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«公式步骤VO»"
},
"统一响应结果«公式测试结果VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/公式测试结果VO",
"originalRef": "公式测试结果VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«公式测试结果VO»"
},
"统一响应结果«公式组VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/公式组VO",
"originalRef": "公式组VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«公式组VO»"
},
"统一响应结果«分享链接响应»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/分享链接响应",
"originalRef": "分享链接响应"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«分享链接响应»"
},
"统一响应结果«分页结果«C端产品列表VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/分页结果«C端产品列表VO»",
"originalRef": "分页结果«C端产品列表VO»"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«分页结果«C端产品列表VO»»"
},
"统一响应结果«分页结果«产品列表VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/分页结果«产品列表VO»",
"originalRef": "分页结果«产品列表VO»"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«分页结果«产品列表VO»»"
},
"统一响应结果«分页结果«产品线VO»»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/分页结果«产品线VO»",
"originalRef": "分页结果«产品线VO»"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«分页结果«产品线VO»»"
},
"统一响应结果«团批次VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/团批次VO",
"originalRef": "团批次VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«团批次VO»"
},
"统一响应结果«团批次详情VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/团批次详情VO",
"originalRef": "团批次详情VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«团批次详情VO»"
},
"统一响应结果«家庭分组VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/家庭分组VO",
"originalRef": "家庭分组VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«家庭分组VO»"
},
"统一响应结果«成本预览VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/成本预览VO",
"originalRef": "成本预览VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«成本预览VO»"
},
"统一响应结果«报价结果VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/报价结果VO",
"originalRef": "报价结果VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«报价结果VO»"
},
"统一响应结果«每日酒店VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/每日酒店VO",
"originalRef": "每日酒店VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«每日酒店VO»"
},
"统一响应结果«温馨提示VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/温馨提示VO",
"originalRef": "温馨提示VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«温馨提示VO»"
},
"统一响应结果«用餐选项VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/用餐选项VO",
"originalRef": "用餐选项VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«用餐选项VO»"
},
"统一响应结果«行程天VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/行程天VO",
"originalRef": "行程天VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«行程天VO»"
},
"统一响应结果«行程节点VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/行程节点VO",
"originalRef": "行程节点VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«行程节点VO»"
},
"统一响应结果«预订条款VO»": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"example": 200,
"description": "状态码"
},
"data": {
"description": "响应数据",
"$ref": "#/definitions/预订条款VO",
"originalRef": "预订条款VO"
},
"message": {
"type": "string",
"example": "成功",
"description": "响应消息"
}
},
"title": "统一响应结果«预订条款VO»"
},
"群聊消息VO": {
"type": "object",
"properties": {
"avatar": {
"type": "string",
"description": "用户头像URLtype=user时有效"
},
"text": {
"type": "string",
"description": "消息内容"
},
"type": {
"type": "string",
"description": "消息类型: user/creator"
}
},
"title": "群聊消息VO"
},
"自定义费用项请求": {
"type": "object",
"required": [
"feeName"
],
"properties": {
"description": {
"type": "string",
"example": "含专车接机及导游服务",
"description": "费用说明"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"feeAmount": {
"type": "number",
"example": 200.0,
"description": "费用金额"
},
"feeName": {
"type": "string",
"example": "接机服务费",
"description": "费用项名称"
},
"feeUnit": {
"type": "string",
"example": "元/人",
"description": "费用单位"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
}
},
"title": "自定义费用项请求"
},
"节点排序请求": {
"type": "object",
"required": [
"nodeIds"
],
"properties": {
"nodeIds": {
"type": "array",
"description": "节点ID有序列表,按期望排序顺序排列",
"items": {
"type": "string"
}
}
},
"title": "节点排序请求"
},
"节点移动请求": {
"type": "object",
"required": [
"targetDayNumber"
],
"properties": {
"targetDayNumber": {
"type": "integer",
"format": "int32",
"example": 2,
"description": "目标天数编号"
}
},
"title": "节点移动请求"
},
"行政区划搜索结果": {
"type": "object",
"properties": {
"adcode": {
"type": "string",
"description": "行政区编码"
},
"fullPath": {
"type": "string",
"description": "全路径(省/市/区/镇,用于显示区分重名)"
},
"level": {
"type": "string",
"description": "级别: city/district/street"
},
"levelName": {
"type": "string",
"description": "级别中文名: 市/区/县/镇/乡/街道"
},
"name": {
"type": "string",
"description": "行政区名称(最后一级,用于保存)"
}
},
"title": "行政区划搜索结果"
},
"行程天VO": {
"type": "object",
"properties": {
"dayId": {
"type": "string",
"description": "行程天ID"
},
"dayNumber": {
"type": "integer",
"format": "int32",
"description": "天数编号"
},
"dayTitle": {
"type": "string",
"description": "天标题"
},
"hotels": {
"type": "array",
"description": "当日酒店列表",
"items": {
"$ref": "#/definitions/每日酒店VO",
"originalRef": "每日酒店VO"
}
},
"nodes": {
"type": "array",
"description": "行程节点列表",
"items": {
"$ref": "#/definitions/行程节点VO",
"originalRef": "行程节点VO"
}
},
"restaurants": {
"type": "array",
"description": "当日用餐列表",
"items": {
"$ref": "#/definitions/用餐选项VO",
"originalRef": "用餐选项VO"
}
},
"routeSummary": {
"type": "string",
"description": "路线概览"
}
},
"title": "行程天VO"
},
"行程天请求": {
"type": "object",
"properties": {
"dayTitle": {
"type": "string",
"example": "Day1 丽江古城漫步",
"description": "天标题"
},
"routeSummary": {
"type": "string",
"example": "丽江古城 → 束河古镇 → 白沙古镇",
"description": "路线概览"
}
},
"title": "行程天请求"
},
"行程节点VO": {
"type": "object",
"properties": {
"costPrice": {
"type": "number",
"description": "资源成本价(来自资源价格日历)"
},
"dayId": {
"type": "string",
"description": "所属行程天ID"
},
"description": {
"type": "string",
"description": "节点描述"
},
"distanceKm": {
"type": "number",
"description": "距离(公里)"
},
"durationMinutes": {
"type": "integer",
"format": "int32",
"description": "时长(分钟)"
},
"emojiIcon": {
"type": "string",
"description": "表情图标"
},
"extraData": {
"type": "string",
"description": "扩展数据JSON格式"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"images": {
"type": "array",
"description": "节点图片列表",
"items": {
"type": "string"
}
},
"latitude": {
"type": "number",
"description": "纬度"
},
"longitude": {
"type": "number",
"description": "经度"
},
"nodeId": {
"type": "string",
"description": "节点ID"
},
"nodeName": {
"type": "string",
"description": "节点名称"
},
"nodeType": {
"type": "string",
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)"
},
"quantity": {
"type": "integer",
"format": "int32",
"description": "数量"
},
"resourceDetail": {
"description": "绑定资源的详细信息(含图片、地址等)",
"$ref": "#/definitions/资源详情",
"originalRef": "资源详情"
},
"resourceId": {
"type": "string",
"description": "关联资源ID"
},
"resourceName": {
"type": "string",
"description": "关联资源名称"
},
"resourceType": {
"type": "string",
"description": "关联资源类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/STAFF"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"description": "排序序号"
},
"startTime": {
"type": "string",
"description": "开始时间"
}
},
"title": "行程节点VO"
},
"解散批次请求": {
"type": "object",
"required": [
"reason"
],
"properties": {
"reason": {
"type": "string",
"example": "报名人数不足",
"description": "解散原因(如:报名人数不足、行程调整等)"
}
},
"title": "解散批次请求"
},
"资源详情": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "地址"
},
"city": {
"type": "string",
"description": "所在城市"
},
"cover": {
"type": "string",
"description": "封面图URL"
},
"description": {
"type": "string",
"description": "简介/描述"
},
"featureIntro": {
"type": "string",
"description": "图文详情featureIntro JSON"
},
"images": {
"type": "array",
"description": "图片URL列表轮播图",
"items": {
"type": "string"
}
},
"latitude": {
"type": "number",
"description": "纬度"
},
"longitude": {
"type": "number",
"description": "经度"
},
"name": {
"type": "string",
"description": "资源名称"
},
"rating": {
"type": "number",
"description": "评分"
},
"resourceId": {
"type": "string",
"description": "资源ID"
},
"resourceType": {
"type": "string",
"description": "资源类型: SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY"
},
"subtitle": {
"type": "string",
"description": "副标题"
},
"tags": {
"type": "array",
"description": "标签列表",
"items": {
"type": "string"
}
}
},
"title": "资源详情"
},
"预订条款VO": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "条款内容(富文本)"
},
"createTime": {
"type": "string",
"format": "date-time",
"description": "创建时间"
},
"createdBy": {
"type": "integer",
"format": "int64",
"description": "创建人ID"
},
"enabled": {
"type": "boolean",
"description": "是否启用"
},
"remark": {
"type": "string",
"description": "备注"
},
"termsId": {
"type": "integer",
"format": "int64",
"description": "预订条款ID"
},
"termsName": {
"type": "string",
"description": "条款名称"
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "更新时间"
}
},
"title": "预订条款VO"
},
"预订条款请求": {
"type": "object",
"required": [
"content",
"termsName"
],
"properties": {
"content": {
"type": "string",
"description": "条款内容(富文本)"
},
"remark": {
"type": "string",
"example": "适用于所有国内游产品",
"description": "备注"
},
"termsName": {
"type": "string",
"example": "国内游预订条款",
"description": "条款名称"
}
},
"title": "预订条款请求"
},
"额外成本明细项": {
"type": "object",
"properties": {
"costItemName": {
"type": "string",
"description": "成本项名称"
},
"daily": {
"type": "boolean",
"description": "是否按天计算"
},
"days": {
"type": "integer",
"format": "int32",
"description": "天数(按天计算时)"
},
"quantity": {
"type": "integer",
"format": "int32",
"description": "数量"
},
"subtotal": {
"type": "number",
"description": "小计金额"
},
"unitPrice": {
"type": "number",
"description": "单价"
}
},
"title": "额外成本明细项"
},
"额外成本请求": {
"type": "object",
"required": [
"costItemId"
],
"properties": {
"costItemId": {
"type": "integer",
"format": "int64",
"example": 1893012345678901234,
"description": "额外成本项ID关联费用项资源"
},
"daily": {
"type": "boolean",
"example": true,
"description": "是否按天计算true=按天计算(乘以天数) false=整个行程一次"
},
"familyIds": {
"type": "array",
"description": "所属家庭ID列表定制产品按家庭分配",
"items": {
"type": "string"
}
},
"quantity": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "数量"
},
"sortOrder": {
"type": "integer",
"format": "int32",
"example": 1,
"description": "排序序号"
}
},
"title": "额外成本请求"
}
}
}