Ver Fonte

商品分页查询优化

yzc há 2 anos atrás
pai
commit
4c7c1e8ae3

+ 23 - 25
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -69,7 +69,7 @@ public class KwpGoodsService {
         Long entId = LoginUserHolder.getEntId();
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
-        if (Objects.nonNull(addGoodsParam.getAddressInfo())){
+        if (Objects.nonNull(addGoodsParam.getAddressInfo())) {
             Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
             SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
             goods.setProvinceCode(area.getProvinceCode());
@@ -113,7 +113,7 @@ public class KwpGoodsService {
     private void addGoodsOtherInfo(Long goodsId, AddGoodsParam addGoodsParam) {
         //添加商品地址信息
         KwpGoodsAddress address = BeanUtils.copyProperties(addGoodsParam.getAddressInfo(), KwpGoodsAddress.class);
-        if (Objects.nonNull(address)){
+        if (Objects.nonNull(address)) {
             address.setGoodsId(goodsId);
             kwpGoodsAddressService.insert(address);
         }
@@ -217,7 +217,7 @@ public class KwpGoodsService {
         if (Objects.equals(param.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
             goods.setAddedTime(new Date());
         }
-        if (Objects.nonNull(param.getAddressInfo())){
+        if (Objects.nonNull(param.getAddressInfo())) {
             Integer cityCode = param.getAddressInfo().getCityCode();
             SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
             goods.setProvinceCode(area.getProvinceCode());
@@ -394,25 +394,24 @@ public class KwpGoodsService {
      * @return: java.util.List<com.sckw.product.model.KwpGoods>
      */
     private IPage<KwpGoods> getGoodsLists(SelectGoodsListParam params, Boolean isPage) {
-        List<Long> entIds = new ArrayList<>();
-        if (StringUtils.isNotBlank(params.getKeywords())) {
-            List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
-            if (CollectionUtils.isNotEmpty(entList)) {
-                entIds = entList.stream().map(EntCacheResDto::getId).toList();
-            }
-        }
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
         if (CollectionUtils.isNotEmpty(params.getIds())) {
             wrapper.in(KwpGoods::getId, params.getIds());
         } else {
-            List<Long> finalEntIds = entIds;
             wrapper.ge(Objects.nonNull(params.getStartCreateTime()), KwpGoods::getCreateTime, params.getStartCreateTime())
                     .le(Objects.nonNull(params.getEndCreateTime()), KwpGoods::getCreateTime, params.getEndCreateTime())
                     .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
                     .in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
-                    .in(CollectionUtils.isNotEmpty(params.getStatus()), KwpGoods::getStatus, params.getStatus())
-                    .and(e -> e.in(CollectionUtils.isNotEmpty(finalEntIds), KwpGoods::getSupplyEntId, finalEntIds)
-                            .or().like(StringUtils.isNotBlank(params.getKeywords()), KwpGoods::getName, params.getKeywords()));
+                    .in(CollectionUtils.isNotEmpty(params.getStatus()), KwpGoods::getStatus, params.getStatus());
+            if (StringUtils.isNotBlank(params.getKeywords())) {
+                List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
+                List<Long> entIds = entList.stream().map(EntCacheResDto::getId).toList();
+                if (CollectionUtils.isEmpty(entIds)) {
+                    wrapper.like(KwpGoods::getName, params.getKeywords());
+                }else {
+                    wrapper.and(e -> e.in(KwpGoods::getSupplyEntId, entIds).or().like(KwpGoods::getName, params.getKeywords()));
+                }
+            }
         }
         wrapper.eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getCreateTime);
         IPage<KwpGoods> goodsIpage = new Page<>();
@@ -554,22 +553,21 @@ public class KwpGoodsService {
      * @return: com.sckw.core.model.page.PageResult
      */
     public PageResult buildingMaterialsMarketList(BuildingMaterialsMarketListParam params) {
-        List<Long> entIds = new ArrayList<>();
-        if (StringUtils.isNotBlank(params.getKeywords())) {
-            List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
-            if (CollectionUtils.isNotEmpty(entList)) {
-                entIds = entList.stream().map(EntCacheResDto::getId).toList();
-            }
-        }
         Page<KwpGoods> page = new Page<>(params.getPage(), params.getPageSize());
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        List<Long> finalEntIds = entIds;
         wrapper.in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
                 .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
                 .in(CollectionUtils.isNotEmpty(params.getProvinceCodes()), KwpGoods::getProvinceCode, params.getProvinceCodes())
-                .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO)
-                .and(e -> e.in(CollectionUtils.isNotEmpty(finalEntIds), KwpGoods::getSupplyEntId, finalEntIds)
-                        .or().like(StringUtils.isNotBlank(params.getKeywords()), KwpGoods::getName, params.getKeywords()));
+                .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO);
+        if (StringUtils.isNotBlank(params.getKeywords())) {
+            List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
+            List<Long> entIds = entList.stream().map(EntCacheResDto::getId).toList();
+            if (CollectionUtils.isNotEmpty(entIds)) {
+                wrapper.and(e -> e.in(KwpGoods::getSupplyEntId, entIds).or().like(KwpGoods::getName, params.getKeywords()));
+            }else {
+                wrapper.like(KwpGoods::getName, params.getKeywords());
+            }
+        }
         Page<KwpGoods> kwpGoodsPage = kwpGoodsMapper.selectPage(page, wrapper);
         List<KwpGoods> list = kwpGoodsPage.getRecords();
         if (CollectionUtils.isEmpty(list)) {