diff --git a/business/jxcallback/orderman/oder_comment.go b/business/jxcallback/orderman/oder_comment.go index 6393c8d72..e2f2eeb3f 100644 --- a/business/jxcallback/orderman/oder_comment.go +++ b/business/jxcallback/orderman/oder_comment.go @@ -71,6 +71,17 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) ( db := dao.GetDB() for _, orderComment := range orderCommentList { globals.SugarLogger.Debugf("OnOrderComments, orderID:%s", orderComment.VendorOrderID) + var order *model.GoodsOrder + if orderComment.VendorID == model.VendorIDEBAI { + if realVendorID := jxutils.GetPossibleVendorIDFromVendorOrderID(orderComment.VendorOrderID); realVendorID == model.VendorIDELM { + if order, err = partner.CurOrderManager.LoadOrder2(orderComment.VendorOrderID, model.VendorIDEBAI); err == nil { + orderComment.VendorOrderID = order.VendorOrderID + } else { + globals.SugarLogger.Warnf("OnOrderComments, load orderID:%s failed", orderComment.VendorOrderID) + continue + } + } + } comment2 := &legacymodel.JxBadComments2{ OrderId: orderComment.VendorOrderID, } @@ -98,9 +109,10 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) ( comment2.LastPushTime = utils.Time2Str(time.Now()) comment2.PushNo = 1 comment2.Maxmodifytime = int(orderComment.ModifyDuration) - - order, err2 := partner.CurOrderManager.LoadOrder(orderComment.VendorOrderID, orderComment.VendorID) - if err = err2; err == nil { + if order == nil { + order, err = partner.CurOrderManager.LoadOrder(orderComment.VendorOrderID, orderComment.VendorID) + } + if err == nil { orderComment.StoreID = jxutils.GetSaleStoreIDFromOrder(order) if orderComment.StoreID > 0 { comment2.Jxstoreid = utils.Int2Str(orderComment.StoreID) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index e7a8fd94a..5080ab442 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -339,13 +339,23 @@ func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db orm.Orm return isDuplicated, err } -func (c *OrderManager) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) { +func (c *OrderManager) loadOrder(vendorOrderID, vendorOrderID2 string, vendorID int) (order *model.GoodsOrder, err error) { db := orm.NewOrm() order = &model.GoodsOrder{ - VendorOrderID: vendorOrderID, - VendorID: vendorID, + VendorOrderID: vendorOrderID, + VendorOrderID2: vendorOrderID2, + VendorID: vendorID, } - if err = db.Read(order, "VendorOrderID", "VendorID"); err == nil { + keyFields := []string{ + model.FieldVendorID, + } + if vendorOrderID != "" { + keyFields = append(keyFields, model.FieldVendorOrderID) + } + if vendorOrderID2 != "" { + keyFields = append(keyFields, model.FieldVendorOrderID2) + } + if err = db.Read(order, keyFields...); err == nil { err = utils.CallFuncLogError(func() error { _, err = db.QueryTable("order_sku").Filter("vendor_order_id", vendorOrderID).Filter("vendor_id", vendorID).All(&order.Skus) return err @@ -360,6 +370,14 @@ func (c *OrderManager) LoadOrder(vendorOrderID string, vendorID int) (order *mod return order, err } +func (c *OrderManager) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) { + return c.loadOrder(vendorOrderID, "", vendorID) +} + +func (c *OrderManager) LoadOrder2(vendorOrderID2 string, vendorID int) (order *model.GoodsOrder, err error) { + return c.loadOrder("", vendorOrderID2, vendorID) +} + func (c *OrderManager) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error) { db := orm.NewOrm() utils.CallFuncLogError(func() error { diff --git a/business/model/model.go b/business/model/model.go index 1d9a5b171..0852b120a 100644 --- a/business/model/model.go +++ b/business/model/model.go @@ -43,7 +43,8 @@ const ( FieldName = "Name" FieldRemark = "Remark" - FieldVendoOrderID = "VendorOrderID" + FieldVendorOrderID = "VendorOrderID" + FieldVendorOrderID2 = "VendorOrderID2" ) type ModelIDCUL struct { diff --git a/business/partner/partner.go b/business/partner/partner.go index 300c185bc..2899bd87f 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -52,6 +52,8 @@ type IOrderManager interface { OnWaybillStatusChanged(bill *model.Waybill) (err error) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) + LoadOrder2(vendorOrderID2 string, vendorID int) (order *model.GoodsOrder, err error) + UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error)