huangzhiguo 2 лет назад
Родитель
Сommit
dbd5a8c214

+ 11 - 0
src/main/java/com/caimei365/commodity/controller/MallProductApi.java

@@ -1,6 +1,8 @@
 package com.caimei365.commodity.controller;
 
 import com.caimei365.commodity.model.ResponseJson;
+import com.caimei365.commodity.model.vo.MallOrganizeProductVo;
+import com.caimei365.commodity.model.vo.PaginationVo;
 import com.caimei365.commodity.service.MallProductService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -26,6 +28,15 @@ import java.util.Map;
 public class MallProductApi {
     @Autowired private MallProductService productService;
 
+    /**
+     * 商品列表 -- 联合丽格
+     * @param productName
+     * @return
+     */
+    @GetMapping(value = "/productList")
+    public ResponseJson<PaginationVo<MallOrganizeProductVo>> productList(String productName, int pageNum, int pageSize) {
+        return productService.productList(productName, pageNum, pageSize);
+    }
     /**
      * 外部商城商品详情
      * @param productId

+ 8 - 0
src/main/java/com/caimei365/commodity/mapper/MallProductMapper.java

@@ -16,6 +16,14 @@ import java.util.List;
  */
 @Mapper
 public interface MallProductMapper {
+
+    /**
+     * 商品列表
+     * @param productName
+     * @return
+     */
+    List<MallOrganizeProductVo> productList(String productName);
+
     /**
      * 外部商城 商品详情
      * @param productId

+ 10 - 0
src/main/java/com/caimei365/commodity/service/MallProductService.java

@@ -1,6 +1,8 @@
 package com.caimei365.commodity.service;
 
 import com.caimei365.commodity.model.ResponseJson;
+import com.caimei365.commodity.model.vo.MallOrganizeProductVo;
+import com.caimei365.commodity.model.vo.PaginationVo;
 
 import java.util.Map;
 
@@ -11,6 +13,14 @@ import java.util.Map;
  * @date : 2023/5/11
  */
 public interface MallProductService {
+
+    /**
+     * 商品列表
+     * @param productName
+     * @return
+     */
+    ResponseJson<PaginationVo<MallOrganizeProductVo>> productList(String productName, int pageNum, int pageSize);
+
     /**
      * 外部商城商品详情
      * @param productId

+ 33 - 0
src/main/java/com/caimei365/commodity/service/impl/MallProductServiceImpl.java

@@ -6,8 +6,10 @@ import com.caimei365.commodity.mapper.PageMapper;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.vo.MallOrganizeProductVo;
 import com.caimei365.commodity.model.vo.MallProductSkuVo;
+import com.caimei365.commodity.model.vo.PaginationVo;
 import com.caimei365.commodity.model.vo.ProductDetailVo;
 import com.caimei365.commodity.service.MallProductService;
+import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -27,6 +29,37 @@ public class MallProductServiceImpl implements MallProductService {
 
     @Autowired private MallProductMapper productMapper;
     @Autowired private PriceUtilService priceUtilService;
+
+
+    /**
+     * 商品列表
+     *
+     * @param productName
+     * @return
+     */
+    @Override
+    public ResponseJson<PaginationVo<MallOrganizeProductVo>> productList(String productName, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        // 商品信息
+        List<MallOrganizeProductVo> productList = productMapper.productList(productName);
+        if (null != productList) {
+            // 商品sku
+            productList.forEach(product -> {
+                if (null != product.getMallProductId()) {
+                    List<MallProductSkuVo> mallSkus = productMapper.getMallSkus(product.getMallProductId());
+                    if (null != mallSkus) {
+                        mallSkus.forEach(s -> {
+                            s.setPriceGrade(priceUtilService.getPriceGrade(s.getPrice()));
+                        });
+                        product.setSku(mallSkus);
+                    }
+                }
+            });
+        }
+        PaginationVo<MallOrganizeProductVo> page = new PaginationVo<>(productList);
+        return ResponseJson.success(page);
+    }
+
     /**
      * 外部商城商品详情
      * @param productId

+ 26 - 0
src/main/resources/mapper/MallProductMapper.xml

@@ -1,6 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.commodity.mapper.MallProductMapper">
+
+    <select id="productList" resultType="com.caimei365.commodity.model.vo.MallOrganizeProductVo">
+        SELECT p.productID                       AS productId,
+        p.shopID                                 AS shopId,
+        cmop.normalPrice AS normalPrice,
+        (select price from cm_mall_product_sku where productID = p.productID order by price asc limit 1) as price,
+        IFNULL((SELECT stock FROM cm_sku WHERE productId = p.productID ORDER BY price ASC LIMIT 1), 0) AS stock,
+        cmop.minBuyNumber AS minBuyNumber,
+        (SELECT unit FROM cm_sku WHERE productId = p.productID ORDER BY price ASC LIMIT 1)             AS unit,
+        cmop.validFlag,
+        cmop.id as mallProductId,
+        p.name,
+        p.mainImage,
+        s.name as shopName
+        FROM cm_mall_organize_products cmop
+        LEFT JOIN product p ON p.productId = cmop.productId
+        LEFT JOIN shop s ON s.shopId = p.shopId
+        <where>
+            cmop.organizeID = 4
+            <if test="productName != null and productName != ''">
+                and p.name like concat('%',#{productName},'%')
+            </if>
+        </where>
+        order by cmop.addTime desc
+    </select>
     <select id="getOrganizeProductDetails" resultType="com.caimei365.commodity.model.vo.MallOrganizeProductVo">
         SELECT p.productID                                                                                     AS productId,
                p.shopID                                                                                        AS shopId,
@@ -10,6 +35,7 @@
                cmop.minBuyNumber AS minBuyNumber,
                (SELECT unit FROM cm_sku WHERE productId = #{productId} ORDER BY price ASC LIMIT 1)             AS unit,
                cmop.validFlag,
+               cmop.id as mallProductId,
                p.name,
                s.name as shopName
         FROM cm_mall_organize_products cmop