1
This commit is contained in:
@@ -681,56 +681,55 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// AdjustOrder 商户发起部分退款(取消订单部分商品)
|
// AdjustOrder 商户发起部分退款(取消订单部分商品),淘宝没有部分退款,所以调整订单的时候就是在拣货,把缺货的部分排除
|
||||||
func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
|
func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
|
||||||
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||||
// 美团外卖必须要确认订单后才能调整单
|
|
||||||
if order.Status < model.OrderStatusFinishedPickup {
|
|
||||||
if err = c.PickupGoods(order, false, ctx.GetUserName()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取订单的子订单id
|
|
||||||
//requestParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
|
||||||
// StoreId: utils.String2Pointer(order.VendorStoreID),
|
|
||||||
// BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
|
|
||||||
//}}
|
|
||||||
//orderDetail, err := api.QueryOrderDetail(requestParam)
|
|
||||||
//if err != nil {
|
|
||||||
// return err
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//skuMap := make(map[string]string, 0)
|
|
||||||
//for _, v := range *orderDetail.SubOrderResponseList {
|
|
||||||
// skuMap[*v.SkuCode] = *v.OutSubOrderId
|
|
||||||
//}
|
|
||||||
|
|
||||||
// 获取需要退货商品的子订单id
|
// 获取需要退货商品的子订单id
|
||||||
refundSkuOrderID := make([]string, 0, len(removedSkuList))
|
refundSkuOrderID := make(map[int]int, 0)
|
||||||
//for _, v := range removedSkuList {
|
|
||||||
// if orderId, ok := skuMap[v.VendorSkuID]; ok {
|
|
||||||
// refundSkuOrderID = append(refundSkuOrderID, orderId)
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
for _, v := range removedSkuList {
|
for _, v := range removedSkuList {
|
||||||
refundSkuOrderID = append(refundSkuOrderID, v.VendorSubOrderID)
|
refundSkuOrderID[v.SkuID] = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// 商家申请退货
|
param := &request591.AlibabaAelophyOrderWorkCallbackRequest{}
|
||||||
param := &request3156.AlibabaTclsAelophyRefundCsapplyRequest{
|
param.WorkCallbackRequest = &domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackRequest{
|
||||||
RefundCsApplyDTO: &domain3156.AlibabaTclsAelophyRefundCsapplyRefundCsApplyDto{
|
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||||
ReasonId: utils.Int64ToPointer(1111),
|
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
|
||||||
OutOrderId: utils.String2Pointer(order.VendorOrderID),
|
Status: utils.String2Pointer(tao_vegetable.OrderStatusPickedUp),
|
||||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
|
||||||
RequestId: utils.String2Pointer(fmt.Sprintf("%s%d", order.VendorStoreID, time.Now().UnixNano())),
|
|
||||||
OutSubOrderIds: &refundSkuOrderID,
|
|
||||||
Memo: utils.String2Pointer(reason),
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return api.PartialRefund(param)
|
workCallbackSubOrderInfoList := make([]domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo, 0, 0)
|
||||||
|
|
||||||
|
orderDetail, err := getAPI(order.VendorOrgCode, 0, "").QueryOrderDetail(&request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
||||||
|
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||||
|
BizOrderId: utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID)),
|
||||||
|
}})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, v := range *orderDetail.SubOrderResponseList {
|
||||||
|
// 缺货
|
||||||
|
if refundSkuOrderID[utils.Str2Int(*v.SkuCode)] == model.YES {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
workCallbackSubOrderInfo := domain591.AlibabaAelophyOrderWorkCallbackWorkCallbackSubOrderInfo{
|
||||||
|
BizSubOrderId: v.BizSubOrderId,
|
||||||
|
SkuCode: v.SkuCode,
|
||||||
|
PickSaleQuantity: utils.String2Pointer(utils.Float64ToStr(*v.BuySaleQuantity)),
|
||||||
|
PickStockQuantity: utils.String2Pointer(utils.Float64ToStr(*v.BuyStockQuantity)),
|
||||||
|
}
|
||||||
|
workCallbackSubOrderInfoList = append(workCallbackSubOrderInfoList, workCallbackSubOrderInfo)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 出库
|
||||||
|
param.WorkCallbackRequest.WorkCallbackSubOrderInfoList = &workCallbackSubOrderInfoList
|
||||||
|
|
||||||
|
if err = api.DeliveryFinish(param); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("PickupGoods 拣货失败可能是BizSubOrderId 没填写 : %s", err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListOrders 获取门店订单列表(补全遗漏订单)
|
// ListOrders 获取门店订单列表(补全遗漏订单)
|
||||||
|
|||||||
Reference in New Issue
Block a user