商品缓存清除于设置
This commit is contained in:
parent
5c4dba85a8
commit
bc04e4ce14
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czg.config.RabbitPublisher;
|
||||
import com.czg.enums.YesNoEnum;
|
||||
import com.czg.product.dto.ProductStockSubtractDTO;
|
||||
|
|
@ -31,6 +32,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import static com.czg.constant.CacheConstant.ADMIN_CLIENT_PRODUCT_LIST;
|
||||
import static com.czg.constant.CacheConstant.SHOP_PRODUCT_STOCK;
|
||||
|
||||
/**
|
||||
* 商品RPC远程调用服务接口实现
|
||||
|
|
@ -89,6 +91,8 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
flow.setInOutItem(InOutItemEnum.ORDER_OUT.value());
|
||||
flow.setOrderId(orderId);
|
||||
productStockFlowService.saveFlow(flow);
|
||||
cleanCategoryProduct(shopId, product.getCategoryId());
|
||||
refreshRedisProdStock(shopId, product.getId(), flow.getAfterNumber());
|
||||
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||
isHasStockChangeToZero = true;
|
||||
}
|
||||
|
|
@ -168,6 +172,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
flow.setRemark("红冲订单取消/退菜/退单消耗的库存");
|
||||
flow.setOrderId(orderId);
|
||||
productStockFlowService.saveFlow(flow);
|
||||
refreshRedisProdStock(shopId, product.getId(), flow.getAfterNumber());
|
||||
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||
isHasStockChangeToZero = true;
|
||||
}
|
||||
|
|
@ -250,6 +255,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
flow.setRemark("红冲订单取消/退菜/退单消耗的库存");
|
||||
flow.setOrderId(orderId);
|
||||
productStockFlowService.saveFlow(flow);
|
||||
refreshRedisProdStock(shopId, product.getId(), flow.getAfterNumber());
|
||||
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||
isHasStockChangeToZero = true;
|
||||
}
|
||||
|
|
@ -312,4 +318,13 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
String key = ADMIN_CLIENT_PRODUCT_LIST + "::" + shopId + "::" + categoryId;
|
||||
redisService.del(key);
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshRedisProdStock(Long shopId, Long productId, BigDecimal stockNumber) {
|
||||
String key = StrUtil.format(SHOP_PRODUCT_STOCK, shopId, productId);
|
||||
if (NumberUtil.isLessOrEqual(stockNumber, BigDecimal.ZERO)) {
|
||||
redisService.del(key);
|
||||
} else {
|
||||
redisService.set(key, stockNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue