From 48ad86b6f795a3a9a90f6300cafc5adee5cc2a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Nov 2020 11:37:37 +0800 Subject: [PATCH] =?UTF-8?q?ebai=E5=94=AE=E5=90=8E=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/ebai/order_afs.go | 38 ++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index f9f67f0c7..68c2c9e99 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -119,7 +119,43 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } } else { - err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) + if afsOrder2, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID); afsOrder2 == nil && err == nil { + partRefundData := msg.Data.(*ebaiapi.CBPartRefundInfo) + afsOrder := &model.AfsOrder{ + VendorID: model.VendorIDEBAI, + AfsOrderID: orderStatus.VendorOrderID, + VendorOrderID: orderStatus.RefVendorOrderID, + VendorStoreID: "", + StoreID: 0, + AfsCreatedAt: utils.Timestamp2Time(msg.Timestamp), + VendorAppealType: "", + AppealType: model.AfsAppealTypeRefund, + VendorReasonType: partRefundData.ReasonType, + ReasonType: c.convertAfsReasonType(partRefundData.ReasonType), + ReasonDesc: utils.LimitUTF8StringLen(buildFullReason(partRefundData.Reason, partRefundData.AdditionReason), 1024), + ReasonImgList: utils.LimitUTF8StringLen(strings.Join(partRefundData.Photos, ","), 1024), + RefundType: model.AfsTypePartRefund, + VendorOrgCode: msg.Source, + } + for _, sku := range partRefundData.RefundProducts { + orderSku := &model.OrderSkuFinancial{ + Count: sku.Number, + VendorSkuID: sku.SkuID, + SkuID: int(utils.Str2Int64WithDefault(sku.CustomSkuID, 0)), + Name: sku.Name, + UserMoney: sku.TotalRefund, + PmSkuSubsidyMoney: sku.ShopEleRefund, + } + afsOrder.SkuUserMoney += orderSku.UserMoney + afsOrder.PmSubsidyMoney += orderSku.PmSubsidyMoney + afsOrder.Skus = append(afsOrder.Skus, orderSku) + } + if afsOrder != nil { + err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) + } + } else { + err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) + } } retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil) }