From 0124cf4bcd114ef5e4e8b9e243cdd2ee8bb8898c Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 29 Apr 2019 11:52:45 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A6=82=E6=9E=9C=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E6=84=8F=E7=94=A8=E6=88=B7=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E6=8A=8A=E4=B8=8A=E8=A7=A3?= =?UTF-8?q?=E9=94=81=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 9 +++++++++ business/jxcallback/scheduler/defsch/defsch.go | 2 +- business/partner/partner.go | 1 + controllers/jx_order.go | 5 ++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index cbbb990fa..e02e97ffa 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -497,6 +497,15 @@ func (c *OrderManager) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err er return err } +func (c *OrderManager) UpdateOrderFields(order *model.GoodsOrder, fieldList []string) (err error) { + db := orm.NewOrm() + utils.CallFuncLogError(func() error { + _, err = db.Update(order, fieldList...) + return err + }, "UpdateOrderFields orderID:%s failed with error:%v", order.VendorOrderID, err) + return err +} + //Waybill func (c *OrderManager) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) { globals.SugarLogger.Debugf("UpdateWaybillVendorID bill:%v", bill) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 0cf2a351a..691595efe 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -290,7 +290,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod status.Status == model.OrderStatusApplyFailedGetGoods || status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed { - if isPending { + if !isPending { if status.Status == model.OrderStatusApplyCancel { utils.CallFuncAsync(func() { weixinmsg.NotifyUserApplyCancel(savedOrderInfo.order, status.Remark) diff --git a/business/partner/partner.go b/business/partner/partner.go index 36490ed41..da2e7c53c 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -115,6 +115,7 @@ type IOrderManager interface { UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error) + UpdateOrderFields(order *model.GoodsOrder, fieldList []string) (err error) LoadWaybill(vendorWaybillID string, waybillVendorID int) (bill *model.Waybill, err error) OnOrderComments(orderCommentList []*model.OrderComment) (err error) diff --git a/controllers/jx_order.go b/controllers/jx_order.go index d9f05b48b..23ddf3ea4 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -489,7 +489,10 @@ func (c *OrderController) AgreeOrRefuseCancel() { c.callAgreeOrRefuseCancel(func(params *tOrderAgreeOrRefuseCancelParams) (retVal interface{}, errCode string, err error) { order, err := partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID) if err == nil { - err = defsch.FixedScheduler.AgreeOrRefuseCancel(params.Ctx, order, params.AcceptIt, params.Reason) + if err = defsch.FixedScheduler.AgreeOrRefuseCancel(params.Ctx, order, params.AcceptIt, params.Reason); err == nil && params.AcceptIt { + order.LockStatus = model.OrderStatusUnknown + err = partner.CurOrderManager.UpdateOrderFields(order, []string{"LockStatus"}) + } } return retVal, "", err })