更新商户整单取消和部分取消接口

This commit is contained in:
邹宗楠
2024-03-07 14:56:45 +08:00
parent 146db82212
commit 738f1820d5
3 changed files with 140 additions and 54 deletions

View File

@@ -58,8 +58,16 @@ func GetMtSkuDetailInfo(ctx *jxcontext.Context, vendorOrderID string, vendorSkuN
Unit: mtSkuDetail.Unit, Unit: mtSkuDetail.Unit,
Price: utils.Float64TwoInt(mtSkuDetail.Price * float64(100)), Price: utils.Float64TwoInt(mtSkuDetail.Price * float64(100)),
DescImg: mtSkuDetail.PictureContents, DescImg: mtSkuDetail.PictureContents,
JdsStockSwitch: 1,
PreparationTime: 0,
MtAttribute: "",
// 京西创建是传入的属性
// [{"attr_id":"1200000088","attr_name":"品牌","valueList":[{"value":"其他"}]},{"attr_id":"1200000135","attr_name":"包装方式","valueList":[{"value_id":"1300000231","value":"袋装"}]}]
// 美团获取的属性,不太好转换,暂时不弄
// [{"attrId":1200000202,"attrName":"品种","setAttrId":true,"setAttrName":true,"setValueList":true,"valueList":[{"setValue":true,"setValueId":true,"value":"二荆条","valueId":1300015565}],"valueListIterator":[{"$ref":"$[0].valueList[0]"}],"valueListSize":1},{"attrId":1200000135,"attrName":"包装方式","setAttrId":true,"setAttrName":true,"setValueList":true,"valueList":[{"setValue":true,"setValueId":true,"value":"散装","valueId":1300000232}],"valueListIterator":[{"$ref":"$[1].valueList[0]"}],"valueListSize":1}]
}, },
Skus: nil, Skus: nil,
MtwmCategoryID: utils.Int2Str(mtSkuDetail.TagID),
} }
skus := make([]*model.SkuWithVendor, 0, 0) skus := make([]*model.SkuWithVendor, 0, 0)

View File

@@ -361,7 +361,16 @@ func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
p.postFakeMsg(order.VendorOrderID, fakeAcceptOrder) p.postFakeMsg(order.VendorOrderID, fakeAcceptOrder)
} else { } else {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, "bu") //err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, "bu")
err = api.EbaiAPI.OrderReverseApply(&ebaiapi.OrderReverseApplyParam{
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().Unix()),
RefundType: ebaiapi.MerchantOrderReverseApplyCancel,
ReasonCode: "7015",
ReasonRemarks: "",
NeedIvrUser: 0,
RefundProductList: nil,
})
} }
} }
return err return err
@@ -689,7 +698,16 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, reason) err = api.EbaiAPI.OrderReverseApply(&ebaiapi.OrderReverseApplyParam{
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().Unix()),
RefundType: ebaiapi.MerchantOrderReverseApplyCancel,
ReasonCode: "7015",
ReasonRemarks: reason,
NeedIvrUser: 0,
RefundProductList: nil,
})
//err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, reason)
} }
return err return err
} }
@@ -700,17 +718,48 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
err = c.PickupGoods(order, false, ctx.GetUserName()) err = c.PickupGoods(order, false, ctx.GetUserName())
} }
if err == nil { if err == nil {
var skuList []*ebaiapi.RefundSku //var skuList []*ebaiapi.RefundSku
for _, sku := range removedSkuList { //for _, sku := range removedSkuList {
skuList = append(skuList, &ebaiapi.RefundSku{ // skuList = append(skuList, &ebaiapi.RefundSku{
CustomeSkuID: utils.Int2Str(jxutils.GetSkuIDFromOrderSku(sku)), // CustomeSkuID: utils.Int2Str(jxutils.GetSkuIDFromOrderSku(sku)),
Number: utils.Int2Str(sku.Count), // Number: utils.Int2Str(sku.Count),
// })
//}
//if globals.EnableEbaiStoreWrite {
// err = api.EbaiAPI.OrderPartRefund(order.VendorOrderID, skuList)
//}
eabiApi := api.EbaiAPI
orderDetail, err := eabiApi.OrderGet2(order.VendorOrderID)
if err != nil {
return err
}
refundSkuList := make([]*ebaiapi.RefundProductListParam, 0, 0)
for _, r := range removedSkuList {
for _, v := range orderDetail.Products[0] {
if utils.Int2Str(jxutils.GetSkuIDFromOrderSku(r)) == v.CustomSkuID || r.VendorSkuID == v.BaiduProductID {
refundSkuList = append(refundSkuList, &ebaiapi.RefundProductListParam{
SubBizOrderId: v.SubBizOrderID,
PlatformSkuId: v.BaiduProductID,
Number: utils.Int2Str(r.Count),
RefundAmount: "",
FundCalculateType: "0",
}) })
} }
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderPartRefund(order.VendorOrderID, skuList)
} }
} }
// 部分退款
err = eabiApi.OrderReverseApply(&ebaiapi.OrderReverseApplyParam{
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().Unix()),
RefundType: ebaiapi.MerchantOrderReverseApplyPartCancel,
ReasonCode: "7015",
ReasonRemarks: reason,
NeedIvrUser: 1,
RefundProductList: refundSkuList,
})
}
return err return err
} }

