This commit is contained in:
邹宗楠
2023-08-25 16:13:02 +08:00
parent ffec3b3fa2
commit ef9e074dd4
3 changed files with 83 additions and 14 deletions

View File

@@ -659,9 +659,27 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool, reason string) (err error) { func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool, reason string) (err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
if isAcceptIt { if isAcceptIt {
err = api.EbaiAPI.OrderAgreeRefund(order.VendorOrderID) err = api.EbaiAPI.OrderAgreeRefund(&ebaiapi.RefundOrderExamine{
ReverseOrderId: "",
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgree,
ReasonRemarks: reason,
})
} else { } else {
err = api.EbaiAPI.OrderDisagreeRefund(order.VendorOrderID, reason) if reason == "" {
return fmt.Errorf("拒绝退单时,请填写拒单原因")
}
err = api.EbaiAPI.OrderDisagreeRefund(&ebaiapi.RefundOrderExamine{
ReverseOrderId: "",
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgree,
ReasonCode: "7001",
ReasonRemarks: reason,
RefundProductList: "",
})
} }
} }
return err return err

View File

@@ -4,6 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"strings" "strings"
"time"
"git.rosy.net.cn/baseapi/platformapi/ebaiapi" "git.rosy.net.cn/baseapi/platformapi/ebaiapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
@@ -225,11 +226,32 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *ebaiapi.CallbackMsg) (order
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
if approveType == partner.AfsApproveTypeRefused { if approveType == partner.AfsApproveTypeRefused {
err = api.EbaiAPI.OrderDisagreeReturnGoods(order.VendorOrderID, order.AfsOrderID, reason) if reason == "" {
return fmt.Errorf("拒绝退单时请填写原因")
}
param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: order.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeRefuseGoods,
ReasonCode: "7001",
ReasonRemarks: reason,
RefundProductList: "",
}
err = api.EbaiAPI.OrderDisagreeReturnGoods(param)
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney { } else if approveType == partner.AfsApproveTypeRefusedToRefundMoney {
return errors.New("此平台暂时不支持") return errors.New("此平台暂时不支持")
} else { } else {
err = api.EbaiAPI.OrderAgreeReturnGoods(order.VendorOrderID, order.AfsOrderID) param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: order.AfsOrderID,
OrderId: order.VendorOrderID,
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgreeGoods,
ReasonCode: "",
ReasonRemarks: reason,
RefundProductList: "",
}
err = api.EbaiAPI.OrderAgreeReturnGoods(param)
} }
} }
return err return err
@@ -250,19 +272,41 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods
// 发起部分退款 售后/售中 // 发起部分退款 售后/售中
func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) { func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
//获取afsOrder
var afsOrderInfo *model.AfsOrder
result, err := api.EbaiAPI.OrderPartRefundGet(order.VendorOrderID)
if err != nil {
return err
}
afsOrderInfo = CurPurchaseHandler.AfsOrderDetail2Financial(result)
//售后部分多次退款 //售后部分多次退款
if order.Status > model.OrderStatusEndBegin { if order.Status > model.OrderStatusEndBegin {
//获取afsOrder param := &ebaiapi.RefundOrderExamine{
var afsOrderInfo *model.AfsOrder ReverseOrderId: afsOrderInfo.AfsOrderID,
result, err := api.EbaiAPI.OrderPartRefundGet(order.VendorOrderID) OrderId: afsOrderInfo.VendorOrderID,
if err != nil { IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
return err ActionType: ebaiapi.RefundTypeAgree,
} ReasonCode: "",
afsOrderInfo = CurPurchaseHandler.AfsOrderDetail2Financial(result) ReasonRemarks: reason,
if err := api.EbaiAPI.OrderAgreePartRefund(afsOrderInfo.VendorOrderID, orderSkus2AfsSkus(refundSkuList), afsOrderInfo.AfsOrderID); err != nil { RefundProductList: "",
return err
} }
err = api.EbaiAPI.OrderAgreePartRefund(param)
} else { } else {
if reason == "" {
return fmt.Errorf("拒绝退单时,请填写拒单原因")
}
//param := &ebaiapi.RefundOrderExamine{
// ReverseOrderId: afsOrderInfo.AfsOrderID,
// OrderId: afsOrderInfo.VendorOrderID,
// IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
// ActionType: ebaiapi.RefundTypeRefuse,
// ReasonCode: "7001",
// ReasonRemarks: reason,
// RefundProductList: "",
//}
//err = api.EbaiAPI.OrderPartRefund(param)
if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil { if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil {
return err return err
} }

View File

@@ -502,9 +502,16 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
if err != nil { if err != nil {
return err return err
} }
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param); err != nil { api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
err = api.DeliveryFinish(param)
if err != nil && strings.Contains(err.Error(), "并发操作,执行失败,请重试") {
time.Sleep(200 * time.Millisecond)
api.DeliveryFinish(param)
} else if err != nil {
return err return err
} }
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp) c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp)
} }
return err return err