暂存提交

This commit is contained in:
2026-07-31 14:57:09 +08:00
parent 7a19e2f096
commit f8804fbc52
53 changed files with 3771 additions and 0 deletions
@@ -0,0 +1,32 @@
package com.baiyue.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* 订单写入请求的持久化幂等记录。
* 同一个租户、操作者、操作和幂等键只能有一条记录,请求摘要负责识别资源与请求内容变化。
*/
@Getter
@Setter
@TableName("ord_idempotency_record")
public class OrderIdempotencyRecordEntity {
@TableId(type = IdType.ASSIGN_ID)
private Long id;
private Long tenantId;
private Long operatorId;
private String operation;
private Long resourceId;
private String idempotencyKey;
private String requestHash;
private String status;
private Long resultOrderId;
private LocalDateTime completedAt;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
@@ -0,0 +1,8 @@
package com.baiyue.order.mapper;
import com.baiyue.order.entity.OrderIdempotencyRecordEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** 订单写入幂等记录 Mapper。 */
public interface OrderIdempotencyRecordMapper extends BaseMapper<OrderIdempotencyRecordEntity> {
}
@@ -0,0 +1,67 @@
openapi: 3.0.3
info:
title: 柏悦头程订单 API
version: 1.1.0
security:
- bearerAuth: []
paths:
/api/merchant/v1/orders/first-leg:
post:
summary: 创建订单草稿
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: 创建成功或同请求重放成功,返回相同订单ID
'400':
description: 缺少或使用了无效幂等键
'409':
description: 相同幂等键对应不同请求或请求仍在处理中
'503':
description: 仓库或往来单位下游服务异常
/api/merchant/v1/orders/first-leg/{id}/submit:
post:
summary: 提交订单
parameters:
- $ref: '#/components/parameters/OrderId'
- $ref: '#/components/parameters/IdempotencyKey'
responses:
'200':
description: 提交成功或同请求重放成功
'400':
description: 缺少或使用了无效幂等键
'404':
description: 订单不存在
'409':
description: 幂等键冲突、请求处理中或订单状态冲突
'503':
description: 仓库或往来单位下游服务异常
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
parameters:
OrderId:
name: id
in: path
required: true
schema:
type: integer
format: int64
IdempotencyKey:
name: Idempotency-Key
in: header
required: true
description: 同一租户和操作者重试同一请求时必须保持不变
schema:
type: string
minLength: 1
maxLength: 128