13354 行
379 KiB
JSON
13354 行
379 KiB
JSON
{
|
||
"swagger": "2.0",
|
||
"info": {
|
||
"title": "产品服务",
|
||
"version": "1.0.0"
|
||
},
|
||
"basePath": "/",
|
||
"paths": {
|
||
"/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": {
|
||
"originalRef": "用餐选项请求",
|
||
"$ref": "#/definitions/用餐选项请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«用餐选项VO»",
|
||
"$ref": "#/definitions/统一响应结果«用餐选项VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«用餐选项VO»",
|
||
"$ref": "#/definitions/统一响应结果«用餐选项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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«行政区划搜索结果»»",
|
||
"$ref": "#/definitions/统一响应结果«List«行政区划搜索结果»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«行政区划搜索结果»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "创建文件夹请求",
|
||
"$ref": "#/definitions/创建文件夹请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品文件夹VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品文件夹VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品文件夹VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品文件夹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": {
|
||
"originalRef": "统一响应结果«List«产品文件夹VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品文件夹VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品文件夹VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "更新文件夹请求",
|
||
"$ref": "#/definitions/更新文件夹请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品文件夹VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品文件夹VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品文件夹VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品文件夹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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "公式组请求",
|
||
"$ref": "#/definitions/公式组请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式组VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式组VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式组VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式组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": {
|
||
"originalRef": "统一响应结果«List«公式组VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«公式组VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«公式组VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«公式组VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式组VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式组VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式组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": {
|
||
"originalRef": "公式组请求",
|
||
"$ref": "#/definitions/公式组请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式组VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式组VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式组VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式组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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«公式步骤VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«公式步骤VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«公式步骤VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "公式步骤请求",
|
||
"$ref": "#/definitions/公式步骤请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤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": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤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": {
|
||
"originalRef": "公式步骤请求",
|
||
"$ref": "#/definitions/公式步骤请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式步骤VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式步骤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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«公式版本历史VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«公式版本历史VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«公式版本历史VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "公式测试请求",
|
||
"$ref": "#/definitions/公式测试请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式测试结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式测试结果VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式测试结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式测试结果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": {
|
||
"originalRef": "公式变量请求",
|
||
"$ref": "#/definitions/公式变量请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式变量VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式变量VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式变量VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式变量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": {
|
||
"originalRef": "统一响应结果«List«公式变量VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«公式变量VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«公式变量VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "公式变量请求",
|
||
"$ref": "#/definitions/公式变量请求"
|
||
}
|
||
},
|
||
{
|
||
"name": "varId",
|
||
"in": "path",
|
||
"description": "varId",
|
||
"required": true,
|
||
"type": "integer",
|
||
"format": "int64"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式变量VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式变量VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«公式变量VO»",
|
||
"$ref": "#/definitions/统一响应结果«公式变量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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "每日酒店配置请求",
|
||
"$ref": "#/definitions/每日酒店配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«每日酒店VO»",
|
||
"$ref": "#/definitions/统一响应结果«每日酒店VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«每日酒店VO»",
|
||
"$ref": "#/definitions/统一响应结果«每日酒店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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "创建产品请求",
|
||
"$ref": "#/definitions/创建产品请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情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": {
|
||
"originalRef": "统一响应结果«分页结果«产品列表VO»»",
|
||
"$ref": "#/definitions/统一响应结果«分页结果«产品列表VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«分页结果«产品列表VO»»",
|
||
"$ref": "#/definitions/统一响应结果«分页结果«产品列表VO»»"
|
||
}
|
||
},
|
||
"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": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情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": {
|
||
"originalRef": "更新产品请求",
|
||
"$ref": "#/definitions/更新产品请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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(产品类型,仅限GROUP):GROUP=小蒙马拼团\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": {
|
||
"originalRef": "创建拼团批次请求",
|
||
"$ref": "#/definitions/创建拼团批次请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次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": {
|
||
"originalRef": "统一响应结果«List«团批次VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«团批次VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«团批次VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«团批次详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次详情VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次详情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": {
|
||
"originalRef": "更新拼团批次请求",
|
||
"$ref": "#/definitions/更新拼团批次请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "解散批次请求",
|
||
"$ref": "#/definitions/解散批次请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«团批次服务人员VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«团批次服务人员VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "批次服务人员分配请求",
|
||
"$ref": "#/definitions/批次服务人员分配请求"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«团批次服务人员VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«团批次服务人员VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«团批次服务人员VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«团批次服务人员VO»»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«团批次服务人员VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "创建拼团批次请求",
|
||
"$ref": "#/definitions/创建拼团批次请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«团批次VO»",
|
||
"$ref": "#/definitions/统一响应结果«团批次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": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情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": {
|
||
"originalRef": "成本项请求",
|
||
"$ref": "#/definitions/成本项请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品成本项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品成本项VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品成本项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品成本项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": {
|
||
"originalRef": "成本项请求",
|
||
"$ref": "#/definitions/成本项请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品成本项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品成本项VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品成本项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品成本项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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«产品成本项VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品成本项VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品成本项VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "自定义费用项请求",
|
||
"$ref": "#/definitions/自定义费用项请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品自定义费用项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品自定义费用项VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品自定义费用项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品自定义费用项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": {
|
||
"originalRef": "自定义费用项请求",
|
||
"$ref": "#/definitions/自定义费用项请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品自定义费用项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品自定义费用项VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品自定义费用项VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品自定义费用项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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«产品自定义费用项VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品自定义费用项VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品自定义费用项VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "行程天请求",
|
||
"$ref": "#/definitions/行程天请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程天VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程天VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程天VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程天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": {
|
||
"originalRef": "统一响应结果«List«用餐选项VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«用餐选项VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«用餐选项VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "用餐选项请求",
|
||
"$ref": "#/definitions/用餐选项请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«用餐选项VO»",
|
||
"$ref": "#/definitions/统一响应结果«用餐选项VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«用餐选项VO»",
|
||
"$ref": "#/definitions/统一响应结果«用餐选项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": {
|
||
"originalRef": "每日酒店配置请求",
|
||
"$ref": "#/definitions/每日酒店配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«每日酒店VO»",
|
||
"$ref": "#/definitions/统一响应结果«每日酒店VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«每日酒店VO»",
|
||
"$ref": "#/definitions/统一响应结果«每日酒店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": {
|
||
"originalRef": "统一响应结果«List«每日酒店VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«每日酒店VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«每日酒店VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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(景区)/DINING(餐饮)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)\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": {
|
||
"originalRef": "创建行程节点请求",
|
||
"$ref": "#/definitions/创建行程节点请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点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": {
|
||
"originalRef": "统一响应结果«List«行程节点VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«行程节点VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«行程节点VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "节点排序请求",
|
||
"$ref": "#/definitions/节点排序请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«行程天VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«行程天VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«行程天VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "额外成本请求",
|
||
"$ref": "#/definitions/额外成本请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品额外成本VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品额外成本VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品额外成本VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品额外成本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": {
|
||
"originalRef": "额外成本请求",
|
||
"$ref": "#/definitions/额外成本请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品额外成本VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品额外成本VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品额外成本VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品额外成本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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«产品额外成本VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品额外成本VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品额外成本VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«家庭分组VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«家庭分组VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«家庭分组VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "家庭分组保存请求",
|
||
"$ref": "#/definitions/家庭分组保存请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«家庭分组VO»",
|
||
"$ref": "#/definitions/统一响应结果«家庭分组VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«家庭分组VO»",
|
||
"$ref": "#/definitions/统一响应结果«家庭分组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": {
|
||
"originalRef": "家庭分组保存请求",
|
||
"$ref": "#/definitions/家庭分组保存请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«家庭分组VO»",
|
||
"$ref": "#/definitions/统一响应结果«家庭分组VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«家庭分组VO»",
|
||
"$ref": "#/definitions/统一响应结果«家庭分组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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«string»",
|
||
"$ref": "#/definitions/统一响应结果«string»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«string»",
|
||
"$ref": "#/definitions/统一响应结果«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\nGROUP 产品的价格由批次下的套餐组合(combo)决定,不同组合有不同的成人/儿童人数搭配和价格。\n传入 batchId 指定团期批次,adultCount 用于匹配合适的套餐组合。\n\n**与普通报价的区别**:普通报价从价格日历取单价,GROUP 报价从套餐组合取打包价。\n\n**关联字典**:\n- product_type(产品类型,仅限GROUP):GROUP=小蒙马拼团",
|
||
"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": "productId",
|
||
"in": "path",
|
||
"description": "产品ID",
|
||
"required": false,
|
||
"type": "integer",
|
||
"format": "int64"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«GROUP产品报价结果»",
|
||
"$ref": "#/definitions/统一响应结果«GROUP产品报价结果»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«GROUP产品报价结果»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "产品移动请求",
|
||
"$ref": "#/definitions/产品移动请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«产品价格日历VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品价格日历VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品价格日历VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "价格日历请求",
|
||
"$ref": "#/definitions/价格日历请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品价格日历VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品价格日历VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品价格日历VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品价格日历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": {
|
||
"originalRef": "报价请求",
|
||
"$ref": "#/definitions/报价请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«报价结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«报价结果VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«报价结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«报价结果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": {
|
||
"originalRef": "批量设置价格日历请求",
|
||
"$ref": "#/definitions/批量设置价格日历请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品价格日历VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品价格日历VO»»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品价格日历VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "成本预览请求",
|
||
"$ref": "#/definitions/成本预览请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«成本预览VO»",
|
||
"$ref": "#/definitions/统一响应结果«成本预览VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«成本预览VO»",
|
||
"$ref": "#/definitions/统一响应结果«成本预览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": {
|
||
"originalRef": "统一响应结果«Map«string,object»»",
|
||
"$ref": "#/definitions/统一响应结果«Map«string,object»»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Map«string,object»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«产品定价配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品定价配置VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品定价配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品定价配置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": {
|
||
"originalRef": "定价配置请求",
|
||
"$ref": "#/definitions/定价配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品定价配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品定价配置VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品定价配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品定价配置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": {
|
||
"originalRef": "报价请求",
|
||
"$ref": "#/definitions/报价请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«报价结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«报价结果VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«报价结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«报价结果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": {
|
||
"originalRef": "统一响应结果«分享链接响应»",
|
||
"$ref": "#/definitions/统一响应结果«分享链接响应»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«分享链接响应»",
|
||
"$ref": "#/definitions/统一响应结果«分享链接响应»"
|
||
}
|
||
},
|
||
"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": {
|
||
"originalRef": "人员配置请求",
|
||
"$ref": "#/definitions/人员配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品人员配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品人员配置VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品人员配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品人员配置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": {
|
||
"originalRef": "统一响应结果«List«产品人员配置VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品人员配置VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品人员配置VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "产品状态变更请求",
|
||
"$ref": "#/definitions/产品状态变更请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«List«产品物资VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品物资VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品物资VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "物资配置请求",
|
||
"$ref": "#/definitions/物资配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品物资VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品物资VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品物资VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品物资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": {
|
||
"originalRef": "创建产品线请求",
|
||
"$ref": "#/definitions/创建产品线请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品线VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品线VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品线VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品线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": {
|
||
"originalRef": "统一响应结果«List«产品线VO»»",
|
||
"$ref": "#/definitions/统一响应结果«List«产品线VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«List«产品线VO»»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«分页结果«产品线VO»»",
|
||
"$ref": "#/definitions/统一响应结果«分页结果«产品线VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«分页结果«产品线VO»»",
|
||
"$ref": "#/definitions/统一响应结果«分页结果«产品线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": {
|
||
"originalRef": "统一响应结果«产品线VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品线VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品线VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品线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": {
|
||
"originalRef": "更新产品线请求",
|
||
"$ref": "#/definitions/更新产品线请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品线VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品线VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品线VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品线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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "更新行程节点请求",
|
||
"$ref": "#/definitions/更新行程节点请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点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": {
|
||
"originalRef": "节点移动请求",
|
||
"$ref": "#/definitions/节点移动请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«行程节点VO»",
|
||
"$ref": "#/definitions/统一响应结果«行程节点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": {
|
||
"originalRef": "人员配置请求",
|
||
"$ref": "#/definitions/人员配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品人员配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品人员配置VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品人员配置VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品人员配置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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«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": {
|
||
"originalRef": "物资配置请求",
|
||
"$ref": "#/definitions/物资配置请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品物资VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品物资VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品物资VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品物资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": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«Void»",
|
||
"$ref": "#/definitions/统一响应结果«Void»"
|
||
}
|
||
},
|
||
"204": {
|
||
"description": "No Content"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
}
|
||
},
|
||
"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": {
|
||
"originalRef": "统一响应结果«分页结果«C端产品列表VO»»",
|
||
"$ref": "#/definitions/统一响应结果«分页结果«C端产品列表VO»»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«分页结果«C端产品列表VO»»",
|
||
"$ref": "#/definitions/统一响应结果«分页结果«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": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情VO»"
|
||
}
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«产品详情VO»",
|
||
"$ref": "#/definitions/统一响应结果«产品详情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": {
|
||
"originalRef": "报价请求",
|
||
"$ref": "#/definitions/报价请求"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«报价结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«报价结果VO»"
|
||
}
|
||
},
|
||
"201": {
|
||
"description": "Created"
|
||
},
|
||
"401": {
|
||
"description": "Unauthorized"
|
||
},
|
||
"403": {
|
||
"description": "Forbidden"
|
||
},
|
||
"404": {
|
||
"description": "Not Found"
|
||
}
|
||
},
|
||
"responsesObject": {
|
||
"200": {
|
||
"description": "OK",
|
||
"schema": {
|
||
"originalRef": "统一响应结果«报价结果VO»",
|
||
"$ref": "#/definitions/统一响应结果«报价结果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"
|
||
},
|
||
"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": "成人成本价(单房差+每人费用)"
|
||
},
|
||
"adultSellPrice": {
|
||
"type": "number",
|
||
"description": "成人售价"
|
||
},
|
||
"childCostPrice": {
|
||
"type": "number",
|
||
"description": "儿童成本价(每人费用,不含酒店)"
|
||
},
|
||
"childSellPrice": {
|
||
"type": "number",
|
||
"description": "儿童售价"
|
||
},
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"description": "返回码: 0=成功, 1=非GROUP产品, 2=错误"
|
||
},
|
||
"dayCosts": {
|
||
"type": "array",
|
||
"description": "每日成本明细",
|
||
"items": {
|
||
"originalRef": "每日成本明细",
|
||
"$ref": "#/definitions/每日成本明细"
|
||
}
|
||
},
|
||
"extraCostItems": {
|
||
"type": "array",
|
||
"description": "额外成本明细列表",
|
||
"items": {
|
||
"originalRef": "额外成本明细项",
|
||
"$ref": "#/definitions/额外成本明细项"
|
||
}
|
||
},
|
||
"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": "利润模式"
|
||
},
|
||
"singleRoomSupplement": {
|
||
"type": "number",
|
||
"description": "单房差(酒店总成本/2)"
|
||
},
|
||
"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=小蒙马拼团"
|
||
},
|
||
"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": {
|
||
"originalRef": "产品文件夹VO",
|
||
"$ref": "#/definitions/产品文件夹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": {
|
||
"originalRef": "权益分组",
|
||
"$ref": "#/definitions/权益分组"
|
||
}
|
||
},
|
||
"bookingNotice": {
|
||
"type": "string",
|
||
"description": "预定须知"
|
||
},
|
||
"cancelPolicy": {
|
||
"type": "string",
|
||
"description": "退改政策"
|
||
},
|
||
"carouselImages": {
|
||
"type": "array",
|
||
"description": "轮播图列表",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"carouselVideoUrl": {
|
||
"type": "string",
|
||
"description": "轮播视频URL"
|
||
},
|
||
"chatMessages": {
|
||
"type": "array",
|
||
"description": "群聊消息列表",
|
||
"items": {
|
||
"originalRef": "群聊消息VO",
|
||
"$ref": "#/definitions/群聊消息VO"
|
||
}
|
||
},
|
||
"childCount": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"description": "儿童人数"
|
||
},
|
||
"costItems": {
|
||
"type": "array",
|
||
"description": "成本项列表",
|
||
"items": {
|
||
"originalRef": "产品成本项VO",
|
||
"$ref": "#/definitions/产品成本项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": {
|
||
"originalRef": "产品自定义费用项VO",
|
||
"$ref": "#/definitions/产品自定义费用项VO"
|
||
}
|
||
},
|
||
"customizerId": {
|
||
"type": "string",
|
||
"description": "定制师ID"
|
||
},
|
||
"departureCity": {
|
||
"type": "string",
|
||
"description": "出发城市"
|
||
},
|
||
"destinationCities": {
|
||
"type": "array",
|
||
"description": "途经城市列表(从行程节点资源去重提取)",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"destinationCity": {
|
||
"type": "string",
|
||
"description": "目的地城市"
|
||
},
|
||
"families": {
|
||
"type": "array",
|
||
"description": "家庭分组列表(定制产品)",
|
||
"items": {
|
||
"originalRef": "家庭分组VO",
|
||
"$ref": "#/definitions/家庭分组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": {
|
||
"originalRef": "行程天VO",
|
||
"$ref": "#/definitions/行程天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": "定价配置",
|
||
"originalRef": "产品定价配置VO",
|
||
"$ref": "#/definitions/产品定价配置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": "发布时间"
|
||
},
|
||
"routeMapUrl": {
|
||
"type": "string",
|
||
"description": "路径图URL(后端自动生成)"
|
||
},
|
||
"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": {
|
||
"originalRef": "产品人员配置VO",
|
||
"$ref": "#/definitions/产品人员配置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": {
|
||
"originalRef": "产品物资VO",
|
||
"$ref": "#/definitions/产品物资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": "更新时间"
|
||
},
|
||
"warmTips": {
|
||
"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": "价格日历请求"
|
||
},
|
||
"公式变量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": {
|
||
"originalRef": "步骤执行结果",
|
||
"$ref": "#/definitions/步骤执行结果"
|
||
}
|
||
},
|
||
"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": {
|
||
"originalRef": "C端产品列表VO",
|
||
"$ref": "#/definitions/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": {
|
||
"originalRef": "产品列表VO",
|
||
"$ref": "#/definitions/产品列表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": {
|
||
"originalRef": "产品线VO",
|
||
"$ref": "#/definitions/产品线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": "婴儿人数"
|
||
},
|
||
"bookingNotice": {
|
||
"type": "string",
|
||
"description": "预定须知"
|
||
},
|
||
"cancelPolicy": {
|
||
"type": "string",
|
||
"description": "退改政策"
|
||
},
|
||
"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": "儿童人数"
|
||
},
|
||
"creatorAvatarUrl": {
|
||
"type": "string",
|
||
"example": "https://oss.example.com/avatar.jpg",
|
||
"description": "定制师头像URL"
|
||
},
|
||
"creatorIntro": {
|
||
"type": "string",
|
||
"example": "带你体验最地道的丽江风情",
|
||
"description": "创作者寄语"
|
||
},
|
||
"customizerId": {
|
||
"type": "string",
|
||
"example": 1893012345678901234,
|
||
"description": "定制师ID"
|
||
},
|
||
"departureCity": {
|
||
"type": "string",
|
||
"example": "昆明",
|
||
"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=小蒙马拼团"
|
||
},
|
||
"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": "行程天数"
|
||
},
|
||
"warmTips": {
|
||
"type": "string",
|
||
"description": "温馨提示"
|
||
},
|
||
"youngChildCount": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 0,
|
||
"description": "小童人数"
|
||
}
|
||
},
|
||
"title": "创建产品请求"
|
||
},
|
||
"创建拼团批次请求": {
|
||
"type": "object",
|
||
"required": [
|
||
"batchName",
|
||
"departureDate",
|
||
"enrollmentDeadline",
|
||
"maxParticipants"
|
||
],
|
||
"properties": {
|
||
"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": "最大参团人数(报名人数达到上限后自动关闭报名)"
|
||
},
|
||
"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(景区)/DINING(餐饮)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)"
|
||
},
|
||
"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": {
|
||
"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"
|
||
},
|
||
"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": "最大人数"
|
||
},
|
||
"minParticipants": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 10,
|
||
"description": "最少成团人数"
|
||
},
|
||
"parentBatchId": {
|
||
"type": "string",
|
||
"example": 2026280000000000001,
|
||
"description": "父批次ID(子批次时有值)"
|
||
},
|
||
"productId": {
|
||
"type": "string",
|
||
"example": 2026270000000000001,
|
||
"description": "产品ID"
|
||
},
|
||
"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": {
|
||
"originalRef": "团批次VO",
|
||
"$ref": "#/definitions/团批次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": {
|
||
"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"
|
||
},
|
||
"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": "最大人数"
|
||
},
|
||
"minParticipants": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 10,
|
||
"description": "最少成团人数"
|
||
},
|
||
"parentBatchId": {
|
||
"type": "string",
|
||
"example": 2026280000000000001,
|
||
"description": "父批次ID(子批次时有值)"
|
||
},
|
||
"productId": {
|
||
"type": "string",
|
||
"example": 2026270000000000001,
|
||
"description": "产品ID"
|
||
},
|
||
"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": {
|
||
"originalRef": "团批次服务人员VO",
|
||
"$ref": "#/definitions/团批次服务人员VO"
|
||
}
|
||
},
|
||
"subBatches": {
|
||
"type": "array",
|
||
"description": "子批次列表(树形)",
|
||
"items": {
|
||
"originalRef": "团批次VO",
|
||
"$ref": "#/definitions/团批次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": {
|
||
"originalRef": "每人成本明细",
|
||
"$ref": "#/definitions/每人成本明细"
|
||
}
|
||
},
|
||
"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": {
|
||
"originalRef": "每日成本明细",
|
||
"$ref": "#/definitions/每日成本明细"
|
||
}
|
||
},
|
||
"extraCostItems": {
|
||
"type": "array",
|
||
"description": "额外成本明细列表",
|
||
"items": {
|
||
"originalRef": "额外成本明细项",
|
||
"$ref": "#/definitions/额外成本明细项"
|
||
}
|
||
},
|
||
"extraCostPerPerson": {
|
||
"type": "number",
|
||
"description": "每人额外成本"
|
||
},
|
||
"extraCostTotal": {
|
||
"type": "number",
|
||
"description": "额外成本合计"
|
||
},
|
||
"familyCosts": {
|
||
"type": "array",
|
||
"description": "家庭分组成本明细(定制产品,有分组时返回)",
|
||
"items": {
|
||
"originalRef": "家庭成本明细",
|
||
"$ref": "#/definitions/家庭成本明细"
|
||
}
|
||
},
|
||
"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": "婴儿人数"
|
||
},
|
||
"bookingNotice": {
|
||
"type": "string",
|
||
"description": "预定须知"
|
||
},
|
||
"cancelPolicy": {
|
||
"type": "string",
|
||
"description": "退改政策"
|
||
},
|
||
"carouselImages": {
|
||
"type": "array",
|
||
"description": "轮播图列表",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"carouselVideoUrl": {
|
||
"type": "string",
|
||
"example": "https://oss.example.com/video.mp4",
|
||
"description": "轮播视频URL"
|
||
},
|
||
"chatMessages": {
|
||
"type": "array",
|
||
"description": "群聊消息列表",
|
||
"items": {
|
||
"originalRef": "群聊消息VO",
|
||
"$ref": "#/definitions/群聊消息VO"
|
||
}
|
||
},
|
||
"childCount": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 1,
|
||
"description": "儿童人数"
|
||
},
|
||
"creatorAvatarUrl": {
|
||
"type": "string",
|
||
"example": "https://oss.example.com/avatar.jpg",
|
||
"description": "定制师头像URL"
|
||
},
|
||
"creatorIntro": {
|
||
"type": "string",
|
||
"example": "带你体验最地道的丽江风情",
|
||
"description": "创作者寄语"
|
||
},
|
||
"customizerId": {
|
||
"type": "string",
|
||
"example": 1893012345678901234,
|
||
"description": "定制师ID"
|
||
},
|
||
"departureCity": {
|
||
"type": "string",
|
||
"example": "昆明",
|
||
"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": "产品名称"
|
||
},
|
||
"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": "行程天数"
|
||
},
|
||
"warmTips": {
|
||
"type": "string",
|
||
"description": "温馨提示"
|
||
},
|
||
"youngChildCount": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 0,
|
||
"description": "小童人数"
|
||
}
|
||
},
|
||
"title": "更新产品请求"
|
||
},
|
||
"更新拼团批次请求": {
|
||
"type": "object",
|
||
"properties": {
|
||
"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": "最大参团人数(不能低于已报名人数)"
|
||
},
|
||
"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(景区)/DINING(餐饮)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)"
|
||
},
|
||
"quantity": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 1,
|
||
"description": "数量"
|
||
},
|
||
"resourceId": {
|
||
"type": "string",
|
||
"example": 1893012345678901234,
|
||
"description": "关联资源ID"
|
||
},
|
||
"resourceType": {
|
||
"type": "string",
|
||
"example": "SCENIC_SPOT",
|
||
"description": "关联资源类型:SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE"
|
||
},
|
||
"startTime": {
|
||
"type": "string",
|
||
"example": "09:00",
|
||
"description": "开始时间"
|
||
}
|
||
},
|
||
"title": "更新行程节点请求"
|
||
},
|
||
"权益分组": {
|
||
"type": "object",
|
||
"properties": {
|
||
"items": {
|
||
"type": "array",
|
||
"description": "权益项列表",
|
||
"items": {
|
||
"originalRef": "权益项",
|
||
"$ref": "#/definitions/权益项"
|
||
}
|
||
},
|
||
"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": "服务成本"
|
||
},
|
||
"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": "每日酒店配置请求"
|
||
},
|
||
"物资配置请求": {
|
||
"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": "餐厅ID(GROUP产品可不传)"
|
||
},
|
||
"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": "响应数据",
|
||
"originalRef": "GROUP产品报价结果",
|
||
"$ref": "#/definitions/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": {
|
||
"originalRef": "产品人员配置VO",
|
||
"$ref": "#/definitions/产品人员配置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": {
|
||
"originalRef": "产品价格日历VO",
|
||
"$ref": "#/definitions/产品价格日历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": {
|
||
"originalRef": "产品成本项VO",
|
||
"$ref": "#/definitions/产品成本项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": {
|
||
"originalRef": "产品文件夹VO",
|
||
"$ref": "#/definitions/产品文件夹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": {
|
||
"originalRef": "产品物资VO",
|
||
"$ref": "#/definitions/产品物资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": {
|
||
"originalRef": "产品线VO",
|
||
"$ref": "#/definitions/产品线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": {
|
||
"originalRef": "产品自定义费用项VO",
|
||
"$ref": "#/definitions/产品自定义费用项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": {
|
||
"originalRef": "产品额外成本VO",
|
||
"$ref": "#/definitions/产品额外成本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": {
|
||
"originalRef": "公式变量VO",
|
||
"$ref": "#/definitions/公式变量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": {
|
||
"originalRef": "公式步骤VO",
|
||
"$ref": "#/definitions/公式步骤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": {
|
||
"originalRef": "公式版本历史VO",
|
||
"$ref": "#/definitions/公式版本历史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": {
|
||
"originalRef": "公式组VO",
|
||
"$ref": "#/definitions/公式组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": {
|
||
"originalRef": "团批次VO",
|
||
"$ref": "#/definitions/团批次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": {
|
||
"originalRef": "团批次服务人员VO",
|
||
"$ref": "#/definitions/团批次服务人员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": {
|
||
"originalRef": "家庭分组VO",
|
||
"$ref": "#/definitions/家庭分组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": {
|
||
"originalRef": "每日酒店VO",
|
||
"$ref": "#/definitions/每日酒店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": {
|
||
"originalRef": "用餐选项VO",
|
||
"$ref": "#/definitions/用餐选项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": {
|
||
"originalRef": "行政区划搜索结果",
|
||
"$ref": "#/definitions/行政区划搜索结果"
|
||
}
|
||
},
|
||
"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": {
|
||
"originalRef": "行程天VO",
|
||
"$ref": "#/definitions/行程天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": {
|
||
"originalRef": "行程节点VO",
|
||
"$ref": "#/definitions/行程节点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": "响应数据",
|
||
"originalRef": "产品人员配置VO",
|
||
"$ref": "#/definitions/产品人员配置VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品人员配置VO»"
|
||
},
|
||
"统一响应结果«产品价格日历VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品价格日历VO",
|
||
"$ref": "#/definitions/产品价格日历VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品价格日历VO»"
|
||
},
|
||
"统一响应结果«产品定价配置VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品定价配置VO",
|
||
"$ref": "#/definitions/产品定价配置VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品定价配置VO»"
|
||
},
|
||
"统一响应结果«产品成本项VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品成本项VO",
|
||
"$ref": "#/definitions/产品成本项VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品成本项VO»"
|
||
},
|
||
"统一响应结果«产品文件夹VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品文件夹VO",
|
||
"$ref": "#/definitions/产品文件夹VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品文件夹VO»"
|
||
},
|
||
"统一响应结果«产品物资VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品物资VO",
|
||
"$ref": "#/definitions/产品物资VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品物资VO»"
|
||
},
|
||
"统一响应结果«产品线VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品线VO",
|
||
"$ref": "#/definitions/产品线VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品线VO»"
|
||
},
|
||
"统一响应结果«产品自定义费用项VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品自定义费用项VO",
|
||
"$ref": "#/definitions/产品自定义费用项VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品自定义费用项VO»"
|
||
},
|
||
"统一响应结果«产品详情VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品详情VO",
|
||
"$ref": "#/definitions/产品详情VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品详情VO»"
|
||
},
|
||
"统一响应结果«产品额外成本VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "产品额外成本VO",
|
||
"$ref": "#/definitions/产品额外成本VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«产品额外成本VO»"
|
||
},
|
||
"统一响应结果«公式变量VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "公式变量VO",
|
||
"$ref": "#/definitions/公式变量VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«公式变量VO»"
|
||
},
|
||
"统一响应结果«公式步骤VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "公式步骤VO",
|
||
"$ref": "#/definitions/公式步骤VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«公式步骤VO»"
|
||
},
|
||
"统一响应结果«公式测试结果VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "公式测试结果VO",
|
||
"$ref": "#/definitions/公式测试结果VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«公式测试结果VO»"
|
||
},
|
||
"统一响应结果«公式组VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "公式组VO",
|
||
"$ref": "#/definitions/公式组VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«公式组VO»"
|
||
},
|
||
"统一响应结果«分享链接响应»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "分享链接响应",
|
||
"$ref": "#/definitions/分享链接响应"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«分享链接响应»"
|
||
},
|
||
"统一响应结果«分页结果«C端产品列表VO»»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "分页结果«C端产品列表VO»",
|
||
"$ref": "#/definitions/分页结果«C端产品列表VO»"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«分页结果«C端产品列表VO»»"
|
||
},
|
||
"统一响应结果«分页结果«产品列表VO»»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "分页结果«产品列表VO»",
|
||
"$ref": "#/definitions/分页结果«产品列表VO»"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«分页结果«产品列表VO»»"
|
||
},
|
||
"统一响应结果«分页结果«产品线VO»»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "分页结果«产品线VO»",
|
||
"$ref": "#/definitions/分页结果«产品线VO»"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«分页结果«产品线VO»»"
|
||
},
|
||
"统一响应结果«团批次VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "团批次VO",
|
||
"$ref": "#/definitions/团批次VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«团批次VO»"
|
||
},
|
||
"统一响应结果«团批次详情VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "团批次详情VO",
|
||
"$ref": "#/definitions/团批次详情VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«团批次详情VO»"
|
||
},
|
||
"统一响应结果«家庭分组VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "家庭分组VO",
|
||
"$ref": "#/definitions/家庭分组VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«家庭分组VO»"
|
||
},
|
||
"统一响应结果«成本预览VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "成本预览VO",
|
||
"$ref": "#/definitions/成本预览VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«成本预览VO»"
|
||
},
|
||
"统一响应结果«报价结果VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "报价结果VO",
|
||
"$ref": "#/definitions/报价结果VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«报价结果VO»"
|
||
},
|
||
"统一响应结果«每日酒店VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "每日酒店VO",
|
||
"$ref": "#/definitions/每日酒店VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«每日酒店VO»"
|
||
},
|
||
"统一响应结果«用餐选项VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "用餐选项VO",
|
||
"$ref": "#/definitions/用餐选项VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«用餐选项VO»"
|
||
},
|
||
"统一响应结果«行程天VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "行程天VO",
|
||
"$ref": "#/definitions/行程天VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«行程天VO»"
|
||
},
|
||
"统一响应结果«行程节点VO»": {
|
||
"type": "object",
|
||
"properties": {
|
||
"code": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"example": 200,
|
||
"description": "状态码"
|
||
},
|
||
"data": {
|
||
"description": "响应数据",
|
||
"originalRef": "行程节点VO",
|
||
"$ref": "#/definitions/行程节点VO"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"example": "成功",
|
||
"description": "响应消息"
|
||
}
|
||
},
|
||
"title": "统一响应结果«行程节点VO»"
|
||
},
|
||
"群聊消息VO": {
|
||
"type": "object",
|
||
"properties": {
|
||
"avatar": {
|
||
"type": "string",
|
||
"description": "用户头像URL(type=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": "行政区编码"
|
||
},
|
||
"level": {
|
||
"type": "string",
|
||
"description": "级别: city/district"
|
||
},
|
||
"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": {
|
||
"originalRef": "每日酒店VO",
|
||
"$ref": "#/definitions/每日酒店VO"
|
||
}
|
||
},
|
||
"nodes": {
|
||
"type": "array",
|
||
"description": "行程节点列表",
|
||
"items": {
|
||
"originalRef": "行程节点VO",
|
||
"$ref": "#/definitions/行程节点VO"
|
||
}
|
||
},
|
||
"restaurants": {
|
||
"type": "array",
|
||
"description": "当日用餐列表",
|
||
"items": {
|
||
"originalRef": "用餐选项VO",
|
||
"$ref": "#/definitions/用餐选项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": "节点类型:SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE"
|
||
},
|
||
"quantity": {
|
||
"type": "integer",
|
||
"format": "int32",
|
||
"description": "数量"
|
||
},
|
||
"resourceDetail": {
|
||
"description": "绑定资源的详细信息(含图片、地址等)",
|
||
"originalRef": "资源详情",
|
||
"$ref": "#/definitions/资源详情"
|
||
},
|
||
"resourceId": {
|
||
"type": "string",
|
||
"description": "关联资源ID"
|
||
},
|
||
"resourceName": {
|
||
"type": "string",
|
||
"description": "关联资源名称"
|
||
},
|
||
"resourceType": {
|
||
"type": "string",
|
||
"description": "关联资源类型:SCENIC_SPOT/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE"
|
||
},
|
||
"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": "资源详情"
|
||
},
|
||
"额外成本明细项": {
|
||
"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": "额外成本请求"
|
||
}
|
||
}
|
||
} |