- fixed bug when calling legacyWriteJxOrder.

This commit is contained in:
gazebo
2018-07-16 17:38:24 +08:00
parent 5e59317ec7
commit 77d1ea1d77
2 changed files with 40 additions and 40 deletions

View File

@@ -22,6 +22,44 @@ func NewOrderManager() *OrderController {
func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) { func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
db := orm.NewOrm() db := orm.NewOrm()
return c.saveOrder(order, false, db)
}
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder) (err error) {
db := orm.NewOrm()
isDuplicated, err := addOrderOrWaybillStatus(c.order2Status(order), db)
if err == nil && !isDuplicated {
err = utils.CallFuncLogError(func() error {
_, err = db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
return err
}, "OnAdjustOrder delete order")
if err != nil {
return err
}
err = utils.CallFuncLogError(func() error {
_, err = db.Raw("DELETE FROM goods_order WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
return err
}, "OnAdjustOrder delete order_sku")
if err != nil {
return err
}
}
return c.saveOrder(order, true, db)
}
func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) {
isDuplicated, err := c.addOrderStatus(orderStatus, nil)
if err == nil && !isDuplicated {
if globals.HandleLegacyJxOrder {
c.legacyJxOrderStatusChanged(orderStatus, nil)
}
}
return err
}
// private
func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.Ormer) (err error) {
isDuplicated, err := addOrderOrWaybillStatus(c.order2Status(order), db) isDuplicated, err := addOrderOrWaybillStatus(c.order2Status(order), db)
if !isDuplicated { if !isDuplicated {
c.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, order.ConsigneeMobile, order.StoreID, db, func(isAccept bool) { c.handleAutoAcceptOrder(order.VendorOrderID, order.VendorID, order.ConsigneeMobile, order.StoreID, db, func(isAccept bool) {
@@ -56,7 +94,7 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
} else { } else {
db.Commit() db.Commit()
if globals.HandleLegacyJxOrder { if globals.HandleLegacyJxOrder {
c.legacyWriteJxOrder(order, db, false) c.legacyWriteJxOrder(order, db, isAdjust)
} }
} }
} else { } else {
@@ -73,44 +111,6 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) {
return err return err
} }
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder) (err error) {
db := orm.NewOrm()
isDuplicated, err := addOrderOrWaybillStatus(c.order2Status(order), db)
if err == nil && !isDuplicated {
err = utils.CallFuncLogError(func() error {
_, err = db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
return err
}, "OnAdjustOrder delete order")
if err != nil {
return err
}
err = utils.CallFuncLogError(func() error {
_, err = db.Raw("DELETE FROM goods_order WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
return err
}, "OnAdjustOrder delete order_sku")
if err != nil {
return err
}
}
err = c.OnOrderNew(order)
if globals.HandleLegacyJxOrder && err == nil {
c.legacyWriteJxOrder(order, db, true)
}
return err
}
func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) {
isDuplicated, err := c.addOrderStatus(orderStatus, nil)
if err == nil && !isDuplicated {
if globals.HandleLegacyJxOrder {
c.legacyJxOrderStatusChanged(orderStatus, nil)
}
}
return err
}
// private
func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, db orm.Ormer) (err error) { func (c *OrderController) updateOrderSkuOtherInfo(orderSkus []*model.OrderSku, db orm.Ormer) (err error) {
var sql string var sql string
if orderSkus[0].VendorID == model.VendorIDJD { if orderSkus[0].VendorID == model.VendorIDJD {

View File

@@ -135,7 +135,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
sql = sql[:len(sql)-1] + ";" sql = sql[:len(sql)-1] + ";"
if _, err = db.Raw(sql, params...).Exec(); err != nil { if _, err = db.Raw(sql, params...).Exec(); err != nil {
db.Rollback() db.Rollback()
baseapi.SugarLogger.Infof("insert jxordersku2 error:%v", err) baseapi.SugarLogger.Infof("insert jxordersku error:%v", err)
} else { } else {
db.Commit() db.Commit()
vendorOrderID := utils.Str2Int64(order.VendorOrderID) vendorOrderID := utils.Str2Int64(order.VendorOrderID)