parent
e4648b1e56
commit
6197ba5707
|
|
@ -31,8 +31,9 @@ public interface ProductRpcService {
|
|||
|
||||
/**
|
||||
* 订单退菜或退款后回退库存
|
||||
*
|
||||
* @param shopId 店铺id
|
||||
* @param orderId 订单ID
|
||||
* @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
|
||||
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<>();
|
||||
for (String key : keys) {
|
||||
Long productId = Convert.toLong(key);
|
||||
BigDecimal num = data.getBigDecimal(key);
|
||||
Map<String, Object> row = new HashMap<>(2);
|
||||
data.put("productId", productId);
|
||||
data.put("num", num);
|
||||
BigDecimal num = obj.getBigDecimal(key);
|
||||
Map<String, Object> row = new HashMap<>(3);
|
||||
row.put("shopId", orderInfo.getShopId());
|
||||
row.put("productId", productId);
|
||||
row.put("num", num);
|
||||
dataList.add(row);
|
||||
}
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -165,12 +165,11 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
}
|
||||
|
||||
@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);
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
Long shopId = null;
|
||||
for (ProductStockSubtractDTO dto : list) {
|
||||
productMapper.updateProductStockNum(dto.getProductId(), dto.getShopId(), "add", dto.getNum());
|
||||
// 查询商品绑定耗材信息
|
||||
|
|
@ -198,7 +197,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
consInfoMapper.update(consInfo);
|
||||
// 插入耗材流水记录
|
||||
ConsStockFlow consStockFlow = new ConsStockFlow();
|
||||
consStockFlow.setShopId(consInfo.getShopId());
|
||||
consStockFlow.setShopId(shopId);
|
||||
consStockFlow.setInOutType(InOutTypeEnum.IN.value());
|
||||
consStockFlow.setInOutItem(InOutItemEnum.ORDER_IN.value());
|
||||
consStockFlow.setInOutDate(LocalDate.now());
|
||||
|
|
@ -211,9 +210,8 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
consStockFlow.setSubTotal(NumberUtil.mul(surplusStock, consInfo.getPrice()));
|
||||
consStockFlow.setProductId(dto.getProductId());
|
||||
// consStockFlow.setSkuId(0L);
|
||||
// TODO 需要订单id
|
||||
// consStockFlow.setOrderId(orderId);
|
||||
shopId = consInfo.getShopId();
|
||||
consStockFlow.setOrderId(orderId);
|
||||
consStockFlow.setRemark("订单退款退菜归还库存");
|
||||
consStockFlowMapper.insert(consStockFlow);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue