package jdapi import ( "gitrosy.jxc4.com/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 }