This commit is contained in:
邹宗楠
2024-12-04 09:15:05 +08:00
parent f66b3ff1c9
commit 36a0ae7b6f
12 changed files with 229 additions and 16 deletions

View File

@@ -90,3 +90,50 @@ func (c *PurchaseHandler) makeAfsOrderInfoReverseRefund(msg *ebaiapi.CallbackMsg
}
return afsOrder, nil
}
func (c *PurchaseHandler) makeAfsOrderInfoMerchantAgreed(msg *ebaiapi.CallbackMsg, orderStatus *model.OrderStatus) (*model.AfsOrder, error) {
var afsOrder *model.AfsOrder
partRefundData := msg.Data.(*ebaiapi.CBUserCancelInfo)
afsOrder = &model.AfsOrder{
VendorID: model.VendorIDEBAI,
AfsOrderID: orderStatus.VendorOrderID,
VendorOrderID: orderStatus.RefVendorOrderID,
VendorStoreID: utils.Int2Str(partRefundData.PlatformShopId),
StoreID: 0,
AfsCreatedAt: utils.Timestamp2Time(msg.Timestamp),
VendorAppealType: "",
AppealType: model.AfsAppealTypeRefund,
VendorReasonType: utils.Int2Str(partRefundData.ReasonCode),
ReasonType: c.convertAfsReasonType(utils.Int2Str(partRefundData.ReasonCode)),
ReasonDesc: utils.LimitUTF8StringLen(partRefundData.CancelReason, 1024),
ReasonImgList: utils.LimitUTF8StringLen(strings.Join(partRefundData.Pictures, ","), 1024),
RefundType: model.AfsTypePartRefund,
VendorOrgCode: msg.Source,
}
// 查询售后列表
refundSku, _, err := api.EbaiAPI.GetReverseOrder(orderStatus.RefVendorOrderID)
if err == nil {
refundSkuList := make([]*ebaiapi.ReverseSkuList, 0, len(refundSku))
refundByte, _ := json.Marshal(refundSku)
if err = json.Unmarshal(refundByte, &refundSkuList); err != nil {
return nil, err
}
for _, sku := range refundSkuList {
if sku.SkuName == "配送费" || sku.SkuName == "包装费" {
continue
}
orderSku := &model.OrderSkuFinancial{
Count: sku.RefundQuantity,
VendorSkuID: utils.Int64ToStr(sku.PlatformSkuId),
SkuID: utils.Str2Int(sku.CustomSkuId),
Name: sku.SkuName,
UserMoney: int64(sku.RefundUserAmount),
PmSkuSubsidyMoney: int64(sku.DiscountDetail.PlatformDiscountAmount),
}
afsOrder.SkuUserMoney += orderSku.UserMoney
afsOrder.PmSubsidyMoney += orderSku.PmSubsidyMoney
afsOrder.Skus = append(afsOrder.Skus, orderSku)
}
}
return afsOrder, nil
}