商品es问题处理

This commit is contained in:
Chopper 2021-05-19 16:35:14 +08:00
parent 3a6ce0b22c
commit edfd75d31b

View File

@ -110,6 +110,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
if (Boolean.TRUE.equals(regeneratorSkuFlag)) { if (Boolean.TRUE.equals(regeneratorSkuFlag)) {
List<GoodsSkuVO> goodsListByGoodsId = getGoodsListByGoodsId(goods.getId()); List<GoodsSkuVO> goodsListByGoodsId = getGoodsListByGoodsId(goods.getId());
List<String> oldSkuIds = new ArrayList<>(); List<String> oldSkuIds = new ArrayList<>();
//删除旧索引
for (GoodsSkuVO goodsSkuVO : goodsListByGoodsId) { for (GoodsSkuVO goodsSkuVO : goodsListByGoodsId) {
oldSkuIds.add(goodsSkuVO.getId()); oldSkuIds.add(goodsSkuVO.getId());
goodsIndexService.deleteIndexById(goodsSkuVO.getId()); goodsIndexService.deleteIndexById(goodsSkuVO.getId());
@ -133,11 +134,13 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
//设置商品规格信息 //设置商品规格信息
skuInfo(sku, goods, map, null); skuInfo(sku, goods, map, null);
newSkuList.add(sku); 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.updateBatchById(newSkuList);
} }
this.updateStock(newSkuList); this.updateStock(newSkuList);
generateEsCheck(goods); generateEsCheck(goods);
} }
@ -428,18 +431,30 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name()) && goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())) { if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name()) && goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())) {
List<GoodsSku> goodsSkuList = this.list(new LambdaQueryWrapper<GoodsSku>().eq(GoodsSku::getGoodsId, goods.getId())); List<GoodsSku> goodsSkuList = this.list(new LambdaQueryWrapper<GoodsSku>().eq(GoodsSku::getGoodsId, goods.getId()));
for (GoodsSku goodsSku : goodsSkuList) { for (GoodsSku goodsSku : goodsSkuList) {
EsGoodsIndex byId = goodsIndexService.findById(goodsSku.getId()); EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId());
EsGoodsIndex goodsIndex = new EsGoodsIndex(goodsSku); EsGoodsIndex goodsIndex = new EsGoodsIndex(goodsSku);
if (goodsSku.getQuantity() > 0 && byId == null) { //如果商品库存不为0并且es中有数据
if (goodsSku.getQuantity() > 0 && esGoodsOld == null) {
goodsIndexService.addIndex(goodsIndex); goodsIndexService.addIndex(goodsIndex);
} else if (goodsSku.getQuantity() > 0 && byId != null) { } else if (goodsSku.getQuantity() > 0 && esGoodsOld != null) {
goodsIndexService.updateIndex(goodsIndex); goodsIndexService.updateIndex(goodsIndex);
} else if (goodsSku.getQuantity() <= 0 && byId != null) { } else if (goodsSku.getQuantity() <= 0 && esGoodsOld != null) {
goodsIndexService.deleteIndexById(goodsSku.getId()); goodsIndexService.deleteIndexById(goodsSku.getId());
} }
//删除sku缓存
cache.remove(GoodsSkuService.getCacheKeys(goodsSku.getId())); cache.remove(GoodsSkuService.getCacheKeys(goodsSku.getId()));
} }
} }
//如果商品状态值不支持es搜索那么将商品信息做下架处理
else {
List<GoodsSku> goodsSkuList = this.list(new LambdaQueryWrapper<GoodsSku>().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<GoodsSkuMapper, GoodsSku> i
sku.setThumbnail(thumbnail); 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.setSn(Convert.toStr(map.get("sn")));
sku.setWeight(Convert.toDouble(map.get("weight"), 0D)); sku.setWeight(Convert.toDouble(map.get("weight"), 0D));
sku.setPrice(Convert.toDouble(map.get("price"), 0D)); sku.setPrice(Convert.toDouble(map.get("price"), 0D));