Bläddra i källkod

产品维护spu问题处理

yzc 2 år sedan
förälder
incheckning
93e66e6189

+ 14 - 1
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductSpuServiceImpl.java

@@ -44,6 +44,13 @@ public class ProductSpuServiceImpl extends ServiceImpl<ProductSpuMapper, Product
     public Page<ProductSpuVo> getPage(ProductSpuSelectDto dto) {
         IWrapper<ProductSpu> wrapper = getWrapper();
         wrapper.orderByDesc("ps", ProductSpu::getId);
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())){
+            wrapper.and(q->q.like("ps",ProductSpu::getCode,dto.getKeyword()))
+                    .or().like("ps",ProductSpu::getName,dto.getKeyword())
+                    .or().like("ps",ProductSpu::getRemark,dto.getKeyword())
+            ;
+        }
+        wrapper.groupBy("ps.id");
         Page<ProductSpuVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
     }
@@ -74,12 +81,18 @@ public class ProductSpuServiceImpl extends ServiceImpl<ProductSpuMapper, Product
         this.updateById(productSpuDto);
         List<ProductInfo> productInfos = productSpuDto.getProductInfos();
         if(ObjectUtil.isNotEmpty(productInfos)){
+            //移除被删除的条目
             List<Long> productIds = productInfos.stream().map(ProductInfo::getId).collect(Collectors.toList());
             List<ProductInfo> productInfos1 = productInfoService.list(q->q.notIn(ProductInfo::getId,productIds));
             for (ProductInfo productInfo :productInfos1){
-                productInfo.setProductSpuId(null);
+                productInfo.setProductSpuId(-1l);
             }
             productInfoService.updateBatchById(productInfos1);
+            //添加新条目
+            for (ProductInfo productInfo :productInfos){
+                productInfo.setProductSpuId(productSpuDto.getId());
+            }
+            productInfoService.updateBatchById(productInfos);
         }
     }
 

+ 3 - 4
hx-item/src/main/resources/mapper/product/ProductSpuMapper.xml

@@ -4,18 +4,17 @@
     <select id="getPage" resultType="com.fjhx.item.entity.product.vo.ProductSpuVo">
         SELECT
             ps.id,
-            ps.CODE,
-            ps.NAME,
+            ps.`code`,
+            ps.`name`,
             ps.remark,
             ps.create_user,
             ps.create_time,
             ps.update_user,
             ps.update_time,
-            count( pi.id ) AS count
+            count( pi.id ) AS `count`
         FROM
             product_spu ps
             left JOIN product_info pi ON pi.product_spu_id = ps.id
-        GROUP BY ps.id
             ${ew.customSqlSegment}
     </select>