增加商品库存redis缓存 & 库存变动发送rabbit消息
This commit is contained in:
@@ -68,6 +68,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
boolean isHasStockChangeToZero = false;
|
||||||
for (ProductStockSubtractDTO dto : list) {
|
for (ProductStockSubtractDTO dto : list) {
|
||||||
Product product = productMapper.selectOneById(dto.getProductId());
|
Product product = productMapper.selectOneById(dto.getProductId());
|
||||||
if (product == null) {
|
if (product == null) {
|
||||||
@@ -88,6 +89,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
flow.setInOutItem(InOutItemEnum.ORDER_OUT.value());
|
flow.setInOutItem(InOutItemEnum.ORDER_OUT.value());
|
||||||
flow.setOrderId(orderId);
|
flow.setOrderId(orderId);
|
||||||
productStockFlowService.saveFlow(flow);
|
productStockFlowService.saveFlow(flow);
|
||||||
|
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||||
|
isHasStockChangeToZero = true;
|
||||||
|
}
|
||||||
// 查询商品绑定耗材信息
|
// 查询商品绑定耗材信息
|
||||||
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
||||||
if (CollUtil.isEmpty(relationList)) {
|
if (CollUtil.isEmpty(relationList)) {
|
||||||
@@ -131,7 +135,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
consStockFlowService.saveFlow(consStockFlow);
|
consStockFlowService.saveFlow(consStockFlow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
if (isHasStockChangeToZero) {
|
||||||
|
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||||
|
}
|
||||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
log.info("ProductService.--------------------------------------------库存更新成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +149,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
boolean isHasStockChangeToZero = false;
|
||||||
for (ProductStockSubtractDTO dto : list) {
|
for (ProductStockSubtractDTO dto : list) {
|
||||||
Product product = productMapper.selectOneById(dto.getProductId());
|
Product product = productMapper.selectOneById(dto.getProductId());
|
||||||
productMapper.updateProductStockNum(dto.getProductId(), dto.getShopId(), "add", dto.getNum());
|
productMapper.updateProductStockNum(dto.getProductId(), dto.getShopId(), "add", dto.getNum());
|
||||||
@@ -161,6 +168,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
flow.setRemark("红冲订单取消/退菜/退单消耗的库存");
|
flow.setRemark("红冲订单取消/退菜/退单消耗的库存");
|
||||||
flow.setOrderId(orderId);
|
flow.setOrderId(orderId);
|
||||||
productStockFlowService.saveFlow(flow);
|
productStockFlowService.saveFlow(flow);
|
||||||
|
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||||
|
isHasStockChangeToZero = true;
|
||||||
|
}
|
||||||
// 查询商品绑定耗材信息
|
// 查询商品绑定耗材信息
|
||||||
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
||||||
if (CollUtil.isEmpty(relationList)) {
|
if (CollUtil.isEmpty(relationList)) {
|
||||||
@@ -204,7 +214,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
consStockFlowService.saveFlow(consStockFlow);
|
consStockFlowService.saveFlow(consStockFlow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
if (isHasStockChangeToZero) {
|
||||||
|
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||||
|
}
|
||||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
log.info("ProductService.--------------------------------------------库存更新成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,6 +227,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
boolean isHasStockChangeToZero = false;
|
||||||
for (ProductStockSubtractDTO dto : list) {
|
for (ProductStockSubtractDTO dto : list) {
|
||||||
Product product = productMapper.selectOneById(dto.getProductId());
|
Product product = productMapper.selectOneById(dto.getProductId());
|
||||||
// 商品是否允许退款退货时归还库存
|
// 商品是否允许退款退货时归还库存
|
||||||
@@ -237,6 +250,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
flow.setRemark("红冲订单取消/退菜/退单消耗的库存");
|
flow.setRemark("红冲订单取消/退菜/退单消耗的库存");
|
||||||
flow.setOrderId(orderId);
|
flow.setOrderId(orderId);
|
||||||
productStockFlowService.saveFlow(flow);
|
productStockFlowService.saveFlow(flow);
|
||||||
|
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||||
|
isHasStockChangeToZero = true;
|
||||||
|
}
|
||||||
// 查询商品绑定耗材信息
|
// 查询商品绑定耗材信息
|
||||||
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
||||||
if (CollUtil.isEmpty(relationList)) {
|
if (CollUtil.isEmpty(relationList)) {
|
||||||
@@ -280,7 +296,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
consStockFlowService.saveFlow(consStockFlow);
|
consStockFlowService.saveFlow(consStockFlow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
if (isHasStockChangeToZero) {
|
||||||
|
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||||
|
}
|
||||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
log.info("ProductService.--------------------------------------------库存更新成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user