FlashDeliveryOrder.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package com.ruoyi.system.domain.flash;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.annotation.TableId;
  4. import com.baomidou.mybatisplus.annotation.TableName;
  5. import lombok.Data;
  6. import java.math.BigDecimal;
  7. import java.util.Date;
  8. /** 独立闪送订单实体,不与餐饮订单或出租车订单共用状态。 */
  9. @Data
  10. @TableName("flash_delivery_order")
  11. public class FlashDeliveryOrder {
  12. @TableId(type = IdType.AUTO)
  13. /** 主键 ID,数据库自增。 */
  14. private Long id;
  15. /** 订单号,FD 前缀加 24 位随机大写串,用于展示与检索。 */
  16. private String orderNo;
  17. /** 客户端请求幂等号,与 userId 共同建立唯一约束。 */
  18. private String clientRequestId;
  19. /** 下单用户(寄件人)ID。 */
  20. private Long userId;
  21. /** 创建订单时按收件手机号唯一匹配的普通用户;匹配后不再动态追溯。 */
  22. private Long receiverUserId;
  23. /** 抢单前为空,原子抢单成功后绑定且不允许骑手主动放弃。 */
  24. private Long riderId;
  25. /** 业务场景:HELP_SEND=帮送、HELP_PICKUP=帮取。 */
  26. private String serviceType;
  27. /** 配送等级:NORMAL=普通、URGENT=一对一加急。 */
  28. private String deliveryType;
  29. /** 用户下单选择的车型快照:1=机车,2=轿车。 */
  30. private Integer vehicleType;
  31. /** 订单状态,取值见 FlashDeliveryStatus。 */
  32. private String status;
  33. /** 用户申报的包裹类别和重量范围。 */
  34. private String packageType;
  35. private Integer quantity;
  36. private String weightRange;
  37. /** 物品体积、尺寸等规格说明。 */
  38. private String specification;
  39. /** NOW 为立即配送,SCHEDULED 为预约取件时段。 */
  40. private String deliveryMode;
  41. /** 预约取件时间窗开始时间,仅 SCHEDULED 模式有值。 */
  42. private Date scheduledPickupStartAt;
  43. /** 预约取件时间窗结束时间,仅 SCHEDULED 模式有值。 */
  44. private Date scheduledPickupEndAt;
  45. /** 交付 PIN 只允许订单用户和平台读取,骑手响应必须剔除。 */
  46. private Boolean pinRequired;
  47. /** 四位交付 PIN 明文,骑手送达时向收件人核对。 */
  48. private String deliveryPinCode;
  49. /** 取件联系人和完整地址快照。 */
  50. private String pickupName;
  51. private String pickupPhone;
  52. private String pickupAddress;
  53. private String pickupAddressDetail;
  54. private String pickupCity;
  55. private String pickupArea;
  56. private String pickupHandoffMethod;
  57. private BigDecimal pickupLongitude;
  58. private BigDecimal pickupLatitude;
  59. /** 收件联系人和完整地址快照。 */
  60. private String deliveryName;
  61. private String deliveryPhone;
  62. private String deliveryAddress;
  63. private String deliveryAddressDetail;
  64. private String deliveryCity;
  65. private String deliveryArea;
  66. private String deliveryHandoffMethod;
  67. private BigDecimal deliveryLongitude;
  68. private BigDecimal deliveryLatitude;
  69. /** 服务端计算的路线结果;distanceSource 标识地图路线或降级直线距离。 */
  70. private Integer distanceMeters;
  71. private String distanceSource;
  72. private Integer estimatedDurationSeconds;
  73. /** 最近一次定价(下单或待接单改址)的金额与计价配置快照;快照+距离恒可复算出金额,后台调价只影响之后的定价。 */
  74. private Long amount;
  75. private String currency;
  76. /** 支付方式与主订单系统同域:4=现金、6=线下转账;闪送款项直达骑手,仅允许线下方式,下单时锁定。 */
  77. private String payType;
  78. /** 下单时命中的运价配置 ID。 */
  79. private Long pricingId;
  80. /** 下单时命中的运价配置版本。 */
  81. private Integer pricingVersion;
  82. /** 命中运价的时段开始(HH:mm)。 */
  83. private String pricingStartTime;
  84. /** 命中运价的时段结束(HH:mm)。 */
  85. private String pricingEndTime;
  86. /** 起步距离(公里)。 */
  87. private BigDecimal startingDistance;
  88. /** 起步价(整数 TWD)。 */
  89. private Long startingFare;
  90. /** 距离计价步长(公里)。 */
  91. private BigDecimal distance;
  92. /** 每个步长收取的运费(整数 TWD)。 */
  93. private Long freight;
  94. /** 距离附加费(TWD),按超起步距离部分以每公里单价计算。 */
  95. private Long distanceFee;
  96. /** 基础配送费(TWD),等于起步价加距离费。 */
  97. private Long baseDeliveryFee;
  98. /** 加急费比例(百分比)。 */
  99. private BigDecimal urgentRate;
  100. /** 最低加急费(TWD)。 */
  101. private Long minimumUrgentFee;
  102. /** 加急费(TWD),URGENT 订单收取,普通配送为 0。 */
  103. private Long urgentFee;
  104. /** 用户小费合计(TWD),待接单阶段可追加。 */
  105. private Long tipAmount;
  106. /** 用户备注。 */
  107. private String userNote;
  108. /** 订单条件更新版本号,用于记录并发状态变化次数。 */
  109. private Integer version;
  110. /** 各履约节点的首次成功时间。 */
  111. private Date acceptedAt;
  112. private Date pickedUpAt;
  113. private Date deliveredAt;
  114. private Date completedAt;
  115. private Date cancelledAt;
  116. /** 取消审计信息,操作人类型可为 USER 或 ADMIN。 */
  117. private String cancelReason;
  118. private String cancelOperatorType;
  119. private Long cancelOperatorId;
  120. private Date createTime;
  121. private Date updateTime;
  122. }