- fix bug in onWaybillNew, jd and elm self waybillID always as orderID

This commit is contained in:
gazebo
2018-07-27 15:06:51 +08:00
parent be1ee10fe6
commit 7ac054afed
3 changed files with 26 additions and 13 deletions

View File

@@ -56,7 +56,7 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus st
status.VendorStatus = msgVendorStatus
isDuplicated, err := addOrderOrWaybillStatus(status, db)
if err == nil && !isDuplicated {
if err = c.saveOrder(order, false, db); err == nil {
if isDuplicated, err = c.saveOrder(order, false, db); err == nil && !isDuplicated {
err = scheduler.CurrentScheduler.OnOrderNew(order, false)
weixinmsg.NotifyNewOrder(order)
}
@@ -89,7 +89,7 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus
if err != nil {
return err
}
if err = c.saveOrder(order, true, db); err == nil {
if isDuplicated, err = c.saveOrder(order, true, db); err == nil && !isDuplicated {
// 因为订单调度器需要的是真实状态所以用order的状态
err = scheduler.CurrentScheduler.OnOrderNew(order, false)
err = scheduler.CurrentScheduler.OnOrderStatusChanged(model.Order2Status(order), false)
@@ -111,7 +111,7 @@ func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (
}
// private
func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.Ormer) (err error) {
func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.Ormer) (isDuplicated bool, err error) {
// 忽略查找JX信息错误
c.updateOrderOtherInfo(order, db)
order.ID = 0
@@ -157,6 +157,7 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
}
}
} else {
isDuplicated = true
order.DuplicatedCount++
db.Update(order, "DuplicatedCount")
db.Commit()
@@ -166,7 +167,7 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
db.Rollback()
globals.SugarLogger.Warnf("saveOrder create order:%v, error:%v", order, err)
}
return err
return isDuplicated, err
}
func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, db orm.Ormer) (err error) {