This commit is contained in:
邹宗楠
2023-07-31 10:28:48 +08:00
parent 7948b4bede
commit feedfaa608

View File

@@ -224,9 +224,10 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
return tao_vegetable.CallBackResultInfo(err) return tao_vegetable.CallBackResultInfo(err)
} }
for _, v := range onSaleMsg.PartCancelRequest.SubOrders {
afsOrder = &model.AfsOrder{ afsOrder = &model.AfsOrder{
VendorID: model.VendorIDTaoVegetable, VendorID: model.VendorIDTaoVegetable,
AfsOrderID: onSaleMsg.PartCancelRequest.IdempotentId, AfsOrderID: utils.Int64ToStr(v.BizSubOrderId),
VendorOrderID: orderStatus.RefVendorOrderID, VendorOrderID: orderStatus.RefVendorOrderID,
VendorStoreID: onSaleMsg.PartCancelRequest.StoreId, VendorStoreID: onSaleMsg.PartCancelRequest.StoreId,
StoreID: 0, StoreID: 0,
@@ -285,6 +286,8 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
} }
}
case tao_vegetable.OrderStatusRefundSuccess: case tao_vegetable.OrderStatusRefundSuccess:
globals.SugarLogger.Debugf("=========售后成功: %s", utils.Format4Output(msg, false)) globals.SugarLogger.Debugf("=========售后成功: %s", utils.Format4Output(msg, false))
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单 // 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
@@ -292,8 +295,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish) refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
var afsOrder *model.AfsOrder var afsOrder *model.AfsOrder
var api = getAPI("", 0, refundSuccess.StoreId) var api = getAPI("", 0, refundSuccess.StoreId)
var isCreate = true
var outMainRefundIds = make(map[string]int64, 0)
detail, err := api.QueryAfsOrderDetail(&request591.AlibabaWdkOrderRefundGetRequest{ detail, err := api.QueryAfsOrderDetail(&request591.AlibabaWdkOrderRefundGetRequest{
OrderFrom: utils.Int64ToPointer(tao_vegetable.ChannelCome), OrderFrom: utils.Int64ToPointer(tao_vegetable.ChannelCome),
ShopId: nil, ShopId: nil,
@@ -303,32 +304,13 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
if err != nil { if err != nil {
return tao_vegetable.CallBackResultInfo(err) return tao_vegetable.CallBackResultInfo(err)
} }
finalList, _ := dao.GetOrderRefundSkuList(db, []string{refundSuccess.OutMainRefundId})
if len(finalList) != model.NO {
for _, f := range finalList {
for _, a := range *detail.Orders {
if f.SkuID == utils.Str2Int(*a.ItemCode) {
isCreate = false // 本地已经存在了记录
outMainRefundIds[*a.OutMainRefundId] = *a.RefundAmount
}
}
}
}
// 本地已经存在了售后记录,直接修改售后状态,否则创建售后记录 for _, v := range *detail.Orders {
if !isCreate { afs, _ := partner.CurOrderManager.LoadAfsOrder(utils.Int64ToStr(*v.OriginOrderId), model.VendorIDTaoVegetable)
for afsOrderId, afsMoney := range outMainRefundIds { if afs != nil {
afs, _ := partner.CurOrderManager.LoadAfsOrder(afsOrderId, model.VendorIDTaoVegetable)
afs.VendorOrderID2 = refundSuccess.BizSubRefundId
afs.AfsFinishedAt = time.Now()
afs.Status = model.AfsOrderStatusFinished
afs.AfsTotalShopMoney = afsMoney
dao.UpdateEntity(db, afs, "VendorOrderID2", "AfsFinishedAt", "Status", "AfsTotalShopMoney")
}
} else {
afsOrder = &model.AfsOrder{ afsOrder = &model.AfsOrder{
VendorID: model.VendorIDTaoVegetable, VendorID: model.VendorIDTaoVegetable,
AfsOrderID: refundSuccess.OutMainRefundId, AfsOrderID: utils.Int64ToStr(*v.OriginOrderId),
VendorOrderID: orderStatus.RefVendorOrderID, VendorOrderID: orderStatus.RefVendorOrderID,
VendorOrderID2: refundSuccess.BizSubRefundId, VendorOrderID2: refundSuccess.BizSubRefundId,
VendorStoreID: refundSuccess.StoreId, VendorStoreID: refundSuccess.StoreId,
@@ -378,9 +360,14 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
} }
} }
} else {
afs.VendorOrderID2 = refundSuccess.BizSubRefundId
afs.AfsFinishedAt = time.Now()
afs.Status = model.AfsOrderStatusFinished
afs.AfsTotalShopMoney = *v.RefundAmount
dao.UpdateEntity(db, afs, "VendorOrderID2", "AfsFinishedAt", "Status", "AfsTotalShopMoney")
}
} }
} }
default: default: