1
This commit is contained in:
@@ -641,26 +641,42 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
|
|||||||
// CancelOrder 商户取消订单(取消订单全部商品)
|
// CancelOrder 商户取消订单(取消订单全部商品)
|
||||||
func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
||||||
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||||
|
localSkuList, _ := dao.GetSimpleOrderSkus(dao.GetDB(), order.VendorOrderID, nil)
|
||||||
|
skuMap := make(map[string]*model.OrderSku, 0)
|
||||||
|
for _, v := range localSkuList {
|
||||||
|
skuMap[v.VendorSubOrderID] = v
|
||||||
|
}
|
||||||
orderSkuList, err := getOrderCancelList(api, order)
|
orderSkuList, err := getOrderCancelList(api, order)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
outSubOrderIds := make([]string, 0, len(*orderSkuList.OutSubOrders))
|
outSubOrderIds := make([]domain3156.AlibabaTclsAelophyRefundCsapplyNewCsApplySubOrderDTO, 0, len(*orderSkuList.OutSubOrders))
|
||||||
for _, v := range *orderSkuList.OutSubOrders {
|
for _, v := range *orderSkuList.OutSubOrders {
|
||||||
if *v.CanReverse {
|
if *v.CanReverse {
|
||||||
outSubOrderIds = append(outSubOrderIds, *v.OutSubOrderId)
|
subOrder := domain3156.AlibabaTclsAelophyRefundCsapplyNewCsApplySubOrderDTO{
|
||||||
|
RefundFee: utils.String2Pointer(utils.Int64ToStr(*v.MaxRefundFee)),
|
||||||
|
RefundAmount: nil,
|
||||||
|
OutSubOrderId: v.OutSubOrderId,
|
||||||
|
}
|
||||||
|
if skuMap[*v.OutSubOrderId] != nil {
|
||||||
|
subOrder.RefundAmount = utils.String2Pointer(utils.Int2Str(skuMap[*v.OutSubOrderId].Count))
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
outSubOrderIds = append(outSubOrderIds, subOrder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reasonId := *orderSkuList.ReasonList
|
reasonId := *orderSkuList.ReasonList
|
||||||
param := &request3156.AlibabaTclsAelophyRefundCsapplyRequest{
|
param := &request3156.AlibabaTclsAelophyRefundCsapplyNewRequest{
|
||||||
RefundCsApplyDTO: &domain3156.AlibabaTclsAelophyRefundCsapplyRefundCsApplyDto{
|
RefundCsApplyDTO: &domain3156.AlibabaTclsAelophyRefundCsapplyNewRefundCsApplyNewDTO{
|
||||||
ReasonId: reasonId[0].ReasonId,
|
ReasonId: reasonId[0].ReasonId,
|
||||||
OutOrderId: utils.String2Pointer(order.VendorOrderID2),
|
OutOrderId: utils.String2Pointer(order.VendorOrderID2),
|
||||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||||
RequestId: utils.String2Pointer(fmt.Sprintf("%s%d", order.VendorStoreID, time.Now().UnixNano())),
|
RequestId: utils.String2Pointer(fmt.Sprintf("%s%d", order.VendorStoreID, time.Now().UnixNano())),
|
||||||
OutSubOrderIds: &outSubOrderIds,
|
|
||||||
Memo: utils.String2Pointer(reason),
|
Memo: utils.String2Pointer(reason),
|
||||||
|
SubRefundOrders: &outSubOrderIds,
|
||||||
|
RefundReason: utils.String2Pointer(reason),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -668,6 +684,7 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusMerchantCancel, tao_vegetable.OrderStatusMerchantCancel)
|
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusMerchantCancel, tao_vegetable.OrderStatusMerchantCancel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if order.Status < model.OrderStatusEndBegin {
|
||||||
// 发送取消状态,商户取消
|
// 发送取消状态,商户取消
|
||||||
err = api.DeliveryFinish(&request591.AlibabaAelophyOrderWorkCallbackRequest{
|
err = api.DeliveryFinish(&request591.AlibabaAelophyOrderWorkCallbackRequest{
|
||||||
WorkCallbackRequest: &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
|
WorkCallbackRequest: &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
|
||||||
@@ -676,7 +693,7 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
Status: utils.String2Pointer(tao_vegetable.OrderStatusMerchantCancel),
|
Status: utils.String2Pointer(tao_vegetable.OrderStatusMerchantCancel),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -429,17 +429,20 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
|
|||||||
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
||||||
orderStatus.VendorOrderID = refundData.OutMainRefundId
|
orderStatus.VendorOrderID = refundData.OutMainRefundId
|
||||||
} else {
|
} else {
|
||||||
|
var refundAfs *domain591.AlibabaWdkOrderRefundGetOrderSyncRefundListResult
|
||||||
|
for i := 0; i < 4; i++ {
|
||||||
param := &request591.AlibabaWdkOrderRefundGetRequest{
|
param := &request591.AlibabaWdkOrderRefundGetRequest{
|
||||||
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
||||||
ShopId: nil,
|
ShopId: nil,
|
||||||
StoreId: utils.String2Pointer(refundData.StoreId),
|
StoreId: utils.String2Pointer(refundData.StoreId),
|
||||||
RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)},
|
RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)},
|
||||||
}
|
}
|
||||||
|
refundAfs, _ = getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param)
|
||||||
|
if refundAfs.Orders != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
time.Sleep(time.Second * 1)
|
time.Sleep(time.Second * 1)
|
||||||
refundAfs, _ := getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param)
|
}
|
||||||
if refundAfs.Orders == nil {
|
|
||||||
globals.SugarLogger.Debugf("================售中退款成功回调查询售后单为空:")
|
|
||||||
} else {
|
|
||||||
orders := *refundAfs.Orders
|
orders := *refundAfs.Orders
|
||||||
orderStatus.RefVendorOrderID = utils.Int64ToStr(*orders[0].OriginParentId)
|
orderStatus.RefVendorOrderID = utils.Int64ToStr(*orders[0].OriginParentId)
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
|
||||||
@@ -449,7 +452,6 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
|
|||||||
orderStatus.VendorOrderID = utils.Int64ToStr(*orders[0].RefundOrderId)
|
orderStatus.VendorOrderID = utils.Int64ToStr(*orders[0].RefundOrderId)
|
||||||
taoRefundList = refundAfs.Orders
|
taoRefundList = refundAfs.Orders
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user