diff --git a/platformapi/jdapi/order.go b/platformapi/jdapi/order.go index 17350b31..3a462c68 100644 --- a/platformapi/jdapi/order.go +++ b/platformapi/jdapi/order.go @@ -830,39 +830,3 @@ func (a *API) ComplaintDadaDeliver(orderID string, resonID int) (err error) { _, err = a.AccessAPINoPage("order/complaintDadaDeliverForPlatForm", jdParams, nil, nil, nullResultParser) return err } - -// ReceiveLogisticInfoForOpenApiPlatform 京东商家自配送同步骑手状态 -// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=169&apiid=e6feb2ab829e4aa7963bacd04d9434b2 -func (a *API) ReceiveLogisticInfoForOpenApiPlatform(parma ReceiveLogisticInfo) (err error) { - jdParams := utils.Struct2Map(parma, "", false) - _, err = a.AccessAPINoPage("ThirdPartyLogisticsService/receiveLogisticInfosForOpenApiPlatform", jdParams, nil, nil, nullResultParser) - return err -} - -// ReceiveLogisticInfo 自配送骑手状态通知 -type ReceiveLogisticInfo struct { - OrderId string `json:"orderId"` // 到家订单号 - DeliveryInfoList []DeliveryInfo `json:"deliveryInfoList"` // 物流配送信息,仅支持传入单个元素,如传入多个元素底层服务获取第一个 -} - -// DeliveryInfo 物流配送信息,仅支持传入单个元素,如传入多个元素底层服务获取第一个 -type DeliveryInfo struct { - DeliveryStatus string `json:"deliveryStatus"` // 配送状态,10010-待接单,10020-配送员接单,10022-更换配送员,10023-配送员已到店,10025-取货失败,10030-配送员已取货【接单、更换骑手、骑手到店、骑手取货 都需要填加:骑手姓名和电话】 - DeliveryManName string `json:"deliveryManName"` // 配送员姓名 - DeliveryManPhone string `json:"deliveryManPhone"` // 配送员手机号 - DeliveryCarrierNo string `json:"deliveryCarrierNo"` // 承运商编号 - DeliveryCarrierOrderNo string `json:"deliveryCarrierOrderNo"` // 运单号 - DeliveryCarrierName string `json:"deliveryCarrierName"` // 承运商名称 - FailReason string `json:"failReason"` // 失败原因 - OperateTime string `json:"operateTime"` // 操作时间格式【yyy-MM-dd HH:mm:ss】 - Operator string `json:"operator"` // 操作人 -} - -const ( - JdDeliveryStatusNew = "10010" // 待接单 - JdDeliveryStatusRiderTaking = "10020" // 接单 - JdDeliveryStatusChangeRider = "10022" // 更换配送员 - JdDeliveryStatusToStore = "10023" // 到店 - JdDeliveryStatusFail = "10025" // 取货失败 - JdDeliveryStatusDelivering = "10030" // 配送中 -) diff --git a/platformapi/jdapi/order_delivery.go b/platformapi/jdapi/order_delivery.go new file mode 100644 index 00000000..6c392caf --- /dev/null +++ b/platformapi/jdapi/order_delivery.go @@ -0,0 +1,58 @@ +package jdapi + +import ( + "git.rosy.net.cn/baseapi/utils" + "time" +) + +// ReceiveLogisticInfoForOpenApiPlatform 京东商家自配送同步骑手状态 +// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=169&apiid=e6feb2ab829e4aa7963bacd04d9434b2 +func (a *API) ReceiveLogisticInfoForOpenApiPlatform(parma ReceiveLogisticInfo) (err error) { + jdParams := utils.Struct2Map(parma, "", false) + _, err = a.AccessAPINoPage("ThirdPartyLogisticsService/receiveLogisticInfosForOpenApiPlatform", jdParams, nil, nil, nullResultParser) + return err +} + +// ReceiveLogisticInfo 自配送骑手状态通知 +type ReceiveLogisticInfo struct { + OrderId string `json:"orderId"` // 到家订单号 + DeliveryInfoList []DeliveryInfo `json:"deliveryInfoList"` // 物流配送信息,仅支持传入单个元素,如传入多个元素底层服务获取第一个 +} + +// DeliveryInfo 物流配送信息,仅支持传入单个元素,如传入多个元素底层服务获取第一个 +type DeliveryInfo struct { + DeliveryStatus string `json:"deliveryStatus"` // 配送状态,10010-待接单,10020-配送员接单,10022-更换配送员,10023-配送员已到店,10025-取货失败,10030-配送员已取货【接单、更换骑手、骑手到店、骑手取货 都需要填加:骑手姓名和电话】 + DeliveryManName string `json:"deliveryManName"` // 配送员姓名 + DeliveryManPhone string `json:"deliveryManPhone"` // 配送员手机号 + DeliveryCarrierNo string `json:"deliveryCarrierNo"` // 承运商编号 + DeliveryCarrierOrderNo string `json:"deliveryCarrierOrderNo"` // 运单号 + DeliveryCarrierName string `json:"deliveryCarrierName"` // 承运商名称 + FailReason string `json:"failReason"` // 失败原因 + OperateTime string `json:"operateTime"` // 操作时间格式【yyy-MM-dd HH:mm:ss】 + Operator string `json:"operator"` // 操作人 +} + +const ( + JdDeliveryStatusNew = "10010" // 待接单 + JdDeliveryStatusRiderTaking = "10020" // 接单 + JdDeliveryStatusChangeRider = "10022" // 更换配送员 + JdDeliveryStatusToStore = "10023" // 到店 + JdDeliveryStatusFail = "10025" // 取货失败 + JdDeliveryStatusDelivering = "10030" // 配送中 +) + +// SelfDeliveryUploadCoordinate 自配送更新骑手坐标 +// https://opendj.jd.com/staticnew/widgets/resources.html?groupid=194&apiid=2dd3e02df53c44d7bd098508b9bb5c41 +func (a *API) SelfDeliveryUploadCoordinate(orderId int64, latitude, longitude, operateUser string) (err error) { + jdParams := map[string]interface{}{ + "orderId": orderId, // 订单ID + "latitude": latitude, // 纬度 + "longitude": longitude, // 经度 + "operateUser": operateUser, // 操作人 + "uploadDate": time.Now(), // 操作时间 + } + + _, err = a.AccessAPINoPage("OrderLogisticsOpenService/syncLogisticsMessage", jdParams, nil, nil, genNoPageResultParser("code", "msg", "", "0")) + + return err +}