From edfd75d31bf318e34cdd2bf58bf954cadd688126 Mon Sep 17 00:00:00 2001 From: Chopper Date: Wed, 19 May 2021 16:35:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81es=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/GoodsSkuServiceImpl.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java index 3ec76b83..6d63599b 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java @@ -110,6 +110,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl i if (Boolean.TRUE.equals(regeneratorSkuFlag)) { List goodsListByGoodsId = getGoodsListByGoodsId(goods.getId()); List oldSkuIds = new ArrayList<>(); + //删除旧索引 for (GoodsSkuVO goodsSkuVO : goodsListByGoodsId) { oldSkuIds.add(goodsSkuVO.getId()); goodsIndexService.deleteIndexById(goodsSkuVO.getId()); @@ -133,11 +134,13 @@ public class GoodsSkuServiceImpl extends ServiceImpl i //设置商品规格信息 skuInfo(sku, goods, map, null); newSkuList.add(sku); + //如果商品状态值不对,则es索引移除 + if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name()) && goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())) { + goodsIndexService.deleteIndexById(sku.getId()); + } } this.updateBatchById(newSkuList); } - - this.updateStock(newSkuList); generateEsCheck(goods); } @@ -428,18 +431,30 @@ public class GoodsSkuServiceImpl extends ServiceImpl i if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name()) && goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())) { List goodsSkuList = this.list(new LambdaQueryWrapper().eq(GoodsSku::getGoodsId, goods.getId())); for (GoodsSku goodsSku : goodsSkuList) { - EsGoodsIndex byId = goodsIndexService.findById(goodsSku.getId()); + EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId()); EsGoodsIndex goodsIndex = new EsGoodsIndex(goodsSku); - if (goodsSku.getQuantity() > 0 && byId == null) { + //如果商品库存不为0,并且es中有数据 + if (goodsSku.getQuantity() > 0 && esGoodsOld == null) { goodsIndexService.addIndex(goodsIndex); - } else if (goodsSku.getQuantity() > 0 && byId != null) { + } else if (goodsSku.getQuantity() > 0 && esGoodsOld != null) { goodsIndexService.updateIndex(goodsIndex); - } else if (goodsSku.getQuantity() <= 0 && byId != null) { + } else if (goodsSku.getQuantity() <= 0 && esGoodsOld != null) { goodsIndexService.deleteIndexById(goodsSku.getId()); } + //删除sku缓存 cache.remove(GoodsSkuService.getCacheKeys(goodsSku.getId())); } } + //如果商品状态值不支持es搜索,那么将商品信息做下架处理 + else { + List goodsSkuList = this.list(new LambdaQueryWrapper().eq(GoodsSku::getGoodsId, goods.getId())); + for (GoodsSku goodsSku : goodsSkuList) { + EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId()); + if (esGoodsOld != null) { + goodsIndexService.deleteIndexById(goodsSku.getId()); + } + } + } } /** @@ -601,7 +616,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl i sku.setThumbnail(thumbnail); //规格信息 - sku.setId(Convert.toStr(map.get("id"),"").toString()); + sku.setId(Convert.toStr(map.get("id"), "").toString()); sku.setSn(Convert.toStr(map.get("sn"))); sku.setWeight(Convert.toDouble(map.get("weight"), 0D)); sku.setPrice(Convert.toDouble(map.get("price"), 0D));