- fix bug in OrderManager.OnOrderComments

This commit is contained in:
gazebo
2019-03-13 18:06:29 +08:00
parent 0f7a3ab809
commit 8310a0b2cf
4 changed files with 41 additions and 8 deletions

View File

@@ -71,6 +71,17 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) (
db := dao.GetDB() db := dao.GetDB()
for _, orderComment := range orderCommentList { for _, orderComment := range orderCommentList {
globals.SugarLogger.Debugf("OnOrderComments, orderID:%s", orderComment.VendorOrderID) 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{ comment2 := &legacymodel.JxBadComments2{
OrderId: orderComment.VendorOrderID, OrderId: orderComment.VendorOrderID,
} }
@@ -98,9 +109,10 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) (
comment2.LastPushTime = utils.Time2Str(time.Now()) comment2.LastPushTime = utils.Time2Str(time.Now())
comment2.PushNo = 1 comment2.PushNo = 1
comment2.Maxmodifytime = int(orderComment.ModifyDuration) comment2.Maxmodifytime = int(orderComment.ModifyDuration)
if order == nil {
order, err2 := partner.CurOrderManager.LoadOrder(orderComment.VendorOrderID, orderComment.VendorID) order, err = partner.CurOrderManager.LoadOrder(orderComment.VendorOrderID, orderComment.VendorID)
if err = err2; err == nil { }
if err == nil {
orderComment.StoreID = jxutils.GetSaleStoreIDFromOrder(order) orderComment.StoreID = jxutils.GetSaleStoreIDFromOrder(order)
if orderComment.StoreID > 0 { if orderComment.StoreID > 0 {
comment2.Jxstoreid = utils.Int2Str(orderComment.StoreID) comment2.Jxstoreid = utils.Int2Str(orderComment.StoreID)

View File

@@ -339,13 +339,23 @@ func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db orm.Orm
return isDuplicated, err 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() db := orm.NewOrm()
order = &model.GoodsOrder{ order = &model.GoodsOrder{
VendorOrderID: vendorOrderID, VendorOrderID: vendorOrderID,
VendorID: vendorID, 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 = utils.CallFuncLogError(func() error {
_, err = db.QueryTable("order_sku").Filter("vendor_order_id", vendorOrderID).Filter("vendor_id", vendorID).All(&order.Skus) _, err = db.QueryTable("order_sku").Filter("vendor_order_id", vendorOrderID).Filter("vendor_id", vendorID).All(&order.Skus)
return err return err
@@ -360,6 +370,14 @@ func (c *OrderManager) LoadOrder(vendorOrderID string, vendorID int) (order *mod
return order, err 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) { func (c *OrderManager) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error) {
db := orm.NewOrm() db := orm.NewOrm()
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {

View File

@@ -43,7 +43,8 @@ const (
FieldName = "Name" FieldName = "Name"
FieldRemark = "Remark" FieldRemark = "Remark"
FieldVendoOrderID = "VendorOrderID" FieldVendorOrderID = "VendorOrderID"
FieldVendorOrderID2 = "VendorOrderID2"
) )
type ModelIDCUL struct { type ModelIDCUL struct {

View File

@@ -52,6 +52,8 @@ type IOrderManager interface {
OnWaybillStatusChanged(bill *model.Waybill) (err error) OnWaybillStatusChanged(bill *model.Waybill) (err error)
LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, 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) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error)
UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error)