- 如果不同意用户取消订单成功后,把上解锁订单

This commit is contained in:
gazebo
2019-04-29 11:52:45 +08:00
parent efdc78da59
commit 0124cf4bcd
4 changed files with 15 additions and 2 deletions

View File

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

View File

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

View File

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

View File

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