1
This commit is contained in:
@@ -39,37 +39,46 @@ func (p *PurchaseHandler) GetWaybillStatusFromVendorStatus(vendorStatus string)
|
||||
|
||||
func (c *PurchaseHandler) onWaybillMsg(tag, orderId string, data interface{}) *tiktok_api.CallbackResponse {
|
||||
waybill := c.callbackMsg2Waybill(tag, orderId, data)
|
||||
if localOrder, err := partner.CurOrderManager.LoadOrder(waybill.VendorOrderID, model.VendorIDDD); err == nil {
|
||||
err := partner.CurOrderManager.OnWaybillStatusChanged(waybill)
|
||||
if err == nil {
|
||||
status := &model.OrderStatus{
|
||||
VendorOrderID: waybill.VendorOrderID,
|
||||
VendorID: model.VendorIDDD,
|
||||
OrderType: model.OrderTypeWaybill,
|
||||
RefVendorOrderID: waybill.VendorOrderID,
|
||||
RefVendorID: model.VendorIDDD,
|
||||
Status: waybill.Status,
|
||||
VendorStatus: waybill.VendorStatus,
|
||||
StatusTime: time.Now(),
|
||||
DuplicatedCount: 0,
|
||||
Remark: "",
|
||||
ModelTimeInfo: model.ModelTimeInfo{
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
},
|
||||
}
|
||||
err = partner.CurOrderManager.OnOrderStatusChanged(localOrder.VendorOrgCode, status)
|
||||
if err != nil {
|
||||
partner.CurOrderManager.OnOrderMsg(localOrder, "", "抖店运单骑手状态修改异常:"+err.Error())
|
||||
}
|
||||
if status.VendorStatus == utils.Int2Str(tiktok_api.ShipmentStatusCanceled) {
|
||||
localOrder.Status = model.WaybillStatusCourierArrived
|
||||
dao.UpdateEntity(dao.GetDB(), localOrder, "Status")
|
||||
localOrder, _ := partner.CurOrderManager.LoadOrder(waybill.VendorOrderID, model.VendorIDDD)
|
||||
// 当前订单的运力状态发生变化时,抖店侧会对open侧推送消息。当前运力状态变化的原因有两个来源:1:呼叫平台运力,平台运力有变化,此时会推送消息;2:商家自配,erp通过回传配送状态触发运力状态变化,此时也会推送消息
|
||||
// 问题:当前两种消息来源是没有区分的,都是统一发送消息,但erp侧针对不同的情况有特殊处理,因此需要区分这两种消息
|
||||
// 当本地记录骑手数据(非抖音平台运单)与当前运单匹配上是,就直接返回
|
||||
if waybill.CourierName != "" && waybill.CourierMobile != "" {
|
||||
localWaybill, _ := dao.GetWaybills(dao.GetDB(), localOrder.VendorOrderID, nil)
|
||||
for _, v := range localWaybill {
|
||||
if v.CourierName != "" && v.CourierMobile != "" && v.WaybillVendorID != model.VendorIDDD && v.CourierName == waybill.CourierName && v.CourierMobile == waybill.CourierMobile {
|
||||
return tiktok_api.Err2CallbackResponse(nil, "")
|
||||
}
|
||||
}
|
||||
return tiktok_api.Err2CallbackResponse(err, "")
|
||||
}
|
||||
return tiktok_api.Err2CallbackResponse(nil, "")
|
||||
err := partner.CurOrderManager.OnWaybillStatusChanged(waybill)
|
||||
if err == nil {
|
||||
status := &model.OrderStatus{
|
||||
VendorOrderID: waybill.VendorOrderID,
|
||||
VendorID: model.VendorIDDD,
|
||||
OrderType: model.OrderTypeWaybill,
|
||||
RefVendorOrderID: waybill.VendorOrderID,
|
||||
RefVendorID: model.VendorIDDD,
|
||||
Status: waybill.Status,
|
||||
VendorStatus: waybill.VendorStatus,
|
||||
StatusTime: time.Now(),
|
||||
DuplicatedCount: 0,
|
||||
Remark: "",
|
||||
ModelTimeInfo: model.ModelTimeInfo{
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
},
|
||||
}
|
||||
err = partner.CurOrderManager.OnOrderStatusChanged(localOrder.VendorOrgCode, status)
|
||||
if err != nil {
|
||||
partner.CurOrderManager.OnOrderMsg(localOrder, "", "抖店运单骑手状态修改异常:"+err.Error())
|
||||
}
|
||||
if status.VendorStatus == utils.Int2Str(tiktok_api.ShipmentStatusCanceled) {
|
||||
localOrder.Status = model.WaybillStatusCourierArrived
|
||||
dao.UpdateEntity(dao.GetDB(), localOrder, "Status")
|
||||
}
|
||||
}
|
||||
return tiktok_api.Err2CallbackResponse(err, "")
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interface{}) (retVal *model.Waybill) {
|
||||
|
||||
Reference in New Issue
Block a user