gongfuzhu 6 月之前
父節點
當前提交
a8ea40b76a
共有 22 個文件被更改,包括 903 次插入0 次删除
  1. 150 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/PaoTuiApi.java
  2. 5 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/Base.java
  3. 55 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/AddOrderRequest.java
  4. 33 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/CancelOrderRequest.java
  5. 32 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/DeliveryCpriceRequest.java
  6. 26 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/DeliveryPriceRequest.java
  7. 15 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/OrderDetailRequest.java
  8. 36 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/OrderQueryRequest.java
  9. 14 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/OrderTipRequest.java
  10. 74 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/RiderInfoResponse.java
  11. 15 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/ShopQueryRequest.java
  12. 38 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/StoreAddRequest.java
  13. 34 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/UpdateShopRequest.java
  14. 13 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/CancelOrderResponse.java
  15. 57 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/DeliveryLocationResponse.java
  16. 33 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/DeliveryPriceResponse.java
  17. 55 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderDetailResponse.java
  18. 57 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderQueryResponse.java
  19. 43 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderResponse.java
  20. 48 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderStatusResponse.java
  21. 30 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderTipResponse.java
  22. 40 0
      SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/StoreQueryResponse.java

+ 150 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/PaoTuiApi.java

@@ -0,0 +1,150 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui;
+
+import cn.hutool.crypto.digest.DigestUtil;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.*;
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.request.*;
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.response.*;
+import org.springframework.stereotype.Component;
+
+import java.time.Instant;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+@Component
+public class PaoTuiApi {
+
+    private static String host = "http://open.test.maiyatian.com/";
+    private static String appSecret = "294c1a4d223d566b58358baf1000052";
+    private static String appKey = "984428";
+
+    // 添加店铺
+    public String shopAdd(StoreAddRequest storeInfoModel) {
+
+        JSONObject data = JSONUtil.parseObj(httpPost(storeInfoModel, "shop/add/"));
+        Object shopId = data.get("shop_id");
+        return String.valueOf(shopId);
+    }
+
+    // 更新店铺
+    public String shopUpdate(UpdateShopRequest updateShopModel) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(updateShopModel, "shop/update/"));
+        return String.valueOf(entries);
+    }
+
+    public List<StoreQueryResponse> shopQuery(ShopQueryRequest shopQueryRequest) {
+        String s = httpPost(shopQueryRequest, "shop/query/");
+        return JSONUtil.toList(s, StoreQueryResponse.class);
+    }
+
+    // 说明:传入订单相关参数进行订单配送下单
+    public OrderResponse addOrder(AddOrderRequest orderRequestModel) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(orderRequestModel, "order/add/"));
+        OrderResponse orderResponseModel = JSONUtil.toBean(entries, OrderResponse.class);
+        return orderResponseModel;
+    }
+
+    // 说明:查询当前门店该时间段配送到收货地址所需要的预估费用(⚠️注意:先同步创建门店)
+    public DeliveryPriceResponse deliveryPrice(DeliveryPriceRequest deliveryPriceRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(deliveryPriceRequest, "order/price/"));
+        DeliveryPriceResponse orderResponseModel = JSONUtil.toBean(entries, DeliveryPriceResponse.class);
+        return orderResponseModel;
+    }
+
+    // 可调用此接口对订单调度,即添加小费功能,用于加快订单接单,提升接单率。
+    //⚠️注意:小费添加是以最新请求金额为最终小费的金额,不是累加
+    public OrderTipResponse orderTip(OrderTipRequest orderTipRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(orderTipRequest, "order/tip/"));
+        OrderTipResponse orderResponseModel = JSONUtil.toBean(entries, OrderTipResponse.class);
+        return orderResponseModel;
+    }
+
+    // 可调用此接口查询不同状态下的订单列表
+    public OrderQueryResponse orderQuery(OrderQueryRequest orderQueryRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(orderQueryRequest, "order/query/"));
+        OrderQueryResponse orderResponseModel = JSONUtil.toBean(entries, OrderQueryResponse.class);
+        return orderResponseModel;
+    }
+
+    // 可调用此接口查询订单以及骑手的相关信息
+    public OrderDetailResponse orderDetail(OrderDetailRequest orderDetailRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(orderDetailRequest, "order/detail/"));
+        OrderDetailResponse orderResponseModel = JSONUtil.toBean(entries, OrderDetailResponse.class);
+        return orderResponseModel;
+    }
+
+    // 可调用此接口对订单进行取消操作,如果在骑手接单后取消可能会收取违约金,麦芽田收取违约金是和配送方收取的违约金是等额的
+    public CancelOrderRequest orderCancel(CancelOrderRequest cancelOrderRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(cancelOrderRequest, "order/cancel/"));
+        CancelOrderRequest orderResponseModel = JSONUtil.toBean(entries, CancelOrderRequest.class);
+        return orderResponseModel;
+    }
+
+    // 此接口可获取到指定订单的状态信息,用来进行订单状态的查询。
+    public OrderStatusResponse deliveryRoute(OrderDetailRequest orderDetailRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(orderDetailRequest, "delivery/route/"));
+        OrderStatusResponse orderResponseModel = JSONUtil.toBean(entries, OrderStatusResponse.class);
+        return orderResponseModel;
+    }
+
+    // 此接口可获取到指定订单的状态信息,用来进行订单状态的查询。
+    public DeliveryLocationResponse deliveryLocation(OrderDetailRequest orderDetailRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(orderDetailRequest, "delivery/location/"));
+        DeliveryLocationResponse orderResponseModel = JSONUtil.toBean(entries, DeliveryLocationResponse.class);
+        return orderResponseModel;
+    }
+
+    // 说明:查询当前门店该时间段配送到收货地址所需要的预估费用(⚠️注意:这个场景适用于无门店的概念的用户呼叫跑腿进行取货配送的)
+    public DeliveryPriceResponse ordercPrice(DeliveryCpriceRequest deliveryCpriceRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(deliveryCpriceRequest, "order/cPrice"));
+        DeliveryPriceResponse orderResponseModel = JSONUtil.toBean(entries, DeliveryPriceResponse.class);
+        return orderResponseModel;
+    }
+
+    // 用于c端下单呼叫
+    public OrderResponse orderaddWithoutShop(AddOrderRequest addOrderRequest) {
+        JSONObject entries = JSONUtil.parseObj(httpPost(addOrderRequest, "order/addWithoutShop"));
+        OrderResponse orderResponseModel = JSONUtil.toBean(entries, OrderResponse.class);
+        return orderResponseModel;
+    }
+
+
+    private static String httpPost(Base base, String url) {
+
+        host += url;
+        Map<String, String> entries = new TreeMap<>();
+        entries.put("app_key", appKey);
+        entries.put("version", "1");
+        entries.put("timestamp", String.valueOf(Instant.now().getEpochSecond()));
+        entries.put("params", JSONUtil.toJsonStr(base));
+        String sin = generateSign(entries, appSecret);
+        entries.put("sign", sin);
+        String post = HttpUtil.post(host, JSONUtil.toJsonStr(entries));
+
+        JSONObject jsonObject = JSONUtil.parseObj(post);
+
+
+        return JSONUtil.toJsonStr(jsonObject.get("data"));
+    }
+
+    public static String generateSign(Map<String, String> params, String appSecret) {
+        // 第一步:字典排序已经由 TreeMap 自动完成
+        StringBuilder stringBuilder = new StringBuilder();
+
+        // 第二步:拼接键值对
+        for (Map.Entry<String, String> entry : params.entrySet()) {
+            stringBuilder.append(entry.getKey()).append(entry.getValue());
+        }
+        // 第三步:首尾加上 app_secret
+        String signString = appSecret + stringBuilder.toString() + appSecret;
+
+        // 第四步:MD5 加密
+        String md5Hash = DigestUtil.md5Hex(signString);
+
+        // 第五步:转换为大写
+        return md5Hash != null ? md5Hash.toUpperCase() : null;
+    }
+}

