From 8a813a1be2e7aaceca0a0342b94b0ba533ec556d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Jul 2023 16:10:30 +0800 Subject: [PATCH] 1 --- .../partner/purchase/tao_vegetable/order.go | 2 +- .../purchase/tao_vegetable/order_afs.go | 49 ++++++++++++++----- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 09ae8d9c0..64a7670bf 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -317,7 +317,7 @@ func (c *PurchaseHandler) onOrderMsg(orderStatus, orderId string, orderCallback var err error // 售后单 - if c.isAfsMsg(orderStatus, orderId) { + if c.isAfsMsg(orderStatus, orderId, orderCallback) { response = c.OnAfsOrderMsg(orderId, orderStatus, orderCallback) return response } diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index bb952728c..a7ad55131 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -28,7 +28,7 @@ var ( } ) -func (c *PurchaseHandler) isAfsMsg(orderStatus string, orderId string) bool { +func (c *PurchaseHandler) isAfsMsg(orderStatus string, orderId string, orderCallback interface{}) bool { switch orderStatus { case tao_vegetable.OrderStatusApplyAfs, tao_vegetable.OrderStatusCancelAfs: order, _ := partner.CurOrderManager.LoadOrder2(orderId, model.VendorIDTaoVegetable) @@ -36,8 +36,15 @@ func (c *PurchaseHandler) isAfsMsg(orderStatus string, orderId string) bool { return true } case tao_vegetable.OrderStatusRefundSuccess: - afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(orderId, model.VendorIDTaoVegetable) - if afsOrder != nil { + success := orderCallback.(tao_vegetable.RefundOrderFinish) + param := &request591.AlibabaWdkOrderRefundGetRequest{ + OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), + ShopId: nil, + StoreId: utils.String2Pointer(success.StoreId), + RefundIds: &[]int64{utils.Str2Int64(success.BizSubRefundId)}, + } + refundAfs, _ := getAPI("", 0, success.StoreId).QueryAfsOrderDetail(param) + if refundAfs.Orders != nil { return true } case tao_vegetable.OrderStatusOnSaleCancel: @@ -287,9 +294,8 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal if afsOrder != nil { //直接就来一个新的售后单,并且还是售后完成的 - if orderStatus.Status == model.AfsOrderStatusFinished { - afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt - } + afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt + afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund globals.SugarLogger.Debugf("==============onsaleRefund afsOrd: = %s", utils.Format4Output(afsOrder, false)) globals.SugarLogger.Debugf("==============onsaleRefund orderStatus: = %s", utils.Format4Output(orderStatus, false)) err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) @@ -362,12 +368,31 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{}) case tao_vegetable.OrderStatusRefundSuccess: // 售后成功 refundData := msg.(*tao_vegetable.RefundOrderFinish) afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(refundData.OutMainRefundId, model.VendorIDTaoVegetable) - orderStatus.RefVendorOrderID = afsOrder.VendorOrderID - orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售后退款成功") - orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) - orderStatus.StatusTime = time.Now() - orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) - orderStatus.VendorOrderID = refundData.OutMainRefundId + if afsOrder != nil { + orderStatus.RefVendorOrderID = afsOrder.VendorOrderID + orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售后退款成功") + orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) + orderStatus.StatusTime = time.Now() + orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) + orderStatus.VendorOrderID = refundData.OutMainRefundId + } else { + param := &request591.AlibabaWdkOrderRefundGetRequest{ + OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)), + ShopId: nil, + StoreId: utils.String2Pointer(refundData.StoreId), + RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)}, + } + refundAfs, _ := getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param) + orderId := *refundAfs.Orders + + orderStatus.RefVendorOrderID = utils.Int64ToStr(*orderId[0].OriginParentId) + orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功") + orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess) + orderStatus.StatusTime = time.Now() + orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId) + orderStatus.VendorOrderID = orderStatus.RefVendorOrderID + } + } if orderStatus.VendorOrderID == "" {