Explorar el Código

二手下单页面商品

chao hace 4 años
padre
commit
df99314aec

+ 1 - 1
src/main/java/com/caimei365/commodity/controller/ProductPageApi.java

@@ -168,7 +168,7 @@ public class ProductPageApi {
      * @param recommendType 相关推荐类型: 0自动选择, 1手动推荐
      * @param userId    用户Id
      */
-    @ApiOperation("商品详情(旧:/product/detail/recommend)")
+    @ApiOperation("商品详情-相关推荐(旧:/product/detail/recommend)")
     @ApiImplicitParams({
         @ApiImplicitParam(required = false, name = "productId", value = "商品Id"),
         @ApiImplicitParam(required = false, name = "recommendType", value = "相关推荐类型: 0自动选择, 1手动推荐"),

+ 21 - 1
src/main/java/com/caimei365/commodity/controller/SecondHandApi.java

@@ -95,6 +95,26 @@ public class SecondHandApi {
         return secondHandService.releaseSecondHand(secondDto, headers);
     }
 
-
+    /**
+     * 二手下单页面商品
+     *
+     * @param searchKeyword  搜索关键词
+     * @param secondHandType 二手商品分类,1二手仪器,2临期产品,3其他
+     * @param instrumentType 二手仪器分类的类型,1轻光电、2重光电、3耗材配件
+     */
+    @ApiOperation("二手下单页面商品(旧:/product/getOrderSecondHandProductList)")
+    @ApiImplicitParams({
+        @ApiImplicitParam(required = false, name = "searchKeyword", value = "二手商品搜索关键词"),
+        @ApiImplicitParam(required = false, name = "secondHandType", value = "二手商品分类,1二手仪器,2临期产品,3其他"),
+        @ApiImplicitParam(required = false, name = "instrumentType", value = "二手仪器分类的类型,1轻光电、2重光电、3耗材配件"),
+        @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
+        @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
+    })
+    @GetMapping("order/products")
+    public ResponseJson<PaginationVo<SecondListVo>> getOrderPageSecondList(String searchKeyword, Integer secondHandType, Integer instrumentType,
+                                                                      @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                      @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        return secondHandService.getOrderPageSecondList(searchKeyword, secondHandType, instrumentType, pageNum, pageSize);
+    }
 
 }

+ 13 - 1
src/main/java/com/caimei365/commodity/mapper/SecondHandMapper.java

@@ -49,9 +49,21 @@ public interface SecondHandMapper {
      * 保存商品图片信息
      */
     void insertProductImage(ProductImagePo imagePo);
-
     /**
      * 保存商品表
      */
     void insertProduct(ProductPo product);
+    /**
+     * 二手下单页面商品
+     *
+     * @param searchKeyword  搜索关键词
+     * @param secondHandType 二手商品分类,1二手仪器,2临期产品,3其他
+     * @param instrumentType 二手仪器分类的类型,1轻光电、2重光电、3耗材配件
+     */
+    List<SecondListVo> getOrderPageSecondList(String searchKeyword, Integer secondHandType, Integer instrumentType);
+    /**
+     * 获取对应分类的最新10条有效数据
+     * @param secondHandType 二手商品分类,1二手仪器,2临期产品,3其他
+     */
+    List<SecondListVo> getSecondListByLimit(Integer secondHandType);
 }

+ 9 - 0
src/main/java/com/caimei365/commodity/service/SecondHandService.java

@@ -63,4 +63,13 @@ public interface SecondHandService {
      * @param headers   HttpHeaders
      */
     ResponseJson releaseSecondHand(SecondDto secondDto, HttpHeaders headers);
+
+    /**
+     * 二手下单页面商品
+     *
+     * @param searchKeyword  搜索关键词
+     * @param secondHandType 二手商品分类,1二手仪器,2临期产品,3其他
+     * @param instrumentType 二手仪器分类的类型,1轻光电、2重光电、3耗材配件
+     */
+    ResponseJson<PaginationVo<SecondListVo>> getOrderPageSecondList(String searchKeyword, Integer secondHandType, Integer instrumentType, int pageNum, int pageSize);
 }

+ 36 - 0
src/main/java/com/caimei365/commodity/service/impl/SecondHandServiceImpl.java

@@ -260,6 +260,42 @@ public class SecondHandServiceImpl implements SecondHandService {
         return saveSecondHandProduct(secondDto);
     }
 
+    /**
+     * 二手下单页面商品
+     *
+     * @param searchKeyword  搜索关键词
+     * @param secondHandType 二手商品分类,1二手仪器,2临期产品,3其他
+     * @param instrumentType 二手仪器分类的类型,1轻光电、2重光电、3耗材配件
+     */
+    @Override
+    public ResponseJson<PaginationVo<SecondListVo>> getOrderPageSecondList(String searchKeyword, Integer secondHandType, Integer instrumentType, int pageNum, int pageSize) {
+        if (null == secondHandType) {
+            return ResponseJson.error("请选择分类", null);
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        List<SecondListVo> secondList = secondHandMapper.getOrderPageSecondList(searchKeyword, secondHandType, instrumentType);
+        if (!CollectionUtils.isEmpty(secondList)) {
+            // 获取对应分类的最新10条有效数据(过滤没上架了,存在已售的[因为已售的在PC端也包含在上新中])
+            List<SecondListVo> secondLimitTen = secondHandMapper.getSecondListByLimit(secondHandType);
+            for (SecondListVo shp : secondList) {
+                // 获取二手商品图片
+                List<String> images = secondHandMapper.getImageByProductId(shp.getProductId());
+                shp.setImageList(images);
+                // 设置最新标签
+                for (SecondListVo limit : secondLimitTen) {
+                    // 是否新上架 0非新上架,1新上架
+                    if (shp.getProductId().equals(limit.getProductId())){
+                        shp.setNewAdded(1);
+                    } else {
+                        shp.setNewAdded(0);
+                    }
+                }
+            }
+        }
+        PaginationVo<SecondListVo> pageData = new PaginationVo<SecondListVo>(secondList);
+        return ResponseJson.success(pageData);
+    }
+
     private ResponseJson saveSecondHandProduct(SecondDto secondDto) {
         // 设置日期时间格式
         Date date = new Date();

+ 2 - 2
src/main/java/com/caimei365/commodity/service/impl/ShopServiceImpl.java

@@ -215,7 +215,7 @@ public class ShopServiceImpl implements ShopService {
         String current = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         //保存或修改商品
         ProductPo product = new ProductPo();
-        if (null != product.getProductId()) {
+        if (null != productDto.getProductId()) {
             product.setProductId(productDto.getProductId());
         }
         product.setShopId(productDto.getShopId());
@@ -260,7 +260,7 @@ public class ShopServiceImpl implements ShopService {
                 product.setMainImage(image);
             }
         }
-        if (null == product.getProductId()) {
+        if (null == productDto.getProductId()) {
             product.setAddTime(current);
             product.setHasSkuFlag(1);
             product.setSellNumber(0);

+ 55 - 1
src/main/resources/mapper/SecondHandMapper.xml

@@ -109,5 +109,59 @@
         right join city b on a.provinceId = b.provinceId
         right join town c on b.cityId = c.cityId where c.townId = #{townId}
     </select>
-
+    <select id="getOrderPageSecondList" resultType="com.caimei365.commodity.model.vo.SecondListVo">
+        select
+            p.productID as productId,
+            p.`name` as name,
+            p.mainImage as image,
+            p.price1 as price,
+            p.brandID as brandId,
+	        IF(p.brandID != 161,cb.name ,cshd.brandName) as "brandName",
+	        cshd.sold as "sold",
+	        cshd.detailTalkFlag as "detailTalkFlag",
+	        cshd.onLineDate as "onLineDate",
+	        cshd.viewingNum as "viewingNum",
+	        cshd.provinceCityDistrict as "provinceCityDistrict"
+        from
+            product p
+        left join cm_second_hand_detail cshd on p.productID = cshd.productID
+        left join cm_brand cb on cb.id = p.brandID
+        where
+            p.productCategory = 2 and p.validFlag = 2
+            <if test="secondHandType != null and secondHandType != ''">
+            and cshd.secondHandType = #{secondHandType}
+            </if>
+            <if test="instrumentType != null and instrumentType != ''">
+            and cshd.instrumentType  like CONCAT('%',#{instrumentType},'%')
+            </if>
+            <if test="searchKeyword != null and searchKeyword != ''">
+            and p.name like CONCAT('%',#{searchKeyword},'%')
+            </if>
+            and cshd.sold != 1
+            order by cshd.onLineDate desc
+    </select>
+    <select id="getSecondListByLimit" resultType="com.caimei365.commodity.model.vo.SecondListVo">
+        select
+            p.productID as productId,
+            p.`name` as name,
+            p.mainImage as image,
+            p.price1 as price,
+            p.brandID as brandId,
+	        IF(p.brandID != 161,cb.name ,cshd.brandName) as "brandName",
+	        cshd.sold as "sold",
+	        cshd.detailTalkFlag as "detailTalkFlag",
+	        cshd.onLineDate as "onLineDate",
+	        cshd.viewingNum as "viewingNum",
+	        cshd.provinceCityDistrict as "provinceCityDistrict"
+        from
+            product p
+        left join cm_second_hand_detail cshd on p.productID = cshd.productID
+        left join cm_brand cb on cb.id = p.brandID
+        where p.productCategory = 2 and p.validFlag = 2
+        <if test="secondHandType != null and secondHandType != ''">
+            and cshd.secondHandType = #{secondHandType}
+        </if>
+        order by cshd.onLineDate desc
+        limit 10
+    </select>
 </mapper>