+ 5 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/Base.java

@@ -0,0 +1,5 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model;
+
+
+public class Base {
+}

+ 55 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/AddOrderRequest.java

@@ -0,0 +1,55 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.internal.build.AllowPrintStacktrace;
+
+import java.util.List;
+
+@Data
+@AllowPrintStacktrace
+@NoArgsConstructor
+public class AddOrderRequest extends Base {
+
+    private Integer dispatchMode = 1;          // 发单模式: 1.省钱 2.最快 3.指派 4.价格从低到高依次呼叫
+    private String logistic;                  // 指派模式配送方 (如: uupt 或 dada,uupt)
+    private String shopId;                    // 你方门店ID
+    private String originId;                  // 你方配送单号
+    private String orderSource;               // 订单来源
+    private String orderSourceNo;             // 订单来源单号(美团必传)
+    private String orderSn;                   // 订单流水号 (0~99999以内数字)
+    private Integer isSubscribe = 0;          // 是否预约单: 0 否, 1 是
+    private String subscribeType;             // 预约单类型: SEND/SHOP
+    private Integer subscribeTime = 0;        // 期望预约送达时间 (Unix时间戳)
+    private String receiverLongitude;         // 收件人经度
+    private String receiverLatitude;          // 收件人纬度
+    private String receiverAddress;           // 收件人地址
+    private String receiverAddressDetail;     // 收件人详细地址
+    private String receiverName;              // 收件人姓名
+    private String receiverPhone;             // 收件人手机号
+    private List<Goods> goods;                // 物品详细信息
+    private Integer goodsValue;               // 物品价值 (单位: 分)
+    private Integer goodsWeight;              // 物品重量 (单位: kg)
+    private Integer goodsCategory;            // 物品类型
+    private Integer mapType;                  // 坐标类型 (1: 高德, 2: 百度)
+    private String callbackUrl;               // 订单配送状态回调地址
+    private String orderRemark;               // 订单备注
+    private Integer returnPrice = 0;          // 是否返回运费信息: 0-不返回, 1-返回
+    private String dispatchOther = "0";       // 指派时兜底配送方 (如: uupt 或 dada,uupt)
+    private Integer delayDelivery = 0;        // 延迟发单 (分钟)
+    private Integer autoTips = 0;             // 是否开启自动加小费: 0 关闭, 1 开启
+    private Integer autoTipAmount = 0;        // 小费金额 (单位: 元)
+    private Integer preTipAmount = 0;         // 下单前加小费金额 (单位: 元)
+    private Integer maxDeliveryAmount = 0;    // 限制最大配送金额 (单位: 元)
+
+    @Data
+    @AllowPrintStacktrace
+    @NoArgsConstructor
+    public static class Goods {
+        private String name;                 // 物品名称
+        private Integer number;              // 物品数量
+        private Integer price;               // 物品单价 (单位: 分)
+        private Integer total;               // 物品总价 (单位: 分)
+    }
+}

+ 33 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/CancelOrderRequest.java

@@ -0,0 +1,33 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CancelOrderRequest extends Base {
+
+    /**
+     * 我方订单号(与 originId 互斥必填)
+     */
+    private Integer orderId;
+
+    /**
+     * 你方订单号(与 orderId 互斥必填)
+     */
+    private String originId;
+
+    /**
+     * 取消原因代码
+     */
+    private Integer cancelReasonCode;
+
+    /**
+     * 取消原因描述(限制50字以内)
+     */
+    private String cancelReason;
+
+}

+ 32 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/DeliveryCpriceRequest.java

@@ -0,0 +1,32 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DeliveryCpriceRequest extends Base {
+
+    private String logistic; // 指派模式3: 平台,多个示例: dada, uupt
+    private String receiverLongitude; // 收件人经度
+    private String receiverLatitude; // 收件人纬度
+    private String receiverAddress; // 收件人地址
+    private String receiverName; // 收件人姓名 (非必传)
+    private String receiverPhone; // 收件人手机号 (非必传)
+    private String senderLongitude; // 发件人经度
+    private String senderLatitude; // 发件人纬度
+    private String senderAddress; // 发件人地址
+    private int city; // 城市编码
+    private String senderName; // 发件人姓名 (非必传)
+    private String senderPhone; // 发件人手机号 (非必传)
+    private Integer goodsValue; // 物品价格 [单位:分] (非必传)
+    private int goodsWeight; // 物品重量 [单位:kg]
+    private int goodsCategory; // 物品类型
+    private Integer deliveryTime; // 期望送达时间(秒级时间戳)(非必传)
+    private int mapType; // 坐标类型 (1: 高德, 2: 百度)
+    private Boolean needReturnError; // 是否包含配送方计价失败信息 (非必传)
+
+}

