Kaynağa Gözat

联合丽格1.0.1 封存

huangzhiguo 2 yıl önce
ebeveyn
işleme
a1c8335f77

+ 23 - 0
src/main/java/com/caimei365/order/controller/CartSellerApi.java

@@ -72,6 +72,29 @@ public class CartSellerApi {
         return cartSellerService.getSellerCartList(serviceProviderId, clubId, againBuyProductIds, pageNum, pageSize);
     }
 
+    /**
+     * 协销购物车列表数据 -- 组织
+     */
+    @ApiOperation("协销购物车列表数据 -- 组织")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "serviceProviderId", value = "协销Id"),
+            @ApiImplicitParam(required = true, name = "clubId", value = "机构Id"),
+            @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
+            @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
+    })
+    @GetMapping("/cart/organizeList")
+    public ResponseJson<Map<String, Object>> getShoppingOrganizeCarts(Integer serviceProviderId, Integer clubId,
+                                                              @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                              @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        if (null == serviceProviderId) {
+            return ResponseJson.error("协销Id不能为空!", null);
+        }
+        if (null == clubId) {
+            return ResponseJson.error("机构Id不能为空!", null);
+        }
+        return cartSellerService.getSellerCartOrganizeList(serviceProviderId, clubId, pageNum, pageSize);
+    }
+
     /**
      * 获取协销购物车商品种类
      */

+ 7 - 0
src/main/java/com/caimei365/order/mapper/CartSellerMapper.java

