刘俊驰 před 1 rokem
rodič
revize
0183c65ec0

+ 3 - 3
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductServiceImpl.java

@@ -275,7 +275,7 @@ public class PmsProductServiceImpl implements PmsProductService {
         }
         //获取初始sku信息
         PmsSkuStockExample skuStockExample = new PmsSkuStockExample();
-        skuStockExample.createCriteria().andProductIdEqualTo(id);
+        skuStockExample.createCriteria().andProductIdEqualTo(id).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> oriStuList = skuStockMapper.selectByExample(skuStockExample);
         //获取新增sku信息
         List<PmsSkuStock> insertSkuList = currSkuList.stream().filter(item->item.getId()==null).collect(Collectors.toList());
@@ -354,7 +354,7 @@ public class PmsProductServiceImpl implements PmsProductService {
 
         // 查询商品的sku
         PmsSkuStockExample skuStockExample = new PmsSkuStockExample();
-        skuStockExample.createCriteria().andProductIdIn(ids);
+        skuStockExample.createCriteria().andProductIdIn(ids).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(skuStockExample);
         syncSkuStatus(publishStatus, pmsSkuStocks);
     }
@@ -401,7 +401,7 @@ public class PmsProductServiceImpl implements PmsProductService {
             syncProductStatus(ids, 0);
             // 更新库存
             PmsSkuStockExample example = new PmsSkuStockExample();
-            example.createCriteria().andProductIdIn(ids);
+            example.createCriteria().andProductIdIn(ids).andDeleteStatusEqualTo(0);
             List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(example);
             if (!CollectionUtils.isEmpty(pmsSkuStocks)) {
                 List<GoodsSubStockModel> stockModels = pmsSkuStocks.stream().map(next -> {

+ 21 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductSkuStockRecordServiceImpl.java

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.admin.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.google.common.collect.Lists;
 import com.ym.mec.common.exception.BizException;
@@ -10,6 +12,7 @@ import com.yonge.cooleshow.admin.service.PmsProductService;
 import com.yonge.cooleshow.admin.service.PmsProductSkuStockRecordService;
 import com.yonge.cooleshow.admin.service.PmsSkuStockService;
 import com.yonge.cooleshow.admin.wrapper.PmsProductSkuStockRecordWrapper;
+import com.yonge.cooleshow.mall.common.util.StringUtil;
 import com.yonge.cooleshow.mbg.mapper.PmsProductMapper;
 import com.yonge.cooleshow.mbg.mapper.PmsProductSkuStockRecordMapper;
 import com.yonge.cooleshow.mbg.mapper.PmsSkuStockMapper;
@@ -75,6 +78,24 @@ public class PmsProductSkuStockRecordServiceImpl implements PmsProductSkuStockRe
             PmsSkuStock skuStock = skuStockMap.get(item.getProductSkuId());
             if (skuStock != null) {
                 item.setProductSkuCode(skuStock.getSkuCode());
+                item.setSpData(skuStock.getSpData());
+
+                //规格 信息
+                if (StringUtil.isEmpty(item.getSpData())) {
+                    item.setSpData("无");
+                } else {
+                    try {
+
+                        JSONArray objects = JSON.parseArray(item.getSpData());
+                        List<String> list1 = Lists.newArrayList();
+                        for (Object object : objects) {
+                            list1.add(((JSONObject)object).getString("key")+":"+((JSONObject)object).getString("value"));
+                        }
+                        item.setSpData(list1.stream().collect(Collectors.joining(";")));
+                    } catch (Exception e) {
+                        item.setSpData("无");
+                    }
+                }
             }
             PmsProduct pmsProduct = productMap.get(item.getProductId());
             if (pmsProduct != null) {

+ 1 - 1
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsSkuStockServiceImpl.java

@@ -34,7 +34,7 @@ public class PmsSkuStockServiceImpl implements PmsSkuStockService {
     @Override
     public List<PmsSkuStockWrapper.PmsSkuStock> getList(Long pid, String keyword) {
         PmsSkuStockExample example = new PmsSkuStockExample();
-        PmsSkuStockExample.Criteria criteria = example.createCriteria().andProductIdEqualTo(pid);
+        PmsSkuStockExample.Criteria criteria = example.createCriteria().andProductIdEqualTo(pid).andDeleteStatusEqualTo(0);
         if (!StringUtils.isEmpty(keyword)) {
             criteria.andSkuCodeLike("%" + keyword + "%");
         }

+ 10 - 1
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/wrapper/PmsProductSkuStockRecordWrapper.java

@@ -83,7 +83,8 @@ public class PmsProductSkuStockRecordWrapper {
          */
         @ApiModelProperty("商品skuId")
         @NotNull(message = "商品skuId不能为空")
-        @ExcelIgnore
+        @ColumnWidth(20)
+        @ExcelProperty(value = "skuId",order = 3)
         private Long productSkuId;
 
 
@@ -94,6 +95,14 @@ public class PmsProductSkuStockRecordWrapper {
         @ExcelProperty(value = "sku编号",order = 3)
         private String productSkuCode;
 
+
+        /**
+         * 商品skuId
+         */
+        @ApiModelProperty("商品sku编号")
+        @ExcelProperty(value = "sku规格",order = 3)
+        private String spData;
+
         /**
          * 备查货号
          */

+ 7 - 3
mec-mall/mall-admin/src/main/resources/config/mybatis/PmsProductDao.xml

@@ -33,7 +33,7 @@
         LEFT JOIN pms_member_price m ON m.product_id = p.id
         LEFT JOIN pms_sku_stock s ON s.product_id = p.id
         LEFT JOIN pms_product_attribute_value a ON a.product_id=p.id
-        WHERE p.id=#{id};
+        WHERE p.id=#{id} and (s.delete_status = 0 )
     </select>
     <select id="selectSubjectProductRelationByProductId" resultMap="com.yonge.cooleshow.mbg.mapper.CmsSubjectProductRelationMapper.BaseResultMap">
         select * from cms_subject_product_relation where product_id=#{productId}
@@ -50,7 +50,10 @@
                 left join
             (select DISTINCT pss.product_id
              from  pms_sku_stock pss
-             where pss.stock &lt;= pss.low_stock) b
+                       left join pms_product_sku_stock_record t3 on t3.product_sku_id= pss.id
+             where pss.delete_status = 0
+             group by pss.product_id,pss.id,pss.low_stock
+             having sum(t3.internal_stock - t3.internal_sale_stock) &lt;= pss.low_stock) b
         on b.product_id = pp.id
         where  (pp.stock &lt;= pp.low_stock or b.product_id is not null) and pp.delete_status = 0
     </select>
@@ -75,6 +78,7 @@
             (select DISTINCT pss.product_id
             from  pms_sku_stock pss
             left join pms_product_sku_stock_record t3 on t3.product_sku_id= pss.id
+            where pss.delete_status = 0
             group by pss.product_id,pss.id,pss.low_stock
             having sum(t3.internal_stock - t3.internal_sale_stock) &lt;= pss.low_stock) b
             on b.product_id = pp.id
@@ -125,7 +129,7 @@
         from pms_product t
         left join pms_sku_stock t1 on t.id = t1.product_id
         <where>
-            t.delete_status = 0
+            t.delete_status = 0 and (t1.delete_status = 0)
             <if test="param.publishStatus != null">
                 and t.publish_status = #{param.publishStatus}
             </if>

+ 1 - 0
mec-mall/mall-admin/src/main/resources/config/mybatis/PmsProductSkuStockRecordDao.xml

@@ -33,5 +33,6 @@
 
         </where>
 
+        order by t.id desc
     </select>
 </mapper>

+ 12 - 0
mec-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/PmsSkuStock.java

@@ -35,6 +35,18 @@ public class PmsSkuStock implements Serializable {
     @ApiModelProperty(value = "商品销售属性,json格式")
     private String spData;
 
+
+    @ApiModelProperty(value = "删除状态:0->未删除;1->已删除")
+    private Integer deleteStatus;
+
+    public Integer getDeleteStatus() {
+        return deleteStatus;
+    }
+
+    public void setDeleteStatus(Integer deleteStatus) {
+        this.deleteStatus = deleteStatus;
+    }
+
     private static final long serialVersionUID = 1L;
 
     public Long getId() {

+ 61 - 0
mec-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/PmsSkuStockExample.java

@@ -110,6 +110,67 @@ public class PmsSkuStockExample {
             return (Criteria) this;
         }
 
+
+        public Criteria andDeleteStatusIsNull() {
+            addCriterion("delete_status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusIsNotNull() {
+            addCriterion("delete_status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusEqualTo(Integer value) {
+            addCriterion("delete_status =", value, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusNotEqualTo(Integer value) {
+            addCriterion("delete_status <>", value, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusGreaterThan(Integer value) {
+            addCriterion("delete_status >", value, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("delete_status >=", value, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusLessThan(Integer value) {
+            addCriterion("delete_status <", value, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("delete_status <=", value, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusIn(List<Integer> values) {
+            addCriterion("delete_status in", values, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusNotIn(List<Integer> values) {
+            addCriterion("delete_status not in", values, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {
+            addCriterion("delete_status between", value1, value2, "deleteStatus");
+            return (Criteria) this;
+        }
+
+        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("delete_status not between", value1, value2, "deleteStatus");
+            return (Criteria) this;
+        }
+
         public Criteria andIdIsNotNull() {
             addCriterion("id is not null");
             return (Criteria) this;

+ 6 - 3
mec-mall/mall-mbg/src/main/resources/config/mybatis/PmsSkuStockMapper.xml

@@ -13,6 +13,7 @@
     <result column="promotion_price" jdbcType="DECIMAL" property="promotionPrice" />
     <result column="lock_stock" jdbcType="INTEGER" property="lockStock" />
     <result column="sp_data" jdbcType="VARCHAR" property="spData" />
+    <result column="delete_status" jdbcType="INTEGER" property="deleteStatus" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -73,7 +74,7 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, product_id, sku_code, price, stock, low_stock, pic, sale, promotion_price, lock_stock, 
+    id, product_id, sku_code, price, stock, low_stock, pic, sale, promotion_price, lock_stock, delete_status,
     sp_data
   </sql>
   <select id="selectByExample" parameterType="com.yonge.cooleshow.mbg.model.PmsSkuStockExample" resultMap="BaseResultMap">
@@ -97,11 +98,11 @@
     where id = #{id,jdbcType=BIGINT}
   </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    delete from pms_sku_stock
+      update pms_sku_stock set delete_status = 1
     where id = #{id,jdbcType=BIGINT}
   </delete>
   <delete id="deleteByExample" parameterType="com.yonge.cooleshow.mbg.model.PmsSkuStockExample">
-    delete from pms_sku_stock
+    update pms_sku_stock set delete_status = 1
     <if test="_parameter != null">
       <include refid="Example_Where_Clause" />
     </if>
@@ -316,10 +317,12 @@
         sum(t.internal_stock - t.internal_sale_stock) as internalStock,
         sum(t.tax_stock - t.tax_sale_stock) as taxStock
         from pms_product_sku_stock_record t
+        left join pms_sku_stock t1 on t1.id = t.product_sku_id
         where t.product_id in
         <foreach collection="productIds" item="productId" open="(" separator="," close=")">
             #{productId}
         </foreach>
+        and t1.delete_status = 0
         group by t.product_sku_id, t.product_id
     </select>
 </mapper>

+ 1 - 1
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsCartItemServiceImpl.java

@@ -139,7 +139,7 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
         }
         List<Long> skuIds = omsCartItems.stream().map(OmsCartItem::getProductSkuId).collect(Collectors.toList());
         PmsSkuStockExample skuExample = new PmsSkuStockExample();
-        skuExample.createCriteria().andIdIn(skuIds);
+        skuExample.createCriteria().andIdIn(skuIds).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(skuExample);
         Map<Long, List<PmsSkuStock>> collect =
                 pmsSkuStocks.stream().collect(Collectors.groupingBy(PmsSkuStock::getId));

+ 2 - 2
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/PmsPortalProductServiceImpl.java

@@ -97,7 +97,7 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
             return pmsProducts;
         }
         PmsSkuStockExample skuExample = new PmsSkuStockExample();
-        skuExample.createCriteria().andProductIdIn(productIdList);
+        skuExample.createCriteria().andProductIdIn(productIdList).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> skuStockList = skuStockMapper.selectByExample(skuExample);
         skuStockList = updateProductSkuStock(skuStockList);
         Map<Long, List<PmsSkuStock>> collect = skuStockList.stream()
@@ -231,7 +231,7 @@ public class PmsPortalProductServiceImpl implements PmsPortalProductService {
         }
         //获取商品SKU库存信息
         PmsSkuStockExample skuExample = new PmsSkuStockExample();
-        skuExample.createCriteria().andProductIdEqualTo(product.getId());
+        skuExample.createCriteria().andProductIdEqualTo(product.getId()).andDeleteStatusEqualTo(0);
         List<PmsSkuStock> skuStockList = skuStockMapper.selectByExample(skuExample);
         skuStockList = updateProductSkuStock(skuStockList);
         result.setSkuStockList(skuStockList);