1
This commit is contained in:
89
business/partner/purchase/ebai/order_afs_ex.go
Normal file
89
business/partner/purchase/ebai/order_afs_ex.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package ebai
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (c *PurchaseHandler) makeAfsOrderInfoPartRefund(msg *ebaiapi.CallbackMsg, orderStatus *model.OrderStatus) *model.AfsOrder {
|
||||
var afsOrder *model.AfsOrder
|
||||
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)
|
||||
}
|
||||
return afsOrder
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) makeAfsOrderInfoReverseRefund(msg *ebaiapi.CallbackMsg, orderStatus *model.OrderStatus) (*model.AfsOrder, error) {
|
||||
var afsOrder *model.AfsOrder
|
||||
partRefundData := msg.Data.(*ebaiapi.CBOrderReversePush)
|
||||
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.CurReverseEvent.ReasonCode),
|
||||
ReasonType: c.convertAfsReasonType(utils.Int2Str(partRefundData.CurReverseEvent.ReasonCode)),
|
||||
ReasonDesc: utils.LimitUTF8StringLen(partRefundData.CurReverseEvent.RefundReasonDesc, 1024),
|
||||
ReasonImgList: utils.LimitUTF8StringLen(strings.Join(partRefundData.CurReverseEvent.ImageList, ","), 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 {
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user