Browse Source

协销购物车

chao 3 năm trước cách đây
mục cha
commit
fb37793107

+ 2 - 2
src/main/java/com/caimei365/order/model/dto/SellerCartDto.java

@@ -45,9 +45,9 @@ public class SellerCartDto implements Serializable {
     @ApiModelProperty("单一商品数量")
     private Integer productCount;
     /**
-     * 组合商品信息:Json字符串格式[{id:4351,num:1},{}]
+     * 组合商品信息:Json字符串格式[{id:4351,count:1},{}]
      */
-    @ApiModelProperty("组合商品信息:Json字符串格式[{id:4351,num:1},{}]")
+    @ApiModelProperty("组合商品信息:Json字符串格式[{id:4351,count:1},{}]")
     private String productInfo;
     /**
      * 商品ids

+ 4 - 0
src/main/java/com/caimei365/order/model/po/SellerCartPo.java

@@ -26,6 +26,10 @@ public class SellerCartPo implements Serializable {
      * 机构id
      */
     private Integer clubId;
+    /**
+     * 供应商id
+     */
+    private Integer shopId;
     /**
      * 商品id
      */

+ 4 - 0
src/main/java/com/caimei365/order/model/vo/CartItemVo.java

@@ -42,6 +42,10 @@ public class CartItemVo implements Serializable {
      * 主图
      */
     private String image;
+    /**
+     * 商品Code
+     */
+    private String productCode;
     /**
      * 价格
      */

+ 11 - 5
src/main/java/com/caimei365/order/service/impl/CartSellerServiceImpl.java

@@ -87,6 +87,7 @@ public class CartSellerServiceImpl implements CartSellerService {
         // 协销购物车供应商列表
         List<CartShopVo> shopInfoList = cartSellerMapper.getSellerCartShops(serviceProviderId, clubId);
         if (null != shopInfoList && shopInfoList.size()>0) {
+            shopInfoList.removeIf(Objects::isNull);
             // 遍历供应商列表
             shopInfoList.forEach(shop -> {
                 // 默认未选中状态(前端要求)
@@ -219,10 +220,10 @@ public class CartSellerServiceImpl implements CartSellerService {
             // 删除空数据
             shopInfoList.removeIf(shop -> (null == shop || shop.getCount() == 0));
         }
-        PageInfo<CartShopVo> pageInfo = null;
-        if (null != shopInfoList && shopInfoList.size()>0){
-            pageInfo = new PageInfo(shopInfoList);
+        if (null == shopInfoList){
+            shopInfoList = new ArrayList<>();
         }
+        PageInfo<CartShopVo> pageInfo = new PageInfo(shopInfoList);
         /*
          * 返回结果
          */
@@ -292,6 +293,7 @@ public class CartSellerServiceImpl implements CartSellerService {
      */
     private void addSellerCart(SellerCartDto sellerCartDto) {
         SellerCartPo cart = cartSellerMapper.getSellerCart(sellerCartDto);
+
         if (cart != null) {
             // 购物车已存在该商品,更新数量
             cart.setNum(cart.getNum() + sellerCartDto.getProductCount());
@@ -299,8 +301,10 @@ public class CartSellerServiceImpl implements CartSellerService {
             cartSellerMapper.updateSellerCart(cart);
         } else {
             // 添加新购物车
+            Integer shopId = baseMapper.getShopIdByproductId(sellerCartDto.getProductId());
             cart = new SellerCartPo();
             cart.setServiceProviderId(sellerCartDto.getServiceProviderId());
+            cart.setShopId(shopId);
             cart.setClubId(sellerCartDto.getClubId());
             cart.setProductId(sellerCartDto.getProductId());
             cart.setNum(sellerCartDto.getProductCount());
@@ -324,7 +328,7 @@ public class CartSellerServiceImpl implements CartSellerService {
         if (!sellerCartDto.getServiceProviderId().equals(cart.getServiceProviderId())) {
             return ResponseJson.error("协销Id不正确!",null);
         }
-        cart.setNum(cart.getNum() + sellerCartDto.getProductCount());
+        cart.setNum(sellerCartDto.getProductCount());
         cart.setAddTime(new Date());
         cartSellerMapper.updateSellerCart(cart);
         return ResponseJson.success(0);
@@ -703,10 +707,12 @@ public class CartSellerServiceImpl implements CartSellerService {
             return ResponseJson.error("订单异常或不存在!", null);
         }
         List<CartItemVo> productList = cartSellerMapper.getOrderProductNum(againBuyDto.getOrderId());
+        // 移除运费商品
+        productList.removeIf(cartItemVo -> (null == cartItemVo || null == cartItemVo.getValidFlag() || cartItemVo.getProductId() == 999));
         // 总商品种类数量
         int total = productList.size();
         // 移除失效商品
-        productList.removeIf(cartItemVo -> (null == cartItemVo || null == cartItemVo.getValidFlag() || (cartItemVo.getValidFlag() != 2 && cartItemVo.getValidFlag() != 3 && cartItemVo.getValidFlag() != 9)));
+        productList.removeIf(cartItemVo -> (cartItemVo.getValidFlag() != 2 && cartItemVo.getValidFlag() != 3 && cartItemVo.getValidFlag() != 9));
         // 失效商品数量
         int invalid = total - productList.size();
         if (productList.size() == 0) {

+ 3 - 0
src/main/resources/mapper/CartClubMapper.xml

@@ -36,6 +36,7 @@
             p.shopID AS shopId,
             p.`name` AS `name`,
             p.mainImage AS image,
+            p.productCode,
             p.price1 AS price,
             p.price1 AS originalPrice,
             p.unit AS unit,
@@ -61,6 +62,7 @@
         p.shopID AS shopId,
         p.`name` AS `name`,
         p.mainImage AS image,
+        p.productCode,
         p.price1 AS price,
         p.price1 AS originalPrice,
         p.unit AS unit,
@@ -90,6 +92,7 @@
             p.shopID AS shopId,
             p.`name` AS `name`,
             p.mainImage AS image,
+            p.productCode,
             p.price1 AS price,
             p.price1 AS originalPrice,
             p.unit AS unit,

+ 5 - 2
src/main/resources/mapper/CartSellerMapper.xml

@@ -20,6 +20,7 @@
             c.shopId,
             p.`name` AS `name`,
             p.mainImage AS image,
+            p.productCode,
             p.price1 AS price,
             p.price1 AS originalPrice,
             p.unit AS unit,
@@ -59,8 +60,8 @@
         WHERE id = #{id}
     </update>
     <insert id="insertSellerCart" keyColumn="id" keyProperty="id"  parameterType="com.caimei365.order.model.po.SellerCartPo" useGeneratedKeys="true">
-        INSERT INTO bp_order_product_cart (serviceProviderId, clubId, productId, num, addDate)
-        VALUES (#{serviceProviderId}, #{clubId}, #{productId}, #{num}, #{addTime})
+        INSERT INTO bp_order_product_cart (serviceProviderId, clubId, shopId, productId, num, addDate)
+        VALUES (#{serviceProviderId}, #{clubId}, #{shopId}, #{productId}, #{num}, #{addTime})
     </insert>
     <delete id="deleteSellerCartByIds">
         DELETE FROM bp_order_product_cart
@@ -112,6 +113,7 @@
             c.shopId,
             p.`name` AS `name`,
             p.mainImage AS image,
+            p.productCode,
             p.price1 AS price,
             p.price1 AS originalPrice,
             p.unit AS unit,
@@ -139,6 +141,7 @@
             p.shopId,
             p.`name` AS `name`,
             p.mainImage AS image,
+            p.productCode,
             p.price1 AS price,
             cshd.originalPrice AS originalPrice,
             p.unit AS unit,