1
This commit is contained in:
@@ -641,26 +641,42 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod
|
||||
// CancelOrder 商户取消订单(取消订单全部商品)
|
||||
func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
||||
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)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
outSubOrderIds := make([]string, 0, len(*orderSkuList.OutSubOrders))
|
||||
outSubOrderIds := make([]domain3156.AlibabaTclsAelophyRefundCsapplyNewCsApplySubOrderDTO, 0, len(*orderSkuList.OutSubOrders))
|
||||
for _, v := range *orderSkuList.OutSubOrders {
|
||||
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
|
||||
param := &request3156.AlibabaTclsAelophyRefundCsapplyRequest{
|
||||
RefundCsApplyDTO: &domain3156.AlibabaTclsAelophyRefundCsapplyRefundCsApplyDto{
|
||||
ReasonId: reasonId[0].ReasonId,
|
||||
OutOrderId: utils.String2Pointer(order.VendorOrderID2),
|
||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||
RequestId: utils.String2Pointer(fmt.Sprintf("%s%d", order.VendorStoreID, time.Now().UnixNano())),
|
||||
OutSubOrderIds: &outSubOrderIds,
|
||||
Memo: utils.String2Pointer(reason),
|
||||
param := &request3156.AlibabaTclsAelophyRefundCsapplyNewRequest{
|
||||
RefundCsApplyDTO: &domain3156.AlibabaTclsAelophyRefundCsapplyNewRefundCsApplyNewDTO{
|
||||
ReasonId: reasonId[0].ReasonId,
|
||||
OutOrderId: utils.String2Pointer(order.VendorOrderID2),
|
||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||
RequestId: utils.String2Pointer(fmt.Sprintf("%s%d", order.VendorStoreID, time.Now().UnixNano())),
|
||||
Memo: utils.String2Pointer(reason),
|
||||
SubRefundOrders: &outSubOrderIds,
|
||||
RefundReason: utils.String2Pointer(reason),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -668,15 +684,16 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods
|
||||
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusMerchantCancel, tao_vegetable.OrderStatusMerchantCancel)
|
||||
}
|
||||
|
||||
// 发送取消状态,商户取消
|
||||
err = api.DeliveryFinish(&request591.AlibabaAelophyOrderWorkCallbackRequest{
|
||||
WorkCallbackRequest: &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
|
||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
|
||||
Status: utils.String2Pointer(tao_vegetable.OrderStatusMerchantCancel),
|
||||
},
|
||||
})
|
||||
|
||||
if order.Status < model.OrderStatusEndBegin {
|
||||
// 发送取消状态,商户取消
|
||||
err = api.DeliveryFinish(&request591.AlibabaAelophyOrderWorkCallbackRequest{
|
||||
WorkCallbackRequest: &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
|
||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
|
||||
Status: utils.String2Pointer(tao_vegetable.OrderStatusMerchantCancel),
|
||||
},
|
||||
})
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user