1
This commit is contained in:
@@ -82,16 +82,8 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
||||
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
||||
StoreId: utils.String2Pointer(refundData.StoreId),
|
||||
}}
|
||||
order, err := partner.CurOrderManager.LoadOrder2(refundData.OutOrderId, model.VendorIDTaoVegetable)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("用户申请售后时,通过售后外部渠道订单号获取主订单失败:%s", err.Error())
|
||||
return tao_vegetable.CallBackResultInfo(err)
|
||||
}
|
||||
if order == nil {
|
||||
globals.SugarLogger.Debugf("数据库订单查询失败,订单号异常 :%s", refundData.OutOrderId)
|
||||
return tao_vegetable.CallBackResultInfo(errors.New("订单号异常"))
|
||||
}
|
||||
queryOrderDetailParam.OrderGetRequest.BizOrderId = utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID))
|
||||
|
||||
queryOrderDetailParam.OrderGetRequest.BizOrderId = utils.Int64ToPointer(utils.Str2Int64(orderStatus.RefVendorOrderID))
|
||||
skuList, err := api.QueryOrderDetail(queryOrderDetailParam)
|
||||
if err != nil {
|
||||
return tao_vegetable.CallBackResultInfo(err)
|
||||
@@ -102,40 +94,31 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
||||
return tao_vegetable.CallBackResultInfo(nil)
|
||||
}
|
||||
|
||||
afsOrder = &model.AfsOrder{
|
||||
VendorID: model.VendorIDTaoVegetable,
|
||||
AfsOrderID: orderStatus.VendorOrderID,
|
||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||
VendorStoreID: refundData.StoreId,
|
||||
StoreID: 0,
|
||||
AfsCreatedAt: orderStatus.StatusTime,
|
||||
|
||||
VendorAppealType: status, // 原始售后方式
|
||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||
VendorReasonType: refundData.RefundReason,
|
||||
ReasonType: 0,
|
||||
ReasonDesc: refundData.RefundReason,
|
||||
ReasonImgList: utils.LimitUTF8StringLen(refundData.RefundPictures, 1024),
|
||||
VendorOrgCode: api.GetVendorOrgCode(),
|
||||
}
|
||||
|
||||
refundIds := make([]int64, 0, 0)
|
||||
bizOrderIds := make([]int64, len(refundData.SubRefundOrders))
|
||||
for _, v := range refundData.SubRefundOrders {
|
||||
bizOrderIds = append(bizOrderIds, utils.Str2Int64(v.OutSubOrderId))
|
||||
}
|
||||
refundIds = append(refundIds, utils.Str2Int64(refundData.BizRefundId))
|
||||
|
||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||
afsOrder.BoxMoney = 0 // 餐盒费
|
||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||
|
||||
var refundSkuCount int64 = 0 // 子订单申请退款的商品数
|
||||
var orderSkuCount int64 = 0 // 子订单购买的商品数
|
||||
for _, refundSku := range refundData.SubRefundOrders { // 本次退款订单
|
||||
afsOrder = &model.AfsOrder{
|
||||
VendorID: model.VendorIDTaoVegetable,
|
||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||
VendorStoreID: refundData.StoreId,
|
||||
StoreID: 0,
|
||||
AfsCreatedAt: orderStatus.StatusTime,
|
||||
VendorAppealType: status, // 原始售后方式
|
||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||
VendorReasonType: refundData.RefundReason,
|
||||
ReasonType: 0,
|
||||
ReasonDesc: refundData.RefundReason,
|
||||
ReasonImgList: utils.LimitUTF8StringLen(refundData.RefundPictures, 1024),
|
||||
VendorOrgCode: api.GetVendorOrgCode(),
|
||||
VendorOrderID2: refundData.RefundId,
|
||||
}
|
||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||
afsOrder.BoxMoney = 0 // 餐盒费
|
||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||
|
||||
var refundSkuCount int64 = 0 // 子订单申请退款的商品数
|
||||
var orderSkuCount int64 = 0 // 子订单购买的商品数
|
||||
refundSkuCount += refundSku.RefundAmount
|
||||
for _, sku := range *skuList.SubOrderResponseList { // 总订单
|
||||
if refundSku.OutSubOrderId == *sku.OutSubOrderId {
|
||||
@@ -152,27 +135,33 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||
orderSkuCount += utils.Float64TwoInt64(*sku.BuySaleQuantity)
|
||||
afsOrder.VendorOrderID = utils.Int64ToStr(*skuList.BizOrderId)
|
||||
afsOrder.AfsOrderID = utils.Int64ToStr(*sku.BizSubOrderId)
|
||||
}
|
||||
}
|
||||
}
|
||||
if refundSkuCount == orderSkuCount && refundData.RefundFee == *skuList.PayFee { // 全退
|
||||
afsOrder.RefundType = model.AfsTypeFullRefund
|
||||
} else {
|
||||
afsOrder.RefundType = model.AfsTypePartRefund
|
||||
}
|
||||
afsOrder.SkuUserMoney += refundData.RefundFee
|
||||
|
||||
if afsOrder != nil {
|
||||
//直接就来一个新的售后单,并且还是售后完成的
|
||||
if orderStatus.Status == model.AfsOrderStatusFinished {
|
||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||
if refundSkuCount == orderSkuCount && refundData.RefundFee == *skuList.PayFee { // 全退
|
||||
afsOrder.RefundType = model.AfsTypeFullRefund
|
||||
} else {
|
||||
afsOrder.RefundType = model.AfsTypePartRefund
|
||||
}
|
||||
afsOrder.SkuUserMoney += refundData.RefundFee
|
||||
|
||||
if afsOrder != nil {
|
||||
//直接就来一个新的售后单,并且还是售后完成的
|
||||
if orderStatus.Status == model.AfsOrderStatusFinished {
|
||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||
}
|
||||
orderStatus.RefVendorOrderID = afsOrder.VendorOrderID
|
||||
orderStatus.VendorOrderID = afsOrder.AfsOrderID
|
||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||
}
|
||||
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)
|
||||
afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, "")
|
||||
if err != nil || afsOrder == nil {
|
||||
globals.SugarLogger.Debugf("用户取消售后单,获取之前生成的售后单失败")
|
||||
return tao_vegetable.CallBackResultInfo(err)
|
||||
@@ -181,12 +170,12 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
||||
cancelMsg := msg.(*tao_vegetable.UserCancelRefundApply)
|
||||
for _, v := range afsOrder {
|
||||
// 商家驳回,会发出用户撤销的回调通知,不管他
|
||||
if v.AfsOrderID == cancelMsg.RefundId && v.Flag == model.AfsOrderFlagRefuseUserRefund {
|
||||
return tao_vegetable.CallBackResultInfo(nil)
|
||||
if v.VendorOrderID2 != cancelMsg.RefundId {
|
||||
continue
|
||||
}
|
||||
|
||||
// 用户撤销未处理的售后订单
|
||||
if v.AfsOrderID == cancelMsg.RefundId && v.Flag == 0 {
|
||||
if v.Flag == 0 {
|
||||
// 下面处理用户撤销售后
|
||||
if err = utils.CallFuncLogError(func() error {
|
||||
_, err = dao.DeleteEntity(db, v, "VendorOrderID", "VendorID")
|
||||
@@ -409,27 +398,22 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
|
||||
switch status {
|
||||
case tao_vegetable.OrderStatusApplyAfs: // 用户申请售后
|
||||
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
||||
orderStatus.RefVendorOrderID = refundData.OutOrderId
|
||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusApplyAfs, "用户申请取消")
|
||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusApplyAfs)
|
||||
orderStatus.StatusTime = time.Now()
|
||||
orderStatus.Remark = refundData.Remarks
|
||||
orderStatus.VendorOrderID = refundData.RefundId
|
||||
//orderStatus.VendorOrderID = refundData.RefundId
|
||||
|
||||
order, _ := partner.CurOrderManager.LoadOrder2(orderStatus.RefVendorOrderID, model.VendorIDTaoVegetable)
|
||||
if order != nil {
|
||||
orderStatus.RefVendorOrderID = order.VendorOrderID
|
||||
}
|
||||
orderStatus.RefVendorOrderID = order.VendorOrderID
|
||||
case tao_vegetable.OrderStatusCancelAfs: // 用户取消售后
|
||||
refundData := msg.(*tao_vegetable.UserCancelRefundApply)
|
||||
orderStatus.RefVendorOrderID = refundData.OutOrderId
|
||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusCancelAfs, "用户取消售后申请")
|
||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusCancelAfs)
|
||||
orderStatus.StatusTime = time.Now()
|
||||
orderStatus.VendorOrderID = refundData.RefundId
|
||||
order, _ := partner.CurOrderManager.LoadOrder2(orderStatus.RefVendorOrderID, model.VendorIDTaoVegetable)
|
||||
if order != nil {
|
||||
orderStatus.RefVendorOrderID = order.VendorOrderID
|
||||
}
|
||||
orderStatus.RefVendorOrderID = order.VendorOrderID
|
||||
case tao_vegetable.OrderStatusOnSaleCancel:
|
||||
refundData := msg.(*tao_vegetable.OnSaleCancel)
|
||||
orderStatus.RefVendorOrderID = utils.Int64ToStr(refundData.PartCancelRequest.BizOrderId)
|
||||
|
||||
Reference in New Issue
Block a user