退款 扣除库存校验

This commit is contained in:
2026-04-10 16:11:43 +08:00
parent c4b93b6a5b
commit 0e600d76f8
8 changed files with 88 additions and 54 deletions

View File

@@ -54,6 +54,10 @@ public class OrderInfoRefundDTO implements Serializable {
* 是否打印退菜/退款票
*/
private boolean print;
/**
* 是否退库存
*/
private boolean refundStock;
private String refundReason;

View File

@@ -2,6 +2,7 @@ package com.czg.order.service;
import cn.hutool.core.exceptions.ValidateException;
import com.alibaba.fastjson2.JSONObject;
import com.czg.account.entity.ShopInfo;
import com.czg.exception.CzgException;
import com.czg.exception.OrderCancelException;
import com.czg.exception.OrderValidateException;
@@ -21,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* 订单表 服务层。
@@ -73,4 +75,9 @@ public interface OrderInfoCustomService {
Boolean upOrderDetail(Long shopId, OrderDetailStatusDTO detailStatusDTO);
/**
* 退单库存问题
*/
void refundStock(ShopInfo shopInfo, Long orderId, Map<Long,BigDecimal> products, boolean refundStock);
}

View File

@@ -1,9 +1,9 @@
package com.czg.product.service;
import com.czg.product.vo.ProductStockVO;
import com.czg.product.vo.ProductVO;
import java.util.List;
import java.util.Map;
/**
* 商品RPC远程调用服务接口
@@ -20,24 +20,23 @@ public interface ProductRpcService {
* @param orderId 订单ID
* @param dataList 库存扣减数据
*/
void paySuccessSubtractStock(Long shopId, Long orderId, List<Map<String, Object>> dataList);
void paySuccessSubtractStock(Long shopId, Long orderId, List<ProductStockVO> dataList);
/**
* 订单取消后恢复库存
*
* @param shopId 店铺id
* @param orderId 订单ID
* @param dataList 库存恢复数据
*/
void orderCancelRecoverStock(Long shopId, Long orderId, List<Map<String, Object>> dataList);
void orderCancelRecoverStock(Long shopId, Long orderId, List<ProductStockVO> list);
/**
* 订单退菜或退款后回退库存
* @param shopId 店铺id
* @param orderId 订单ID
* @param dataList 库存恢复数据
* @param list 库存恢复数据
*/
void orderRefundReturnStock(Long shopId, Long orderId, List<Map<String, Object>> dataList);
void orderRefundReturnStock(Long shopId, Long orderId, List<ProductStockVO> list);
List<ProductVO> listAndLowPrice(Long shopId, List<Long> productIds);