- OnWaybillStatusChanged与OnAfsOrderStatusChanged中的事务处理调整

This commit is contained in:
gazebo
2019-05-30 12:19:10 +08:00
parent 7ffad7e217
commit 0964a796d9
2 changed files with 8 additions and 4 deletions

View File

@@ -166,17 +166,17 @@ func (c *OrderManager) OnAfsOrderStatusChanged(orderStatus *model.OrderStatus) (
c.setAfsOrderID(db, orderStatus)
dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
if r := recover(); r != nil {
dao.Rollback(db)
if r != nil {
panic(r)
}
panic(r)
}
}()
isDuplicated, afsOrder, err := c.addAfsOrderStatus(db, orderStatus)
if err != nil || isDuplicated {
if err == nil {
dao.Commit(db)
} else {
dao.Rollback(db)
}
return err
}

View File

@@ -104,6 +104,7 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
if err2 != nil {
if dao.IsNoRowsError(err2) || err2 == ErrCanNotFindWaybill {
if isDuplicated, err = w.onWaybillNew(bill, db); err != nil {
dao.Rollback(db)
return err
}
existingBill = bill
@@ -111,11 +112,13 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
billCopy.Status = model.WaybillStatusNew
scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false)
} else {
dao.Rollback(db)
return err2
}
}
// 运单消息错序,之前已经结束了,直接返回
if existingBill.Status >= model.WaybillStatusEndBegin {
dao.Commit(db)
return nil
}
}
@@ -138,6 +141,7 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
}
duplicatedCount, err = w.addWaybillStatus(bill, db, addParams)
if err != nil {
dao.Rollback(db)
return err
}
}