商品 批量操作

This commit is contained in:
2026-05-06 11:10:23 +08:00
parent 962e6d7a0c
commit d9d95da453
5 changed files with 129 additions and 5 deletions

View File

@@ -401,6 +401,19 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
redisService.del(CacheConstant.USER_CLIENT_HOTS_PRODUCT + "::" + shopId);
}
/**
* 清除某个商品分类的缓存
*/
private void clearProductAllCache(Long shopId) {
//分类缓存
redisService.deleteKeysByPrefixSafe(ADMIN_CLIENT_PRODUCT_LIST + "::" + shopId);
//用户端分组缓存
redisService.del(CacheConstant.USER_CLIENT_GROUPS_PRODUCT + "::" + shopId);
//用户端热销缓存
redisService.del(CacheConstant.USER_CLIENT_HOTS_PRODUCT + "::" + shopId);
}
/**
* 计算是否在可售时间内
*
@@ -778,6 +791,32 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
consStockByProduct(shopId, InOutTypeEnum.OUT, InOutItemEnum.DAMAGE_OUT, productStockList, null, "【商品报损,自动报损相关耗材】");
}
@Override
public void batchOperate(ProductBatchParam param) {
Product product = new Product();
//商品操作
//category 修改分类
//isSale 上下架
//is_sold_stock 售罄
//isAutoSoldStock 自动售罄
switch (param.getType()) {
case "category":
product.setCategoryId(Long.valueOf(param.getValue()));
break;
case "isSale":
product.setIsSale(Integer.valueOf(param.getValue()));
break;
case "is_sold_stock":
product.setIsSoldStock(Integer.valueOf(param.getValue()));
break;
case "isAutoSoldStock":
product.setIsAutoSoldStock(Integer.valueOf(param.getValue()));
break;
}
update(product, query().eq(Product::getShopId, param.getShopId()).in(Product::getId, param.getIds()));
clearProductAllCache(param.getShopId());
}
@Override
public ProductStatisticsVo getProductStatistics(ProductInfoParam param) {
ProductStatisticsVo data = productStockFlowMapper.getProductStatistics(param);