diff --git a/business/partner/purchase/tao_vegetable/order_afs.go b/business/partner/purchase/tao_vegetable/order_afs.go index 0f9467874..4f4e696c8 100644 --- a/business/partner/purchase/tao_vegetable/order_afs.go +++ b/business/partner/purchase/tao_vegetable/order_afs.go @@ -170,6 +170,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } case tao_vegetable.OrderStatusCancelAfs: + globals.SugarLogger.Debugf("用户取消售后----------- %s", utils.Format4Output(msg, false)) // 删除售后单 afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, orderStatus.VendorOrderID) if err != nil || afsOrder == nil { @@ -224,10 +225,10 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal return tao_vegetable.CallBackResultInfo(err) } - for _, v := range onSaleMsg.PartCancelRequest.SubOrders { + for _, v1 := range onSaleMsg.PartCancelRequest.SubOrders { afsOrder = &model.AfsOrder{ VendorID: model.VendorIDTaoVegetable, - AfsOrderID: utils.Int64ToStr(v.BizSubOrderId), + AfsOrderID: utils.Int64ToStr(v1.BizSubOrderId), VendorOrderID: orderStatus.RefVendorOrderID, VendorStoreID: onSaleMsg.PartCancelRequest.StoreId, StoreID: 0, @@ -284,6 +285,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal //直接就来一个新的售后单,并且还是售后完成的 afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund + orderStatus.VendorOrderID = afsOrder.AfsOrderID err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } } @@ -434,39 +436,40 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{}) orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusOnSaleCancel, "用户售中取消") orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusOnSaleCancel) orderStatus.StatusTime = time.Now() - //orderStatus.VendorOrderID = refundData.IdempotentId + orderStatus.VendorOrderID = utils.Int64ToStr(refundData.PartCancelRequest.SubOrders[0].BizSubOrderId) case tao_vegetable.OrderStatusRefundSuccess: // 售后成功 refundData := msg.(*tao_vegetable.RefundOrderFinish) - afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(refundData.OutMainRefundId, model.VendorIDTaoVegetable) + var refundAfs *domain591.AlibabaWdkOrderRefundGetOrderSyncRefundListResult + for i := 0; i < 4; i++ { + 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) + if refundAfs.Orders != nil { + break + } + time.Sleep(time.Second * 1) + } + orders := *refundAfs.Orders + + afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(utils.Int64ToStr(*orders[0].OriginOrderId), model.VendorIDTaoVegetable) 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 + orderStatus.VendorOrderID = utils.Int64ToStr(*orders[0].OriginOrderId) } else { - var refundAfs *domain591.AlibabaWdkOrderRefundGetOrderSyncRefundListResult - for i := 0; i < 4; i++ { - 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) - if refundAfs.Orders != nil { - break - } - time.Sleep(time.Second * 1) - } - orders := *refundAfs.Orders orderStatus.RefVendorOrderID = utils.Int64ToStr(*orders[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 = *orders[0].OutMianOrderId + orderStatus.VendorOrderID = utils.Int64ToStr(*orders[0].OriginOrderId) taoRefundList = refundAfs.Orders }