+ 26 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/DeliveryPriceRequest.java

@@ -0,0 +1,26 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.Data;
+
+@Data
+public class DeliveryPriceRequest extends Base {
+
+    private int dispatchMode;           // 发单模式: 1.省钱 2.最快 3.指派 4.价格从低到高依次呼叫
+    private String logistic;            // ⚠️指派模式3: 配送平台 示例:uupt 或 dada,uupt
+    private String shopId;              // 你方门店ID 示例: 99999
+    private String originId;            // 你方订单号 示例: 123456
+    private String receiverLongitude;   // 收件人经度 示例: 120.749981
+    private String receiverLatitude;    // 收件人纬度 示例: 32.099328
+    private String receiverAddress;     // 收件人地址 示例: x省x市x区x县x街道x楼x号
+    private String receiverName;        // 收件人姓名 示例: 张三
+    private String receiverPhone;       // 收件人手机号 示例: 18292225222
+    private Integer goodsValue;         // 物品价格 [单位: 分] 示例: 1000
+    private int goodsWeight;            // 物品重量 [单位: kg] 示例: 3
+    private int goodsCategory;          // 物品类型,详见物品类别枚举值
+    private Integer deliveryTime;       // 期望送达时间(秒级时间戳) 示例: 1665486622
+    private int mapType;                // 坐标类型:1.高德 2.百度
+    private String orderSource;         // 订单来源,详见订单来源枚举值
+    private Boolean needReturnError;    // 是否包含配送方计价失败信息 示例: true 或 false
+
+}

+ 15 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/OrderDetailRequest.java

@@ -0,0 +1,15 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderDetailRequest extends Base {
+
+    private Integer orderId; // 我方订单号(可选,与originId互斥)
+    private String originId; // 你方订单号(可选,与orderId互斥)
+}

+ 36 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/OrderQueryRequest.java

@@ -0,0 +1,36 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderQueryRequest extends Base {
+    /**
+     * 我方门店ID(和 originShopId 二选一)
+     */
+    private Integer shopId;
+
+    /**
+     * 你方门店ID(和 shopId 二选一)
+     */
+    private String originShopId;
+
+    /**
+     * 订单状态,不传时查询所有
+     */
+    private Integer status;
+
+    /**
+     * 起始值,默认 0
+     */
+    private Integer offset = 0;
+
+    /**
+     * 每页显示数量,最大 50,默认 20
+     */
+    private Integer count = 20;
+}

+ 14 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/OrderTipRequest.java

@@ -0,0 +1,14 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderTipRequest extends Base {
+    private String originId; // 你方订单号(和orderId二选一)
+    private int tips;        // 调度费,单位:元(必须为整数)
+}

+ 74 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/RiderInfoResponse.java

