From 510b9e8483cc11d83ca6b2b92447e328162aa864 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 8 Jan 2020 11:38:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=84=E7=90=86=E6=8A=95?= =?UTF-8?q?=E9=80=92=E5=A4=B1=E8=B4=A5=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/scheduler/defsch/defsch.go | 57 +++++++++++-------- business/model/dao/dao_order.go | 2 +- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index fa5e9cc67..8178a542b 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -406,8 +406,15 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod } if !isPending { if status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed { - s.updateOrderByBill(order, nil, status.Status != model.OrderStatusAgreeFailedGetGoods) + s.updateOrderByBill(order, nil, false) //status.Status != model.OrderStatusAgreeFailedGetGoods) s.removeWaybillFromMap(savedOrderInfo, order.VendorID) + clearFlag := 0 + if status.Status == model.OrderStatusAgreeFailedGetGoods { + clearFlag = model.OrderFlagMaskFailedGetGoods + } else if status.Status == model.OrderFlagMaskFailedDeliver { + clearFlag = model.OrderFlagMaskFailedDeliver + } + dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, clearFlag) } } } @@ -427,7 +434,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed { if status.Status == model.OrderStatusApplyFailedGetGoods { - dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, ^(model.OrderFlagMaskFailedGetGoods | model.OrderFlagMaskCallPMCourier)) + dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, model.OrderFlagMaskFailedGetGoods|model.OrderFlagMaskCallPMCourier) } if status.Status == model.OrderStatusApplyCancel { s.notifyUserApplyCancel(savedOrderInfo.order, status.Remark) @@ -1166,7 +1173,8 @@ func isNeedWatchWaybillTip(order *model.GoodsOrder) bool { func isNeedWatch3rdWaybill(order *model.GoodsOrder) bool { return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusDelivering) && // 订单状态 order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled == 0 && // 没有禁止调度 - !model.IsOrderHaveWaybill(order) // 没有有效运单 + !model.IsOrderHaveWaybill(order) && // 没有有效运单 + order.LockStatus == model.OrderStatusUnknown } func (s *DefScheduler) setWatchOrderWaybills(savedOrderInfo *WatchOrderInfo, duration time.Duration) { @@ -1219,27 +1227,28 @@ func (s *DefScheduler) watchOrderWaybills(savedOrderInfo *WatchOrderInfo) { // } // partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark) // } - if handler, ok := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).(partner.IAddWaybillTip); ok && handler != nil { - var remark string - tipFee := getWaybillTip(order) - vendorStatus := fmt.Sprintf("设置小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee)) - tipFee2Add := tipFee - order.WaybillTipMoney - vendorStatus += fmt.Sprintf(", 本次添加:%s", jxutils.IntPrice2StandardCurrencyString(tipFee2Add)) - if false { //tipFee2Add > 0 { - err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order.VendorOrgCode, order.VendorStoreID, order.VendorOrderID, order.VendorOrderID, "", "", tipFee) - if err == nil { - vendorStatus += "成功" - order.WaybillTipMoney = tipFee - partner.CurOrderManager.UpdateOrderFields(order, []string{"WaybillTipMoney"}) - } else { - vendorStatus += "失败" - remark = fmt.Sprint(err) - } - } else { - vendorStatus += "空操作" - } - partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark) - } + + // if handler, ok := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).(partner.IAddWaybillTip); ok && handler != nil { + // var remark string + // tipFee := getWaybillTip(order) + // vendorStatus := fmt.Sprintf("设置小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee)) + // tipFee2Add := tipFee - order.WaybillTipMoney + // vendorStatus += fmt.Sprintf(", 本次添加:%s", jxutils.IntPrice2StandardCurrencyString(tipFee2Add)) + // if false { //tipFee2Add > 0 { + // err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order.VendorOrgCode, order.VendorStoreID, order.VendorOrderID, order.VendorOrderID, "", "", tipFee) + // if err == nil { + // vendorStatus += "成功" + // order.WaybillTipMoney = tipFee + // partner.CurOrderManager.UpdateOrderFields(order, []string{"WaybillTipMoney"}) + // } else { + // vendorStatus += "失败" + // remark = fmt.Sprint(err) + // } + // } else { + // vendorStatus += "空操作" + // } + // partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark) + // } } if savedOrderInfo.isNeedCreate3rdWaybill { s.createWaybillOn3rdProviders(savedOrderInfo, 0, nil) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 9c27c266d..38895b91d 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -220,7 +220,7 @@ func ClearOrderFlag(db *DaoDB, userName string, vendorOrderID string, vendorID i UPDATE goods_order SET flag = flag & ? WHERE vendor_order_id = ? AND vendor_id = ? - `, flag, vendorOrderID, vendorID) + `, ^flag, vendorOrderID, vendorID) return err }