diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index 0c601adef..81de0173c 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -275,7 +275,6 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) { // 部分快递平台在取消成功后有时会不发运单取消消息过来(比如达达,904200512000442),为避免二次取消报错,添加状态判断 - //if c.IsReallyCallPlatformAPI && bill.Status != model.WaybillStatusCanceled { //此行测试用 if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled { if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil { if err = utils.CallFuncLogErrorWithInfo(func() error { @@ -283,8 +282,6 @@ func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, c return err } return nil - //order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID) - //return orderman.ResetCreateWaybillFee(nil, order, bill) }, "CancelWaybill bill:%v", bill); err == nil { bill.Status = model.WaybillStatusCanceled bill.DeliveryFlag |= model.WaybillDeliveryFlagMaskActiveCancel diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 9f9428bf1..5d73f342b 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -740,6 +740,8 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo } } + globals.SugarLogger.Debugf("bill===============%s", utils.Format4Output(bill, false)) + globals.SugarLogger.Debugf("order===============%s", utils.Format4Output(bill, false)) if err := orderman.ResetCreateWaybillFee(nil, order, bill); err != nil { globals.SugarLogger.Errorf("ResetCreateWaybillFee err : %v", err) } @@ -776,6 +778,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo order.Status = model.OrderStatusFinished order.OrderFinishedAt = time.Now() partner.CurOrderManager.UpdateOrderFields(order, []string{"status", "OrderFinishedAt"}) + if err := orderman.FinisOrderWaybillFee(nil, order, bill); err != nil { globals.SugarLogger.Debugf("FinisOrderWaybillFee count err : %v", err) } @@ -999,9 +1002,7 @@ func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) { func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) { for _, v := range savedOrderInfo.waybills { - if v.Status < model.WaybillStatusEndBegin && - !model.IsWaybillPlatformOwn(v) && - (bill2Keep == nil || !(v.WaybillVendorID == bill2Keep.WaybillVendorID && v.VendorWaybillID == bill2Keep.VendorWaybillID)) { + if v.Status < model.WaybillStatusEndBegin && !model.IsWaybillPlatformOwn(v) && (bill2Keep == nil || !(v.WaybillVendorID == bill2Keep.WaybillVendorID && v.VendorWaybillID == bill2Keep.VendorWaybillID)) { err2 := s.CancelWaybill(v, cancelReasonID, cancelReason) if err2 == nil { // 在这里就从map里删除,而不是等收到运单结束事件才删除,可避免不必要的重复取消(第二次取消还会失败) @@ -1011,8 +1012,7 @@ func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2 if err == nil { err = err2 } - partner.CurOrderManager.OnOrderMsg(savedOrderInfo.order, ""+ - "", err2.Error()) + partner.CurOrderManager.OnOrderMsg(savedOrderInfo.order, "", err2.Error()) } } diff --git a/business/jxcallback/scheduler/defsch/defsch_ext.go b/business/jxcallback/scheduler/defsch/defsch_ext.go index 009c8ac57..a3b3017f6 100644 --- a/business/jxcallback/scheduler/defsch/defsch_ext.go +++ b/business/jxcallback/scheduler/defsch/defsch_ext.go @@ -427,10 +427,6 @@ func (s *DefScheduler) CancelAll3rdWaybills(ctx *jxcontext.Context, vendorOrderI // 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度 savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true) if savedOrderInfo != nil { - // 查询三方运单是否为取消状态 - //for _, v := range savedOrderInfo.waybills { - // mtps, err := api.MtpsAPI.QueryOrderStatus(0, v.VendorWaybillID) - //} err = s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) } else { err = scheduler.ErrCanNotFindOrder diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 5601bafd8..65652cdbf 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -85,6 +85,7 @@ func (c *DeliveryHandler) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg } func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) { + globals.SugarLogger.Debugf("=======msg %s", utils.Format4Output(msg, false)) order := c.callbackMsg2Waybill(msg) // 多次取消,只处理第一次 if msg.Status == mtpsapi.OrderStatusCanceled {