@@ -0,0 +1,74 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import lombok.Data;
+
+@Data
+public class RiderInfoResponse {
+    /**
+     * 状态码,1 表示成功
+     */
+    private int code;
+
+    /**
+     * 消息说明
+     */
+    private String message;
+
+    /**
+     * 数据集
+     */
+    private RiderInfoData data;
+
+    @Data
+    public static class RiderInfoData {
+        /**
+         * 你方订单号
+         */
+        private String originId;
+
+        /**
+         * 我方订单号
+         */
+        private String orderId;
+
+        /**
+         * 订单状态
+         */
+        private int orderStatus;
+
+        /**
+         * 骑手 ID
+         */
+        private long riderId;
+
+        /**
+         * 配送员姓名
+         */
+        private String riderName;
+
+        /**
+         * 配送员手机号
+         */
+        private String riderPhone;
+
+        /**
+         * 坐标类型
+         */
+        private int mapType;
+
+        /**
+         * 配送员经度
+         */
+        private String riderLongitude;
+
+        /**
+         * 配送员纬度
+         */
+        private String riderLatitude;
+
+        /**
+         * 更新时间
+         */
+        private int uploadTime;
+    }
+}

+ 15 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/ShopQueryRequest.java

@@ -0,0 +1,15 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopQueryRequest extends Base {
+    private Integer offset;
+
+    private Integer count;
+}

+ 38 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/StoreAddRequest.java

@@ -0,0 +1,38 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class StoreAddRequest extends Base {
+    
+    // 必传字段
+    private String originId; // 门店ID
+    private String name; // 门店名称
+    private String city; // 城市编码
+    private String district; // 区域编码
+    private String phone; // 手机号码
+    private String address; // 门店地址
+    private Float longitude; // 门店经度
+    private Float latitude; // 门店纬度
+    private Integer category; // 物品类别
+    private final Integer mapType = 1; // 坐标类型,默认1
+
+    // 非必传字段
+    private String logistics; // 配送平台
+    private Config config; // 门店配送设置
+
+    // 配置项内部类
+    public static class Config {
+        private String dispatchOther = "0"; // 指派时优先配送员
+        private Integer delayDelivery = 0; // 延迟配送(分钟)
+        private Integer autoTips = 0; // 自动小费
+
+
+    }
+
+}

+ 34 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/request/UpdateShopRequest.java

@@ -0,0 +1,34 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.request;
+
+import com.zswl.cloud.springBtach.server.core.api.paotui.model.Base;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UpdateShopRequest extends Base {
+
+    private Integer shopId;        // 我方门店ID,和originId二选一
+    private String originId;       // 你方门店ID,和shopId二选一
+    private String name;           // 门店名称
+    private Integer city;          // 城市编码(根据城市列表接口获取)
+    private String district;       // 我方区县编码(根据区县列表接口获取)
+    private String phone;          // 手机号码,支持虚拟号传入
+    private String address;        // 门店地址
+    private Float longitude;       // 门店经度
+    private Float latitude;        // 门店纬度
+    private String logistics;      // 同步指定配送方:单个示例: mtps;多个示例: dada,mtps
+    private Integer category;      // 物品类别(见数据字典)
+    private Integer mapType = 1;   // 坐标类型(默认值为1)
+    private Config config;         // 门店配送设置
+
+    @Data
+    public static class Config {
+        private Integer dispatchMode = 1;     // 派单模式
+        private String dispatchOther = "0";  // 指派时使用的配送方,多个以逗号分隔
+        private Integer delayDelivery = 0;   // 延迟发单(分钟)
+        private Integer autoTips = 0;        // 自动加小费
+    }
+}

+ 13 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/CancelOrderResponse.java

@@ -0,0 +1,13 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class CancelOrderResponse {
+    /**
+     * 取消订单涉及的违约金(单位:元)
+     */
+    private BigDecimal cancelFee;
+}

+ 57 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/DeliveryLocationResponse.java

@@ -0,0 +1,57 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.Data;
+
+@Data
+public class DeliveryLocationResponse {
+
+    /**
+     * 你方订单号
+     */
+    private String originId;
+
+    /**
+     * 我方订单号
+     */
+    private String orderId;
+
+    /**
+     * 订单状态
+     */
+    private int orderStatus;
+
+    /**
+     * 骑手 ID
+     */
+    private long riderId;
+
+    /**
+     * 配送员姓名
+     */
+    private String riderName;
+
+    /**
+     * 配送员手机号
+     */
+    private String riderPhone;
+
+    /**
+     * 坐标类型
+     */
+    private int mapType;
+
+    /**
+     * 配送员经度
+     */
+    private String riderLongitude;
+
+    /**
+     * 配送员纬度
+     */
+    private String riderLatitude;
+
+    /**
+     * 更新时间
+     */
+    private int uploadTime;
+}

