This commit is contained in:
邹宗楠
2022-11-08 17:26:59 +08:00
parent 8ea91ef1a0
commit 2a0e5d85a5
3 changed files with 106 additions and 5 deletions

View File

@@ -663,6 +663,25 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode
return "", err
}
const (
AfterSaleEmuAgreeToReturnOneApply = 101 // 同意退货申请(一次审核)不接 Logistics.ReceiverAddressId 或 Logistics.AfterSaleAddressDetail
AfterSaleEmuRefuseToReturnOneApply = 102 // 拒绝退货申请(一次审核) reason , evidence
AfterSaleEmuAgreeToReturnTwoApply = 111 // 同意退货(二次审核) 不接
AfterSaleEmuRefuseToReturnTwoApply = 112 // 拒绝退货 (二次审核) reason , evidence
AfterSaleEmuReturnGoodsToRefundApply = 121 // 退货转退款
AfterSaleEmuAgreeOnlyRefundApply = 201 // 同意仅退款
AfterSaleEmuRefuseOnlyRefundApply = 202 // 拒绝仅退款 reason , evidence
AfterSaleEmuRefundAfterRefusalApply = 203 // 同意拒签后退款 不接
AfterSaleEmuAgreeChangeGoodsOneApply = 301 // 同意换货申请(一次审核) 不接 Logistics.ReceiverAddressId 或 Logistics.AfterSaleAddressDetail
AfterSaleEmuRefundChangeGoodsOneApply = 302 // 拒绝换货申请(一次审核) reason,evidence
AfterSaleEmuAgreeChangeGoodsTwoApply = 311 // 同意换货(二次审核) logistics.companyCode,logistics.logisticsCode
AfterSaleEmuRefundChangeGoodsTwoApply = 312 // 拒绝换货(二次审核) reason,evidence
AfterSaleEmuChangeGoodsToRefundApply = 321 // 换货转退款
AfterSaleEmuAgreePreSaleReturnApply = 401 // 同意售前退申请(拒绝售前退款请使用发货接口)
AfterSaleEmuAgreeReissueApply = 501 // 同意补寄
AfterSaleEmuRefundReissueApply = 502 // 拒绝补寄
)
// AgreeOrRefuseCancel 同意或拒绝(退款)
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) {
afsOrder, err := partner.CurOrderManager.LoadAfsOrder(order.VendorOrderID, order.VendorID)
@@ -671,11 +690,49 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
}
if globals.EnableDdStoreWrite {
if isAgree {
errList := make([]string, 0, 0)
// 同意仅退款
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID))
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnOneApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnTwoApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if len(errList) < 3 {
return nil
}
return fmt.Errorf("%s", strings.Join(errList, "--"))
} else {
errList := make([]string, 0, 0)
// 拒绝退款
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID))
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnOneApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnTwoApply, afsOrder.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if len(errList) < 3 {
return nil
}
return fmt.Errorf("%s", strings.Join(errList, "--"))
}
}
return err

View File

@@ -8,6 +8,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"strings"
)
var (
@@ -114,9 +115,50 @@ var (
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
if globals.EnableDdStoreWrite {
if approveType == partner.AfsApproveTypeRefused { // 拒绝退货
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, order.AfsOrderID, "拒绝退货", utils.Str2Int64(order.VendorStoreID))
errList := make([]string, 0, 0)
// 拒绝退款
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseOnlyRefundApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnOneApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuRefuseToReturnTwoApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if len(errList) < 3 {
return nil
}
return fmt.Errorf("%s", strings.Join(errList, "--"))
} else if approveType == partner.AfsApproveTypeRefund { // 同意
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, order.AfsOrderID, "同意仅退款", utils.Str2Int64(order.VendorStoreID))
errList := make([]string, 0, 0)
// 同意仅退款
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeOnlyRefundApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnOneApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
if err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuAgreeToReturnTwoApply, order.AfsOrderID, reason, utils.Str2Int64(order.VendorStoreID)); err != nil {
errList = append(errList, err.Error())
} else {
return nil
}
return fmt.Errorf("%s", strings.Join(errList, "--"))
if len(errList) < 3 {
return nil
}
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney { // 退货转退款
err = getAPI(order.VendorOrgCode, order.JxStoreID, "").AfterSaleOperate(tiktokShop.AfterSaleEmuReturnGoodsToRefundApply, order.AfsOrderID, "退货转退款", utils.Str2Int64(order.VendorStoreID))
}

View File

@@ -7,6 +7,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"strings"
)
@@ -48,6 +49,7 @@ func (c *PurchaseHandler) OnAfsOrderMsg(msgId, orderId string, msg interface{})
func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal *tiktokShop.CallbackResponse) {
var err error
orderStatus, vendorOrgCode := c.callbackAfsMsg2Status(msgId, msg)
globals.SugarLogger.Debugf("========onAfsOrderMsg====== : %s", utils.Format4Output(orderStatus, false))
if orderStatus == nil {
return tiktokShop.Err2CallbackResponse(nil, "")
}
@@ -279,7 +281,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
orderMsg.Remark = k
} else {
orderMsg.Remark = "同意退款回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
orderMsg.Remark = "同意退款消息,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
}
if refundOrder.AftersaleId > 0 {
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)