From 1bda4d6058e62bb779b8bd3e85c0ecc4af7d2d94 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 28 Nov 2019 18:54:52 +0800 Subject: [PATCH] +OrderManager.CreateAfsOrderFromOrder --- business/jxcallback/orderman/order_afs.go | 45 +++++++++++++++++++- business/partner/partner.go | 1 + business/partner/purchase/ebai/order_afs.go | 17 +++++++- business/partner/purchase/mtwm/order_afs.go | 46 ++++----------------- 4 files changed, 66 insertions(+), 43 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 942271fb2..f550d9555 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -38,7 +38,7 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { db := dao.GetDB() - // globals.SugarLogger.Debugf("onAfsOrderNew1 afsOrder:%s", utils.Format4Output(afsOrder, true)) + globals.SugarLogger.Debugf("onAfsOrderNew1 orderID:%s", afsOrder.VendorOrderID) c.setAfsOrderID(db, orderStatus) if afsOrder.AfsOrderID == "" { afsOrder.AfsOrderID = orderStatus.VendorOrderID @@ -49,7 +49,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode if afsOrder.Status == model.OrderStatusUnknown { afsOrder.Status = orderStatus.Status } - // globals.SugarLogger.Debugf("onAfsOrderNew2 afsOrder:%s", utils.Format4Output(afsOrder, true)) + globals.SugarLogger.Debugf("onAfsOrderNew2 orderID:%s", afsOrder.VendorOrderID) dao.Begin(db) defer func() { if r := recover(); r != nil || err != nil { @@ -374,3 +374,44 @@ func composeAfsOrderID(vendorOrderID string, index int) (afsOrderID string) { utils.Int2Str(index), }, "-") } + +func (c *OrderManager) CreateAfsOrderFromOrder(vendorOrderID string, vendorID int) (afsOrder *model.AfsOrder, err error) { + order, err := c.LoadOrder(vendorOrderID, vendorID) + // globals.SugarLogger.Debug(utils.Format4Output(order, false)) + if err == nil { + afsOrder = &model.AfsOrder{ + VendorID: vendorID, + VendorOrderID: vendorOrderID, + JxStoreID: order.JxStoreID, + VendorStoreID: order.VendorStoreID, + StoreID: order.StoreID, + } + } else { + globals.SugarLogger.Warnf("CreateAfsOrderFromOrder, orderID:%s is not found from partner.CurOrderManager.LoadOrder", vendorOrderID) + return nil, err + } + + for _, sku := range order.Skus { + orderSkuFinancial := &model.OrderSkuFinancial{ + VendorID: sku.VendorID, + VendorOrderID: sku.VendorOrderID, + // OrderFinancialID: sku.VendorOrderID, + // ConfirmTime: afsOrder.AfsCreateAt, + VendorStoreID: afsOrder.VendorStoreID, + StoreID: afsOrder.StoreID, + JxStoreID: afsOrder.JxStoreID, + VendorSkuID: sku.VendorSkuID, + SkuID: sku.SkuID, + PromotionType: sku.PromotionType, + Name: sku.SkuName, + ShopPrice: sku.ShopPrice, + SalePrice: sku.SalePrice, + Count: sku.Count, + // UserMoney: sku.UserMoney, + // PmSubsidyMoney: sku.PmSubsidyMoney, + IsAfsOrder: 1, + } + afsOrder.Skus = append(afsOrder.Skus, orderSkuFinancial) + } + return afsOrder, nil +} diff --git a/business/partner/partner.go b/business/partner/partner.go index b78cb21e8..7327885f9 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -93,6 +93,7 @@ type IOrderManager interface { OnWaybillStatusChanged(bill *model.Waybill) (err error) + CreateAfsOrderFromOrder(vendorOrderID string, vendorID int) (afsOrder *model.AfsOrder, err error) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) LoadOrder2(vendorOrderID2 string, vendorID int) (order *model.GoodsOrder, err error) diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index 05da43af4..eb499879e 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -101,8 +101,9 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia afsOrder.Skus = append(afsOrder.Skus, orderSku) } } else if msg.Cmd == ebaiapi.CmdOrderUserCancel { - if orderFinancial, err2 := partner.CurOrderManager.LoadOrderFinancial(orderStatus.RefVendorOrderID, model.VendorIDEBAI); err2 == nil { - afsOrder = c.OrderFinancialDetail2Refund(orderFinancial, msg) + if afsOrder := c.createAfsOrder(msg); afsOrder != nil { + // if orderFinancial, err2 := partner.CurOrderManager.LoadOrderFinancial(orderStatus.RefVendorOrderID, model.VendorIDEBAI); err2 == nil { + // afsOrder = c.OrderFinancialDetail2Refund(orderFinancial, msg) cancelData := msg.Data.(*ebaiapi.CBUserCancelInfo) afsOrder.AfsOrderID = orderStatus.VendorOrderID afsOrder.RefundType = model.AfsTypeFullRefund @@ -124,6 +125,18 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia return retVal } +func (p *PurchaseHandler) createAfsOrder(msg *ebaiapi.CallbackMsg) (afsOrder *model.AfsOrder) { + cancelData := msg.Data.(*ebaiapi.CBUserCancelInfo) + afsOrder, err := partner.CurOrderManager.CreateAfsOrderFromOrder(utils.Int64ToStr(cancelData.OrderID), model.VendorIDEBAI) + if err == nil { + afsOrder.AfsOrderID = afsOrder.VendorOrderID + afsOrder.AfsCreatedAt = utils.Timestamp2Time(msg.Timestamp) + } else { + afsOrder = nil + } + return afsOrder +} + func (c *PurchaseHandler) convertAfsReasonType(vendorReasonType string) int8 { return model.AfsReasonNotOthers } diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 7928e33bc..70a4a65d9 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -142,47 +142,15 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma } func (p *PurchaseHandler) createAfsOrder(orderData url.Values) (afsOrder *model.AfsOrder) { - afsOrder = &model.AfsOrder{ - VendorID: model.VendorIDMTWM, - AfsOrderID: orderData.Get("refund_id"), - VendorOrderID: orderData.Get("order_id"), - AfsCreatedAt: utils.Timestamp2Time(utils.Str2Int64(orderData.Get("timestamp"))), - } - if afsOrder.AfsOrderID == "" { - afsOrder.AfsOrderID = afsOrder.VendorOrderID - } - order, err := partner.CurOrderManager.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID) - globals.SugarLogger.Debug(utils.Format4Output(order, false)) + afsOrder, err := partner.CurOrderManager.CreateAfsOrderFromOrder(orderData.Get("refund_id"), model.VendorIDMTWM) if err == nil { - afsOrder.JxStoreID = order.JxStoreID - afsOrder.VendorStoreID = order.VendorStoreID - afsOrder.StoreID = order.StoreID - } else { - globals.SugarLogger.Warnf("mtwm AfsOrderDetail2Financial, afsOrderID:%s is not found from partner.CurOrderManager.LoadOrder", afsOrder.VendorOrderID) - return nil - } - - for _, sku := range order.Skus { - orderSkuFinancial := &model.OrderSkuFinancial{ - VendorID: sku.VendorID, - VendorOrderID: sku.VendorOrderID, - // OrderFinancialID: sku.VendorOrderID, - // ConfirmTime: afsOrder.AfsCreateAt, - VendorStoreID: afsOrder.VendorStoreID, - StoreID: afsOrder.StoreID, - JxStoreID: afsOrder.JxStoreID, - VendorSkuID: sku.VendorSkuID, - SkuID: sku.SkuID, - PromotionType: sku.PromotionType, - Name: sku.SkuName, - ShopPrice: sku.ShopPrice, - SalePrice: sku.SalePrice, - Count: sku.Count, - // UserMoney: sku.UserMoney, - // PmSubsidyMoney: sku.PmSubsidyMoney, - IsAfsOrder: 1, + afsOrder.AfsOrderID = orderData.Get("refund_id") + afsOrder.AfsCreatedAt = utils.Timestamp2Time(utils.Str2Int64(orderData.Get("timestamp"))) + if afsOrder.AfsOrderID == "" { + afsOrder.AfsOrderID = afsOrder.VendorOrderID } - afsOrder.Skus = append(afsOrder.Skus, orderSkuFinancial) + } else { + afsOrder = nil } return afsOrder }