+ 33 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/DeliveryPriceResponse.java

@@ -0,0 +1,33 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DeliveryPriceResponse {
+
+
+    private String min_logistic;
+    private float min_price;           // 最低价格(单位: 元)
+    private float max_price;           // 最高价格(单位: 元)
+    private float coupon;             // 优惠金额(单位: 元)
+    private List<Detail> detail;      // 配送详细结果
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class Detail {
+        private String logistic;          // 配送平台
+        private String name;              // 配送平台名称
+        private float distance;           // 距离(单位: 米)
+        private float coupon;             // 优惠金额(单位: 元)
+        private float amount;             // 配送费(单位: 元)
+        private String tag;               // 标签,例如 "最便宜"
+        private String errorMessage;      // 计价失败原因
+    }
+}

+ 55 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderDetailResponse.java

@@ -0,0 +1,55 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderDetailResponse {
+    private int orderId; // 我方订单号
+    private int shopId; // 我方门店ID
+    private String originId; // 你方订单号,最长不超过32个字符
+    private int dispatchMode; // 派单模式
+    private String logistic; // 配送平台
+    private String orderSource; // 订单来源
+    private String orderSn; // 日流水号
+    private float price; // 配送费(单位:元)
+    private float couponAmount; // 优惠金额(单位:元)
+    private String receiverName; // 收件人姓名
+    private String receiverPhone; // 收件人电话
+    private String receiverAddress; // 收件人地址
+    private String receiverLongitude; // 收件人经度
+    private String receiverLatitude; // 收件人纬度
+    private List<Goods> goods; // 商品信息
+    private int goodsValue; // 商品价值(单位:分)
+    private int goodsWeight; // 商品重量
+    private int goodsCategory; // 商品类别
+    private int status; // 订单状态
+    private String callbackUrl; // 回调地址
+    private String mapType; // 坐标转换类型
+    private String orderRemark; // 订单备注
+    private String riderName; // 配送员姓名
+    private String riderPhone; // 配送员手机
+    private int isSubscribe; // 是否预约
+    private int subscribeTime; // 预约时间
+    private long createTime; // 创建时间
+    private long acceptTime; // 接单时间
+    private int fetchTime; // 到店时间
+    private int finishTime; // 完成时间
+    private int cancelTime; // 取消时间
+
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public class Goods {
+        private String name; // 商品名称
+        private int number; // 商品数量
+        private int price; // 商品价格(单位:分)
+    }
+
+}

+ 57 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderQueryResponse.java

@@ -0,0 +1,57 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderQueryResponse {
+
+
+    private int orderId; // 我方订单号
+    private int shopId; // 我方门店ID
+    private String originId; // 你方订单号,最长不超过32个字符
+    private int dispatchMode; // 派单模式
+    private String logistic; // 配送平台
+    private String orderSource; // 订单来源
+    private String orderSn; // 日流水号
+    private float price; // 配送费(单位:元)
+    private float couponAmount; // 优惠金额(单位:元)
+    private String receiverName; // 收件人姓名
+    private String receiverPhone; // 收件人电话
+    private String receiverAddress; // 收件人地址
+    private String receiverLongitude; // 收件人经度
+    private String receiverLatitude; // 收件人纬度
+    private List<Goods> goods; // 商品信息
+    private int goodsValue; // 商品价值(单位:分)
+    private int goodsWeight; // 商品重量
+    private int goodsCategory; // 商品类别
+    private int status; // 订单状态
+    private String callbackUrl; // 回调地址
+    private String mapType; // 坐标转换类型
+    private String orderRemark; // 订单备注
+    private String riderName; // 配送员姓名
+    private String riderPhone; // 配送员手机
+    private int isSubscribe; // 是否预约
+    private int subscribeTime; // 预约时间
+    private long createTime; // 创建时间
+    private long acceptTime; // 接单时间
+    private int fetchTime; // 到店时间
+    private int finishTime; // 完成时间
+    private int cancelTime; // 取消时间
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class Goods {
+        private String name; // 商品名称
+        private int number; // 商品数量
+        private int price; // 商品价格(单位:分)
+    }
+
+
+}

