Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2023-07-06 16:28:36 +08:00
2 changed files with 39 additions and 13 deletions

View File

@@ -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
}

View File

@@ -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,16 @@ 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)
globals.SugarLogger.Debugf("==============refundAfs.Orders : %s", utils.Format4Output(refundAfs.Orders != nil, false))
if refundAfs.Orders != nil {
return true
}
case tao_vegetable.OrderStatusOnSaleCancel:
@@ -287,9 +295,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 +369,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 == "" {