This commit is contained in:
邹宗楠
2023-11-08 15:14:39 +08:00
parent 2713997e37
commit a76269a4e9

View File

@@ -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) {