Files
baiyue-firstleg/order/src/main/resources/openapi/order-v1.yaml
T

138 lines
5.8 KiB
YAML
Raw Normal View History

2026-07-31 14:57:09 +08:00
openapi: 3.0.3
info:
title: 柏悦头程订单 API
2026-08-01 10:17:20 +08:00
description: 业务成功和失败均使用 HTTP 200;仅响应体 code 为字符串 "200" 时表示成功,其他 code 表示失败。
2026-07-31 14:57:09 +08:00
version: 1.1.0
security:
- bearerAuth: []
paths:
/api/merchant/v1/orders/first-leg:
2026-08-04 20:49:46 +08:00
get:
summary: 客户端入库订单聚合列表
description: 按当前登录租户分页返回订单、货物汇总、收货方快照及头程入仓编码,需要 merchant:order:list 权限。
parameters:
- {name: keyword, in: query, required: false, schema: {type: string, maxLength: 64}}
- {name: orderNo, in: query, required: false, schema: {type: string, maxLength: 64}}
- {name: receivingWarehouseId, in: query, required: false, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
- {name: channelName, in: query, required: false, schema: {type: string, maxLength: 128}}
- {name: customerContact, in: query, required: false, description: 客户名称、联系人或手机号, schema: {type: string, maxLength: 128}}
- {name: customerId, in: query, required: false, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
- {name: status, in: query, required: false, schema: {type: string}}
- {name: operationStatus, in: query, required: false, description: 操作状态,优先于兼容参数 status, schema: {type: string}}
- {name: destinationType, in: query, required: false, schema: {type: string, maxLength: 32}}
- {name: destinationWarehouseId, in: query, required: false, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
- {name: createdFrom, in: query, required: false, schema: {type: string, format: date-time}}
- {name: createdTo, in: query, required: false, schema: {type: string, format: date-time}}
- {name: page, in: query, required: false, schema: {type: integer, minimum: 1, default: 1}}
- {name: size, in: query, required: false, schema: {type: integer, minimum: 1, maximum: 200, default: 20}}
responses:
'200':
description: 成功或业务失败,响应体 code 为字符串 200 时成功
content:
application/json:
schema: {type: object}
2026-07-31 14:57:09 +08:00
post:
summary: 创建订单草稿
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
2026-08-01 10:17:20 +08:00
schema: {type: object}
2026-07-31 14:57:09 +08:00
responses:
2026-08-01 10:17:20 +08:00
'200': {description: 成功或业务失败,按响应体 code 判断}
2026-07-31 14:57:09 +08:00
/api/merchant/v1/orders/first-leg/{id}/submit:
post:
summary: 提交订单
parameters:
- $ref: '#/components/parameters/OrderId'
- $ref: '#/components/parameters/IdempotencyKey'
responses:
2026-08-01 10:17:20 +08:00
'200': {description: 成功或业务失败,按响应体 code 判断}
2026-07-31 16:53:07 +08:00
/api/platform/v1/orders/first-leg:
2026-08-04 12:57:58 +08:00
get:
summary: 平台分页查询头程订单
description: tenantId 省略时查询全部客户租户订单,传入时仅查询指定租户。
parameters:
- name: tenantId
in: query
required: false
description: 可选的目标租户筛选
schema: {type: integer, format: int64, minimum: 1}
responses:
'200': {description: 查询成功或业务失败,按响应体 code 判断}
'403': {description: 需要 platform:order:list 权限和平台身份}
2026-07-31 16:53:07 +08:00
post:
summary: 平台代客创建订单草稿
parameters:
- $ref: '#/components/parameters/TenantId'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
2026-08-01 10:17:20 +08:00
schema: {type: object}
2026-07-31 16:53:07 +08:00
responses:
2026-08-01 10:17:20 +08:00
'200': {description: 成功或业务失败,按响应体 code 判断}
'403': {description: 需要 platform:order:create 权限}
2026-08-03 13:16:19 +08:00
/api/platform/v1/orders/first-leg/tenant-counts:
get:
summary: 批量查询客户运单数
description: 按客户租户 ID 返回真实头程运单数量,最多 200 个租户。
parameters:
- name: tenantIds
in: query
required: true
schema: {type: array, maxItems: 200, items: {type: integer, format: int64}}
responses:
'200': {description: 查询成功或业务失败,按响应体 code 判断}
'403': {description: 需要 platform:order:list 权限}
2026-07-31 16:53:07 +08:00
/api/platform/v1/orders/first-leg/{id}/submit:
post:
summary: 平台代客提交指定订单
parameters:
- $ref: '#/components/parameters/OrderId'
- $ref: '#/components/parameters/TenantId'
- $ref: '#/components/parameters/IdempotencyKey'
responses:
2026-08-01 10:17:20 +08:00
'200': {description: 成功或业务失败,按响应体 code 判断}
'403': {description: 需要 platform:order:submit 权限}
2026-07-31 16:53:07 +08:00
/api/platform/v1/orders/first-leg/{id}:
put:
summary: 平台编辑指定订单草稿
parameters:
- $ref: '#/components/parameters/OrderId'
- $ref: '#/components/parameters/TenantId'
requestBody:
required: true
content:
application/json:
2026-08-01 10:17:20 +08:00
schema: {type: object}
2026-07-31 16:53:07 +08:00
responses:
2026-08-01 10:17:20 +08:00
'200': {description: 成功或业务失败,按响应体 code 判断}
'403': {description: 需要 platform:order:edit 权限}
2026-07-31 14:57:09 +08:00
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
parameters:
2026-07-31 16:53:07 +08:00
TenantId:
name: tenantId
in: query
required: true
2026-08-01 10:17:20 +08:00
schema: {type: integer, format: int64}
2026-07-31 14:57:09 +08:00
OrderId:
name: id
in: path
required: true
2026-08-01 10:17:20 +08:00
schema: {type: integer, format: int64}
2026-07-31 14:57:09 +08:00
IdempotencyKey:
name: Idempotency-Key
in: header
required: true
description: 同一租户和操作者重试同一请求时必须保持不变
2026-08-01 10:17:20 +08:00
schema: {type: string, minLength: 1, maxLength: 128}