Browse Source

统计优化

xuhaifeng 2 tháng trước cách đây
mục cha
commit
b19c03e127

+ 10 - 28
yiqi-core/src/main/java/com/yiqi/core/service/impl/GoodsSkuServiceImpl.java

@@ -95,16 +95,13 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
             SkuQueryVOS = baseMapper.selectGoodsSkuInfoByStore(goodsSkuDTO);
         }
 
-        List<GoodsSkuSpec> skuStoreList = goodsSkuSpecMapper.selectList(
-                new QueryWrapper<GoodsSkuSpec>().lambda()
-                        .eq(GoodsSkuSpec::getGoodsSkuId, id)
-                        .eq(GoodsSkuSpec::getDelFlag, DeleteStatus.OK.getCode()));
-
         if (CollUtil.isEmpty(SkuQueryVOS)) {
             return new GoodsSkuQueryVO();
         }
         GoodsSkuQueryVO goodsSkuQueryVO = SkuQueryVOS.get(0);
-        goodsSkuQueryVO.setSpecVoList(skuStoreList);
+        if (StringUtils.isNotBlank(goodsSkuQueryVO.getSpecs())) {
+            goodsSkuQueryVO.setSpecValLists(JSONUtil.toList(JSONUtil.parseArray(goodsSkuQueryVO.getSpecs()), String.class));
+        }
         return goodsSkuQueryVO;
     }
 
@@ -152,17 +149,6 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
                 goodsSku_.setSpecValLists(JSONUtil.toList(JSONUtil.parseArray(goodsSku_.getSpecs()), String.class));
             }
         });
-        Set<Long> collect = SkuQueryVOS.stream().map(GoodsSkuQueryVO::getId).collect(Collectors.toSet());
-        List<GoodsSkuSpec> skuStoreList = goodsSkuSpecMapper.selectList(
-                new QueryWrapper<GoodsSkuSpec>().lambda()
-                        .in(GoodsSkuSpec::getGoodsSkuId, collect)
-                        .eq(GoodsSkuSpec::getDelFlag, DeleteStatus.OK.getCode()));
-        if (CollUtil.isNotEmpty(skuStoreList)) {
-            Map<Long, List<GoodsSkuSpec>> map = skuStoreList.stream().collect(Collectors.groupingBy(GoodsSkuSpec::getGoodsSkuId));
-            SkuQueryVOS.forEach(sku -> {
-                sku.setSpecVoList(map.get(sku.getId()));
-            });
-        }
         return SkuQueryVOS;
     }
 
@@ -388,17 +374,13 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
         if (CollUtil.isEmpty(SkuQueryVOS)) {
             return SkuQueryVOS;
         }
-        Set<Long> collect = SkuQueryVOS.stream().map(GoodsSkuQueryVO::getId).collect(Collectors.toSet());
-        List<GoodsSkuSpec> skuStoreList = goodsSkuSpecMapper.selectList(
-                new QueryWrapper<GoodsSkuSpec>().lambda()
-                        .in(GoodsSkuSpec::getGoodsSkuId, collect)
-                        .eq(GoodsSkuSpec::getDelFlag, DeleteStatus.OK.getCode()));
-        if (CollUtil.isNotEmpty(skuStoreList)) {
-            Map<Long, List<GoodsSkuSpec>> map = skuStoreList.stream().collect(Collectors.groupingBy(GoodsSkuSpec::getGoodsSkuId));
-            SkuQueryVOS.forEach(sku -> {
-                sku.setSpecVoList(map.get(sku.getId()));
-            });
-        }
+        // 设置规格值
+        SkuQueryVOS.forEach(goodsSku_ -> {
+            //values字符串数组转List
+            if (StringUtils.isNotBlank(goodsSku_.getSpecs())) {
+                goodsSku_.setSpecValLists(JSONUtil.toList(JSONUtil.parseArray(goodsSku_.getSpecs()), String.class));
+            }
+        });
         return SkuQueryVOS;
     }
 

+ 4 - 5
yiqi-core/src/main/resources/mapper/app/AppGoodsCollectMapper.xml

@@ -52,14 +52,13 @@
         g.sell_num,
         g.good_comment,
         g.create_time,
-        gss.status as status,
+        sku.status as status,
         g.del_flag,
-        min(gss.sale_price) as min_sale_price,
-        max(gss.sale_price) as max_sale_price
+        min(sku.sale_price) as min_sale_price,
+        max(sku.sale_price) as max_sale_price
         from goods_sku as sku
-        left join goods_sku_store as gss on gss.source_type = '00' and gss.goods_sku_id = sku.id
         left join goods_info as g on g.id = sku.goods_id
-        where gss.status='0' and g.del_flag='0' group by sku.goods_id) as g on g.id=gc.goods_id
+        where sku.status='0' and g.del_flag='0' group by sku.goods_id) as g on g.id=gc.goods_id
         <where>
             g.status='0' and g.del_flag='0'
             <if test="appUserId != null ">

+ 1 - 1
yiqi-core/src/main/resources/mapper/core/GoodsInfoMapper.xml

@@ -320,7 +320,7 @@
                max(sku.sale_price) as max_sale_price
         from goods_sku as sku
                  left join goods_info as g on g.id = sku.goods_id
-        where gss.status='0' and g.del_flag='0'
+        where sku.status='0' and g.del_flag='0'
             <if test="goodsType != null and goodsType != ''">
                 and g.goods_type=#{goodsType}
             </if>