diff --git a/common-api/src/main/java/cn/lili/controller/common/SiteController.java b/common-api/src/main/java/cn/lili/controller/common/SiteController.java new file mode 100644 index 00000000..70b32328 --- /dev/null +++ b/common-api/src/main/java/cn/lili/controller/common/SiteController.java @@ -0,0 +1,33 @@ +package cn.lili.controller.common; + +import cn.lili.common.enums.ResultUtil; +import cn.lili.common.vo.ResultMessage; +import cn.lili.modules.system.entity.enums.SettingEnum; +import cn.lili.modules.system.service.SettingService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 滑块验证码接口 + * + * @author Chopper + * @since 2020/11/26 15:41 + */ +@Slf4j +@RestController +@RequestMapping("/common/common/site") +@Api(tags = "系统基础接口") +public class SiteController { + + @Autowired + private SettingService settingService; + + @ApiOperation(value = "获取系统基础信息") + @GetMapping + public ResultMessage getFileList() { + return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name())); + } +} diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java index f8958231..6c4626d2 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java @@ -1,5 +1,6 @@ package cn.lili.modules.search.serviceimpl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.thread.ThreadUtil; @@ -37,6 +38,8 @@ import cn.lili.modules.search.service.EsGoodsSearchService; import cn.lili.rocketmq.RocketmqSendCallbackBuilder; import cn.lili.rocketmq.tags.GoodsTagsEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.assertj.core.util.IterableUtil; @@ -137,34 +140,46 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements ThreadUtil.execAsync(() -> { try { - List esGoodsIndices = new ArrayList<>(); LambdaQueryWrapper goodsQueryWrapper = new LambdaQueryWrapper<>(); goodsQueryWrapper.eq(Goods::getAuthFlag, GoodsAuthEnum.PASS.name()); goodsQueryWrapper.eq(Goods::getMarketEnable, GoodsStatusEnum.UPPER.name()); goodsQueryWrapper.eq(Goods::getDeleteFlag, false); - for (Goods goods : goodsService.list(goodsQueryWrapper)) { - LambdaQueryWrapper skuQueryWrapper = new LambdaQueryWrapper<>(); - skuQueryWrapper.eq(GoodsSku::getGoodsId, goods.getId()); - skuQueryWrapper.eq(GoodsSku::getAuthFlag, GoodsAuthEnum.PASS.name()); - skuQueryWrapper.eq(GoodsSku::getMarketEnable, GoodsStatusEnum.UPPER.name()); - skuQueryWrapper.eq(GoodsSku::getDeleteFlag, false); - - List goodsSkuList = goodsSkuService.list(skuQueryWrapper); - int skuSource = 100; - for (GoodsSku goodsSku : goodsSkuList) { - EsGoodsIndex esGoodsIndex = wrapperEsGoodsIndex(goodsSku, goods); - esGoodsIndex.setSkuSource(skuSource--); - esGoodsIndices.add(esGoodsIndex); - //库存锁是在redis做的,所以生成索引,同时更新一下redis中的库存数量 - cache.put(GoodsSkuService.getStockCacheKey(goodsSku.getId()), goodsSku.getQuantity()); + for (int i = 1; ; i++) { + List esGoodsIndices = new ArrayList<>(); + IPage page = new Page<>(i, 1000); + IPage goodsIPage = goodsService.page(page, goodsQueryWrapper); + if (goodsIPage == null || CollUtil.isEmpty(goodsIPage.getRecords())) { + break; } - + for (Goods goods : goodsIPage.getRecords()) { + LambdaQueryWrapper skuQueryWrapper = new LambdaQueryWrapper<>(); + skuQueryWrapper.eq(GoodsSku::getGoodsId, goods.getId()); + skuQueryWrapper.eq(GoodsSku::getAuthFlag, GoodsAuthEnum.PASS.name()); + skuQueryWrapper.eq(GoodsSku::getMarketEnable, GoodsStatusEnum.UPPER.name()); + skuQueryWrapper.eq(GoodsSku::getDeleteFlag, false); + for (int j = 1; ; j++) { + IPage skuPage = new Page<>(j, 100); + IPage skuIPage = goodsSkuService.page(skuPage, skuQueryWrapper); + if (skuIPage == null || CollUtil.isEmpty(skuIPage.getRecords())) { + break; + } + int skuSource = 100; + for (GoodsSku goodsSku : skuIPage.getRecords()) { + EsGoodsIndex esGoodsIndex = wrapperEsGoodsIndex(goodsSku, goods); + esGoodsIndex.setSkuSource(skuSource--); + esGoodsIndices.add(esGoodsIndex); + //库存锁是在redis做的,所以生成索引,同时更新一下redis中的库存数量 + cache.put(GoodsSkuService.getStockCacheKey(goodsSku.getId()), goodsSku.getQuantity()); + } + } + } + this.initIndex(esGoodsIndices); } + //初始化商品索引 - this.initIndex(esGoodsIndices); } catch (Exception e) { log.error("商品索引生成异常:", e); //如果出现异常,则将进行中的任务标识取消掉,打印日志