diff --git a/business/controller/order.go b/business/controller/order.go index e60b299c8..bc975e910 100644 --- a/business/controller/order.go +++ b/business/controller/order.go @@ -22,6 +22,44 @@ func NewOrderManager() *OrderController { func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) { 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) if !isDuplicated { 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 { db.Commit() if globals.HandleLegacyJxOrder { - c.legacyWriteJxOrder(order, db, false) + c.legacyWriteJxOrder(order, db, isAdjust) } } } else { @@ -73,44 +111,6 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder) (err error) { 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) { var sql string if orderSkus[0].VendorID == model.VendorIDJD { diff --git a/business/controller/order_legacy.go b/business/controller/order_legacy.go index b12e95869..572595ff9 100644 --- a/business/controller/order_legacy.go +++ b/business/controller/order_legacy.go @@ -135,7 +135,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm sql = sql[:len(sql)-1] + ";" if _, err = db.Raw(sql, params...).Exec(); err != nil { db.Rollback() - baseapi.SugarLogger.Infof("insert jxordersku2 error:%v", err) + baseapi.SugarLogger.Infof("insert jxordersku error:%v", err) } else { db.Commit() vendorOrderID := utils.Str2Int64(order.VendorOrderID)