清除分类商品缓存

This commit is contained in:
Tankaikai 2025-04-16 16:12:31 +08:00
parent 6d0cef6667
commit 1c5cc04769
5 changed files with 36 additions and 25 deletions

View File

@ -1,5 +1,7 @@
package com.czg.product.service;
import com.czg.product.vo.ProductVO;
import java.util.List;
import java.util.Map;
@ -36,4 +38,13 @@ public interface ProductRpcService {
* @param dataList 库存恢复数据
*/
void orderRefundReturnStock(Long shopId, Long orderId, List<Map<String, Object>> dataList);
List<ProductVO> listAndLowPrice(Long shopId, List<Long> productIds);
/**
* 清除分类商品缓存
* @param shopId 店铺id
* @param categoryId 商品分类id
*/
void cleanCategoryProduct(Long shopId, Long categoryId);
}

View File

@ -5,7 +5,6 @@ import com.czg.product.entity.Product;
import com.czg.product.entity.ProductStockFlow;
import com.czg.product.param.*;
import com.czg.product.vo.ProductStatisticsVo;
import com.czg.product.vo.ProductVO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
@ -142,13 +141,4 @@ public interface ProductService extends IService<Product> {
*/
void refreshProductStock(ProductDTO param, List<ProductDTO> records);
List<ProductVO> listAndLowPrice(Long shopId, List<Long> productIds);
/**
* 清除分类商品缓存
* @param shopId 店铺id
* @param categoryId 商品分类id
*/
void cleanCategoryProduct(Long shopId, Long categoryId);
}

View File

@ -4,17 +4,20 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.czg.account.dto.pad.*;
import com.czg.account.entity.*;
import com.czg.account.entity.PadLayout;
import com.czg.account.entity.PadProductCategory;
import com.czg.account.entity.PadProductCategoryDetail;
import com.czg.account.entity.ShopProdCategory;
import com.czg.account.service.*;
import com.czg.enums.YesNoEnum;
import com.czg.exception.ApiNotPrintException;
import com.czg.product.entity.ProdSku;
import com.czg.product.entity.Product;
import com.czg.product.service.ProdSkuService;
import com.czg.product.service.ProductRpcService;
import com.czg.product.service.ProductService;
import com.czg.product.vo.ProductVO;
import com.czg.service.account.mapper.PadProductCategoryDetailMapper;
import com.czg.utils.JoinQueryWrapper;
import com.czg.utils.PageUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -44,6 +47,8 @@ public class PadProdServiceImpl implements PadProdService {
@DubboReference
private ProductService productService;
@DubboReference
private ProductRpcService productRpcService;
@DubboReference
private ProdSkuService prodSkuService;
@Resource
private ShopProdCategoryService shopProdCategoryService;
@ -105,7 +110,7 @@ public class PadProdServiceImpl implements PadProdService {
List<Long> productIds = padProductCategoryDetailMapper.selectListByQuery(new QueryWrapper().eq(PadProductCategoryDetail::getPadProductCategoryId, padProductCategory)).stream().map(PadProductCategoryDetail::getProductId).toList();
padDetailDTO.setProductIdList(productIds);
if (!productIds.isEmpty()) {
List<ProductVO> products = productService.listAndLowPrice(shopId, productIds);
List<ProductVO> products = productRpcService.listAndLowPrice(shopId, productIds);
products.parallelStream().forEach(item -> {
List<ProdSku> skuList = prodSkuService.list(new QueryWrapper().eq(ProdSku::getProductId, item.getId()));
item.setSkuList(skuList);

View File

@ -12,6 +12,8 @@ import com.czg.product.enums.InOutTypeEnum;
import com.czg.product.service.ConsStockFlowService;
import com.czg.product.service.ProductRpcService;
import com.czg.product.service.ProductStockFlowService;
import com.czg.product.vo.ProductVO;
import com.czg.service.RedisService;
import com.czg.service.product.mapper.ConsInfoMapper;
import com.czg.service.product.mapper.ProdConsRelationMapper;
import com.czg.service.product.mapper.ProductMapper;
@ -26,6 +28,8 @@ import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import static com.czg.constant.CacheConstant.ADMIN_CLIENT_PRODUCT_LIST;
/**
* 商品RPC远程调用服务接口实现
*
@ -51,6 +55,8 @@ public class ProductRpcServiceImpl implements ProductRpcService {
private ProductStockFlowService productStockFlowService;
@Resource
private RabbitPublisher rabbitPublisher;
@Resource
private RedisService redisService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -275,4 +281,15 @@ public class ProductRpcServiceImpl implements ProductRpcService {
//ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
log.info("ProductService.--------------------------------------------库存更新成功");
}
@Override
public List<ProductVO> listAndLowPrice(Long shopId, List<Long> productIds) {
return productMapper.productList(shopId, productIds);
}
@Override
public void cleanCategoryProduct(Long shopId, Long categoryId) {
String key = ADMIN_CLIENT_PRODUCT_LIST + "::" + shopId + "::" + categoryId;
redisService.del(key);
}
}

View File

@ -20,7 +20,6 @@ import com.czg.product.enums.*;
import com.czg.product.param.*;
import com.czg.product.service.*;
import com.czg.product.vo.ProductStatisticsVo;
import com.czg.product.vo.ProductVO;
import com.czg.sa.StpKit;
import com.czg.service.RedisService;
import com.czg.service.product.mapper.*;
@ -773,15 +772,4 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
record.setStockNumber(stock.getOrDefault(record.getId(), 0));
});
}
@Override
public List<ProductVO> listAndLowPrice(Long shopId, List<Long> productIds) {
return mapper.productList(shopId, productIds);
}
@Override
public void cleanCategoryProduct(Long shopId, Long categoryId) {
String key = ADMIN_CLIENT_PRODUCT_LIST + "::" + shopId + "::" + categoryId;
redisService.del(key);
}
}