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 {
|
func (c *PurchaseHandler) onWaybillMsg(tag, orderId string, data interface{}) *tiktok_api.CallbackResponse {
|
||||||
waybill := c.callbackMsg2Waybill(tag, orderId, data)
|
waybill := c.callbackMsg2Waybill(tag, orderId, data)
|
||||||
if localOrder, err := partner.CurOrderManager.LoadOrder(waybill.VendorOrderID, model.VendorIDDD); err == nil {
|
localOrder, _ := partner.CurOrderManager.LoadOrder(waybill.VendorOrderID, model.VendorIDDD)
|
||||||
err := partner.CurOrderManager.OnWaybillStatusChanged(waybill)
|
// 当前订单的运力状态发生变化时,抖店侧会对open侧推送消息。当前运力状态变化的原因有两个来源:1:呼叫平台运力,平台运力有变化,此时会推送消息;2:商家自配,erp通过回传配送状态触发运力状态变化,此时也会推送消息
|
||||||
if err == nil {
|
// 问题:当前两种消息来源是没有区分的,都是统一发送消息,但erp侧针对不同的情况有特殊处理,因此需要区分这两种消息
|
||||||
status := &model.OrderStatus{
|
// 当本地记录骑手数据(非抖音平台运单)与当前运单匹配上是,就直接返回
|
||||||
VendorOrderID: waybill.VendorOrderID,
|
if waybill.CourierName != "" && waybill.CourierMobile != "" {
|
||||||
VendorID: model.VendorIDDD,
|
localWaybill, _ := dao.GetWaybills(dao.GetDB(), localOrder.VendorOrderID, nil)
|
||||||
OrderType: model.OrderTypeWaybill,
|
for _, v := range localWaybill {
|
||||||
RefVendorOrderID: waybill.VendorOrderID,
|
if v.CourierName != "" && v.CourierMobile != "" && v.WaybillVendorID != model.VendorIDDD && v.CourierName == waybill.CourierName && v.CourierMobile == waybill.CourierMobile {
|
||||||
RefVendorID: model.VendorIDDD,
|
return tiktok_api.Err2CallbackResponse(nil, "")
|
||||||
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, "")
|
|
||||||
}
|
}
|
||||||
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) {
|
func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interface{}) (retVal *model.Waybill) {
|
||||||
|
|||||||
Reference in New Issue
Block a user