{ "swagger": "2.0", "info": { "title": "小程序聚合服务", "version": "1.0.0" }, "basePath": "/", "paths": { "/mp/home": { "get": { "tags": [ "C端 - 首页接口" ], "summary": "首页数据", "description": "聚合流程:并行获取推荐产品列表+产品线列表+轮播图 → Redis缓存5分钟 → 返回聚合数据\n\n**关联字典(BFF透传)**:\n- product_type:产品类型(产品卡片显示)\n- product_status:产品状态(透传自product-service)", "operationId": "getHomeDataUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«首页聚合数据»", "originalRef": "统一响应结果«首页聚合数据»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«首页聚合数据»", "originalRef": "统一响应结果«首页聚合数据»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/search": { "get": { "tags": [ "C端 - 搜索接口" ], "summary": "搜索产品", "description": "按关键词搜索已上架产品(匹配产品名称和描述),支持按产品类型进一步筛选\n\n**关联字典(BFF透传)**:\n- product_type:产品类型(筛选+显示)", "operationId": "searchUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "keyword", "in": "query", "description": "搜索关键词", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数(最大50)", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false }, { "name": "productType", "in": "query", "description": "产品类型:CORE/ROUTE/CUSTOM/GROUP", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/product/lines": { "get": { "tags": [ "C端 - 产品接口" ], "summary": "产品线列表", "description": "返回所有已启用的产品线,用于小程序首页或筛选栏展示", "operationId": "listLinesUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/product/list": { "get": { "tags": [ "C端 - 产品接口" ], "summary": "产品列表", "description": "分页查询已上架产品,支持按关键词、产品类型(CORE/ROUTE/CUSTOM/GROUP)、季节、天数、目的地、产品线筛选和排序。\n\n**GROUP(小蒙马)产品额外返回 batches 字段**(可售团期列表,按出发日期升序),每个团期包含:\n- batchId:团期ID\n- departureDate:出发日期\n- batchLabel:团期标签(如\"五一团\")\n- batchName:团期名称\n- batchStatus:团期状态\n- startingPrice:起步价(元)\n- enrolledCount:已报名人数\n- remainingSlots:剩余名额\n- isConfirmed:是否已成团\n\n**关联字典**:\n- product_type:产品类型(CORE=核心产品, ROUTE=自驾路书, CUSTOM=私人定制, GROUP=小蒙马)\n- batch_status:团期状态(ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭)", "operationId": "listProductsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "destination", "in": "query", "description": "目的地", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "keyword", "in": "query", "description": "搜索关键词", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "lineId", "in": "query", "description": "产品线ID", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false }, { "name": "productType", "in": "query", "description": "产品类型:CORE/ROUTE/CUSTOM/GROUP", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "season", "in": "query", "description": "季节", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "sortBy", "in": "query", "description": "排序字段", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "sortDir", "in": "query", "description": "排序方向", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "tripDays", "in": "query", "description": "天数", "required": false, "type": "integer", "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/product/{productId}": { "get": { "tags": [ "C端 - 产品接口" ], "summary": "产品详情(聚合收藏状态)", "description": "聚合流程:获取产品详情 → 并行查询收藏状态 → 异步记录足迹 → 返回聚合数据。支持未登录访问(不返回收藏状态)。\n\n**GROUP(小蒙马)产品额外返回 batches 字段**(可售团期列表),字段同产品列表。\n\n**关联字典**:\n- product_type:产品类型(CORE=核心产品, ROUTE=自驾路书, CUSTOM=私人定制, GROUP=小蒙马)\n- batch_status:团期状态(ENROLLING=报名中, CONFIRMED=已成团, FULL=已满员, CLOSED=已关闭)\n- product_status:产品状态(透传自product-service)", "operationId": "getProductUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "productId", "in": "path", "description": "产品ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«C端产品详情»", "originalRef": "统一响应结果«C端产品详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«C端产品详情»", "originalRef": "统一响应结果«C端产品详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/product/{productId}/price-calendar": { "get": { "tags": [ "C端 - 产品接口" ], "summary": "价格日历", "description": "返回产品指定日期范围内的每日价格,用于日历组件展示。不传日期时默认返回未来一个月", "operationId": "getPriceCalendarUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "endDate", "in": "query", "description": "结束日期", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "productId", "in": "path", "description": "产品ID", "required": false, "type": "integer", "format": "int64" }, { "name": "startDate", "in": "query", "description": "开始日期", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/product/{productId}/quote": { "post": { "tags": [ "C端 - 产品接口" ], "summary": "报价计算(含早鸟优惠)", "description": "报价流程:传入出发日期+人数 → 价格日历计算基础报价(与下单一致) → 匹配早鸟优惠方案 → 返回明细报价+优惠信息。\n\n支付方式说明:\n- FULL: 全额支付,需一次性付清全部金额\n- DEPOSIT: 定金+尾款,先付定金(比例由产品配置),出行前补齐尾款", "operationId": "calculateQuoteUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "productId", "in": "path", "description": "产品ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "request", "description": "request", "required": true, "schema": { "$ref": "#/definitions/产品报价请求", "originalRef": "产品报价请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«产品报价结果»", "originalRef": "统一响应结果«产品报价结果»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«产品报价结果»", "originalRef": "统一响应结果«产品报价结果»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/bind-by-contact": { "post": { "tags": [ "C端 - 订单接口" ], "summary": "绑定未绑定的订单", "description": "绑定流程:用户登录 → 完善个人资料 → 自动通过联系人手机号+姓名匹配 → 将userId=NULL的订单绑定到当前用户", "operationId": "bindByContactUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "绑定请求体", "required": false, "schema": { "$ref": "#/definitions/通过联系人信息绑定订单请求", "originalRef": "通过联系人信息绑定订单请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«int»", "originalRef": "统一响应结果«int»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«int»", "originalRef": "统一响应结果«int»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/count": { "get": { "tags": [ "C端 - 订单接口" ], "summary": "各状态订单数量", "description": "统计当前用户各状态的订单数量,用于「我的」页面的订单状态角标展示\n\n**关联字典(BFF透传)**:\n- order_status:订单状态(状态分类统计)", "operationId": "countByStatusUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/create": { "post": { "tags": [ "C端 - 订单接口" ], "summary": "创建订单", "description": "下单流程:选择产品 → 填写联系人/出行人信息 → 报价计算 → 创建订单 → 返回订单ID", "operationId": "createOrderUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "创建订单请求体", "required": false, "schema": { "$ref": "#/definitions/C端创建订单请求", "originalRef": "C端创建订单请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«订单详情»", "originalRef": "统一响应结果«订单详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«订单详情»", "originalRef": "统一响应结果«订单详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/list": { "get": { "tags": [ "C端 - 订单接口" ], "summary": "订单列表", "description": "分页查询当前用户的订单列表,支持按状态筛选。返回订单摘要信息(不含详细出行人信息)\n\n**关联字典(BFF透传)**:\n- order_status:订单状态(列表筛选+显示)\n- product_type:产品类型(订单卡片显示)", "operationId": "listOrdersUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "status", "in": "query", "description": "状态", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«订单列表项»»", "originalRef": "统一响应结果«分页结果«订单列表项»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«订单列表项»»", "originalRef": "统一响应结果«分页结果«订单列表项»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/lookup": { "get": { "tags": [ "C端 - 订单接口" ], "summary": "通过联系人手机号+姓名查找订单(无需登录)", "description": "无需登录即可查询。用于管理员代下单场景:管理员创建订单后,用户通过联系人手机号+姓名查找订单并绑定到自己账号。仅返回尚未绑定用户(userId=NULL)的订单。", "operationId": "lookupByContactUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "contactName", "in": "query", "description": "联系人姓名", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "contactPhone", "in": "query", "description": "联系人手机号", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/refund-reasons": { "get": { "tags": [ "C端 - 退款接口" ], "summary": "退款原因列表", "description": "返回系统预设的退款原因选项,用于退款申请页面的原因选择", "operationId": "listRefundReasonsUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«退款原因»»", "originalRef": "统一响应结果«List«退款原因»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«退款原因»»", "originalRef": "统一响应结果«List«退款原因»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/refund/{applicationId}": { "get": { "tags": [ "C端 - 退款接口" ], "summary": "退款申请详情", "description": "获取退款申请的完整信息,包含审核状态、退款金额、退款进度和操作记录\n\n**关联字典(BFF透传)**:\n- order_status:订单状态(显示)\n- 支付状态(非字典,代码常量):PENDING=待支付, SUCCESS=成功, CLOSED=已关闭, FAILED=失败", "operationId": "getRefundDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "applicationId", "in": "path", "description": "退款申请ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/refund/{applicationId}/appeal": { "post": { "tags": [ "C端 - 退款接口" ], "summary": "发起申诉", "description": "退款被拒绝后,用户可在3天内发起一次申诉,由上级管理员重新审核", "operationId": "refundAppealUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "applicationId", "in": "path", "description": "退款申请ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "body", "description": "申诉请求体", "required": false, "schema": { "$ref": "#/definitions/退款申诉请求", "originalRef": "退款申诉请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/refund/{applicationId}/cancel": { "post": { "tags": [ "C端 - 退款接口" ], "summary": "撤回退款申请", "description": "仅PENDING状态的退款申请可撤回,撤回后订单恢复到原状态", "operationId": "cancelRefundUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "applicationId", "in": "path", "description": "退款申请ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/refund/{orderId}/direct-appeal": { "post": { "tags": [ "C端 - 退款接口" ], "summary": "直接申诉退款", "description": "用户对退款政策计算的金额不满意,跳过退款申请直接发起申诉。\n申诉金额不能超过已付金额。流程:用户查看退款预览 → 不满意 → 直接申诉填写期望金额 → 企微OA审批", "operationId": "directAppealUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/退款申诉请求", "originalRef": "退款申诉请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/upcoming": { "get": { "tags": [ "C端 - 订单接口" ], "summary": "即将出发的订单", "description": "查询3天内即将出发的订单(状态为已确认/待出发/出行中),含合同和保险信息,按出发日期升序", "operationId": "getUpcomingDeparturesUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«订单列表项»»", "originalRef": "统一响应结果«List«订单列表项»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«订单列表项»»", "originalRef": "统一响应结果«List«订单列表项»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}": { "get": { "tags": [ "C端 - 订单接口" ], "summary": "订单详情", "description": "获取订单完整信息,包含产品快照、出行人列表、支付信息、合同状态等\n\n**关联字典(BFF透传)**:\n- order_status:订单状态(显示)\n- product_type:产品类型(显示)\n- contract_status:合同状态(显示)", "operationId": "getOrderUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«订单详情»", "originalRef": "统一响应结果«订单详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«订单详情»", "originalRef": "统一响应结果«订单详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/approve-unlock": { "post": { "tags": [ "C端 - 订单接口" ], "summary": "同意解锁订单", "description": "用户同意管理员的修改请求,解除订单锁定状态,允许管理员继续修改订单", "operationId": "approveUnlockUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/cancel": { "post": { "tags": [ "C端 - 订单接口" ], "summary": "取消订单", "description": "取消规则:仅PENDING_PAY/DEPOSIT_PAID状态可用户取消,取消后不可恢复", "operationId": "cancelOrderUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "body", "description": "body", "required": false, "schema": { "$ref": "#/definitions/用户取消订单请求", "originalRef": "用户取消订单请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/edit": { "put": { "tags": [ "C端 - 订单接口" ], "summary": "修改订单", "description": "用户可修改出发日期和出行人。仅待支付/已付定金/已支付/已确认/待付尾款/待出发状态可修改,清单已确认的订单不允许修改。修改后重走内部流程", "operationId": "editOrderUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/修改订单请求", "originalRef": "修改订单请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«订单详情»", "originalRef": "统一响应结果«订单详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«订单详情»", "originalRef": "统一响应结果«订单详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/refund": { "post": { "tags": [ "C端 - 退款接口" ], "summary": "提交退款申请", "description": "退款流程:获取退款预览 → 选择退款原因 → 提交退款申请 → 管理员审核 → 审核通过后自动退款到原支付方式", "operationId": "applyRefundUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "退款申请请求体", "required": false, "schema": { "$ref": "#/definitions/退款申请请求", "originalRef": "退款申请请求" } }, { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/refund-detail": { "get": { "tags": [ "C端 - 退款接口" ], "summary": "根据订单ID获取最新退款详情", "description": "查询订单关联的最新一条退款申请详情,无退款记录时返回null\n\n**关联字典(BFF透传)**:\n- order_status:订单状态(显示)\n- 支付状态(非字典,代码常量):PENDING=待支付, SUCCESS=成功, CLOSED=已关闭, FAILED=失败", "operationId": "getRefundDetailByOrderUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款申请详情»", "originalRef": "统一响应结果«退款申请详情»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/refund-preview": { "get": { "tags": [ "C端 - 退款接口" ], "summary": "退款金额预览", "description": "根据退款政策和订单出发日期计算可退金额,展示退款比例和扣除金额明细", "operationId": "refundPreviewUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款预览»", "originalRef": "统一响应结果«退款预览»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«退款预览»", "originalRef": "统一响应结果«退款预览»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/remark": { "put": { "tags": [ "C端 - 订单接口" ], "summary": "添加/修改订单备注", "description": "用户在订单详情页添加或修改备注。备注对管理端可见。\n请求体:{\"remark\": \"备注内容\"}", "operationId": "updateRemarkUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, { "name": "orderId", "in": "path", "description": "orderId", "required": true, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/resources": { "get": { "tags": [ "C端 - 订单接口" ], "summary": "订单资源详情(按分类)", "description": "解析产品快照,提取资源详情按分类返回", "operationId": "getOrderResourcesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,List«Map«string,object»»»»", "originalRef": "统一响应结果«Map«string,List«Map«string,object»»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,List«Map«string,object»»»»", "originalRef": "统一响应结果«Map«string,List«Map«string,object»»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/transport": { "post": { "tags": [ "小程序-订单交通信息" ], "summary": "填写交通信息", "description": "用户填写去程/回程的航班或火车信息。\n\n**请求字段**:\n- legType: OUTBOUND=去程, RETURN=回程\n- transportType: FLIGHT=航班, TRAIN=火车\n- transportNo: 航班号(如CA1234)或车次(如G71)\n- departureStation: 出发站(选填)\n- arrivalStation: 到达站(选填)\n- travelDate: 乘坐日期(yyyy-MM-dd)\n- remark: 备注(选填)", "operationId": "addTransportUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "request", "description": "request", "required": true, "schema": { "type": "object" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/transports": { "get": { "tags": [ "小程序-订单交通信息" ], "summary": "查看订单交通信息(含实时动态)", "description": "返回订单的去程/回程交通信息,自动从飞常准查询实时航班/火车状态", "operationId": "listTransportsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/order/{orderId}/urge": { "post": { "tags": [ "C端 - 订单接口" ], "summary": "催单", "description": "提醒定制师尽快处理订单内部流程,通过企业微信发送消息。每个订单2小时内只能催一次", "operationId": "urgeOrderUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/invoice/apply": { "post": { "tags": [ "C端 - 发票接口" ], "summary": "申请开票", "description": "开票流程:订单完成后 → 填写发票信息(抬头/税号/类型) → 提交开票申请 → 管理员处理 → 发送电子发票", "operationId": "applyInvoiceUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "开票请求体", "required": false, "schema": { "$ref": "#/definitions/发票申请请求", "originalRef": "发票申请请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/invoice/order/{orderId}": { "get": { "tags": [ "C端 - 发票接口" ], "summary": "通过订单ID查询发票", "description": "查询指定订单的发票信息,如果订单未开票则返回null", "operationId": "getInvoiceByOrderIdUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/invoice/{id}": { "get": { "tags": [ "C端 - 发票接口" ], "summary": "发票详情", "description": "获取发票的完整信息,包含开票状态、发票抬头、税号、金额、电子发票文件链接等", "operationId": "getInvoiceDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "发票ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/invoice/{invoiceId}/reissue": { "post": { "tags": [ "C端 - 发票接口" ], "summary": "发票换开", "description": "对已开发票申请换开(修改抬头/税号等),原发票作废后重新开具新发票", "operationId": "reissueInvoiceUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "invoiceId", "in": "path", "description": "发票ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/发票换开请求", "originalRef": "发票换开请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/payment/prepay": { "post": { "tags": [ "C端 - 支付接口" ], "summary": "发起支付", "description": "支付流程:选择支付方式(JSAPI/H5) → 调用微信支付API → 返回支付参数 → 前端调起微信支付\n\n**支付状态**:PENDING=待支付, SUCCESS=成功, CLOSED=已关闭, FAILED=失败(非字典,代码常量)", "operationId": "prepayUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "request", "description": "支付请求体", "required": false, "schema": { "$ref": "#/definitions/支付预下单请求", "originalRef": "支付预下单请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/payment/status/{orderId}": { "get": { "tags": [ "C端 - 支付接口" ], "summary": "查询支付状态", "description": "**支付状态**:PENDING=待支付, SUCCESS=成功, CLOSED=已关闭, FAILED=失败(非字典,代码常量)", "operationId": "getStatusUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/payment/transactions/{orderId}": { "get": { "tags": [ "C端 - 支付接口" ], "summary": "订单交易记录列表", "description": "**支付状态**:PENDING=待支付, SUCCESS=成功, CLOSED=已关闭, FAILED=失败(非字典,代码常量)", "operationId": "listTransactionsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/trip/list": { "get": { "tags": [ "C端 - 行程接口" ], "summary": "行程列表", "description": "获取当前登录用户的行程列表(已确认及进行中的订单对应的行程)\n\n**关联字典(BFF透传)**:\n- order_status:订单/行程状态(显示)", "operationId": "getTripListUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/trip/today": { "get": { "tags": [ "C端 - 行程接口" ], "summary": "今日行程", "description": "获取今日行程(如果有正在进行中的行程),无行程时data为null\n\n**关联字典(BFF透传)**:\n- order_status:订单/行程状态(显示)", "operationId": "getTodayTripUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/trip/weather": { "get": { "tags": [ "C端 - 行程接口" ], "summary": "天气查询(经纬度)", "description": "通过和风天气API查询指定经纬度的实时天气,精度3-5公里", "operationId": "getWeatherUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "latitude", "in": "query", "description": "纬度", "required": true, "type": "number", "allowEmptyValue": false }, { "name": "longitude", "in": "query", "description": "经度", "required": true, "type": "number", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/trip/{orderId}": { "get": { "tags": [ "C端 - 行程接口" ], "summary": "行程详情", "description": "获取订单对应的行程详情,含每日行程节点信息(景点/酒店/餐厅等)\n\n**关联字典(BFF透传)**:\n- order_status:订单/行程状态(显示)", "operationId": "getTripDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": true, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/account": { "delete": { "tags": [ "C端 - 用户接口" ], "summary": "注销账号", "description": "注销后用户数据将被软删除,30天内可联系客服恢复", "operationId": "deleteAccountUsingDELETE", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/login": { "post": { "tags": [ "C端 - 用户接口" ], "summary": "微信登录", "description": "登录流程:小程序wx.login获取code → 后端换取openid → 查找/创建用户 → 返回JWT令牌+needProfile标记", "operationId": "loginUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "request", "description": "request", "required": true, "schema": { "$ref": "#/definitions/微信登录请求", "originalRef": "微信登录请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/login/sms": { "post": { "tags": [ "C端 - 用户接口" ], "summary": "短信登录", "description": "登录流程:获取验证码 → 验证手机号+验证码 → 查找/创建用户 → 返回JWT令牌", "operationId": "loginBySmsUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "request", "description": "request", "required": true, "schema": { "$ref": "#/definitions/短信验证码登录请求", "originalRef": "短信验证码登录请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/logout": { "post": { "tags": [ "C端 - 用户接口" ], "summary": "用户登出", "description": "清除用户登录状态和服务端缓存的令牌信息。登出后需重新登录获取新令牌。\n\n**权限**:需登录。", "operationId": "logoutUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/ocr/idcard": { "post": { "tags": [ "C端 - 用户接口" ], "summary": "身份证OCR识别", "description": "将身份证图片上传到OSS后,传入ossUrl进行OCR识别。返回姓名、身份证号、性别、民族等结构化数据,可用于自动填充出行人信息", "operationId": "ocrIdCardUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/身份证OCR识别请求", "originalRef": "身份证OCR识别请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,string»»", "originalRef": "统一响应结果«Map«string,string»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,string»»", "originalRef": "统一响应结果«Map«string,string»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/profile": { "get": { "tags": [ "C端 - 用户接口" ], "summary": "获取用户信息", "description": "获取当前登录用户的个人资料,包含头像、昵称、手机号、实名信息等", "operationId": "getProfileUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "put": { "tags": [ "C端 - 用户接口" ], "summary": "更新用户信息", "description": "更新当前用户的个人资料,支持部分更新(只传需要修改的字段)。首次完善资料时realName为必填", "operationId": "updateProfileUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/更新个人资料请求", "originalRef": "更新个人资料请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/sms/send": { "post": { "tags": [ "C端 - 用户接口" ], "summary": "发送短信验证码", "description": "向指定手机号发送登录验证码,有效期5分钟,60秒内不可重复发送", "operationId": "sendSmsCodeUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "request", "description": "request", "required": true, "schema": { "$ref": "#/definitions/发送短信验证码请求", "originalRef": "发送短信验证码请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/traveler": { "get": { "tags": [ "C端 - 出行人接口" ], "summary": "出行人列表", "description": "返回当前用户的所有出行人列表。如果用户已完善实名信息,列表中会自动包含一条「本人」虚拟记录(travelerId=0)", "operationId": "listTravelersUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "post": { "tags": [ "C端 - 出行人接口" ], "summary": "添加出行人", "description": "添加常用出行人信息(姓名/证件/联系方式等),下单时可快速选择。单个用户最多50个出行人", "operationId": "addTravelerUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/出行人请求(新增/修改)", "originalRef": "出行人请求(新增/修改)" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/traveler/{id}": { "get": { "tags": [ "C端 - 出行人接口" ], "summary": "出行人详情", "description": "获取单个出行人的完整信息(姓名、证件信息、联系方式等)。\n\n**权限**:需登录,仅能查看自己的出行人。", "operationId": "getTravelerUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "出行人ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "put": { "tags": [ "C端 - 出行人接口" ], "summary": "更新出行人", "description": "修改出行人信息,支持部分更新(只传需要修改的字段)。已关联订单的出行人修改不影响历史订单记录。\n\n**权限**:需登录。", "operationId": "updateTravelerUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "出行人ID", "required": false, "type": "integer", "format": "int64" }, { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/出行人请求(新增/修改)", "originalRef": "出行人请求(新增/修改)" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "delete": { "tags": [ "C端 - 出行人接口" ], "summary": "删除出行人", "description": "删除常用出行人记录。默认出行人不可删除,需先取消默认后再删除。\n\n**权限**:需登录。", "operationId": "deleteTravelerUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "出行人ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/traveler/{id}/default": { "put": { "tags": [ "C端 - 出行人接口" ], "summary": "设为默认出行人", "description": "设为默认出行人后,下单时自动作为第一个出行人。每个用户只能有一个默认出行人", "operationId": "setDefaultTravelerUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "出行人ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/favorite": { "get": { "tags": [ "C端 - 收藏接口" ], "summary": "收藏列表(含资源摘要)", "description": "分页查询收藏列表,聚合层会补充每个收藏项对应资源的摘要信息(名称、封面图、价格等)。支持按目标类型筛选。\n\n**权限**:需登录。\n\n**关联字典**:\n- favorite_resource_type:收藏资源类型(PRODUCT/SCENIC/RESTAURANT/ACTIVITY)", "operationId": "listFavoritesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "targetType", "in": "query", "description": "目标类型筛选(字典:favorite_resource_type):PRODUCT/SCENIC/RESTAURANT/ACTIVITY", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«收藏列表项(含资源摘要)»»", "originalRef": "统一响应结果«分页结果«收藏列表项(含资源摘要)»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«收藏列表项(含资源摘要)»»", "originalRef": "统一响应结果«分页结果«收藏列表项(含资源摘要)»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "post": { "tags": [ "C端 - 收藏接口" ], "summary": "添加收藏", "description": "将产品/景区/餐厅/活动加入收藏。同一目标重复收藏会返回已有收藏记录", "operationId": "addFavoriteUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/收藏请求", "originalRef": "收藏请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/favorite/batch": { "delete": { "tags": [ "C端 - 收藏接口" ], "summary": "批量删除收藏", "description": "批量删除多条收藏记录,传入收藏记录ID列表。用于收藏管理页面的批量操作。\n\n**权限**:需登录,仅能删除自己的收藏。", "operationId": "batchDeleteFavoritesUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "ids", "description": "收藏ID列表", "required": false, "schema": { "type": "array", "items": { "type": "integer", "format": "int64" } } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/favorite/by-target": { "delete": { "tags": [ "C端 - 收藏接口" ], "summary": "按目标取消收藏", "description": "通过目标类型+目标ID取消收藏,适用于详情页点击取消收藏的场景(不需要知道收藏记录ID)。\n\n**权限**:需登录。", "operationId": "deleteFavoriteByTargetUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "name": "targetId", "in": "query", "description": "目标资源ID", "required": false, "type": "integer", "format": "int64", "allowEmptyValue": false }, { "name": "targetType", "in": "query", "description": "目标类型", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/favorite/check": { "get": { "tags": [ "C端 - 收藏接口" ], "summary": "检查是否已收藏", "description": "检查当前用户是否已收藏指定资源,用于详情页收藏按钮状态显示。\n\n**权限**:需登录。", "operationId": "checkFavoriteUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "targetId", "in": "query", "description": "目标资源ID", "required": false, "type": "integer", "format": "int64", "allowEmptyValue": false }, { "name": "targetType", "in": "query", "description": "目标类型(字典:favorite_resource_type)", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/favorite/{id}": { "delete": { "tags": [ "C端 - 收藏接口" ], "summary": "取消收藏", "description": "通过收藏记录ID取消收藏,适用于收藏列表页的删除操作。\n\n**权限**:需登录,仅能删除自己的收藏。", "operationId": "deleteFavoriteUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "收藏记录ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/footprint": { "get": { "tags": [ "C端 - 足迹接口" ], "summary": "足迹列表(含资源摘要)", "description": "分页查询浏览足迹列表,聚合层会补充每条足迹对应资源的摘要信息(名称、封面图等)。支持按资源类型筛选,按浏览时间倒序。\n\n**权限**:需登录。", "operationId": "listFootprintsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "resourceType", "in": "query", "description": "资源类型筛选:PRODUCT/SCENIC/RESTAURANT/ACTIVITY", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«足迹列表项(含资源摘要)»»", "originalRef": "统一响应结果«分页结果«足迹列表项(含资源摘要)»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«足迹列表项(含资源摘要)»»", "originalRef": "统一响应结果«分页结果«足迹列表项(含资源摘要)»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "post": { "tags": [ "C端 - 足迹接口" ], "summary": "记录足迹", "description": "记录用户浏览资源的足迹,同一资源重复浏览会更新浏览时间而非新增记录", "operationId": "addFootprintUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/添加足迹请求", "originalRef": "添加足迹请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/footprint/batch": { "delete": { "tags": [ "C端 - 足迹接口" ], "summary": "批量删除足迹", "description": "批量删除多条浏览足迹记录,传入足迹ID列表。用于足迹管理页面的批量清理。\n\n**权限**:需登录,仅能删除自己的足迹。", "operationId": "batchDeleteFootprintsUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "ids", "description": "足迹ID列表", "required": false, "schema": { "type": "array", "items": { "type": "integer", "format": "int64" } } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/user/footprint/{id}": { "delete": { "tags": [ "C端 - 足迹接口" ], "summary": "删除足迹", "description": "删除单条浏览足迹记录。\n\n**权限**:需登录,仅能删除自己的足迹。", "operationId": "deleteFootprintUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "足迹ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/message/list": { "get": { "tags": [ "C端 - 消息接口" ], "summary": "消息列表", "description": "消息列表,支持按分类筛选,按时间倒序分页返回", "operationId": "listMessagesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "category", "in": "query", "description": "消息分类筛选,不传返回全部", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码,默认1", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数,默认20", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/message/read-all": { "put": { "tags": [ "C端 - 消息接口" ], "summary": "全部标记已读", "description": "将指定分类或全部消息标记为已读,不传category则全部已读", "operationId": "markAllReadUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "category", "in": "query", "description": "消息分类,不传则将所有分类标记为已读", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/message/summary": { "get": { "tags": [ "C端 - 消息接口" ], "summary": "消息摘要", "description": "获取各分类的未读数量和最新一条消息,用于消息中心首页展示", "operationId": "getSummaryUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/message/{id}": { "delete": { "tags": [ "C端 - 消息接口" ], "summary": "删除消息", "description": "删除单条消息", "operationId": "deleteMessageUsingDELETE", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "消息ID", "required": true, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "204": { "description": "No Content" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/message/{id}/read": { "put": { "tags": [ "C端 - 消息接口" ], "summary": "标记已读", "description": "标记单条消息为已读", "operationId": "markReadUsingPUT", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "消息ID", "required": true, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/create": { "post": { "tags": [ "C端 - 评价接口" ], "summary": "创建评价", "description": "评价流程:订单完成后 → 查询可评价目标列表 → 对每个目标(酒店/景区/活动等)提交评价 → 自动内容审核 → 审核通过后公开展示\n\n**关联字典(BFF透传)**:\n- review_status:评价审核状态(返回字段)\n- rating_level:评价等级(返回字段)", "operationId": "createReviewUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "评价请求体", "required": false, "schema": { "$ref": "#/definitions/创建评价请求", "originalRef": "创建评价请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/featured": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "精选评价列表(公开)", "description": "无需登录,返回精选评价数组,用于评价浏览页\n\n**关联字典(BFF透传)**:\n- rating_level:评价等级(显示)", "operationId": "getFeaturedReviewsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "limit", "in": "query", "description": "数量限制", "required": false, "type": "integer", "default": 50, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/my": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "我的评价列表", "description": "**关联字典(BFF透传)**:\n- review_status:评价审核状态(显示)\n- rating_level:评价等级(显示)", "operationId": "getMyReviewsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/order/{orderId}/reviewable-targets": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "订单可评价目标列表", "description": "返回订单中可评价的资源目标列表(景区/酒店/活动等),用于评价页面展示可评价项。已评价的目标不会重复出现。\n\n**权限**:需登录。", "operationId": "getReviewableTargetsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/order/{orderId}/reviewed": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "检查订单是否已评价", "description": "检查指定订单是否已提交评价,用于订单详情页决定是否显示'去评价'按钮。", "operationId": "isOrderReviewedUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/product/{productId}": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "按产品ID查看评价列表", "description": "返回评价列表+统计数据,支持好中差评/有图/有视频筛选\n\n**关联字典(BFF透传)**:\n- rating_level:评价等级(筛选+显示)", "operationId": "getProductReviewsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "hasImage", "in": "query", "description": "是否有图片", "required": false, "type": "boolean", "allowEmptyValue": false }, { "name": "hasVideo", "in": "query", "description": "是否有视频", "required": false, "type": "boolean", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false }, { "name": "productId", "in": "path", "description": "产品ID", "required": false, "type": "integer", "format": "int64" }, { "name": "ratingLevel", "in": "query", "description": "评价等级: GOOD/MEDIUM/BAD", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/product/{productId}/highlights": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "产品精选评价(最高评分+最高点赞+统计)", "description": "用于产品详情页评价区域展示", "operationId": "getProductHighlightsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "productId", "in": "path", "description": "产品ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/rating-categories": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "评分类别列表", "description": "从字典读取评价时需要填写的评分维度,前端据此渲染评分组件。字典类型: review_rating_category,remark字段包含扩展JSON(required/min/max)", "operationId": "getRatingCategoriesUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/search": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "关键词搜索评价(公开)", "description": "按关键词搜索已通过的评价内容,支持按目标类型和目标ID筛选\n\n**关联字典(BFF透传)**:\n- rating_level:评价等级(显示)", "operationId": "searchReviewsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "keyword", "in": "query", "description": "搜索关键词", "required": true, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "targetId", "in": "query", "description": "目标ID(可选)", "required": false, "type": "integer", "format": "int64", "allowEmptyValue": false }, { "name": "targetType", "in": "query", "description": "目标类型(可选): PRODUCT/SCENIC_SPOT/ACTIVITY/HOTEL等", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/stats": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "评价统计(平均分、数量)", "description": "获取指定目标的评价统计数据(平均评分、总评价数等),用于详情页评价区域展示。产品showReview关闭时返回空统计。", "operationId": "getTargetStatsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "targetId", "in": "query", "description": "目标ID", "required": false, "type": "integer", "format": "int64", "allowEmptyValue": false }, { "name": "targetType", "in": "query", "description": "目标类型", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/target": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "某目标的已通过评价(公开)", "description": "**关联字典(BFF透传)**:\n- rating_level:评价等级(筛选+显示)", "operationId": "getTargetReviewsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "hasImage", "in": "query", "description": "是否有图片", "required": false, "type": "boolean", "allowEmptyValue": false }, { "name": "hasVideo", "in": "query", "description": "是否有视频", "required": false, "type": "boolean", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "ratingLevel", "in": "query", "description": "评价等级: GOOD/MEDIUM/BAD", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "targetId", "in": "query", "description": "目标ID", "required": false, "type": "integer", "format": "int64", "allowEmptyValue": false }, { "name": "targetType", "in": "query", "description": "目标类型", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/{reviewId}/like": { "post": { "tags": [ "C端 - 评价接口" ], "summary": "点赞/取消点赞评价", "description": "对评价进行点赞或取消点赞操作,返回当前点赞状态和点赞总数。\n\n**权限**:需登录。", "operationId": "toggleLikeUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "reviewId", "in": "path", "description": "评价ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/review/{reviewId}/like/check": { "get": { "tags": [ "C端 - 评价接口" ], "summary": "检查是否已点赞", "description": "检查当前用户是否已点赞指定评价,用于评价列表/详情的点赞按钮状态展示。\n\n**权限**:需登录。", "operationId": "checkLikedUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "reviewId", "in": "path", "description": "评价ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/designer": { "get": { "tags": [ "C端 - 定制师接口" ], "summary": "定制师列表(含真实产品数和评分,综合排序)", "description": "获取定制师列表,聚合层会补充每个定制师的真实产品数量和评价评分。按综合排序(评分>路线数>咨询人数),用于小程序定制师推荐页。", "operationId": "listDesignersUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "limit", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/designer/all": { "get": { "tags": [ "C端 - 定制师接口" ], "summary": "全部定制师(不分页,含真实产品数和评分)", "description": "返回所有定制师,不分页,聚合层补充产品数量和评分,按综合排序。用于下拉选择、全量展示等场景。", "operationId": "listAllDesignersUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/designer/featured": { "get": { "tags": [ "C端 - 定制师接口" ], "summary": "推荐定制师(综合排序第一名)", "description": "获取综合排序排名第一的定制师信息(含产品数和评分),用于首页推荐定制师卡片展示。", "operationId": "getFeaturedDesignerUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/designer/{id}": { "get": { "tags": [ "C端 - 定制师接口" ], "summary": "定制师详情(含产品数量和评分)", "description": "获取定制师完整个人信息,聚合层会补充该定制师的已发布产品数量和综合评分,用于定制师个人主页展示。", "operationId": "getDesignerDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "定制师ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/designer/{id}/products": { "get": { "tags": [ "C端 - 定制师接口" ], "summary": "定制师已发布产品列表", "description": "**关联字典(BFF透传)**:\n- product_type:产品类型(显示)", "operationId": "getDesignerProductsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "定制师ID", "required": false, "type": "integer", "format": "int64" }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/designer/{id}/reviews": { "get": { "tags": [ "C端 - 定制师接口" ], "summary": "定制师产品评价列表", "description": "**关联字典(BFF透传)**:\n- rating_level:评价等级(显示)", "operationId": "getDesignerReviewsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "定制师ID", "required": false, "type": "integer", "format": "int64" }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/wiki/article/{articleId}": { "get": { "tags": [ "C端 - 攻略接口" ], "summary": "文章详情", "description": "**关联字典(BFF透传)**:\n- wiki_status:文章状态(返回字段)", "operationId": "getArticleUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "articleId", "in": "path", "description": "文章ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/wiki/categories": { "get": { "tags": [ "C端 - 攻略接口" ], "summary": "攻略分类列表", "description": "获取所有已启用的攻略分类,按排序值排列。用于小程序攻略频道的分类导航展示。", "operationId": "listCategoriesUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/wiki/category/{categoryId}/articles": { "get": { "tags": [ "C端 - 攻略接口" ], "summary": "分类文章列表", "description": "分页查询指定攻略分类下已发布的文章列表,按发布时间倒序排列。用于攻略分类详情页。", "operationId": "listCategoryArticlesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "categoryId", "in": "path", "description": "攻略分类ID", "required": false, "type": "integer", "format": "int64" }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/wiki/recommend-articles": { "get": { "tags": [ "C端 - 攻略接口" ], "summary": "推荐文章列表", "description": "获取编辑推荐的攻略文章列表(按推荐权重排序),用于首页或攻略频道的推荐位展示。", "operationId": "listRecommendArticlesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "limit", "in": "query", "description": "返回条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/contract/by-order/{orderId}": { "get": { "tags": [ "C端 - 合同接口" ], "summary": "按订单查合同", "description": "返回订单关联的最新有效合同(非作废)\n\n**关联字典(BFF透传)**:\n- contract_status:合同状态(显示)", "operationId": "getContractByOrderUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/contract/by-order/{orderId}/all": { "get": { "tags": [ "C端 - 合同接口" ], "summary": "按订单查所有合同", "description": "返回订单关联的所有有效合同(TOUR+INSURANCE各一条)\n\n**关联字典(BFF透传)**:\n- contract_status:合同状态(显示)", "operationId": "getContractsByOrderUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/contract/list": { "get": { "tags": [ "C端 - 合同接口" ], "summary": "合同列表", "description": "**关联字典(BFF透传)**:\n- contract_status:合同状态(列表筛选+显示)", "operationId": "listContractsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "status", "in": "query", "description": "状态", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/contract/{contractId}/resend-sms": { "post": { "tags": [ "C端 - 合同接口" ], "summary": "重新发送合同签署短信", "description": "重新向出行人发送合同签署短信通知,适用于出行人未收到短信或短信过期的场景。\n\n**权限**:需登录。", "operationId": "resendContractSmsUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "contractId", "in": "path", "description": "合同ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/contract/{id}": { "get": { "tags": [ "C端 - 合同接口" ], "summary": "合同详情", "description": "返回合同基本信息、签署状态、出行人签署详情及合同文件下载链接\n\n**关联字典(BFF透传)**:\n- contract_status:合同状态(显示)", "operationId": "getContractDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "合同ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/hotel/list": { "get": { "tags": [ "C端 - 酒店接口" ], "summary": "酒店列表", "description": "分页查询已上架的酒店列表,支持按关键词、城市、星级筛选。聚合层透传resource-service的酒店数据。", "operationId": "listHotelsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "city", "in": "query", "description": "城市", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "keyword", "in": "query", "description": "关键词", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "starLevel", "in": "query", "description": "星级(字典: hotel_star_level)", "required": false, "type": "string", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/hotel/room-type/{roomTypeId}": { "get": { "tags": [ "C端 - 酒店接口" ], "summary": "房型详情", "description": "获取房型完整信息,包含封面、轮播图、视频等素材URL,以及床型、面积、设施等详细信息。", "operationId": "getRoomTypeDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "roomTypeId", "in": "path", "description": "房型ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/hotel/{hotelId}": { "get": { "tags": [ "C端 - 酒店接口" ], "summary": "酒店详情", "description": "获取酒店完整信息(含房型列表、图文详情、价格等),自动注入静态地图图片URL用于详情页地图展示。roomTypes字段包含已启用的房型列表。", "operationId": "getHotelDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "hotelId", "in": "path", "description": "酒店ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/restaurant/list": { "get": { "tags": [ "C端 - 餐厅接口" ], "summary": "餐厅列表", "description": "分页查询已上架的餐厅列表,支持按关键词和城市筛选。聚合层透传resource-service的餐厅数据。", "operationId": "listRestaurantsUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "city", "in": "query", "description": "城市", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "keyword", "in": "query", "description": "关键词", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/restaurant/{restaurantId}": { "get": { "tags": [ "C端 - 餐厅接口" ], "summary": "餐厅详情", "description": "获取餐厅完整信息(含菜品、图文详情等),自动注入静态地图图片URL用于详情页地图展示。", "operationId": "getRestaurantDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "restaurantId", "in": "path", "description": "餐厅ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/dict/all": { "get": { "tags": [ "C端 - 字典接口" ], "summary": "获取所有字典数据", "description": "获取系统全部字典数据(按字典类型分组),用于小程序端的下拉选项、枚举映射等。建议前端缓存此数据", "operationId": "getAllDictUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/badge": { "get": { "tags": [ "C端 - 徽章接口" ], "summary": "获取徽章数据", "description": "返回用户的徽章统计(未读消息数、待办事项数等),用于「我的」页面角标展示", "operationId": "getBadgesUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/banner/active": { "get": { "tags": [ "C端 - 轮播图接口" ], "summary": "获取当前生效的轮播图列表", "description": "返回当前处于有效期内的轮播图,按排序值排列。用于小程序首页顶部轮播展示,透传自user-service。", "operationId": "listActiveBannersUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/common/agreement/list": { "get": { "tags": [ "C端 - 公共接口" ], "summary": "协议列表", "description": "获取所有已上线的协议列表(不含内容,仅含类型、标题、版本)", "operationId": "listAgreementsUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/common/agreement/{type}": { "get": { "tags": [ "C端 - 公共接口" ], "summary": "获取协议文本", "description": "获取指定类型的协议文本(如隐私政策、用户协议),返回富文本内容", "operationId": "getAgreementUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "type", "in": "path", "description": "协议类型: privacy(隐私政策) / user(用户协议)", "required": true, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/common/config": { "get": { "tags": [ "C端 - 公共接口" ], "summary": "应用配置", "description": "获取应用全局配置信息", "operationId": "getConfigUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/common/contact": { "get": { "tags": [ "C端 - 公共接口" ], "summary": "联系方式列表", "description": "获取有效的联系方式列表(电话/微信/邮箱等)", "operationId": "listContactsUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/common/faq": { "get": { "tags": [ "C端 - 公共接口" ], "summary": "FAQ列表", "description": "获取常见问题列表(按分类分组)", "operationId": "listFaqUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/common/feedback": { "post": { "tags": [ "C端 - 公共接口" ], "summary": "提交反馈", "description": "提交用户反馈,支持文字内容和图片附件", "operationId": "submitFeedbackUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "feedback", "description": "反馈内容(含content、images、contact等字段)", "required": true, "schema": { "$ref": "#/definitions/提交反馈请求", "originalRef": "提交反馈请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/config": { "get": { "tags": [ "C端 - 前端配置接口" ], "summary": "获取所有非敏感前端配置", "description": "返回所有非SECRET类型的前端配置项(如主题色、客服电话、版本号等)。不含敏感配置,可安全传输给小程序端。", "operationId": "listPublicConfigsUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/config/group/{group}": { "get": { "tags": [ "C端 - 前端配置接口" ], "summary": "按分组获取非敏感前端配置", "description": "按配置分组获取前端配置项,如UI分组、功能开关分组等。用于小程序按需加载特定分组的配置。", "operationId": "listPublicConfigsByGroupUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "group", "in": "path", "description": "配置分组", "required": false, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/wish": { "get": { "tags": [ "C端 - 心愿单接口" ], "summary": "心愿单列表", "description": "返回当前用户的心愿单列表,按创建时间倒序排列", "operationId": "listWishesUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" }, "post": { "tags": [ "C端 - 心愿单接口" ], "summary": "创建心愿", "description": "创建旅行心愿,描述想去的地方和时间偏好,定制师可据此推荐产品", "operationId": "createWishUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "心愿请求体", "required": false, "schema": { "$ref": "#/definitions/创建祈愿请求", "originalRef": "创建祈愿请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/explore/list": { "get": { "tags": [ "C端 - 探索接口" ], "summary": "探索列表", "description": "获取已启用的探索分类列表(图文攻略内容),支持综合/最新/最热排序,分页返回。用于小程序探索频道首页瀑布流展示。", "operationId": "listUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false }, { "name": "sortType", "in": "query", "description": "排序方式:comprehensive/newest/hottest", "required": false, "type": "string", "default": "comprehensive", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/explore/{id}": { "get": { "tags": [ "C端 - 探索接口" ], "summary": "探索详情", "description": "自动增加浏览量,已登录时返回点赞/收藏状态", "operationId": "detailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "探索分类ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/explore/{id}/favorite": { "post": { "tags": [ "C端 - 探索接口" ], "summary": "切换收藏", "description": "对探索内容收藏/取消收藏,返回当前收藏状态(true=已收藏)。收藏后可在'我的收藏'中查看。\n\n**权限**:需登录。", "operationId": "toggleFavoriteUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "探索分类ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/explore/{id}/like": { "post": { "tags": [ "C端 - 探索接口" ], "summary": "切换点赞", "description": "对探索内容点赞/取消点赞,返回当前点赞状态(true=已点赞)。\n\n**权限**:需登录。", "operationId": "toggleLikeUsingPOST_1", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "探索分类ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/explore/{id}/view": { "post": { "tags": [ "C端 - 探索接口" ], "summary": "浏览+1", "description": "增加探索内容的浏览计数。前端进入探索详情页时调用,无需登录。", "operationId": "viewUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "path", "description": "探索分类ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Void»", "originalRef": "统一响应结果«Void»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/album/file/{albumFileId}/download-url": { "get": { "tags": [ "C端 - 相册接口" ], "summary": "获取文件下载链接", "description": "获取文件的预签名下载URL,有效期有限", "operationId": "getDownloadUrlUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "albumFileId", "in": "path", "description": "相册文件ID", "required": true, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«string»", "originalRef": "统一响应结果«string»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«string»", "originalRef": "统一响应结果«string»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/album/folder/{folderId}/files": { "get": { "tags": [ "C端 - 相册接口" ], "summary": "文件夹下的文件列表", "description": "获取文件夹下的文件列表(分页),含图片和视频", "operationId": "listFilesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "folderId", "in": "path", "description": "文件夹ID", "required": true, "type": "integer", "format": "int64" }, { "name": "page", "in": "query", "description": "页码,默认1", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "size", "in": "query", "description": "每页数量,默认20", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/album/order/{orderId}/folders": { "get": { "tags": [ "C端 - 相册接口" ], "summary": "订单的文件夹列表", "description": "获取订单下的相册文件夹列表", "operationId": "listFoldersUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": true, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/album/orders": { "get": { "tags": [ "C端 - 相册接口" ], "summary": "有相册的订单列表", "description": "获取当前登录用户有相册的订单列表", "operationId": "listAlbumOrdersUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/activity/list": { "get": { "tags": [ "C端 - 活动接口" ], "summary": "活动列表", "description": "分页查询已上架的活动列表,支持关键词和分类筛选。聚合层透传resource-service的活动数据给小程序前端。", "operationId": "listActivitiesUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "categoryCode", "in": "query", "description": "分类", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "keyword", "in": "query", "description": "关键词", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/activity/{activityId}": { "get": { "tags": [ "C端 - 活动接口" ], "summary": "活动详情", "description": "获取活动完整信息(含图文详情、价格等),自动注入静态地图图片URL用于详情页地图展示。", "operationId": "getActivityDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "activityId", "in": "path", "description": "活动ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/scenic/list": { "get": { "tags": [ "C端 - 景区接口" ], "summary": "景区列表", "description": "分页查询已上架的景区列表,支持按关键词和城市筛选。聚合层透传resource-service的景区数据。", "operationId": "listScenicUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "city", "in": "query", "description": "城市", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "keyword", "in": "query", "description": "关键词", "required": false, "type": "string", "allowEmptyValue": false }, { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", "originalRef": "统一响应结果«分页结果«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/scenic/{scenicId}": { "get": { "tags": [ "C端 - 景区接口" ], "summary": "景区详情", "description": "获取景区完整信息(含季节素材、图文详情、价格等),自动注入静态地图图片URL用于详情页地图展示。", "operationId": "getScenicDetailUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "scenicId", "in": "path", "description": "景区ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/scenic/{scenicId}/nearby": { "get": { "tags": [ "C端 - 景区接口" ], "summary": "附近景区(地理+探索分类聚合)", "description": "聚合两个数据源:1.基于经纬度的地理位置附近景区(resource-service);2.探索分类关联的景区(user-service)。去重合并后返回,用于景区详情页底部'附近推荐'展示。", "operationId": "getNearbyScenicUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "limit", "in": "query", "description": "返回条数", "required": false, "type": "integer", "default": 10, "format": "int32", "allowEmptyValue": false }, { "name": "radius", "in": "query", "description": "搜索半径(km)", "required": false, "type": "number", "default": 50.0, "format": "double", "allowEmptyValue": false }, { "name": "scenicId", "in": "path", "description": "景区ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/weather/forecast": { "get": { "tags": [ "C端 - 天气接口" ], "summary": "根据经纬度获取天气预报", "description": "通过和风天气API查询指定经纬度的未来7天天气预报信息", "operationId": "getForecastWeatherUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "latitude", "in": "query", "description": "纬度", "required": false, "type": "number", "allowEmptyValue": false }, { "name": "longitude", "in": "query", "description": "经度", "required": false, "type": "number", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/weather/itinerary/{orderId}": { "get": { "tags": [ "C端 - 天气接口" ], "summary": "获取订单行程天气", "description": "根据订单行程节点的经纬度,批量查询每日天气信息,用于行程详情页展示", "operationId": "getItineraryWeatherUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "orderId", "in": "path", "description": "订单ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", "originalRef": "统一响应结果«List«Map«string,object»»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/weather/live": { "get": { "tags": [ "C端 - 天气接口" ], "summary": "根据经纬度获取实况天气", "description": "通过和风天气API查询指定经纬度的实时天气(温度、体感温度、湿度、风向等),精度3-5公里", "operationId": "getLiveWeatherUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "latitude", "in": "query", "description": "纬度", "required": false, "type": "number", "allowEmptyValue": false }, { "name": "longitude", "in": "query", "description": "经度", "required": false, "type": "number", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/like/{targetType}/batch-check": { "post": { "tags": [ "C端 - 通用点赞" ], "summary": "批量检查点赞状态", "description": "批量检查当前用户是否已对多个目标点赞,返回已点赞的目标ID列表。用于列表页批量展示点赞状态。\n\n**权限**:需登录。", "operationId": "batchCheckLikedUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "targetType", "in": "path", "description": "目标类型", "required": false, "type": "string" }, { "in": "body", "name": "targetIds", "description": "targetIds", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«string»»", "originalRef": "统一响应结果«List«string»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«string»»", "originalRef": "统一响应结果«List«string»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/like/{targetType}/{targetId}": { "post": { "tags": [ "C端 - 通用点赞" ], "summary": "切换点赞", "description": "点赞/取消点赞,返回 {liked: true/false, likeCount: 点赞数}", "operationId": "toggleLikeUsingPOST_2", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "targetId", "in": "path", "description": "目标ID", "required": false, "type": "integer", "format": "int64" }, { "name": "targetType", "in": "path", "description": "目标类型: REVIEW/EXPLORE/GUIDE等", "required": false, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«Map«string,object»»", "originalRef": "统一响应结果«Map«string,object»»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/like/{targetType}/{targetId}/check": { "get": { "tags": [ "C端 - 通用点赞" ], "summary": "检查是否已点赞", "description": "检查当前用户是否已对指定目标点赞,用于前端点赞按钮状态展示。\n\n**权限**:需登录。", "operationId": "checkLikeUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "targetId", "in": "path", "description": "目标ID", "required": false, "type": "integer", "format": "int64" }, { "name": "targetType", "in": "path", "description": "目标类型", "required": false, "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«boolean»", "originalRef": "统一响应结果«boolean»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/custom/detail": { "get": { "tags": [ "C端 - 定制需求接口" ], "summary": "定制需求详情", "description": "查询单条定制需求的完整信息,包含定制师信息、需求详情、回复内容等。\n\n**关联字典**:\n- status → 字典:customize_request_status:PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消\n- travelPurpose → 字典:travel_purpose(旅游目的)\n- requestType → 字典:customize_request_type(需求类型)\n- budget → 字典:customize_budget(预算范围)", "operationId": "detailUsingGET_1", "produces": [ "*/*" ], "parameters": [ { "name": "id", "in": "query", "description": "定制请求ID", "required": false, "type": "integer", "format": "int64", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«定制需求详情VO»", "originalRef": "统一响应结果«定制需求详情VO»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«定制需求详情VO»", "originalRef": "统一响应结果«定制需求详情VO»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/custom/list": { "get": { "tags": [ "C端 - 定制需求接口" ], "summary": "定制需求列表", "description": "分页查询当前用户的定制需求列表,按创建时间倒序。\n\n**关联字典**:\n- status → 字典:customize_request_status:PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消\n- travelPurpose → 字典:travel_purpose(旅游目的)\n- requestType → 字典:customize_request_type(需求类型)\n- budget → 字典:customize_budget(预算范围)", "operationId": "listUsingGET_1", "produces": [ "*/*" ], "parameters": [ { "name": "page", "in": "query", "description": "页码", "required": false, "type": "integer", "default": 1, "format": "int32", "allowEmptyValue": false }, { "name": "pageSize", "in": "query", "description": "每页条数", "required": false, "type": "integer", "default": 20, "format": "int32", "allowEmptyValue": false } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«定制需求列表项VO»»", "originalRef": "统一响应结果«分页结果«定制需求列表项VO»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«分页结果«定制需求列表项VO»»", "originalRef": "统一响应结果«分页结果«定制需求列表项VO»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/custom/product/{productId}": { "get": { "tags": [ "C端 - 定制需求接口" ], "summary": "查询已完成的定制产品详情", "description": "根据产品ID查询已完成(COMPLETED/ORDERED)的定制产品详情。\n用于定制需求详情页展示定制师设计完成的产品方案。\n\n**返回字段**:产品完整信息,包括行程安排(itineraryDays)、人员配置(staffConfigs)、家庭分组(families)、定价(pricing)等。\n\n**关联字典**:\n- productType → 字典:product_type:CUSTOM=定制产品\n- status → 字典:product_status:COMPLETED=已完成(可下单), ORDERED=已下单(已有订单)\n- staffConfigs.staffType → 字典:staff_type:GUIDE=导游, GUIDE_ASSISTANT=助理导游, PHOTOGRAPHER=摄影师, LEADER=领队, OTHER=其他\n- paymentMode → 字典:payment_mode:FULL=全款, DEPOSIT=定金+尾款", "operationId": "getCompletedCustomProductUsingGET", "produces": [ "*/*" ], "parameters": [ { "name": "productId", "in": "path", "description": "定制产品ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«已完成定制产品详情VO»", "originalRef": "统一响应结果«已完成定制产品详情VO»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«已完成定制产品详情VO»", "originalRef": "统一响应结果«已完成定制产品详情VO»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/custom/products": { "get": { "tags": [ "C端 - 定制需求接口" ], "summary": "我的已完成定制产品列表", "description": "查询当前用户所有已完成的定制产品列表。\n聚合流程:先从定制需求中获取关联的产品ID → 再批量查询产品信息。\n\n**关联字典**:\n- productType → 字典:product_type:CUSTOM=定制产品\n- paymentMode → 字典:payment_mode:FULL=全款, DEPOSIT=定金+尾款", "operationId": "listCompletedCustomProductsUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«已完成定制产品列表项VO»»", "originalRef": "统一响应结果«List«已完成定制产品列表项VO»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«List«已完成定制产品列表项VO»»", "originalRef": "统一响应结果«List«已完成定制产品列表项VO»»" } }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/custom/submit": { "post": { "tags": [ "C端 - 定制需求接口" ], "summary": "提交定制需求", "description": "用户提交定制旅行需求,系统会创建定制请求并通知定制师。\n\n**关联字典**:\n- travelPurpose → 字典:travel_purpose(旅游目的):LEISURE=休闲度假, ADVENTURE=探险体验, CULTURE=文化探访, FAMILY=亲子陪伴, ROMANCE=浪漫旅行, TEAM=团队建设, OTHER=其他\n- requestType → 字典:customize_request_type(需求类型):FAMILY_TRIP=亲子游, HONEYMOON=蜜月游, GROUP_TRIP=团建游, SENIOR_TRIP=银发游, ADVENTURE=探险游, PHOTOGRAPHY=摄影游, CULTURE=文化游, OTHER=其他\n- budget → 字典:customize_budget(预算范围):UNDER_3000=3000元以下/人, BUDGET_3000_5000=3000-5000元/人, BUDGET_5000_10000=5000-10000元/人, BUDGET_10000_20000=10000-20000元/人, ABOVE_20000=20000元以上/人, NO_LIMIT=不限预算\n- 返回字段 status → 字典:customize_request_status(定制请求状态):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消", "operationId": "submitUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/提交定制需求请求", "originalRef": "提交定制需求请求" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«定制需求详情VO»", "originalRef": "统一响应结果«定制需求详情VO»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«定制需求详情VO»", "originalRef": "统一响应结果«定制需求详情VO»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } }, "/mp/custom/{requestId}/cancel": { "post": { "tags": [ "C端 - 定制需求接口" ], "summary": "取消定制需求", "description": "用户取消定制需求。\n\n**业务规则**:\n- 仅 PENDING(待处理)、ACCEPTED(已接受)、DESIGNING(设计中)状态可取消\n- 已报价(QUOTED)、已完成(COMPLETED)或已取消(CANCELLED)的需求不可再次取消\n\n**关联字典**:\n- status → 字典:customize_request_status:PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消", "operationId": "cancelUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "name": "requestId", "in": "path", "description": "定制请求ID", "required": false, "type": "integer", "format": "int64" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«定制需求详情VO»", "originalRef": "统一响应结果«定制需求详情VO»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "responsesObject": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/统一响应结果«定制需求详情VO»", "originalRef": "统一响应结果«定制需求详情VO»" } }, "201": { "description": "Created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "deprecated": false, "x-order": "2147483647" } } }, "definitions": { "Map«string,object»": { "type": "object", "title": "Map«string,object»", "additionalProperties": { "type": "object" } }, "Map«string,object»_1": { "type": "object", "title": "Map«string,object»_1", "additionalProperties": { "type": "object" } }, "分页结果«Map«string,object»»": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32", "example": 1, "description": "当前页码" }, "pageSize": { "type": "integer", "format": "int32", "example": 20, "description": "每页条数" }, "records": { "type": "array", "description": "数据列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "total": { "type": "integer", "format": "int32", "example": 100, "description": "总记录数" } }, "title": "分页结果«Map«string,object»»" }, "统一响应结果«分页结果«Map«string,object»»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/分页结果«Map«string,object»»", "originalRef": "分页结果«Map«string,object»»" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«分页结果«Map«string,object»»»" }, "统一响应结果«首页聚合数据»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/首页聚合数据", "originalRef": "首页聚合数据" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«首页聚合数据»" }, "首页聚合数据": { "type": "object", "properties": { "banners": { "type": "array", "description": "轮播图Banner列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "contactInfo": { "type": "array", "description": "联系我们列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "exploreTopics": { "type": "array", "description": "探索专题列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "featuredDesigner": { "type": "object", "description": "推荐定制师" }, "featuredReviews": { "type": "array", "description": "首页精选评价列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "productLines": { "type": "array", "description": "产品线分类列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "recommendProducts": { "type": "array", "description": "推荐产品列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } } }, "title": "首页聚合数据" }, "C端产品详情": { "type": "object", "properties": { "batches": { "type": "array", "description": "可售期数列表(仅GROUP产品,按出发日期升序)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "chatMessages": { "type": "array", "description": "群聊最近消息(来自会话存档)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "earliestBookingDate": { "type": "string", "description": "最早可订日期(如 2026-07-15)" }, "earlyBirdDiscount": { "type": "number", "description": "早鸟优惠金额(元/人)" }, "earlyBirdPlanName": { "type": "string", "description": "早鸟计划名称" }, "earlyBirdText": { "type": "string", "description": "早鸟优惠文字描述(如: 早鸟优惠:满2人立减50元/人)" }, "isFavorited": { "type": "boolean", "description": "是否已收藏(null表示未登录)" }, "participantFamilyCount": { "type": "integer", "format": "int32", "description": "参与家庭数" }, "product": { "type": "object", "description": "产品详情(来自product-service)" }, "refundPolicies": { "type": "object", "description": "退款政策详情(按退款类型分组)。key=退款类型(FULL/DEPOSIT/BALANCE),value=政策详情(含policyName、rules等)" }, "reviewStats": { "type": "object", "description": "评价统计数据" }, "topLikedReview": { "type": "object", "description": "最高点赞评价" }, "topRatedReview": { "type": "object", "description": "最高评分评价" }, "totalSold": { "type": "integer", "format": "int32", "description": "已购人数" } }, "title": "C端产品详情" }, "Map«string,object»_2": { "type": "object", "title": "Map«string,object»_2", "additionalProperties": { "type": "object" } }, "Map«string,object»_3": { "type": "object", "title": "Map«string,object»_3", "additionalProperties": { "type": "object" } }, "产品报价结果": { "type": "object", "properties": { "adultSellPrice": { "type": "number", "description": "成人单价" }, "available": { "type": "boolean", "description": "该日期是否可订(库存>0或不限库存)" }, "babySellPrice": { "type": "number", "description": "幼童单价(固定价)" }, "childSellPrice": { "type": "number", "description": "儿童单价" }, "childWithBedFee": { "type": "number", "description": "儿童加床费" }, "depositPayment": { "description": "定金支付信息(仅paymentMode=DEPOSIT时有值)", "$ref": "#/definitions/定金支付选项", "originalRef": "定金支付选项" }, "earlyBirdDiscount": { "description": "早鸟优惠信息,无优惠时为null", "$ref": "#/definitions/早鸟优惠信息", "originalRef": "早鸟优惠信息" }, "finalPrice": { "type": "number", "description": "最终价(早鸟优惠后)" }, "fullPayment": { "description": "全额支付信息", "$ref": "#/definitions/全额支付选项", "originalRef": "全额支付选项" }, "grandTotalSellPrice": { "type": "number", "description": "总售价(优惠前)" }, "paymentMode": { "type": "string", "description": "支付方式: FULL(全额支付) / DEPOSIT(定金+尾款)" }, "stock": { "type": "integer", "format": "int32", "description": "该日期剩余库存(null表示不限)" }, "totalAdultSellPrice": { "type": "number", "description": "成人小计" }, "totalBabySellPrice": { "type": "number", "description": "幼童小计" }, "totalChildSellPrice": { "type": "number", "description": "儿童小计" }, "totalYoungChildSellPrice": { "type": "number", "description": "小童小计" }, "youngChildSellPrice": { "type": "number", "description": "小童单价(儿童价×折扣比例)" } }, "title": "产品报价结果" }, "产品报价请求": { "type": "object", "required": [ "adultCount", "departureDate" ], "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": "儿童数量" }, "childNeedBed": { "type": "boolean", "example": false, "description": "儿童是否需要床位" }, "departureDate": { "type": "string", "example": "2026-05-01", "description": "出发日期" }, "youngChildCount": { "type": "integer", "format": "int32", "example": 0, "description": "幼儿数量" } }, "title": "产品报价请求" }, "全额支付选项": { "type": "object", "properties": { "amount": { "type": "number", "description": "应付金额" }, "description": { "type": "string", "description": "说明" } }, "title": "全额支付选项" }, "定金支付选项": { "type": "object", "properties": { "balanceAmount": { "type": "number", "description": "尾款金额(出行前需付)" }, "depositAmount": { "type": "number", "description": "定金金额(首次需付)" }, "depositRatio": { "type": "integer", "format": "int32", "description": "定金比例(%)" }, "description": { "type": "string", "description": "说明" } }, "title": "定金支付选项" }, "早鸟优惠信息": { "type": "object", "properties": { "discountAmount": { "type": "number", "description": "优惠金额" }, "minPeople": { "type": "integer", "format": "int32", "description": "最低人数要求" }, "planId": { "type": "integer", "format": "int64", "description": "优惠方案ID" }, "planName": { "type": "string", "description": "优惠方案名称" } }, "title": "早鸟优惠信息" }, "统一响应结果«C端产品详情»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/C端产品详情", "originalRef": "C端产品详情" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«C端产品详情»" }, "统一响应结果«List«Map«string,object»»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "array", "description": "响应数据", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«List«Map«string,object»»»" }, "统一响应结果«产品报价结果»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/产品报价结果", "originalRef": "产品报价结果" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«产品报价结果»" }, "C端创建订单请求": { "type": "object", "required": [ "contactName", "contactPhone", "productId" ], "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": "儿童数" }, "childNeedBed": { "type": "boolean", "example": false, "description": "儿童是否需要床位" }, "contactName": { "type": "string", "example": "张三", "description": "联系人姓名" }, "contactPhone": { "type": "string", "example": 13800138000, "description": "联系人电话" }, "customizerId": { "type": "string", "description": "定制师ID(通过分享链接下单时传入)" }, "departureDate": { "type": "string", "format": "date", "example": "2026-05-01", "description": "出发日期(GROUP产品从团期获取,可不传)" }, "groupBatchId": { "type": "string", "description": "团期ID(GROUP产品必填)" }, "productId": { "type": "string", "example": 1760000000000001, "description": "产品ID" }, "remark": { "type": "string", "example": "希望安排靠窗座位", "description": "备注" }, "roomCount": { "type": "integer", "format": "int32", "example": 1, "description": "房间数(GROUP产品,默认1)" }, "sharerOpenid": { "type": "string", "description": "分享人微信openid(通过分享进入下单时传入,用于记录分享关系)" }, "travelers": { "type": "array", "description": "出行人列表", "items": { "$ref": "#/definitions/出行人信息", "originalRef": "出行人信息" } }, "youngChildCount": { "type": "integer", "format": "int32", "example": 0, "description": "小童数" } }, "title": "C端创建订单请求" }, "Map«string,List«Map«string,object»»»": { "type": "object", "title": "Map«string,List«Map«string,object»»»", "additionalProperties": { "$ref": "#/definitions/List", "originalRef": "List" } }, "Map«string,object»_4": { "type": "object", "title": "Map«string,object»_4", "additionalProperties": { "type": "object" } }, "Map«string,object»_5": { "type": "object", "title": "Map«string,object»_5", "additionalProperties": { "type": "object" } }, "Map«string,object»_6": { "type": "object", "title": "Map«string,object»_6", "additionalProperties": { "type": "object" } }, "修改订单请求": { "type": "object", "properties": { "departureDate": { "type": "string", "format": "date", "example": "2026-05-01", "description": "出发日期" }, "travelers": { "type": "array", "description": "出行人列表(提供则替换全部出行人)", "items": { "$ref": "#/definitions/出行人信息_1", "originalRef": "出行人信息_1" } } }, "title": "修改订单请求" }, "出行人信息": { "type": "object", "required": [ "name" ], "properties": { "birthday": { "type": "string", "format": "date", "example": "1990-01-01", "description": "出生日期" }, "email": { "type": "string", "example": "lisi@example.com", "description": "电子邮箱" }, "emergencyContact": { "type": "string", "example": "王五", "description": "紧急联系人" }, "emergencyPhone": { "type": "string", "example": 13800138002, "description": "紧急联系电话" }, "gender": { "type": "integer", "format": "int32", "example": 1, "description": "性别(1=男, 2=女)" }, "idCardNo": { "type": "string", "example": 110101199001011234, "description": "证件号码" }, "idCardType": { "type": "string", "example": "ID_CARD", "description": "证件类型" }, "name": { "type": "string", "example": "李四", "description": "出行人姓名" }, "nationality": { "type": "string", "example": "中国", "description": "国籍" }, "phone": { "type": "string", "example": 13800138001, "description": "手机号" }, "travelerType": { "type": "string", "example": "ADULT", "description": "出行人类型(ADULT/CHILD/YOUNG_CHILD/BABY)" } }, "title": "出行人信息" }, "出行人信息_1": { "type": "object", "required": [ "name" ], "properties": { "birthday": { "type": "string", "format": "date", "example": "1990-01-01", "description": "出生日期" }, "email": { "type": "string", "example": "lisi@example.com", "description": "电子邮箱" }, "emergencyContact": { "type": "string", "example": "王五", "description": "紧急联系人" }, "emergencyPhone": { "type": "string", "example": 13800138002, "description": "紧急联系电话" }, "gender": { "type": "integer", "format": "int32", "example": 1, "description": "性别" }, "idCardNo": { "type": "string", "example": 110101199001011234, "description": "证件号码" }, "idCardType": { "type": "string", "example": "ID_CARD", "description": "证件类型" }, "name": { "type": "string", "example": "李四", "description": "出行人姓名" }, "nationality": { "type": "string", "example": "中国", "description": "国籍" }, "phone": { "type": "string", "example": 13800138001, "description": "手机号" }, "travelerType": { "type": "string", "example": "ADULT", "description": "出行人类型" } }, "title": "出行人信息_1" }, "分页结果«订单列表项»": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32", "example": 1, "description": "当前页码" }, "pageSize": { "type": "integer", "format": "int32", "example": 20, "description": "每页条数" }, "records": { "type": "array", "description": "数据列表", "items": { "$ref": "#/definitions/订单列表项", "originalRef": "订单列表项" } }, "total": { "type": "integer", "format": "int32", "example": 100, "description": "总记录数" } }, "title": "分页结果«订单列表项»" }, "用户取消订单请求": { "type": "object", "properties": { "reason": { "type": "string", "example": "行程有变,需要取消", "description": "取消原因" } }, "title": "用户取消订单请求" }, "统一响应结果«List«订单列表项»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "array", "description": "响应数据", "items": { "$ref": "#/definitions/订单列表项", "originalRef": "订单列表项" } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«List«订单列表项»»" }, "统一响应结果«List«退款原因»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "array", "description": "响应数据", "items": { "$ref": "#/definitions/退款原因", "originalRef": "退款原因" } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«List«退款原因»»" }, "统一响应结果«Map«string,List«Map«string,object»»»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "object", "description": "响应数据", "additionalProperties": { "type": "array", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«Map«string,List«Map«string,object»»»»" }, "统一响应结果«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»" }, "统一响应结果«int»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "integer", "format": "int32", "description": "响应数据" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«int»" }, "统一响应结果«分页结果«订单列表项»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/分页结果«订单列表项»", "originalRef": "分页结果«订单列表项»" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«分页结果«订单列表项»»" }, "统一响应结果«订单详情»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/订单详情", "originalRef": "订单详情" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«订单详情»" }, "统一响应结果«退款申请详情»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/退款申请详情", "originalRef": "退款申请详情" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«退款申请详情»" }, "统一响应结果«退款预览»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/退款预览", "originalRef": "退款预览" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«退款预览»" }, "订单列表项": { "type": "object", "properties": { "adultCount": { "type": "integer", "format": "int32", "description": "成人数" }, "babyCount": { "type": "integer", "format": "int32", "description": "幼童数" }, "balanceAmount": { "type": "number", "description": "尾款金额" }, "childCount": { "type": "integer", "format": "int32", "description": "儿童数" }, "contracts": { "type": "array", "description": "合同列表(含signUrl/fileUrl/status等)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "createTime": { "type": "string", "format": "date-time", "description": "创建时间" }, "daysUntilDeparture": { "type": "integer", "format": "int32", "description": "距出发天数(负数表示已出发)" }, "departureDate": { "type": "string", "format": "date", "description": "出发日期" }, "depositAmount": { "type": "number", "description": "定金金额" }, "displayName": { "type": "string", "description": "显示名称(未支付=手机号+姓名,已支付=订单号)" }, "displayStatus": { "type": "string", "description": "C端简化状态(PENDING_PAY/PENDING_DEPARTURE/PENDING_REVIEW/REFUND/CANCELLED)" }, "displayStatusLabel": { "type": "string", "description": "C端简化状态标签" }, "expiryTime": { "type": "string", "format": "date-time", "description": "支付截止时间(PENDING_PAY状态有效)" }, "insurances": { "type": "array", "description": "保险订单列表(含productName/extPolicyNo/status等)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "nextAction": { "type": "string", "description": "下一步操作提示" }, "orderId": { "type": "integer", "format": "int64", "description": "订单ID" }, "orderNo": { "type": "string", "description": "订单编号" }, "paidAmount": { "type": "number", "description": "已付金额" }, "paymentMode": { "type": "string", "description": "支付模式(FULL/DEPOSIT)" }, "processStatus": { "type": "string", "description": "内部流程状态(字典:order_process_status)" }, "processStatusLabel": { "type": "string", "description": "内部流程状态标签(字典:order_process_status 翻译)" }, "productCoverUrl": { "type": "string", "description": "产品封面图URL" }, "productId": { "type": "integer", "format": "int64", "description": "产品ID" }, "productName": { "type": "string", "description": "产品名称" }, "productType": { "type": "string", "description": "产品类型(CORE/ROUTE/CUSTOM/GROUP)" }, "refundAmount": { "type": "number", "description": "实际退款金额" }, "status": { "type": "string", "description": "订单状态(PENDING_PAY/DEPOSIT_PAID/PAID/CONFIRMED/IN_PROGRESS/COMPLETED/CANCELLED)" }, "statusLabel": { "type": "string", "description": "订单状态标签" }, "totalPrice": { "type": "number", "description": "总售价" }, "tripDays": { "type": "integer", "format": "int32", "description": "行程天数" }, "tripNights": { "type": "integer", "format": "int32", "description": "行程晚数" }, "youngChildCount": { "type": "integer", "format": "int32", "description": "小童数" } }, "title": "订单列表项" }, "订单详情": { "type": "object", "properties": { "adultCount": { "type": "integer", "format": "int32", "description": "成人数" }, "babyCount": { "type": "integer", "format": "int32", "description": "幼童数" }, "balanceAmount": { "type": "number", "description": "尾款金额" }, "balancePayMethod": { "type": "string", "description": "尾款支付方式: ONLINE=线上 OFFLINE=线下" }, "balanceProofUrl": { "type": "string", "description": "尾款凭证URL" }, "cancelReason": { "type": "string", "description": "取消原因" }, "cancelledAt": { "type": "string", "format": "date-time", "description": "取消时间" }, "checklistConfirmed": { "type": "boolean", "description": "清单确认状态" }, "childCount": { "type": "integer", "format": "int32", "description": "儿童数" }, "completedAt": { "type": "string", "format": "date-time", "description": "完成时间" }, "confirmedAt": { "type": "string", "format": "date-time", "description": "确认时间" }, "contactName": { "type": "string", "description": "联系人姓名" }, "contactPhone": { "type": "string", "description": "联系人电话" }, "contracts": { "type": "array", "description": "合同列表(含signUrl/fileUrl/status等)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "createTime": { "type": "string", "format": "date-time", "description": "创建时间" }, "creatorAdminId": { "type": "integer", "format": "int64", "description": "创建人管理员ID" }, "creatorName": { "type": "string", "description": "创建人姓名" }, "customizerId": { "type": "integer", "format": "int64", "description": "定制师ID" }, "customizerName": { "type": "string", "description": "定制师姓名" }, "departureDate": { "type": "string", "format": "date", "description": "出发日期" }, "depositAmount": { "type": "number", "description": "定金金额" }, "depositRatio": { "type": "integer", "format": "int32", "description": "定金比例" }, "discountAmount": { "type": "number", "description": "优惠金额" }, "discountReason": { "type": "string", "description": "优惠原因" }, "discounts": { "type": "array", "description": "优惠列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "displayStatus": { "type": "string", "description": "展示状态(前端主要使用此字段展示)" }, "displayStatusLabel": { "type": "string", "description": "展示状态标签" }, "expiryMinutes": { "type": "integer", "format": "int32", "description": "支付时限(分钟)" }, "expiryTime": { "type": "string", "format": "date-time", "description": "支付截止时间" }, "hotelAssignmentDetails": { "type": "array", "description": "酒店分配详情(按家庭分组,含封面图)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "hotelAssignments": { "type": "string", "description": "酒店分配信息JSON(原始数据)" }, "insurances": { "type": "array", "description": "保险订单列表(含productName/extPolicyNo/status/startDate/endDate等)", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "mchId": { "type": "string", "description": "商户号" }, "orderId": { "type": "integer", "format": "int64", "description": "订单ID" }, "orderNo": { "type": "string", "description": "订单编号" }, "paidAmount": { "type": "number", "description": "已付金额" }, "paidAt": { "type": "string", "format": "date-time", "description": "支付时间" }, "payMethodLabel": { "type": "string", "description": "支付方式标签(如:微信支付、定金微信+尾款线下)" }, "paymentMode": { "type": "string", "description": "支付模式(FULL/DEPOSIT)" }, "processStatus": { "type": "string", "description": "内部流程状态" }, "processStatusLabel": { "type": "string", "description": "内部流程状态标签" }, "productCoverUrl": { "type": "string", "description": "产品封面图URL" }, "productId": { "type": "integer", "format": "int64", "description": "产品ID" }, "productName": { "type": "string", "description": "产品名称" }, "productSnapshot": { "type": "string", "description": "产品快照JSON" }, "productType": { "type": "string", "description": "产品类型(CORE/ROUTE/CUSTOM/GROUP)" }, "readyAt": { "type": "string", "format": "date-time", "description": "就绪时间" }, "refundAmount": { "type": "number", "description": "退款金额" }, "refundPolicy": { "type": "object", "description": "退款政策(含政策名称和退款规则列表)" }, "remark": { "type": "string", "description": "备注" }, "returnDate": { "type": "string", "format": "date", "description": "返程日期(出发日期 + 行程天数 - 1)" }, "reviewed": { "type": "boolean", "description": "是否已评价" }, "roomInfo": { "type": "string", "description": "房间信息" }, "sharerOpenid": { "type": "string", "description": "分享者openid" }, "status": { "type": "string", "description": "订单状态(PENDING_PAY/DEPOSIT_PAID/PAID/CONFIRMED/IN_PROGRESS/COMPLETED/CANCELLED)" }, "statusLabel": { "type": "string", "description": "订单状态标签" }, "surchargeAmount": { "type": "number", "description": "费用增加总额" }, "surcharges": { "type": "array", "description": "费用增加项列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "timeline": { "type": "array", "description": "时间线列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "todos": { "type": "array", "description": "待办列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "totalPrice": { "type": "number", "description": "总售价" }, "transportSegments": { "type": "array", "description": "交通段列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "travelers": { "type": "array", "description": "出行人列表", "items": { "$ref": "#/definitions/Map«string,object»", "originalRef": "Map«string,object»" } }, "tripDays": { "type": "integer", "format": "int32", "description": "行程天数" }, "tripNights": { "type": "integer", "format": "int32", "description": "行程晚数" }, "unlockRequestedAt": { "type": "string", "format": "date-time", "description": "解锁请求时间" }, "userId": { "type": "integer", "format": "int64", "description": "用户ID" }, "vehicleInfo": { "type": "string", "description": "车辆信息" }, "youngChildCount": { "type": "integer", "format": "int32", "description": "小童数" } }, "title": "订单详情" }, "退款原因": { "type": "object", "properties": { "category": { "type": "string", "description": "分类: GENERAL(通用)/PRODUCT(产品问题)/SERVICE(服务问题)" }, "enabled": { "type": "boolean", "description": "是否启用" }, "reasonId": { "type": "integer", "format": "int64", "description": "原因ID" }, "reasonText": { "type": "string", "description": "原因描述" }, "sortOrder": { "type": "integer", "format": "int32", "description": "排序序号" } }, "title": "退款原因" }, "退款申诉请求": { "type": "object", "required": [ "appealAmount", "appealReason" ], "properties": { "appealAmount": { "type": "number", "example": 100.0, "description": "申诉退款金额" }, "appealReason": { "type": "string", "description": "申诉原因" }, "evidence": { "type": "array", "description": "申诉凭证图片URL列表", "items": { "type": "string" } } }, "title": "退款申诉请求" }, "退款申请详情": { "type": "object", "properties": { "actualAmount": { "type": "number", "description": "实际退款金额(审核后确定)" }, "appealAmount": { "type": "number", "description": "申诉退款金额" }, "appealReason": { "type": "string", "description": "申诉原因" }, "appealStatus": { "type": "integer", "format": "int32", "description": "申诉状态: 1-处理中, 2-通过, 3-驳回" }, "appealStatusLabel": { "type": "string", "description": "申诉状态中文标签" }, "appealedAt": { "type": "string", "format": "date-time", "description": "申诉时间" }, "applicantId": { "type": "integer", "format": "int64", "description": "申请人ID" }, "applicantName": { "type": "string", "description": "申请人姓名" }, "applicantType": { "type": "string", "description": "申请人类型: USER(用户)/ADMIN(管理员)" }, "applicationId": { "type": "integer", "format": "int64", "description": "退款申请ID" }, "approvalNo": { "type": "string", "description": "审批编号(企微OA审批编号)" }, "autoRefundDeadline": { "type": "string", "format": "date-time", "description": "自动退款截止时间" }, "calculatedAmount": { "type": "number", "description": "计算退款金额" }, "createTime": { "type": "string", "format": "date-time", "description": "创建时间" }, "daysBeforeDept": { "type": "integer", "format": "int32", "description": "距出发天数" }, "departureDate": { "type": "string", "format": "date", "description": "出发日期" }, "orderId": { "type": "integer", "format": "int64", "description": "订单ID" }, "orderNo": { "type": "string", "description": "订单号" }, "paidAmount": { "type": "number", "description": "已付金额" }, "policyId": { "type": "integer", "format": "int64", "description": "退款政策ID" }, "policyName": { "type": "string", "description": "退款政策名称" }, "productName": { "type": "string", "description": "产品名称" }, "reasonDetail": { "type": "string", "description": "补充说明" }, "reasonId": { "type": "integer", "format": "int64", "description": "退款原因ID" }, "reasonText": { "type": "string", "description": "退款原因" }, "refundRatio": { "type": "integer", "format": "int32", "description": "退款比例(百分比)" }, "refundType": { "type": "string", "description": "退款类型: DEPOSIT(定金)/BALANCE(尾款)/FULL(全款)" }, "refundTypeLabel": { "type": "string", "description": "退款类型中文标签" }, "refundedAt": { "type": "string", "format": "date-time", "description": "退款完成时间" }, "reviewAdminId": { "type": "integer", "format": "int64", "description": "审批管理员ID" }, "reviewAdminName": { "type": "string", "description": "审批管理员姓名" }, "reviewRemark": { "type": "string", "description": "审批备注" }, "reviewedAt": { "type": "string", "format": "date-time", "description": "审批时间" }, "status": { "type": "string", "description": "退款状态: PENDING(待审核)/APPROVED(已通过)/REJECTED(已拒绝)/REFUNDING(退款中)/REFUNDED(已退款)/CANCELLED(已撤回)/APPEALING(申诉中)/APPEAL_APPROVED(申诉通过)/APPEAL_REJECTED(申诉驳回)" }, "statusLabel": { "type": "string", "description": "退款状态中文标签" }, "updateTime": { "type": "string", "format": "date-time", "description": "更新时间" } }, "title": "退款申请详情" }, "退款申请请求": { "type": "object", "required": [ "reasonText", "refundType" ], "properties": { "images": { "type": "array", "description": "退款凭证图片URL列表", "items": { "type": "string" } }, "reasonDetail": { "type": "string", "description": "退款补充说明" }, "reasonId": { "type": "string", "example": 1, "description": "退款原因ID(已废弃,改用字典)" }, "reasonText": { "type": "string", "example": "行程冲突/时间变动", "description": "退款原因文本" }, "reasonValue": { "type": "string", "example": "schedule_conflict", "description": "退款原因字典值" }, "refundType": { "type": "string", "example": "FULL", "description": "退款类型(FULL/DEPOSIT/BALANCE)" } }, "title": "退款申请请求" }, "退款规则项": { "type": "object", "properties": { "matched": { "type": "boolean", "description": "是否当前命中此规则" }, "minDays": { "type": "integer", "format": "int32", "description": "最低天数" }, "refundRatio": { "type": "integer", "format": "int32", "description": "退款比例(百分比)" } }, "title": "退款规则项" }, "退款预览": { "type": "object", "properties": { "calculatedAmount": { "type": "number", "description": "计算退款金额" }, "daysBeforeDept": { "type": "integer", "format": "int32", "description": "距出发天数" }, "departureDate": { "type": "string", "description": "出发日期" }, "message": { "type": "string", "description": "提示信息" }, "orderId": { "type": "integer", "format": "int64", "description": "订单ID" }, "orderNo": { "type": "string", "description": "订单号" }, "paidAmount": { "type": "number", "description": "已付金额" }, "policyId": { "type": "integer", "format": "int64", "description": "匹配的退款政策ID" }, "policyName": { "type": "string", "description": "匹配的退款政策名称" }, "refundRatio": { "type": "integer", "format": "int32", "description": "退款比例(百分比)" }, "refundType": { "type": "string", "description": "退款类型: DEPOSIT/BALANCE/FULL" }, "refundable": { "type": "boolean", "description": "是否可退款" }, "rules": { "type": "array", "description": "退款规则列表(按天数降序)", "items": { "$ref": "#/definitions/退款规则项", "originalRef": "退款规则项" } } }, "title": "退款预览" }, "通过联系人信息绑定订单请求": { "type": "object", "required": [ "contactName", "contactPhone" ], "properties": { "contactName": { "type": "string", "example": "张三", "description": "联系人姓名" }, "contactPhone": { "type": "string", "example": 13800138000, "description": "联系人手机号" } }, "title": "通过联系人信息绑定订单请求" }, "发票换开请求": { "type": "object", "required": [ "invoiceTitle", "titleType" ], "properties": { "email": { "type": "string", "description": "接收邮箱" }, "invoiceTitle": { "type": "string", "example": "张三", "description": "发票抬头" }, "taxNumber": { "type": "string", "description": "纳税人识别号(企业发票必填)" }, "titleType": { "type": "string", "example": "PERSONAL", "description": "抬头类型: PERSONAL(个人)/COMPANY(企业)" } }, "title": "发票换开请求" }, "发票申请请求": { "type": "object", "required": [ "invoiceTitle", "orderId" ], "properties": { "bankAccount": { "type": "string", "description": "银行账号(企业发票选填)" }, "bankName": { "type": "string", "description": "开户行(企业发票选填)" }, "companyAddress": { "type": "string", "description": "企业地址(企业发票选填)" }, "companyPhone": { "type": "string", "description": "企业电话(企业发票选填)" }, "contactPhone": { "type": "string", "example": 13800138000, "description": "联系电话" }, "email": { "type": "string", "description": "接收邮箱" }, "invoiceTitle": { "type": "string", "example": "张三", "description": "发票抬头" }, "orderId": { "type": "string", "example": 1760000000000001, "description": "订单ID" }, "remark": { "type": "string", "description": "备注信息" }, "taxNumber": { "type": "string", "description": "纳税人识别号(企业发票必填)" }, "titleType": { "type": "string", "example": "PERSONAL", "description": "抬头类型: PERSONAL=个人(默认)、COMPANY=企业" } }, "title": "发票申请请求" }, "支付预下单请求": { "type": "object", "required": [ "orderId", "tradeType" ], "properties": { "clientIp": { "type": "string", "example": "192.168.1.1", "description": "客户端IP(H5支付必填)" }, "orderId": { "type": "string", "example": 1760000000000001, "description": "订单ID" }, "tradeType": { "type": "string", "example": "JSAPI", "description": "支付方式: JSAPI(小程序支付)/H5(H5支付)" } }, "title": "支付预下单请求" }, "Map«string,string»": { "type": "object", "title": "Map«string,string»", "additionalProperties": { "type": "string" } }, "发送短信验证码请求": { "type": "object", "required": [ "phone" ], "properties": { "phone": { "type": "string", "example": 13800138000, "description": "手机号" } }, "title": "发送短信验证码请求" }, "微信登录请求": { "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "example": "0a3...", "description": "微信授权code" } }, "title": "微信登录请求" }, "更新个人资料请求": { "type": "object", "properties": { "avatar": { "type": "string", "example": "https://...", "description": "头像URL" }, "birthday": { "type": "string", "format": "date", "example": "1990-01-01", "description": "生日" }, "email": { "type": "string", "example": "user@example.com", "description": "邮箱" }, "gender": { "type": "integer", "format": "int32", "example": 1, "description": "性别: 1=男, 2=女" }, "nationality": { "type": "string", "example": "中国", "description": "国籍" }, "nickname": { "type": "string", "example": "旅行者小张", "description": "昵称" }, "phone": { "type": "string", "example": 13800138000, "description": "手机号" }, "realName": { "type": "string", "example": "张三", "description": "真实姓名" } }, "title": "更新个人资料请求" }, "短信验证码登录请求": { "type": "object", "required": [ "code", "phone" ], "properties": { "code": { "type": "string", "example": 123456, "description": "验证码" }, "phone": { "type": "string", "example": 13800138000, "description": "手机号" } }, "title": "短信验证码登录请求" }, "统一响应结果«Map«string,string»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "object", "description": "响应数据", "additionalProperties": { "type": "string" } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«Map«string,string»»" }, "身份证OCR识别请求": { "type": "object", "required": [ "imgUrl" ], "properties": { "imgUrl": { "type": "string", "example": "https://hlgl-test.oss-cn-beijing.aliyuncs.com/xxx.jpg", "description": "身份证图片的OSS地址" } }, "title": "身份证OCR识别请求" }, "出行人请求(新增/修改)": { "type": "object", "required": [ "name" ], "properties": { "birthday": { "type": "string", "format": "date", "example": "1990-01-01", "description": "生日" }, "email": { "type": "string", "example": "lisi@example.com", "description": "邮箱" }, "emergencyContact": { "type": "string", "example": "王五", "description": "紧急联系人" }, "emergencyPhone": { "type": "string", "example": 13800138002, "description": "紧急联系电话" }, "gender": { "type": "string", "example": 1, "description": "性别: 1=男, 2=女" }, "idCardNo": { "type": "string", "example": 110101199001011234, "description": "证件号码" }, "idCardType": { "type": "string", "example": "ID_CARD", "description": "证件类型: ID_CARD(身份证)/PASSPORT(护照)" }, "name": { "type": "string", "example": "李四", "description": "姓名" }, "nationality": { "type": "string", "example": "中国", "description": "国籍" }, "phone": { "type": "string", "example": 13800138001, "description": "手机号" }, "travelerType": { "type": "string", "example": "ADULT", "description": "出行人类型: ADULT/CHILD/YOUNG_CHILD/BABY" } }, "title": "出行人请求(新增/修改)" }, "分页结果«收藏列表项(含资源摘要)»": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32", "example": 1, "description": "当前页码" }, "pageSize": { "type": "integer", "format": "int32", "example": 20, "description": "每页条数" }, "records": { "type": "array", "description": "数据列表", "items": { "$ref": "#/definitions/收藏列表项(含资源摘要)", "originalRef": "收藏列表项(含资源摘要)" } }, "total": { "type": "integer", "format": "int32", "example": 100, "description": "总记录数" } }, "title": "分页结果«收藏列表项(含资源摘要)»" }, "收藏列表项(含资源摘要)": { "type": "object", "properties": { "coverUrl": { "type": "string", "description": "封面图URL" }, "createdAt": { "type": "string", "format": "date-time", "description": "收藏时间" }, "favoriteId": { "type": "string", "description": "收藏记录ID" }, "name": { "type": "string", "description": "资源名称" }, "tags": { "type": "array", "description": "标签列表", "items": { "type": "string" } }, "targetId": { "type": "string", "description": "目标资源ID" }, "targetType": { "type": "string", "description": "目标类型(字典:favorite_resource_type)" } }, "title": "收藏列表项(含资源摘要)" }, "收藏请求": { "type": "object", "required": [ "targetId", "targetType" ], "properties": { "targetId": { "type": "string", "example": 3001000000000000020, "description": "目标资源ID" }, "targetType": { "type": "string", "example": "SCENIC", "description": "目标类型(字典:favorite_resource_type)", "enum": [ "PRODUCT", "SCENIC", "RESTAURANT", "ACTIVITY" ] } }, "title": "收藏请求" }, "统一响应结果«boolean»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "boolean", "description": "响应数据" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«boolean»" }, "统一响应结果«分页结果«收藏列表项(含资源摘要)»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/分页结果«收藏列表项(含资源摘要)»", "originalRef": "分页结果«收藏列表项(含资源摘要)»" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«分页结果«收藏列表项(含资源摘要)»»" }, "分页结果«足迹列表项(含资源摘要)»": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32", "example": 1, "description": "当前页码" }, "pageSize": { "type": "integer", "format": "int32", "example": 20, "description": "每页条数" }, "records": { "type": "array", "description": "数据列表", "items": { "$ref": "#/definitions/足迹列表项(含资源摘要)", "originalRef": "足迹列表项(含资源摘要)" } }, "total": { "type": "integer", "format": "int32", "example": 100, "description": "总记录数" } }, "title": "分页结果«足迹列表项(含资源摘要)»" }, "添加足迹请求": { "type": "object", "required": [ "resourceId", "resourceType" ], "properties": { "resourceId": { "type": "string", "example": 3001000000000000020, "description": "资源ID" }, "resourceType": { "type": "string", "example": "SCENIC", "description": "资源类型: PRODUCT/SCENIC/RESTAURANT/ACTIVITY" } }, "title": "添加足迹请求" }, "统一响应结果«分页结果«足迹列表项(含资源摘要)»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/分页结果«足迹列表项(含资源摘要)»", "originalRef": "分页结果«足迹列表项(含资源摘要)»" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«分页结果«足迹列表项(含资源摘要)»»" }, "足迹列表项(含资源摘要)": { "type": "object", "properties": { "coverUrl": { "type": "string", "description": "封面图URL" }, "footprintId": { "type": "string", "description": "足迹记录ID" }, "name": { "type": "string", "description": "资源名称" }, "resourceId": { "type": "string", "description": "资源ID" }, "resourceType": { "type": "string", "description": "资源类型:PRODUCT/SCENIC/RESTAURANT/ACTIVITY" }, "tags": { "type": "array", "description": "标签列表", "items": { "type": "string" } }, "visitTime": { "type": "string", "format": "date-time", "description": "浏览时间" } }, "title": "足迹列表项(含资源摘要)" }, "创建评价请求": { "type": "object", "required": [ "content", "orderId", "ratings" ], "properties": { "content": { "type": "string", "example": "非常棒的旅行体验!景色优美,服务周到。", "description": "评价内容(10-500字)" }, "images": { "type": "array", "description": "评价图片列表(最多9张)", "items": { "$ref": "#/definitions/评价图片项", "originalRef": "评价图片项" } }, "orderId": { "type": "integer", "format": "int64", "example": 1760000000000001, "description": "订单ID" }, "ratings": { "type": "object", "description": "评分数据(key为评分类别字典的dictValue,value为1-5整数)。先调用 GET /mp/review/rating-categories 获取评分维度,required=true的必填。示例: {\"ratingItinerary\":5,\"ratingAccommodation\":4,\"ratingDriver\":5,\"ratingDining\":4,\"ratingOverall\":5}", "additionalProperties": { "type": "integer", "format": "int32" } }, "videos": { "type": "array", "description": "评价视频列表(最多3个)", "items": { "$ref": "#/definitions/评价视频项", "originalRef": "评价视频项" } } }, "title": "创建评价请求" }, "评价图片项": { "type": "object", "required": [ "imageUrl" ], "properties": { "fileId": { "type": "integer", "format": "int64", "description": "文件ID" }, "imageUrl": { "type": "string", "description": "图片URL" } }, "title": "评价图片项" }, "评价视频项": { "type": "object", "required": [ "videoUrl" ], "properties": { "coverUrl": { "type": "string", "description": "视频封面URL" }, "duration": { "type": "integer", "format": "int32", "description": "视频时长(秒)" }, "fileId": { "type": "integer", "format": "int64", "description": "文件ID" }, "videoUrl": { "type": "string", "description": "视频URL" } }, "title": "评价视频项" }, "Map«string,object»_7": { "type": "object", "title": "Map«string,object»_7", "additionalProperties": { "type": "object" } }, "创建祈愿请求": { "type": "object", "required": [ "content", "wishType" ], "properties": { "content": { "type": "string", "example": "祝家人平安健康", "description": "祈愿内容,最多200字" }, "wishType": { "type": "integer", "format": "int32", "example": 1, "description": "祈愿类型: 1=平安 2=健康 3=事业 4=爱情 5=财运" } }, "title": "创建祈愿请求" }, "提交反馈请求": { "type": "object", "required": [ "content" ], "properties": { "contact": { "type": "string", "description": "联系方式" }, "content": { "type": "string", "example": "页面加载较慢", "description": "反馈内容" }, "images": { "type": "array", "description": "图片URL列表", "items": { "type": "string" } } }, "title": "提交反馈请求" }, "统一响应结果«string»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "string", "description": "响应数据" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«string»" }, "统一响应结果«List«string»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "array", "description": "响应数据", "items": { "type": "string" } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«List«string»»" }, "人员配置项": { "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»": { "type": "object", "properties": { "page": { "type": "integer", "format": "int32", "example": 1, "description": "当前页码" }, "pageSize": { "type": "integer", "format": "int32", "example": 20, "description": "每页条数" }, "records": { "type": "array", "description": "数据列表", "items": { "$ref": "#/definitions/定制需求列表项VO", "originalRef": "定制需求列表项VO" } }, "total": { "type": "integer", "format": "int32", "example": 100, "description": "总记录数" } }, "title": "分页结果«定制需求列表项VO»" }, "定价配置": { "type": "object", "properties": { "babyPrice": { "type": "number", "description": "婴儿价" }, "balanceDueDays": { "type": "integer", "format": "int32", "description": "尾款支付截止天数(出发前N天)" }, "childDiscountPercent": { "type": "number", "description": "儿童折扣百分比" }, "childWithBed": { "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模式下使用)" }, "mealBudget": { "type": "number", "description": "餐费预算" }, "minGroupSize": { "type": "integer", "format": "int32", "description": "成团人数" }, "paymentType": { "type": "string", "description": "支付方式:FULL=全款 DEPOSIT=定金+尾款" }, "pricingId": { "type": "string", "description": "定价配置ID" }, "productId": { "type": "string", "description": "产品ID" }, "profitAmount": { "type": "number", "description": "利润金额(FIXED模式下使用)" }, "profitMode": { "type": "string", "description": "利润模式:FIXED=固定金额 PERCENT=百分比" }, "vehicleModelIds": { "type": "array", "description": "车型ID列表", "items": { "type": "string" } } }, "title": "定价配置" }, "定制需求列表项VO": { "type": "object", "properties": { "adultCount": { "type": "integer", "format": "int32", "description": "成人数" }, "budget": { "type": "string", "description": "预算范围(字典:customize_budget)" }, "childCount": { "type": "integer", "format": "int32", "description": "儿童数" }, "createTime": { "type": "string", "format": "date-time", "description": "创建时间" }, "days": { "type": "integer", "format": "int32", "description": "期望天数" }, "designerAvatar": { "type": "string", "description": "定制师头像URL" }, "designerName": { "type": "string", "description": "定制师姓名" }, "destination": { "type": "string", "description": "目标地区" }, "requestId": { "type": "integer", "format": "int64", "description": "请求ID" }, "requestType": { "type": "string", "description": "需求类型(字典:customize_request_type)" }, "startDate": { "type": "string", "format": "date", "description": "期望出发日期" }, "status": { "type": "string", "description": "状态(字典:customize_request_status):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消" }, "statusLabel": { "type": "string", "description": "状态标签(中文)" }, "travelPurpose": { "type": "string", "description": "旅游目的(字典:travel_purpose)" }, "userId": { "type": "integer", "format": "int64", "description": "用户ID" } }, "title": "定制需求列表项VO" }, "定制需求详情VO": { "type": "object", "properties": { "adultCount": { "type": "integer", "format": "int32", "description": "成人数" }, "budget": { "type": "string", "description": "预算范围(字典:customize_budget)" }, "childCount": { "type": "integer", "format": "int32", "description": "儿童数" }, "contactName": { "type": "string", "description": "联系人" }, "contactPhone": { "type": "string", "description": "联系电话" }, "createTime": { "type": "string", "format": "date-time", "description": "创建时间" }, "days": { "type": "integer", "format": "int32", "description": "期望天数" }, "designerAvatar": { "type": "string", "description": "定制师头像URL" }, "designerId": { "type": "integer", "format": "int64", "description": "指定定制师ID" }, "designerName": { "type": "string", "description": "定制师姓名" }, "destination": { "type": "string", "description": "目标地区" }, "endDate": { "type": "string", "format": "date", "description": "期望结束日期" }, "productId": { "type": "integer", "format": "int64", "description": "关联产品ID(定制完成后返回)" }, "repliedAt": { "type": "string", "format": "date-time", "description": "回复时间" }, "reply": { "type": "string", "description": "定制师回复内容" }, "requestId": { "type": "integer", "format": "int64", "description": "请求ID" }, "requestType": { "type": "string", "description": "需求类型(字典:customize_request_type)" }, "requirements": { "type": "string", "description": "详细需求描述" }, "startDate": { "type": "string", "format": "date", "description": "期望出发日期" }, "status": { "type": "string", "description": "状态(字典:customize_request_status):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消" }, "statusLabel": { "type": "string", "description": "状态标签(中文)" }, "travelPurpose": { "type": "string", "description": "旅游目的(字典:travel_purpose)" }, "updateTime": { "type": "string", "format": "date-time", "description": "更新时间" }, "userId": { "type": "integer", "format": "int64", "description": "用户ID" } }, "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": "家庭名称(如:家庭1)" }, "sortOrder": { "type": "integer", "format": "int32", "description": "排序序号" }, "youngChildCount": { "type": "integer", "format": "int32", "description": "小童数" } }, "title": "家庭分组项" }, "已完成定制产品列表项VO": { "type": "object", "properties": { "coverImageUrl": { "type": "string", "description": "封面图URL" }, "creatorAvatarUrl": { "type": "string", "description": "定制师头像URL" }, "departureCity": { "type": "string", "description": "出发城市" }, "destinationCity": { "type": "string", "description": "目的地城市" }, "name": { "type": "string", "description": "产品名称" }, "paymentMode": { "type": "string", "description": "支付模式:FULL=全款 DEPOSIT=定金+尾款" }, "productId": { "type": "string", "description": "产品ID" }, "productType": { "type": "string", "description": "产品类型:CUSTOM=定制产品" }, "routeMapUrl": { "type": "string", "description": "路径图URL" }, "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": "已完成定制产品列表项VO" }, "已完成定制产品详情VO": { "type": "object", "properties": { "adultCount": { "type": "integer", "format": "int32", "description": "成人人数" }, "babyCount": { "type": "integer", "format": "int32", "description": "婴儿人数" }, "benefitsDescription": { "type": "array", "description": "权益说明(静态,所有产品相同)", "items": { "$ref": "#/definitions/权益分组", "originalRef": "权益分组" } }, "bookingTermsContent": { "type": "string", "description": "预订条款内容" }, "bookingTermsId": { "type": "string", "description": "预订条款ID" }, "bookingTermsName": { "type": "string", "description": "预订条款名称" }, "carouselImages": { "type": "array", "description": "轮播图列表", "items": { "type": "string" } }, "carouselVideoUrl": { "type": "string", "description": "轮播视频URL" }, "chatMessages": { "type": "array", "description": "群聊消息列表", "items": { "$ref": "#/definitions/群聊消息", "originalRef": "群聊消息" } }, "childCount": { "type": "integer", "format": "int32", "description": "儿童人数" }, "contactPhone": { "type": "string", "description": "联系电话(定制产品)" }, "costItems": { "type": "array", "description": "成本项列表(费用包含/不含/自理)", "items": { "$ref": "#/definitions/成本项", "originalRef": "成本项" } }, "coverImageUrl": { "type": "string", "description": "封面图URL" }, "createBy": { "type": "string", "description": "创建人ID" }, "createTime": { "type": "string", "format": "date-time", "description": "创建时间" }, "creatorAvatarUrl": { "type": "string", "description": "定制师头像URL" }, "creatorIntro": { "type": "string", "description": "创作者寄语" }, "customFees": { "type": "array", "description": "自定义费用项列表", "items": { "$ref": "#/definitions/自定义费用项", "originalRef": "自定义费用项" } }, "customerName": { "type": "string", "description": "客户姓名(定制产品)" }, "customizerId": { "type": "string", "description": "定制师ID" }, "departureCity": { "type": "string", "description": "出发城市" }, "departureDate": { "type": "string", "format": "date", "description": "出发日期(定制产品)" }, "destinationCities": { "type": "array", "description": "途经城市列表(从行程节点资源去重提取)", "items": { "type": "string" } }, "destinationCity": { "type": "string", "description": "目的地城市" }, "families": { "type": "array", "description": "家庭分组列表(按家庭分配人员和房间)", "items": { "$ref": "#/definitions/家庭分组项", "originalRef": "家庭分组项" } }, "folderId": { "type": "string", "description": "所属文件夹ID" }, "groupChatQrUrl": { "type": "string", "description": "群聊二维码URL" }, "groupRoomId": { "type": "string", "description": "企微群聊ID" }, "isBooking": { "type": "boolean", "description": "是否预约产品" }, "itineraryDays": { "type": "array", "description": "行程天列表(包含每天的景点、酒店、餐厅、活动等安排,含资源图片)", "items": { "$ref": "#/definitions/行程天", "originalRef": "行程天" } }, "lineId": { "type": "string", "description": "产品线ID" }, "lineName": { "type": "string", "description": "产品线名称" }, "lineSubtitle": { "type": "string", "description": "产品线副标题" }, "maxAdultPerOrder": { "type": "integer", "format": "int32", "description": "每单最大成人数(null=不限)" }, "maxChildPerOrder": { "type": "integer", "format": "int32", "description": "每单最大儿童数(null=不限)" }, "mchId": { "type": "string", "description": "商户号" }, "minAdultPerOrder": { "type": "integer", "format": "int32", "description": "每单最少成人数(null=默认1)" }, "name": { "type": "string", "description": "产品名称" }, "paymentMode": { "type": "string", "description": "支付模式:FULL=全款 DEPOSIT=定金+尾款" }, "pricing": { "description": "定价配置", "$ref": "#/definitions/定价配置", "originalRef": "定价配置" }, "productId": { "type": "string", "description": "产品ID" }, "productNo": { "type": "string", "description": "产品编号" }, "productType": { "type": "string", "description": "产品类型:CUSTOM=定制产品" }, "publishedAt": { "type": "string", "format": "date-time", "description": "发布时间" }, "refundPolicies": { "type": "object", "description": "退款政策详情(按退款类型分组)。key=退款类型(FULL/DEPOSIT/BALANCE),value=政策详情(含policyName、rules等)" }, "refundPolicyIds": { "type": "object", "description": "退款政策映射(按退款类型绑定不同政策)。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID", "additionalProperties": { "type": "string" } }, "routeMapUrl": { "type": "string", "description": "路径图URL" }, "seasonLabels": { "type": "array", "description": "适用季节列表(中文)", "items": { "type": "string" } }, "seasons": { "type": "array", "description": "适用季节列表(编码)", "items": { "type": "string" } }, "showChatGroup": { "type": "boolean", "description": "是否显示群聊入口" }, "showReview": { "type": "boolean", "description": "是否显示评价" }, "showTripDistance": { "type": "boolean", "description": "是否显示行程距离" }, "showTripTime": { "type": "boolean", "description": "是否显示行程时间" }, "sortOrder": { "type": "integer", "format": "int32", "description": "排序序号" }, "staffConfigs": { "type": "array", "description": "人员配置列表(导游、领队、摄影师等)", "items": { "$ref": "#/definitions/人员配置项", "originalRef": "人员配置项" } }, "startPrice": { "type": "number", "description": "起步价" }, "status": { "type": "string", "description": "产品状态:COMPLETED=已完成, ORDERED=已下单" }, "subtitle": { "type": "string", "description": "副标题" }, "suppliesList": { "type": "array", "description": "物资列表", "items": { "$ref": "#/definitions/物资项", "originalRef": "物资项" } }, "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": "行程晚数" }, "updateTime": { "type": "string", "format": "date-time", "description": "更新时间" }, "warmTipsContent": { "type": "string", "description": "温馨提示内容" }, "warmTipsId": { "type": "string", "description": "温馨提示ID" }, "warmTipsName": { "type": "string", "description": "温馨提示名称" }, "youngChildCount": { "type": "integer", "format": "int32", "description": "小童人数" } }, "title": "已完成定制产品详情VO" }, "成本项": { "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": "成本项" }, "提交定制需求请求": { "type": "object", "properties": { "adultCount": { "type": "integer", "format": "int32", "example": 2, "description": "成人数" }, "budget": { "type": "string", "example": "BUDGET_5000_10000", "description": "预算范围(字典:customize_budget)" }, "childCount": { "type": "integer", "format": "int32", "example": 1, "description": "儿童数" }, "contactName": { "type": "string", "example": "张三", "description": "联系人" }, "contactPhone": { "type": "string", "example": 13800138000, "description": "联系电话" }, "days": { "type": "integer", "format": "int32", "example": 5, "description": "期望天数" }, "designerId": { "type": "integer", "format": "int64", "example": 1234567890, "description": "指定定制师ID(可为空=系统分配)" }, "destination": { "type": "string", "example": "云南大理", "description": "目标地区" }, "endDate": { "type": "string", "format": "date", "example": "2026-04-05", "description": "期望结束日期" }, "requestType": { "type": "string", "example": "FAMILY_TRIP", "description": "需求类型(字典:customize_request_type)" }, "requirements": { "type": "string", "example": "希望安排亲子活动,孩子3岁", "description": "详细需求描述" }, "startDate": { "type": "string", "format": "date", "example": "2026-04-01", "description": "期望出发日期" }, "travelPurpose": { "type": "string", "example": "FAMILY", "description": "旅游目的(字典:travel_purpose)" } }, "title": "提交定制需求请求" }, "权益分组": { "type": "object", "properties": { "items": { "type": "array", "description": "权益项列表", "items": { "$ref": "#/definitions/权益项", "originalRef": "权益项" } }, "title": { "type": "string", "description": "分组标题,如:儿童权益 (1.2m以下)" } }, "title": "权益分组" }, "权益项": { "type": "object", "properties": { "category": { "type": "string", "description": "类别,如:门票、住宿、餐饮" }, "description": { "type": "string", "description": "说明,如:含全部景点儿童票" } }, "title": "权益项" }, "每日酒店": { "type": "object", "properties": { "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": "每日酒店" }, "物资项": { "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": "物资项" }, "用餐选项": { "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": "用餐选项" }, "统一响应结果«List«已完成定制产品列表项VO»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "type": "array", "description": "响应数据", "items": { "$ref": "#/definitions/已完成定制产品列表项VO", "originalRef": "已完成定制产品列表项VO" } }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«List«已完成定制产品列表项VO»»" }, "统一响应结果«分页结果«定制需求列表项VO»»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/分页结果«定制需求列表项VO»", "originalRef": "分页结果«定制需求列表项VO»" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«分页结果«定制需求列表项VO»»" }, "统一响应结果«定制需求详情VO»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/定制需求详情VO", "originalRef": "定制需求详情VO" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«定制需求详情VO»" }, "统一响应结果«已完成定制产品详情VO»": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "example": 200, "description": "状态码" }, "data": { "description": "响应数据", "$ref": "#/definitions/已完成定制产品详情VO", "originalRef": "已完成定制产品详情VO" }, "message": { "type": "string", "example": "成功", "description": "响应消息" } }, "title": "统一响应结果«已完成定制产品详情VO»" }, "群聊消息": { "type": "object", "properties": { "avatar": { "type": "string", "description": "用户头像URL(type=user时有效)" }, "text": { "type": "string", "description": "消息内容" }, "type": { "type": "string", "description": "消息类型: user/creator" } }, "title": "群聊消息" }, "自定义费用项": { "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": "自定义费用项" }, "行程天": { "type": "object", "properties": { "dayId": { "type": "string", "description": "行程天ID" }, "dayNumber": { "type": "integer", "format": "int32", "description": "天数编号" }, "dayTitle": { "type": "string", "description": "天标题" }, "hotels": { "type": "array", "description": "当日酒店列表", "items": { "$ref": "#/definitions/每日酒店", "originalRef": "每日酒店" } }, "nodes": { "type": "array", "description": "行程节点列表(含资源详情和图片)", "items": { "$ref": "#/definitions/行程节点", "originalRef": "行程节点" } }, "restaurants": { "type": "array", "description": "当日用餐列表", "items": { "$ref": "#/definitions/用餐选项", "originalRef": "用餐选项" } }, "routeSummary": { "type": "string", "description": "路线概览" } }, "title": "行程天" }, "行程节点": { "type": "object", "properties": { "costPrice": { "type": "number", "description": "资源成本价(来自资源价格日历)" }, "dayId": { "type": "string", "description": "所属行程天ID" }, "description": { "type": "string", "description": "节点描述" }, "distanceKm": { "type": "number", "description": "距离(公里)" }, "durationMinutes": { "type": "integer", "format": "int32", "description": "时长(分钟)" }, "emojiIcon": { "type": "string", "description": "表情图标" }, "extraData": { "type": "string", "description": "扩展数据(JSON格式)" }, "familyIds": { "type": "array", "description": "所属家庭ID列表(定制产品按家庭分配)", "items": { "type": "string" } }, "images": { "type": "array", "description": "节点图片列表", "items": { "type": "string" } }, "latitude": { "type": "number", "description": "纬度" }, "longitude": { "type": "number", "description": "经度" }, "nodeId": { "type": "string", "description": "节点ID" }, "nodeName": { "type": "string", "description": "节点名称" }, "nodeType": { "type": "string", "description": "节点类型:TRANSPORT/SCENIC/RESTAURANT/ACTIVITY/PHOTOGRAPHY/HOTEL/FREE/CUSTOM/SERVICE/NOTE" }, "quantity": { "type": "integer", "format": "int32", "description": "数量" }, "resourceDetail": { "description": "绑定资源的详细信息(含封面图cover、轮播图images、地址address等)", "$ref": "#/definitions/资源详情", "originalRef": "资源详情" }, "resourceId": { "type": "string", "description": "关联资源ID" }, "resourceName": { "type": "string", "description": "关联资源名称" }, "resourceType": { "type": "string", "description": "关联资源类型:SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/STAFF" }, "sortOrder": { "type": "integer", "format": "int32", "description": "排序序号" }, "startTime": { "type": "string", "description": "开始时间" } }, "title": "行程节点" }, "资源详情": { "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": "资源详情" } } }