diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java b/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java index 25d7308b..ad714f78 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java @@ -48,6 +48,10 @@ public class ProductMapping implements Serializable { @ApiModelProperty(value = "店铺名称") private String storeName; + @TableField(value ="product_number",updateStrategy=NOT_EMPTY) + @ApiModelProperty(value = "商品货架号") + private String productNumber; + @TableField(value ="spec_value",updateStrategy=NOT_EMPTY) @ApiModelProperty("规格数据") @NotNull(message="规格数据不能为空") diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/CommonUtil.java b/mall-common/src/main/java/com/suisung/mall/common/utils/CommonUtil.java index f5115e34..f46995aa 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/utils/CommonUtil.java +++ b/mall-common/src/main/java/com/suisung/mall/common/utils/CommonUtil.java @@ -366,6 +366,31 @@ public class CommonUtil { return t -> seen.add(keyExtractor.apply(t)); } + /** + * 双字段去重工具 + * @param list + * @param keyExtractor1 + * @param keyExtractor2 + * @return + * @param + */ + public static List distinctByTwoFields( + List list, + Function keyExtractor1, + Function keyExtractor2) { + + Set> seen = new HashSet<>(); + return list.stream() + .filter(item -> { + List keys = Arrays.asList( + keyExtractor1.apply(item), + keyExtractor2.apply(item) + ); + return seen.add(keys); + }) + .collect(Collectors.toList()); + } + /** * 按照指定比例计算分账金额 * 分配优先级: 商家 > 平台 > 代理商 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/number/service/ShopNumberSeqService.java b/mall-shop/src/main/java/com/suisung/mall/shop/number/service/ShopNumberSeqService.java index 56cc0ac8..b79a1f1f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/number/service/ShopNumberSeqService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/number/service/ShopNumberSeqService.java @@ -37,4 +37,8 @@ public interface ShopNumberSeqService extends IBaseService { List getBatchSpecId(int batchSize); void clearKeyStoreSepcId(); + + List getBatchLibraryProductId(int batchSize); + + void clearKeyLibraryProductId(); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/number/service/impl/ShopNumberSeqServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/number/service/impl/ShopNumberSeqServiceImpl.java index 5c8c3695..b90426d0 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/number/service/impl/ShopNumberSeqServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/number/service/impl/ShopNumberSeqServiceImpl.java @@ -4,11 +4,13 @@ import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.suisung.mall.common.feignService.AccountService; import com.suisung.mall.common.modules.base.ShopBaseProductSpec; +import com.suisung.mall.common.modules.library.LibraryProduct; import com.suisung.mall.common.modules.number.ShopNumberSeq; import com.suisung.mall.common.modules.product.ShopProductSpecItem; import com.suisung.mall.core.web.service.RedisService; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.base.service.ShopBaseProductSpecService; +import com.suisung.mall.shop.library.service.LibraryProductService; import com.suisung.mall.shop.number.mapper.ShopNumberSeqMapper; import com.suisung.mall.shop.number.service.ShopNumberSeqService; import com.suisung.mall.shop.product.service.ShopProductSpecItemService; @@ -52,6 +54,9 @@ public class ShopNumberSeqServiceImpl extends BaseServiceImpl getBatchLibraryProductId(int batchSize) { + int start = 0; + if (null != redisService.get(RedisKey.STOREDATALIBRARYID)) { + start = (Integer) redisService.get(RedisKey.STOREDATALIBRARYID); + redisService.set(RedisKey.STOREDATALIBRARYID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("max(id) as id"); + LibraryProduct libraryProduct = libraryProductService.getOne(queryWrapper); + if (null != libraryProduct) { + start = Math.toIntExact(libraryProduct.getId()); + redisService.set(RedisKey.STOREDATALIBRARYID, start + batchSize); + } + if (start == 0) { + redisService.set(RedisKey.STOREDATALIBRARYID, start + batchSize); + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); + } + return IntStream.rangeClosed(start + 1, start + batchSize).boxed().collect(Collectors.toList()); + } + + @Override + public void clearKeyLibraryProductId() { + redisService.del(RedisKey.STOREDATALIBRARYID); + } + + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/mapper/ShopProductBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/mapper/ShopProductBaseMapper.java index c8fab2ff..4099defd 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/mapper/ShopProductBaseMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/mapper/ShopProductBaseMapper.java @@ -36,4 +36,10 @@ public interface ShopProductBaseMapper extends BaseMapper { */ Map getProductBasicInfo(@Param("product_id") Long product_id, @Param("store_id") Integer store_id); + + int countFindMapping(@Param("storeId") Integer storeId); + + List findPageMapping(@Param("storeId") Integer storeId, @Param("offset") Integer offset, @Param("limit") Integer limit); + + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java index b703f1ff..496ef8b9 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java @@ -301,4 +301,7 @@ public interface ShopProductBaseService extends IBaseService { Map getProductBasicIdByStore(Integer store_id, List productNumberList); + int countFindMapping(Integer store_id); + + List findPageMapping(Integer store_id, Integer pageNum, Integer pageSize); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java index 1eeb211a..1fb9a9e0 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java @@ -6449,4 +6449,16 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl findPageMapping(Integer store_id, Integer pageNum, Integer pageSize) { + return shopProductBaseMapper.findPageMapping(store_id,(pageNum-1)*pageSize,pageSize); + } + + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductSpecItemServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductSpecItemServiceImpl.java index 6b85ccab..55647955 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductSpecItemServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductSpecItemServiceImpl.java @@ -42,7 +42,7 @@ public class ShopProductSpecItemServiceImpl extends BaseServiceImpl list= list(queryWrapper); for(ShopProductSpecItem shopProductSpecItem:list){ - map.put(shopProductSpecItem.getSpec_item_name(),shopProductSpecItem.getSpec_item_id()); + map.put(shopProductSpecItem.getSpec_item_name()+"_"+shopProductSpecItem.getCategory_id(),shopProductSpecItem.getSpec_item_id()); } return map; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java index 39fdeefa..452ddb1c 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java @@ -11,28 +11,32 @@ public class ProductMappingExcel { @ExcelProperty(value = "商品名称", index = 0) private String productName; - @ExcelProperty(value = "店铺编号", index = 1) + @ExcelProperty(value = "商品货号", index = 1) + private String productNumber; + + @ExcelProperty(value = "店铺编号", index = 2) private Integer storeId; - @ExcelProperty(value = "店铺名称", index = 2) + @ExcelProperty(value = "店铺名称", index = 3) private String storeName; - @ExcelProperty(value = "规格数据", index = 3) + @ExcelProperty(value = "规格数据", index = 4) private BigDecimal specValue; - @ExcelProperty(value = "规格单位", index = 4) + @ExcelProperty(value = "规格单位", index = 5) private String specUnit; - @ExcelProperty(value = "商品描述", index = 5) + @ExcelProperty(value = "商品描述", index = 6) private String description; - @ExcelProperty(value = "排序值", index = 6) + @ExcelProperty(value = "排序值", index = 7) private Integer sortOrder; // 转换为实体对象 public ProductMapping toEntity() { ProductMapping entity = new ProductMapping(); entity.setProductName(this.productName); + entity.setProductNumber(this.productNumber); entity.setStoreId(this.storeId); entity.setStoreName(this.storeName); entity.setSpecValue(this.specValue); @@ -46,6 +50,7 @@ public class ProductMappingExcel { public static ProductMappingExcel fromEntity(ProductMapping entity) { ProductMappingExcel excel = new ProductMappingExcel(); excel.setProductName(entity.getProductName()); + excel.setProductNumber(entity.getProductNumber()); excel.setStoreId(entity.getStoreId()); excel.setStoreName(entity.getStoreName()); excel.setSpecValue(entity.getSpecValue()); @@ -59,8 +64,9 @@ public class ProductMappingExcel { * 生成唯一键:productName + storeId + specValue + specUnit */ public String getUniqueKey() { - return String.format("%s|%d|%s|%s", + return String.format("%s|%s|%d|%s|%s", productName, + productNumber, storeId, specValue.stripTrailingZeros().toPlainString(), specUnit); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/keymanage/RedisKey.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/keymanage/RedisKey.java index 64f746ef..3080eea7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/keymanage/RedisKey.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/keymanage/RedisKey.java @@ -23,4 +23,7 @@ public class RedisKey { public static final String STOREDATASPECID="storedata:SpecId"; + + + public static final String STOREDATALIBRARYID="storedata:libraryId"; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java index f98e8657..00930ec1 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java @@ -22,7 +22,7 @@ public interface ProductMappingService extends IBaseService { * @param isUpdate */ void computeProductMapping(List shopProductBaseList,Integer storeId, - Map shopProductSpecItemMap,Map ShopBaseProductSpecMap, Map productMappingMap, + Map shopProductSpecItemMap,Map ShopBaseProductSpecMap, Map productMappingMap, boolean isUpdate,String isPubish); Map getProductMapping(Integer storeId); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java index 4d172838..6187d5c3 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java @@ -67,9 +67,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; import java.util.stream.Collectors; @@ -113,6 +110,7 @@ public class ProductMappingServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); @@ -129,7 +127,7 @@ public class ProductMappingServiceImpl extends BaseServiceImpl shopProductBaseList,Integer storeId,Map shopProductSpecItemMap,Map ShopBaseProductSpecMap, Map productMappingMap,boolean isUpdate,String isPubish) { + public void computeProductMapping(List shopProductBaseList, Integer storeId, Map shopProductSpecItemMap, Map ShopBaseProductSpecMap, Map productMappingMap, boolean isUpdate, String isPubish) { shopProductBaseList= shopProductBaseList.stream().filter(base ->ObjectUtil.isNotEmpty(base.getUnit_name())).collect(Collectors.toList()); if (CollUtil.isEmpty(shopProductBaseList)) { log.info("没有规格数据要处理"); @@ -146,11 +144,59 @@ public class ProductMappingServiceImpl extends BaseServiceImplm.eq("store_id",storeId).or().eq("store_id",0)).orderByDesc("sort_order"); List list= this.list(queryWrapper); for (ProductMapping productMapping:list){ - map.put(productMapping.getProductName(),productMapping); + map.put(productMapping.getProductNumber(),productMapping); } return map; } + /** + * 处理规格数据 + * @param shopProductSpecItemMap + * @param ShopBaseProductSpecMap + * @param productMappingMap + */ + public void saveProductSpecItem(Map shopProductSpecItemMap,Map ShopBaseProductSpecMap,Map productMappingMap,Map shopProductItemCategoryIdMap){ + List addShopProductSpecItemList=new ArrayList<>(); + List finalAddShopProductSpecItemList = addShopProductSpecItemList; + productMappingMap.forEach((k, productMapping)->{ + Integer categoryId=shopProductItemCategoryIdMap.get(k); + if(categoryId==null){ + return; + } + ShopBaseProductSpec shopBaseProductSpec= (ShopBaseProductSpec) ShopBaseProductSpecMap.get(categoryId); + ShopProductSpecItem addShopProductSpecItem=new ShopProductSpecItem(); + if(null==shopBaseProductSpec){ + shopBaseProductSpec= (ShopBaseProductSpec) ShopBaseProductSpecMap.get(String.valueOf(categoryId)); + } + String Spec_item_name=BigDecimalFormatter.formatWithoutTrailingZeros(productMapping.getSpecValue())+productMapping.getSpecUnit(); + String Spec_item_name_categoryId=Spec_item_name+"_"+categoryId;//存在的item + if(ObjectUtil.isNotEmpty(shopProductSpecItemMap.get(Spec_item_name_categoryId))){ + return; + } + Integer specId= shopBaseProductSpec.getSpec_id(); + addShopProductSpecItem.setStore_id(productMapping.getStoreId()); + addShopProductSpecItem.setCategory_id(categoryId); + addShopProductSpecItem.setSpec_id(specId);//根据规格获取 + addShopProductSpecItem.setSpec_item_name(Spec_item_name); + addShopProductSpecItem.setSpec_item_enable(1);//上架 + addShopProductSpecItem.setSpec_item_order(String.valueOf(productMapping.getSortOrder())); + finalAddShopProductSpecItemList.add(addShopProductSpecItem); + }); + if(!finalAddShopProductSpecItemList.isEmpty()){ + //去重 + addShopProductSpecItemList=com.suisung.mall.common.utils.CommonUtil.distinctByTwoFields(addShopProductSpecItemList,ShopProductSpecItem::getSpec_item_name,ShopProductSpecItem::getCategory_id); + + List integers= shopNumberSeqService.getBatchSpecItemId(addShopProductSpecItemList.size()); + for (int i = 0; i < addShopProductSpecItemList.size(); i++){ + addShopProductSpecItemList.get(i).setSpec_item_id(integers.get(i)); + } + if(!addShopProductSpecItemList.isEmpty()){ + shopProductSpecItemService.saveBatch(addShopProductSpecItemList,addShopProductSpecItemList.size()); + } + } + + } + /** * 处理数据,生成规格列表 * @param shopProductBaseList @@ -158,10 +204,18 @@ public class ProductMappingServiceImpl extends BaseServiceImpl shopProductBaseList,Map shopProductSpecItemMap,Map ShopBaseProductSpecMap, Map productMappingMap,boolean isUpdate,String isPublish){ + @Transactional + public void dealData(List shopProductBaseList,Map shopProductSpecItemMap,Map ShopBaseProductSpecMap, Map productMappingMap,boolean isUpdate,String isPublish){ List shopProductItems=findShopProductItemsList(shopProductBaseList); + Map shopProductItemCategoryIdMap=new HashMap<>(); + shopProductItemCategoryIdMap=shopProductItems.stream().collect(Collectors.toMap(ShopProductItem::getItem_number,ShopProductItem::getCategory_id, + (existingValue,newValue)->existingValue)); + saveProductSpecItem(shopProductSpecItemMap, ShopBaseProductSpecMap, productMappingMap,shopProductItemCategoryIdMap);//保存规格数据 + Set item_keys = redisService.keys(ConstantRedis.Cache_NameSpace +"shop_product_spec_item"+ "*"); + redisService.del(item_keys); + shopProductSpecItemMap= shopProductSpecItemService.getExistItem(shopProductBaseList.get(0).getStore_id()); List shopProductInfoList=findShopProductInfoList(shopProductBaseList); - List addShopProductSpecItemList=new ArrayList<>(); + // List addShopProductSpecItemList=new ArrayList<>(); List updateShopProductSpecItemList=new ArrayList<>(); List updateShopProductBaseList=new ArrayList<>(); @@ -171,7 +225,8 @@ public class ProductMappingServiceImpl extends BaseServiceImpl integers= shopNumberSeqService.getBatchSpecItemId(addShopProductSpecItemList.size()); - int index=0; - for (int i = 0; i < shopProductBaseList.size(); i++){ - if(index==integers.size()){ - break; - } - ShopProductSpecItem shopProductSpecItem=processShopProductSpecItem(shopProductBaseList.get(i),shopProductItems.get(i).getCategory_id(),shopProductSpecItemMap,ShopBaseProductSpecMap,productMappingMap,integers.get(index)); - if(shopProductSpecItem!=null){ - if(!shopProductSpecItem.isUpdate()){ - addShopProductSpecItemList.set(index,shopProductSpecItem); - index++; - } - proccessItemAndInfo(shopProductItems.get(i),shopProductInfoList.get(i),shopProductSpecItem,isUpdate); - } - } - } +// if(!addShopProductSpecItemList.isEmpty()){ +// //去重 +// addShopProductSpecItemList= addShopProductSpecItemList.stream().filter(com.suisung.mall.common.utils.CommonUtil.distinctByKey(ShopProductSpecItem::getSpec_item_name)).collect(Collectors.toList()); +// List integers= shopNumberSeqService.getBatchSpecItemId(addShopProductSpecItemList.size()); +// int index=0; +// for (int i = 0; i < shopProductBaseList.size(); i++){ +// if(index==integers.size()){ +// break; +// } +// ShopProductSpecItem shopProductSpecItem=processShopProductSpecItem(shopProductBaseList.get(i),shopProductItems.get(i).getCategory_id(),shopProductSpecItemMap,ShopBaseProductSpecMap,productMappingMap,integers.get(index)); +// if(shopProductSpecItem!=null){ +// if(!shopProductSpecItem.isUpdate()){ +// addShopProductSpecItemList.set(index,shopProductSpecItem); +// index++; +// } +// proccessItemAndInfo(shopProductItems.get(i),shopProductInfoList.get(i),shopProductSpecItem,isUpdate); +// } +// } +// } - if(CollUtil.isNotEmpty(addShopProductSpecItemList)){ - shopProductSpecItemService.saveBatch(addShopProductSpecItemList,addShopProductSpecItemList.size()); - } +// if(CollUtil.isNotEmpty(addShopProductSpecItemList)){ +// shopProductSpecItemService.saveBatch(addShopProductSpecItemList,addShopProductSpecItemList.size()); +// } synchronized (this){ if(CollUtil.isNotEmpty(updateShopProductSpecItemList)){ shopProductSpecItemService.updateBatchById(updateShopProductSpecItemList,updateShopProductSpecItemList.size()); @@ -351,29 +409,32 @@ public class ProductMappingServiceImpl extends BaseServiceImpl queryWrapper= new QueryWrapper<>(); - queryWrapper.eq("product_state_id", StateCode.PRODUCT_STATE_OFF_THE_SHELF_UNCHECK); - queryWrapper.eq("store_id", storeId); - queryWrapper.gt("unit_price", BigDecimal.ZERO); - queryWrapper.orderByAsc("product_id"); - long total=shopProductBaseService.count(queryWrapper); + int total = shopProductBaseService.countFindMapping(storeId); - int pages= CommonUtil.getPagesCount(Math.toIntExact(total),SHOPBASEPAGE); + int pages= CommonUtil.getPagesCount(total,SHOPBASEPAGE); + //ExecutorService executor = Executors.newFixedThreadPool(6); + //List> futures = new ArrayList<>(); - ExecutorService executor = Executors.newFixedThreadPool(6); - List> futures = new ArrayList<>(); - Map shopProductSpecItemMap = shopProductSpecItemService.getExistItem(storeId); Map productMappingMap = this.getProductMapping(storeId); Map ShopBaseProductSpecMap = baseProductSpecService.getShopBaseProductSpecMap(storeId); boolean isUpDatePrice=ObjectUtil.isNotEmpty(storeDbConfig.getRefreshTime()); for (int i=1;i<=pages;i++){ - int finalI = i; - Integer finalStoreId = storeId; - List shopProductBaseList=shopProductBaseService.lists(queryWrapper, finalI,SHOPBASEPAGE).getRecords(); - futures.add(executor.submit(() -> { - this.computeProductMapping(shopProductBaseList, finalStoreId,shopProductSpecItemMap,ShopBaseProductSpecMap, productMappingMap,isUpDatePrice,isPublish); - return "成功" + finalI; - })); + //int finalI = i; + // Integer finalStoreId = storeId; + Map shopProductSpecItemMap = shopProductSpecItemService.getExistItem(storeId); + List shopProductBaseList=shopProductBaseService.findPageMapping(storeId,i,SHOPBASEPAGE); + //List shopProductBaseList=shopProductBaseService.lists(queryWrapper, i,SHOPBASEPAGE).getRecords(); + // futures.add(executor.submit(() -> { + this.computeProductMapping(shopProductBaseList, i,shopProductSpecItemMap,ShopBaseProductSpecMap, productMappingMap,isUpDatePrice,isPublish); + // return "成功" + finalI; + // })); } // 等待所有任务完成 - for (Future future : futures) { - try { - System.out.println("任务结果: " + future.get()); - } catch (Exception e) { - System.err.println("任务执行异常: " + e.getMessage()); - } - } - executor.shutdown(); +// for (Future future : futures) { +// try { +// System.out.println("任务结果: " + future.get()); +// } catch (Exception e) { +// System.err.println("任务执行异常: " + e.getMessage()); +// } +// } + // executor.shutdown(); + log.info("--------批量匹配规格结束-----"); + clearCacheData(); + return CommonResult.success(true); + } + + /** + * 清除缓存数据 + */ + private void clearCacheData(){ shopNumberSeqService.clearKeyStoreItemSepcId(); Set item_keys = redisService.keys(ConstantRedis.Cache_NameSpace +"shop_product_item"+ "*"); redisService.del(item_keys); @@ -461,7 +528,7 @@ public class ProductMappingServiceImpl extends BaseServiceImpl info_keys = redisService.keys(ConstantRedis.Cache_NameSpace +"shop_product_info"+ "*"); redisService.del(info_keys); - return CommonResult.success(true); + } @Override diff --git a/mall-shop/src/main/resources/mapper/product/ShopProductBaseMapper.xml b/mall-shop/src/main/resources/mapper/product/ShopProductBaseMapper.xml index 86f7763e..16a91b73 100644 --- a/mall-shop/src/main/resources/mapper/product/ShopProductBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/product/ShopProductBaseMapper.xml @@ -2,6 +2,17 @@ + + + + + + + + + + + + + + + diff --git a/mall-shop/src/main/resources/mapper/product/ShopProductItemMapper.xml b/mall-shop/src/main/resources/mapper/product/ShopProductItemMapper.xml index 82f70ce1..c685905b 100644 --- a/mall-shop/src/main/resources/mapper/product/ShopProductItemMapper.xml +++ b/mall-shop/src/main/resources/mapper/product/ShopProductItemMapper.xml @@ -229,7 +229,7 @@