Przeglądaj źródła

处理存在文化退款异常问题

yjwang 2 dni temu
rodzic
commit
1c27d1e41e

+ 2 - 2
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreProductScrmMapper.java

@@ -167,9 +167,9 @@ public interface FsStoreProductScrmMapper
     @Update("update fs_store_product_scrm set stock=stock-#{num}, sales=sales+#{num}" +
             " where product_id=#{productId} and stock >= #{num}")
     int decProductAttrStock(@Param("productId")Long productId, @Param("num")Integer cartNum);
-    @Update("update fs_store_product_scrm set stock=stock+#{num}, sales=sales-#{num}" +
+    @Update("update fs_store_product_scrm set stock=stock+#{num}, sales=sales-#{sales}" +
             " where product_id=#{productId}")
-    int incStockDecSales( @Param("num")Long num, @Param("productId")Long productId);
+    int incStockDecSales( @Param("num")Long num,@Param("sales") Long sales, @Param("productId")Long productId);
     @Select("select * from fs_store_product_scrm where is_del=0 and is_show=1 and  is_new=1 and is_display=1 order by sort desc limit #{count}")
     List<FsStoreProductListQueryVO> selectFsStoreProductNewQuery(int count);
     @Select("select * from fs_store_product_scrm where is_del=0 and is_show=1 and  is_hot=1 and is_display=1 order by sort desc limit #{count}")

+ 13 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreProductScrmServiceImpl.java

@@ -685,8 +685,20 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
         if (productAttrValueId!=null) {
             attrValueService.incProductAttrStock(num, productId, productAttrValueId);
         }
+
+        //避免销量出现负数
+        FsStoreProductScrm productScrm=fsStoreProductMapper.selectFsStoreProductById(productId);
+        Long sales = 0L;
+        if(productScrm.getSales() != null && productScrm.getSales() > 0L){
+            if(productScrm.getSales() < num){
+                sales = productScrm.getSales();
+            }else {
+                sales = num;
+            }
+        }
+
         //先处理商品库存
-        fsStoreProductMapper.incStockDecSales(num, productId);
+        fsStoreProductMapper.incStockDecSales(num,sales,productId);
 
     }