清除分类商品缓存
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package com.czg.product.service;
|
package com.czg.product.service;
|
||||||
|
|
||||||
|
import com.czg.product.vo.ProductVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -36,4 +38,13 @@ public interface ProductRpcService {
|
|||||||
* @param dataList 库存恢复数据
|
* @param dataList 库存恢复数据
|
||||||
*/
|
*/
|
||||||
void orderRefundReturnStock(Long shopId, Long orderId, List<Map<String, Object>> 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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.czg.product.entity.Product;
|
|||||||
import com.czg.product.entity.ProductStockFlow;
|
import com.czg.product.entity.ProductStockFlow;
|
||||||
import com.czg.product.param.*;
|
import com.czg.product.param.*;
|
||||||
import com.czg.product.vo.ProductStatisticsVo;
|
import com.czg.product.vo.ProductStatisticsVo;
|
||||||
import com.czg.product.vo.ProductVO;
|
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import com.mybatisflex.core.service.IService;
|
import com.mybatisflex.core.service.IService;
|
||||||
|
|
||||||
@@ -142,13 +141,4 @@ public interface ProductService extends IService<Product> {
|
|||||||
*/
|
*/
|
||||||
void refreshProductStock(ProductDTO param, List<ProductDTO> records);
|
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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,17 +4,20 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.czg.account.dto.pad.*;
|
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.account.service.*;
|
||||||
import com.czg.enums.YesNoEnum;
|
import com.czg.enums.YesNoEnum;
|
||||||
import com.czg.exception.ApiNotPrintException;
|
import com.czg.exception.ApiNotPrintException;
|
||||||
import com.czg.product.entity.ProdSku;
|
import com.czg.product.entity.ProdSku;
|
||||||
import com.czg.product.entity.Product;
|
import com.czg.product.entity.Product;
|
||||||
import com.czg.product.service.ProdSkuService;
|
import com.czg.product.service.ProdSkuService;
|
||||||
|
import com.czg.product.service.ProductRpcService;
|
||||||
import com.czg.product.service.ProductService;
|
import com.czg.product.service.ProductService;
|
||||||
import com.czg.product.vo.ProductVO;
|
import com.czg.product.vo.ProductVO;
|
||||||
import com.czg.service.account.mapper.PadProductCategoryDetailMapper;
|
import com.czg.service.account.mapper.PadProductCategoryDetailMapper;
|
||||||
import com.czg.utils.JoinQueryWrapper;
|
|
||||||
import com.czg.utils.PageUtil;
|
import com.czg.utils.PageUtil;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
@@ -44,6 +47,8 @@ public class PadProdServiceImpl implements PadProdService {
|
|||||||
@DubboReference
|
@DubboReference
|
||||||
private ProductService productService;
|
private ProductService productService;
|
||||||
@DubboReference
|
@DubboReference
|
||||||
|
private ProductRpcService productRpcService;
|
||||||
|
@DubboReference
|
||||||
private ProdSkuService prodSkuService;
|
private ProdSkuService prodSkuService;
|
||||||
@Resource
|
@Resource
|
||||||
private ShopProdCategoryService shopProdCategoryService;
|
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();
|
List<Long> productIds = padProductCategoryDetailMapper.selectListByQuery(new QueryWrapper().eq(PadProductCategoryDetail::getPadProductCategoryId, padProductCategory)).stream().map(PadProductCategoryDetail::getProductId).toList();
|
||||||
padDetailDTO.setProductIdList(productIds);
|
padDetailDTO.setProductIdList(productIds);
|
||||||
if (!productIds.isEmpty()) {
|
if (!productIds.isEmpty()) {
|
||||||
List<ProductVO> products = productService.listAndLowPrice(shopId, productIds);
|
List<ProductVO> products = productRpcService.listAndLowPrice(shopId, productIds);
|
||||||
products.parallelStream().forEach(item -> {
|
products.parallelStream().forEach(item -> {
|
||||||
List<ProdSku> skuList = prodSkuService.list(new QueryWrapper().eq(ProdSku::getProductId, item.getId()));
|
List<ProdSku> skuList = prodSkuService.list(new QueryWrapper().eq(ProdSku::getProductId, item.getId()));
|
||||||
item.setSkuList(skuList);
|
item.setSkuList(skuList);
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import com.czg.product.enums.InOutTypeEnum;
|
|||||||
import com.czg.product.service.ConsStockFlowService;
|
import com.czg.product.service.ConsStockFlowService;
|
||||||
import com.czg.product.service.ProductRpcService;
|
import com.czg.product.service.ProductRpcService;
|
||||||
import com.czg.product.service.ProductStockFlowService;
|
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.ConsInfoMapper;
|
||||||
import com.czg.service.product.mapper.ProdConsRelationMapper;
|
import com.czg.service.product.mapper.ProdConsRelationMapper;
|
||||||
import com.czg.service.product.mapper.ProductMapper;
|
import com.czg.service.product.mapper.ProductMapper;
|
||||||
@@ -26,6 +28,8 @@ import java.time.LocalDate;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.czg.constant.CacheConstant.ADMIN_CLIENT_PRODUCT_LIST;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品RPC远程调用服务接口实现
|
* 商品RPC远程调用服务接口实现
|
||||||
*
|
*
|
||||||
@@ -51,6 +55,8 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
private ProductStockFlowService productStockFlowService;
|
private ProductStockFlowService productStockFlowService;
|
||||||
@Resource
|
@Resource
|
||||||
private RabbitPublisher rabbitPublisher;
|
private RabbitPublisher rabbitPublisher;
|
||||||
|
@Resource
|
||||||
|
private RedisService redisService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -275,4 +281,15 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||||||
//ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
//ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import com.czg.product.enums.*;
|
|||||||
import com.czg.product.param.*;
|
import com.czg.product.param.*;
|
||||||
import com.czg.product.service.*;
|
import com.czg.product.service.*;
|
||||||
import com.czg.product.vo.ProductStatisticsVo;
|
import com.czg.product.vo.ProductStatisticsVo;
|
||||||
import com.czg.product.vo.ProductVO;
|
|
||||||
import com.czg.sa.StpKit;
|
import com.czg.sa.StpKit;
|
||||||
import com.czg.service.RedisService;
|
import com.czg.service.RedisService;
|
||||||
import com.czg.service.product.mapper.*;
|
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));
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user