+ 43 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderResponse.java

@@ -0,0 +1,43 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderResponse {
+
+
+    private Integer order_id;       // 我方订单号
+    private String origin_id;       // 你方订单号
+    private Integer send_time;      // 预计发单时间 (is_subscribe = 1 时返回)
+    private Prices prices;         // 价格数据集 (发单模式为2且return_price=1时返回)
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class Prices {
+        private BigDecimal min_logistic;          // 最便宜配送平台
+        private BigDecimal min_price;              // 最低价格 (单位: 元)
+        private BigDecimal max_price;              // 最高价格 (单位: 元)
+        private Float coupon;                // 优惠金额 (单位: 元)
+        private List<PriceDetail> detail;    // 配送详细结果
+
+        @Data
+        @NoArgsConstructor
+        @AllArgsConstructor
+        public static class PriceDetail {
+            private String logistic;         // 配送平台
+            private String name;             // 配送平台名称
+            private Integer distance;        // 距离 (单位: 米)
+            private Float coupon;            // 优惠金额 (单位: 元)
+            private Float amount;            // 配送费 (单位: 元)
+            private String tag;              // 标签 (示例: 最便宜)
+        }
+    }
+}

+ 48 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderStatusResponse.java

@@ -0,0 +1,48 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class OrderStatusResponse {
+
+
+    /**
+     * 贵方订单号
+     */
+    private String originId;
+
+    /**
+     * 我方订单号
+     */
+    private String orderId;
+
+    /**
+     * 配送单号
+     */
+    private String deliveryId;
+
+    /**
+     * 状态列表
+     */
+    private List<OrderInfo> info;
+
+    @Data
+    public static class OrderInfo {
+        private int status;
+        private String statusDesc;
+        private String logistic;
+        private long riderId;
+        private String riderName;
+        private String riderPhone;
+        private int mapType;
+        private String riderLatitude;
+        private String riderLongitude;
+        private double cancelAmount;
+        private String cancelCode;
+        private double deliveryAmount;
+        private String content;
+        private long ctime;
+    }
+}

+ 30 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/OrderTipResponse.java

@@ -0,0 +1,30 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderTipResponse {
+
+
+    private String originId;             // 第三方订单 ID
+    private List<DispatchDetail> data;   // 调度数据集
+
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class DispatchDetail {
+        private String logistic;     // 配送平台
+        private int status;          // 状态:1 成功,0 失败
+        private String errMsg;       // 错误原因
+        private float tipAmount;     // 当前已加小费金额(单位:元)
+    }
+
+
+}

+ 40 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/paotui/model/response/StoreQueryResponse.java

@@ -0,0 +1,40 @@
+package com.zswl.cloud.springBtach.server.core.api.paotui.model.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class StoreQueryResponse {
+
+    private String originId;        // 你方门店ID
+    private String shopId;          // 我方门店ID
+    private Integer status;         // 门店状态
+    private String name;            // 门店名称
+    private String city;            // 城市编码
+    private String district;        // 区县编码
+    private String phone;           // 门店联系电话
+    private String address;         // 门店地址
+    private Float longitude;        // 门店经度
+    private Float latitude;         // 门店纬度
+    private Integer category;       // 物品类别
+    private Integer mapType;        // 坐标类型
+    private Config config;          // 门店配送设置
+
+    // 内部类:门店配置
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class Config {
+        private Integer dispatchMode;     // 派单模式
+        private String defaultLogistic;  // 默认配送平台
+        private String dispatchOther;    // 兜底配送平台
+        private Integer delayDelivery;   // 延迟发单时间
+        private Integer autoTips;        // 自动加小费
+        private Integer autoResend;      // 自动重发
+
+    }
+
+}