View File

@@ -328,7 +328,14 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
if order.Status < model.OrderStatusEndBegin { if order.Status < model.OrderStatusEndBegin {
return fmt.Errorf("订单处于未结束状态,请稍后重试") return fmt.Errorf("订单处于未结束状态,请稍后重试")
} }
eabiApi := api.EbaiAPI
date, removerAll, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
if err != nil {
return err
}
//售后部分多次退款
if removerAll {
param := &ebaiapi.RefundOrderExamine{ param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: "", ReverseOrderId: "",
OrderId: order.VendorOrderID, OrderId: order.VendorOrderID,
@@ -337,11 +344,6 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
ReasonCode: "", ReasonCode: "",
ReasonRemarks: reason, ReasonRemarks: reason,
} }
date, removerAll, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
if err != nil {
return err
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
if date != nil && len(date) != model.NO { if date != nil && len(date) != model.NO {
for _, v := range date { for _, v := range date {
@@ -361,17 +363,44 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
} }
param.RefundProductList = refundProductList param.RefundProductList = refundProductList
} }
err = eabiApi.OrderAgreePartRefund(param)
//售后部分多次退款
if removerAll {
err = api.EbaiAPI.OrderAgreePartRefund(param)
} else { } else {
if reason == "" { orderDetail, err := eabiApi.OrderGet2(order.VendorOrderID)
return fmt.Errorf("拒绝退单时,请填写拒单原因") if err != nil {
}
if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil {
return err return err
} }
skuList2 := make([]*ebaiapi.RefundProductListParam, 0, 0)
for _, r := range refundSkuList {
for _, v := range orderDetail.Products[0] {
if utils.Int2Str(jxutils.GetSkuIDFromOrderSku(r)) == v.CustomSkuID || r.VendorSkuID == v.BaiduProductID {
skuList2 = append(skuList2, &ebaiapi.RefundProductListParam{
SubBizOrderId: v.SubBizOrderID,
PlatformSkuId: v.BaiduProductID,
Number: utils.Int2Str(r.Count),
RefundAmount: "",
FundCalculateType: "0",
})
}
}
}
// 部分退款
err = eabiApi.OrderReverseApply(&ebaiapi.OrderReverseApplyParam{
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().Unix()),
RefundType: ebaiapi.MerchantOrderReverseApplyPartCancel,
ReasonCode: "7015",
ReasonRemarks: reason,
NeedIvrUser: 1,
RefundProductList: skuList2,
})
//if reason == "" {
// return fmt.Errorf("拒绝退单时,请填写拒单原因")
//}
//if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil {
// return err
//}
} }
return err return err
} }