@@ -30,6 +30,13 @@ public interface CartSellerMapper {
      * @param shopId             供应商Id
      */
     List<CartItemVo> getSellerCartProducts(Integer serviceProviderId, Integer clubId, Integer shopId);
+    /**
+     * 协销购物车供应商下商品列表 -- 组织
+     * @param serviceProviderId  协销Id
+     * @param clubId             机构Id
+     * @param shopId             供应商Id
+     */
+    List<CartItemVo> getSellerCartOrganizeProducts(Integer serviceProviderId, Integer clubId, Integer shopId);
 
     /**
      * 获取协销购物车商品种类

+ 9 - 0
src/main/java/com/caimei365/order/service/CartSellerService.java

@@ -26,6 +26,15 @@ public interface CartSellerService {
      */
     ResponseJson<Map<String, Object>> getSellerCartList(Integer serviceProviderId, Integer clubId, String againBuyProductIds, int pageNum, int pageSize);
 
+    /**
+     * 协销购物车列表数据 -- 组织
+     * @param serviceProviderId 协销Id
+     * @param clubId            机构Id
+     * @param pageNum            页码
+     * @param pageSize           每页数量
+     */
+    ResponseJson<Map<String, Object>> getSellerCartOrganizeList(Integer serviceProviderId, Integer clubId, int pageNum, int pageSize);
+
     /**
      * 获取协销购物车商品种类
      * @param serviceProviderId 协销Id

+ 83 - 0
src/main/java/com/caimei365/order/service/impl/CartSellerServiceImpl.java

@@ -13,6 +13,7 @@ import com.caimei365.order.model.dto.SellerCartDto;
 import com.caimei365.order.model.po.SellerCartPo;
 import com.caimei365.order.model.vo.*;
 import com.caimei365.order.service.CartSellerService;
+import com.caimei365.order.utils.ImageUtil;
 import com.caimei365.order.utils.MathUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -302,6 +303,88 @@ public class CartSellerServiceImpl implements CartSellerService {
         return ResponseJson.success(resultMap);
     }
 
+    /**
+     * 协销购物车列表数据 -- 组织
+     *
+     * @param serviceProviderId 协销Id
+     * @param clubId            机构Id
+     * @param pageNum           页码
+     * @param pageSize          每页数量
+     */
+    @Override
+    public ResponseJson<Map<String, Object>> getSellerCartOrganizeList(Integer serviceProviderId, Integer clubId, int pageNum, int pageSize) {
+        List<Integer> againBuyIdList = Lists.newArrayList();
+        // 失效商品列表(总)
+        List<CartItemVo> invalidList = new ArrayList<>();
+        // 开始分页请求供应商数据
+        PageHelper.startPage(pageNum, pageSize);
+        log.info("serviceProviderId, clubId"+serviceProviderId+"---"+clubId);
+        // 协销购物车供应商列表
+        List<CartShopVo> shopInfoList = cartSellerMapper.getSellerCartShops(serviceProviderId, clubId);
+        if (null != shopInfoList && shopInfoList.size() > 0) {
+            shopInfoList.removeIf(Objects::isNull);
+            // 遍历供应商列表
+            shopInfoList.forEach(shop -> {
+                // 默认未选中状态(前端要求)
+                shop.setIsChecked(false);
+                // 该供应商下商品种类
+                AtomicInteger shopKindCount = new AtomicInteger(0);
+                // 该供应商总价
+                AtomicDouble shopPrice = new AtomicDouble(0);
+
+                // 供应商下商品列表
+                List<CartItemVo> productList = cartSellerMapper.getSellerCartOrganizeProducts(serviceProviderId, clubId, shop.getShopId());
+                // 迭代器设置商品信息
+                Iterator<CartItemVo> productIterator = productList.iterator();
+                while (productIterator.hasNext()) {
+                    CartItemVo cartItemVo = productIterator.next();
+                    // 图片路径
+                    String image = ImageUtil.getImageUrl("product", cartItemVo.getImage(), domain);
+                    cartItemVo.setImage(image);
+                    // 默认所有商品未选中状态(前端要求)
+                    cartItemVo.setIsChecked(false);
+                    // 设置skus
+                    cartItemVo.setSkus(orderClubMapper.getOrganizeSku(cartItemVo.getProductId()));
+                    if (cartItemVo.getValidFlag() == 2) {
+                        // 后台逻辑删除,已停售
+                        cartItemVo.setStatus(1);
+                        invalidList.add(cartItemVo);
+                    } else {
+                        // 设置商品有效
+                        cartItemVo.setStatus(0);
+
+                        // 再来一单的商品前端默认勾选
+                        if (againBuyIdList.contains(cartItemVo.getProductId())) {
+                            cartItemVo.setIsChecked(true);
+                        }
+                        // 该供应商下商品种类 +1
+                        shopKindCount.incrementAndGet();
+                    }
+                }
+                // 供应商商品
+                shop.setCartList(productList);
+                // 供应商总价
+                shop.setTotalPrice(shopPrice.get());
+                // 供应商下商品种类
+                shop.setCount(shopKindCount.get());
+            });
+            // 删除空数据
+            shopInfoList.removeIf(shop -> (null == shop || shop.getCount() == 0));
+        }
+        if (null == shopInfoList) {
+            shopInfoList = new ArrayList<>();
+        }
+        PageInfo<CartShopVo> pageInfo = new PageInfo(shopInfoList);
+        /*
+         * 返回结果
+         */
+        Map<String, Object> resultMap = new HashMap<>(2);
+        resultMap.put("pageDate", pageInfo);
+        resultMap.put("invalidProductList", invalidList);
+        // 返回数据
+        return ResponseJson.success(resultMap);
+    }
+
     /**
      * 获取协销购物车商品种类
      *

+ 34 - 0
src/main/resources/mapper/CartSellerMapper.xml

@@ -48,6 +48,40 @@
           AND c.shopID = #{shopId}
         ORDER BY c.id DESC
     </select>
+    <select id="getSellerCartOrganizeProducts" resultType="com.caimei365.order.model.vo.CartItemVo">
+        SELECT c.id,
+               c.skuId,
+               c.num                        AS number,
+               cs.productId,
+               p.shopId,
+               p.`name`                     AS `name`,
+               p.mainImage                  AS image,
+               p.productCode,
+               cmps.price,
+               cmps.price                     AS originalPrice,
+               cs.unit                      AS unit,
+               cs.stock                     AS stock,
+               p.step                       AS step,
+               cmop.minBuyNumber              AS min,
+               p.priceFlag,
+               cs.ladderPriceFlag           AS ladderFlag,
+               p.includedTax                AS includedTax,
+               p.invoiceType                AS invoiceType,
+               p.taxPoint                   AS taxRate,
+               p.productCategory,
+               cmop.validFlag                  AS validFlag,
+               p.productType
+        FROM bp_order_product_cart c
+                 LEFT JOIN cm_mall_product_sku cmps ON c.skuId = cmps.skuId
+                 LEFT JOIN cm_mall_organize_products cmop ON cmps.productID = cmop.productId
+                 LEFT JOIN cm_sku cs on c.skuId = cs.skuId
+                 LEFT JOIN product p ON cs.productId = p.productID
+        WHERE c.serviceProviderId = #{serviceProviderId}
+          AND c.clubId = #{clubId}
+          AND c.shopID = #{shopId}
+          AND cmop.delFlag = 0
+        ORDER BY c.id DESC
+    </select>
     <select id="getSellerCartCount" resultType="java.lang.Integer">
         SELECT COUNT(*)
         FROM bp_order_product_cart