FlashDeliveryV2QuoteRequest.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.ruoyi.app.flashdelivery.dto;
  2. import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
  3. import lombok.Data;
  4. import java.util.Date;
  5. import java.util.List;
  6. /**
  7. * v2 多点取送报价请求:物品主体整单只设置一次,取货点与收货点统一放在 stops 数组。
  8. * 与旧报价结构互斥;旧接口过渡期保留,见 FR-122。
  9. */
  10. @Data
  11. public class FlashDeliveryV2QuoteRequest {
  12. /** 业务场景,必填:HELP_SEND 帮送、HELP_PICKUP 帮取。 */
  13. private String serviceType;
  14. /** 配送等级,必填:NORMAL 普通、URGENT 一对一加急。 */
  15. private String deliveryType;
  16. /** 配送车型,必填:1=机车,2=轿车。 */
  17. private Integer vehicleType;
  18. /** 物品类别,整单一次;可选值与旧契约一致。 */
  19. private String packageType;
  20. /** 物品数量,整单一次,必须为大于 0 的整数。 */
  21. @JsonDeserialize(using = FlashDeliveryQuantityDeserializer.class)
  22. private Integer quantity;
  23. /** 物品重量范围,整单一次,决定车型运价;可选值与旧契约一致。 */
  24. private String weightRange;
  25. /** 物品体积、尺寸或其他规格说明,选填,最长 255 个字符。 */
  26. private String specification;
  27. /** 骑手小费,必填,整数新台币,没有时传 0。 */
  28. private Long tipAmount;
  29. /** 取件方式,选填,默认 NOW;SCHEDULED 表示预约取件。 */
  30. private String deliveryMode;
  31. /** 预约取件开始时间;SCHEDULED 时必填,NOW 时不得传。 */
  32. private Date scheduledPickupStartAt;
  33. /** 预约取件结束时间;SCHEDULED 时必填且晚于开始 30 分钟,NOW 时不得传。 */
  34. private Date scheduledPickupEndAt;
  35. /** 支付方式选填,缺省现金;服务端按闪送支付闸门校验。 */
  36. private String payType;
  37. /**
  38. * 统一站点数组,必填,顺序即用户添加顺序与骑手路线顺序。
  39. * 至少 1 个取货站与 1 个收货站,取货站必须全部位于收货站之前。
  40. */
  41. private List<FlashDeliveryV2StopRequest> stops;
  42. }