1
This commit is contained in:
@@ -76,18 +76,19 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
|
||||
}
|
||||
order.Status = model.WaybillStatusNew
|
||||
case dadaapi.OrderStatusAccepted:
|
||||
order.Status = model.WaybillStatusAccepted
|
||||
order.Status = model.WaybillStatusCourierAssigned
|
||||
order.Remark = order.CourierName + "," + order.CourierMobile
|
||||
if dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID); err == nil {
|
||||
order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee)
|
||||
order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee)
|
||||
}
|
||||
case dadaapi.OrderStatusReturningInOrder:
|
||||
order.Status = model.WaybillStatusCourierArrived
|
||||
case dadaapi.OrderStatusDelivering:
|
||||
order.Status = model.WaybillStatusDelivering
|
||||
//delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID)
|
||||
case dadaapi.OrderStatusFinished:
|
||||
order.Status = model.WaybillStatusDelivered
|
||||
case dadaapi.OrderStatusCanceled, dadaapi.OrderStatusExpired:
|
||||
case dadaapi.OrderStatusCanceled:
|
||||
order.Status = model.WaybillStatusCanceled
|
||||
case dadaapi.OrderStatusAddOrderFailed:
|
||||
order.Status = model.WaybillStatusFailed
|
||||
@@ -455,24 +456,36 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso
|
||||
}
|
||||
|
||||
switch order.StatusCode {
|
||||
case 20: // 骑手接单
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 100: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 3: // 配送中
|
||||
case dadaapi.OrderStatusWaitingForAccept: // 待接单
|
||||
result.LogisticsStatus = model.WaybillStatusAccepted
|
||||
result.LogisticsContext = model.RiderWaitRider
|
||||
case dadaapi.OrderStatusAccepted: // 待取货
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned // 分配骑手
|
||||
result.LogisticsContext = model.RiderWaitGetGoods
|
||||
case dadaapi.OrderStatusDelivering: // 配送中
|
||||
result.LogisticsStatus = model.WaybillStatusDelivering
|
||||
result.LogisticsContext = model.RiderGetOrderDelivering
|
||||
case 4: // 完成
|
||||
case dadaapi.OrderStatusFinished: // 完成
|
||||
result.LogisticsStatus = model.WaybillStatusDelivered
|
||||
result.LogisticsContext = model.RiderGetOrderDelivered
|
||||
case 5: // 取消
|
||||
case dadaapi.OrderStatusCanceled: // 取消
|
||||
result.LogisticsStatus = model.WaybillStatusCanceled
|
||||
result.LogisticsContext = model.RiderGetOrderCanceled
|
||||
case 9: // 配送异常
|
||||
case 8: // 指派单,不处理
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
case 9: // 配送异常返回值
|
||||
result.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverFailed
|
||||
case 10: // 妥投异常之物品返回完成 - 不处理
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
case dadaapi.OrderStatusReturningInOrder: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderToStore
|
||||
case dadaapi.OrderStatusAddOrderFailed: // 创建达达运单失败 - 不处理
|
||||
result.LogisticsStatus = model.WaybillStatusFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
default:
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
|
||||
@@ -236,18 +236,17 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify) (resp *fnpsapi.CallbackRespon
|
||||
order.Status = model.WaybillStatusNew //5 带调度
|
||||
case fnpsapi.OrderStatusAssigned: //20分配骑手
|
||||
order.DesiredFee = GetDesiredFee(order.VendorOrderID)
|
||||
order.Status = model.WaybillStatusAccepted //10
|
||||
order.Status = model.WaybillStatusCourierAssigned //12
|
||||
order.Remark = order.CourierName + "," + order.CourierMobile
|
||||
case fnpsapi.OrderStatusArrived: // 80 到店
|
||||
order.DesiredFee = GetDesiredFee(order.VendorOrderID)
|
||||
order.Status = model.WaybillStatusCourierArrived
|
||||
case fnpsapi.OrderStatusDelivering: // 2 配送中
|
||||
order.Status = model.WaybillStatusDelivering
|
||||
//delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID)
|
||||
case fnpsapi.OrderStatusDelivered: // 3 已经送达
|
||||
order.Status = model.WaybillStatusDelivered
|
||||
case fnpsapi.OrderStatusAcceptCacle: // 4取消订单
|
||||
order.Status = model.WaybillStatusAcceptCanceled
|
||||
order.Status = model.WaybillStatusCanceled
|
||||
case fnpsapi.OrderStatusException: // 5 异常
|
||||
order.Status = model.WaybillStatusDeliverFailed // 22
|
||||
default:
|
||||
|
||||
@@ -85,6 +85,12 @@ func (c *DeliveryHandler) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg
|
||||
|
||||
func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) {
|
||||
order := c.callbackMsg2Waybill(msg)
|
||||
if msg.Status == mtpsapi.OrderStatusPickedUp {
|
||||
order.Status = model.WaybillStatusCourierArrived
|
||||
mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
|
||||
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID) // 推送假的到店
|
||||
msg.Status = mtpsapi.OrderStatusPickedUp
|
||||
}
|
||||
switch msg.Status {
|
||||
case mtpsapi.OrderStatusWaitingForSchedule:
|
||||
data, err := api.MtpsAPI.QueryOrderStatus(msg.DeliveryID, msg.MtPeisongID)
|
||||
@@ -93,15 +99,15 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
|
||||
}
|
||||
order.DesiredFee = utils.Float64TwoInt64(utils.MustInterface2Float64(data["delivery_fee"]) * 100)
|
||||
order.Status = model.WaybillStatusNew
|
||||
case mtpsapi.OrderStatusAccepted:
|
||||
case mtpsapi.OrderStatusAccepted: // 已接单
|
||||
data, err := api.MtpsAPI.QueryOrderStatus(msg.DeliveryID, msg.MtPeisongID)
|
||||
if err != nil {
|
||||
return mtpsapi.Err2CallbackResponse(err, fmt.Sprintf("%s", "获取订单状态错误"))
|
||||
}
|
||||
order.DesiredFee = utils.Float64TwoInt64(utils.MustInterface2Float64(data["delivery_fee"]) * 100)
|
||||
order.Status = model.WaybillStatusAccepted
|
||||
order.Status = model.WaybillStatusCourierAssigned
|
||||
order.Remark = order.CourierName + "," + order.CourierMobile
|
||||
case mtpsapi.OrderStatusPickedUp:
|
||||
case mtpsapi.OrderStatusPickedUp: // 已取货
|
||||
order.Status = model.WaybillStatusDelivering
|
||||
case mtpsapi.OrderStatusDeliverred:
|
||||
order.Status = model.WaybillStatusDelivered
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package delivery
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtpsapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -50,6 +51,14 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
//3.当同一个订单已经上传了一次配送信息,如再次同步会更新配送信息,以最新的一次为准。
|
||||
//4.如订单已完成、已取消等状态发货将失败。
|
||||
for _, v := range orders {
|
||||
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
||||
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID)
|
||||
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
||||
globals.SugarLogger.Debug("订单物流状态结束,不在推送订单状态:orderID[%s],wayBillId[%s]", v.VendorOrderID, waybillList[0].VendorWaybillID)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
riderInfo := &mtpsapi.RiderInfo{}
|
||||
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handlerInfo != nil {
|
||||
if v.WaybillVendorID == model.VendorIDDada || v.WaybillVendorID == model.VendorIDFengNiao {
|
||||
@@ -76,6 +85,12 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
|
||||
riderInfo.ThirdCarrierOrderId = v.VendorWaybillID
|
||||
switch riderInfo.LogisticsStatus {
|
||||
case 12: // 骑手接单
|
||||
riderInfo.LogisticsStatus = 12
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
||||
case 15: // 到店
|
||||
riderInfo.LogisticsStatus = 15
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED
|
||||
case 20: //配送中
|
||||
riderInfo.LogisticsStatus = 20
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP
|
||||
@@ -88,18 +103,15 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
case 115: // 取消
|
||||
riderInfo.LogisticsStatus = 100
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsCANCELDELIVERY
|
||||
case 15: // 到店
|
||||
riderInfo.LogisticsStatus = 15
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED
|
||||
case 22, 0: // 异常配送
|
||||
case 22, 0, 120: // 异常配送
|
||||
riderInfo.LogisticsStatus = 22
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsINDDELIVERYEXCEPTION
|
||||
case 12: // 骑手接单
|
||||
riderInfo.LogisticsStatus = 12
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
||||
default:
|
||||
continue
|
||||
}
|
||||
if riderInfo.LogisticsStatus != 22 && riderInfo.LogisticsStatus != 120 && riderInfo.LogisticsStatus != 0 {
|
||||
riderInfo.LogisticsContext += fmt.Sprintf("[%s:%s]", riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
}
|
||||
|
||||
if riderInfo.Longitude == "" {
|
||||
riderInfo.Longitude = utils.Float64ToStr(utils.Int2Float64(v.ConsigneeLng) / 1000000)
|
||||
@@ -124,11 +136,9 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
case model.VendorIDJDShop: // 京东商城
|
||||
case model.VendorIDWSC: // 微盟微商城
|
||||
case model.VendorIDDD: // 抖店小时达
|
||||
globals.SugarLogger.Debugf("riderInfo Order========:%s", utils.Format4Output(riderInfo, false))
|
||||
// 抖店由于发配送时运单id已经固定了,我们系统在重新发货,或者运单号发生改变时去推送信息时.抖店只识别第一个运单号所以在这儿修改成发单时的第一个运单号!
|
||||
riderInfo.ThirdCarrierOrderId = riderInfo.OrderId
|
||||
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
||||
globals.SugarLogger.Debugf("=====params := %s", utils.Format4Output(paramsMap, false))
|
||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
||||
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, paramsMap); err != nil {
|
||||
globals.SugarLogger.Errorf("Error pushing tiktok rider information :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err)
|
||||
|
||||
Reference in New Issue
Block a user