1. 商品信息变动刷新库存
2. 商品信息变动发生Mq消息
This commit is contained in:
@@ -31,8 +31,9 @@ public interface ProductRpcService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单退菜或退款后回退库存
|
* 订单退菜或退款后回退库存
|
||||||
*
|
* @param shopId 店铺id
|
||||||
|
* @param orderId 订单ID
|
||||||
* @param dataList 库存恢复数据
|
* @param dataList 库存恢复数据
|
||||||
*/
|
*/
|
||||||
void orderRefundReturnStock(List<Map<String, Object>> dataList);
|
void orderRefundReturnStock(Long shopId, Long orderId, List<Map<String, Object>> dataList);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,15 +182,28 @@ public class OrderInfoRpcServiceImpl implements OrderInfoRpcService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void orderRefundCallback(JSONObject data) {
|
public void orderRefundCallback(JSONObject data) {
|
||||||
Set<String> keys = data.keySet();
|
Long orderId = data.getLong("orderId");
|
||||||
|
// 订单取消后商品库存恢复,耗材恢复,流水记录
|
||||||
|
OrderInfo orderInfo = orderInfoMapper.selectOneById(orderId);
|
||||||
|
if (orderInfo == null) {
|
||||||
|
throw new CzgException("订单不存在");
|
||||||
|
}
|
||||||
|
// 查询订单下商品
|
||||||
|
List<OrderDetail> detailList = orderDetailMapper.selectListByQuery(QueryWrapper.create().eq(OrderDetail::getOrderId, orderId));
|
||||||
|
if (CollUtil.isEmpty(detailList)) {
|
||||||
|
throw new CzgException("该订单下不存在商品");
|
||||||
|
}
|
||||||
|
JSONObject obj = data.getJSONObject("returnProMap");
|
||||||
|
Set<String> keys = obj.keySet();
|
||||||
// 封装扣减库存数据
|
// 封装扣减库存数据
|
||||||
List<Map<String, Object>> dataList = new ArrayList<>();
|
List<Map<String, Object>> dataList = new ArrayList<>();
|
||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
Long productId = Convert.toLong(key);
|
Long productId = Convert.toLong(key);
|
||||||
BigDecimal num = data.getBigDecimal(key);
|
BigDecimal num = obj.getBigDecimal(key);
|
||||||
Map<String, Object> row = new HashMap<>(2);
|
Map<String, Object> row = new HashMap<>(3);
|
||||||
data.put("productId", productId);
|
row.put("shopId", orderInfo.getShopId());
|
||||||
data.put("num", num);
|
row.put("productId", productId);
|
||||||
|
row.put("num", num);
|
||||||
dataList.add(row);
|
dataList.add(row);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -165,12 +165,11 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void orderRefundReturnStock(List<Map<String, Object>> dataList) {
|
public void orderRefundReturnStock(Long shopId, Long orderId, List<Map<String, Object>> dataList) {
|
||||||
List<ProductStockSubtractDTO> list = BeanUtil.copyToList(dataList, ProductStockSubtractDTO.class);
|
List<ProductStockSubtractDTO> list = BeanUtil.copyToList(dataList, ProductStockSubtractDTO.class);
|
||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Long shopId = null;
|
|
||||||
for (ProductStockSubtractDTO dto : list) {
|
for (ProductStockSubtractDTO dto : list) {
|
||||||
productMapper.updateProductStockNum(dto.getProductId(), dto.getShopId(), "add", dto.getNum());
|
productMapper.updateProductStockNum(dto.getProductId(), dto.getShopId(), "add", dto.getNum());
|
||||||
// 查询商品绑定耗材信息
|
// 查询商品绑定耗材信息
|
||||||
@@ -198,7 +197,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
consInfoMapper.update(consInfo);
|
consInfoMapper.update(consInfo);
|
||||||
// 插入耗材流水记录
|
// 插入耗材流水记录
|
||||||
ConsStockFlow consStockFlow = new ConsStockFlow();
|
ConsStockFlow consStockFlow = new ConsStockFlow();
|
||||||
consStockFlow.setShopId(consInfo.getShopId());
|
consStockFlow.setShopId(shopId);
|
||||||
consStockFlow.setInOutType(InOutTypeEnum.IN.value());
|
consStockFlow.setInOutType(InOutTypeEnum.IN.value());
|
||||||
consStockFlow.setInOutItem(InOutItemEnum.ORDER_IN.value());
|
consStockFlow.setInOutItem(InOutItemEnum.ORDER_IN.value());
|
||||||
consStockFlow.setInOutDate(LocalDate.now());
|
consStockFlow.setInOutDate(LocalDate.now());
|
||||||
@@ -211,9 +210,8 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
consStockFlow.setSubTotal(NumberUtil.mul(surplusStock, consInfo.getPrice()));
|
consStockFlow.setSubTotal(NumberUtil.mul(surplusStock, consInfo.getPrice()));
|
||||||
consStockFlow.setProductId(dto.getProductId());
|
consStockFlow.setProductId(dto.getProductId());
|
||||||
// consStockFlow.setSkuId(0L);
|
// consStockFlow.setSkuId(0L);
|
||||||
// TODO 需要订单id
|
consStockFlow.setOrderId(orderId);
|
||||||
// consStockFlow.setOrderId(orderId);
|
consStockFlow.setRemark("订单退款退菜归还库存");
|
||||||
shopId = consInfo.getShopId();
|
|
||||||
consStockFlowMapper.insert(consStockFlow);
|
consStockFlowMapper.insert(consStockFlow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user