Ver Fonte

6月版本二手商品

Duan_xu há 3 anos atrás
pai
commit
0975be6bae

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

@@ -107,8 +107,6 @@ public class HeheApi {
     public ResponseJson<Map<String, Object>> getHomeData(Integer userId) {
         return heheService.getHomeData(userId);
     }
-
-
     @ApiOperation("活动专区")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "userId", value = "分销者用户id", required = true),
@@ -151,4 +149,4 @@ public class HeheApi {
     public ResponseJson<HeheProductVo> getProductDetails(Integer productId, Integer userId) {
         return heheService.getProductDetails(productId, userId);
     }
-}
+}

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

@@ -4,6 +4,7 @@ import com.caimei365.commodity.annotation.Statistics;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.po.AnnouncementPo;
 import com.caimei365.commodity.model.po.ProductParameterPo;
+import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.model.vo.*;
 import com.caimei365.commodity.service.PageService;
@@ -85,6 +86,28 @@ public class ProductPageApi {
         return pageService.getHomeData(userId, source);
     }
 
+
+    @ApiOperation("新品橱窗重点推荐数据")
+    @GetMapping("/home/recommend")
+    public ResponseJson<List<ProductPo>> getNewFloorRecommend() {
+
+        return pageService.getNewFloorRecommend();
+    }
+    @ApiOperation("新品橱窗列表")
+    @GetMapping("/home/NewFloorList")
+    public ResponseJson<PaginationVo<ProductPo>> getNewFloorList(Integer brandID,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                   @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+
+        return pageService.getNewFloorList(brandID,pageNum,pageSize);
+    }
+
+    @ApiOperation("新品橱窗品牌查询")
+    @GetMapping("/home/BrandName")
+    public ResponseJson<List<ProductPo>> getNewFloorBrand() {
+
+        return pageService.getNewFloorBrand();
+    }
+
     /**
      * 首页基础数据(小程序)
      *

+ 2 - 2
src/main/java/com/caimei365/commodity/controller/ProductShopApi.java

@@ -63,10 +63,10 @@ public class ProductShopApi {
     })
     @GetMapping("/product/list")
     public ResponseJson<Map<String, Object>> getShopProducts(Integer shopId, String name, String productCode,
-                                                             Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId,
+                                                             Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId,Integer newvalidFlag,
                                                              @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                              @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
-        return shopService.getShopProducts(shopId, name, productCode, validFlag, featuredFlag, commodityType, bigTypeId, smallTypeId, tinyTypeId, pageNum, pageSize);
+        return shopService.getShopProducts(shopId, name, productCode, validFlag, featuredFlag, commodityType, bigTypeId, smallTypeId, tinyTypeId,newvalidFlag, pageNum, pageSize);
     }
 
     /**

+ 18 - 0
src/main/java/com/caimei365/commodity/mapper/PageMapper.java

@@ -3,6 +3,7 @@ package com.caimei365.commodity.mapper;
 import com.caimei365.commodity.model.po.ArchiveFilePo;
 import com.caimei365.commodity.model.po.ArchivePo;
 import com.caimei365.commodity.model.po.BrandProductParamPo;
+import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
@@ -48,6 +49,13 @@ public interface PageMapper {
      */
     List<PageFloorVo> getHomePageFloor(Integer source);
 
+    /**
+     * 首页固定楼层
+     *
+     * @param source
+     */
+    List<PageFloorVo> getPageFloor(Integer source);
+
     /**
      * 查询页面信息商品楼层
      *
@@ -358,4 +366,14 @@ public interface PageMapper {
      * 查找呵呵首页页面
      */
     CmPageVo findHeheHomePage();
+    /**
+     * 新品橱窗重点推荐
+     */
+    List<ProductPo> getNewFloorRecommend();
+    /**
+     * 新品橱窗商品列表
+     */
+    List<ProductPo> getNewFloorList(Integer brandID);
+
+    List<ProductPo>getNewFloorBrand();
 }

+ 26 - 0
src/main/java/com/caimei365/commodity/model/po/ProductPo.java

@@ -231,5 +231,31 @@ public class ProductPo implements Serializable {
      * 培训费用(售价未包含)
      */
     private BigDecimal trainingFee;
+    /**
+     * 发布类型 1.二手预成交商品 2.二手估价商品
+     */
+    private Integer announType;
+    /**
+     * 新品商品状态  0.参与 , 1.审核通过, 2.未参与 ,3.审核未通过'
+     */
+    private Integer newvalidFlag;
+    /**
+     * 新品展示状态1,已展示2,已下线3,展示过期
+     */
+    private Integer showFlag;
+    /**
+     * 展示结束时间
+     */
+    private String showTime;
+    /**
+     * 重点推荐1,重点
+     */
+    private Integer recommend;
+    /**
+     * 展示开始时间
+     */
+    private String newshowTime;
+
+    private String BrandName;
 
 }

+ 6 - 0
src/main/java/com/caimei365/commodity/model/vo/PageFloorVo.java

@@ -1,5 +1,6 @@
 package com.caimei365.commodity.model.vo;
 
+import com.caimei365.commodity.model.po.ProductPo;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -19,6 +20,7 @@ public class PageFloorVo implements Serializable {
     private String title;
     private String detail;
     private String link;
+    private Integer floorType;
     /**
      * 楼层相关商品图片
      */
@@ -31,6 +33,10 @@ public class PageFloorVo implements Serializable {
      * 楼层相关商品图片3
      */
     private List<FloorImageVo> floorImageList3;
+    /**
+     * 固定楼层相关商品图片
+     */
+    private List<ProductPo> newfloorlist;
     private List<PageFloorVo> subFloors;
     private List<ImageLinkVo> floorData;
     /**

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

@@ -3,6 +3,7 @@ package com.caimei365.commodity.service;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.po.AnnouncementPo;
 import com.caimei365.commodity.model.po.ProductParameterPo;
+import com.caimei365.commodity.model.po.ProductPo;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.model.vo.*;
 
@@ -41,6 +42,7 @@ public interface PageService {
      */
     ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source);
 
+
     /**
      * 首页基础数据(小程序)
      *
@@ -227,6 +229,13 @@ public interface PageService {
 
     ResponseJson<CmPageVo> getFree(Integer id);
 
+    ResponseJson<List<ProductPo>>getNewFloorRecommend();
+
+     ResponseJson<List<ProductPo>>getNewFloorBrand();
+
+    ResponseJson<PaginationVo<ProductPo>> getNewFloorList(Integer brandID,int pageNum, int pageSize);
+
+
     /**
      * 设置跳转参数
      * @param floorContent

+ 1 - 1
src/main/java/com/caimei365/commodity/service/ShopService.java

@@ -45,7 +45,7 @@ public interface ShopService {
      * @param pageSize      每页数量
      * @return PageInfo<ProductShopVO>
      */
-    ResponseJson<Map<String, Object>> getShopProducts(Integer shopId, String name, String productCode, Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId, int pageNum, int pageSize);
+    ResponseJson<Map<String, Object>> getShopProducts(Integer shopId, String name, String productCode, Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId,Integer newvalidFlag, int pageNum, int pageSize);
 
     /**
      * 供应商-发布商品

+ 37 - 4
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -137,7 +137,11 @@ public class PageServiceImpl implements PageService {
     @Cacheable(value = "getHomeCommodityData", key = "#userId +'-'+ #source", unless = "#result == null")
     @Override
     public ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source) {
-        Map<String, Object> map = new HashMap<>(2);
+        Map<String, Object> map = new HashMap<>(3);
+//        PageFloorVo pagefloors=new PageFloorVo();
+//        List<ProductPo> newfloorlist=pageMapper.getNewFloorList();
+//        pagefloors.setNewfloorlist(newfloorlist);
+//        map.put("pagefloors",pagefloors);
         //楼层管理
         source = source == null ? 1 : source;
         List<PageFloorVo> homePageFloor = pageMapper.getHomePageFloor(source);
@@ -173,6 +177,14 @@ public class PageServiceImpl implements PageService {
             }
         }
         map.put("supplierImage", supplierImage);
+        List<PageFloorVo> pageFloorList = pageMapper.getPageFloor(source);
+        pageFloorList.forEach(pageFloor->{
+            if (1 == pageFloor.getFloorType()) {
+                List<ProductPo> newProductList=pageMapper.getNewFloorList(null);
+                pageFloor.setNewfloorlist(newProductList);
+            }
+        });
+        map.put("PageFloor",pageFloorList);
         return ResponseJson.success(map);
     }
 
@@ -614,9 +626,9 @@ public class PageServiceImpl implements PageService {
             // 没有权限查看该商品
             if (!(pass1 || pass2 || pass3 || pass4 || pass5)) {
                 return ResponseJson.success(1, "没有权限查看该商品", new ProductDetailVo());
-            }//|| 4 == visibility
-        } else if (2 == visibility || 1 == visibility) {
-            return ResponseJson.success(1, "没有权限查看该商品", new ProductDetailVo());
+            }
+        } else if (2 == visibility || 1 == visibility || 4 == visibility) {
+            return ResponseJson.success(1, "没有权限查看该商品,userId为空", new ProductDetailVo());
         }
         // 商品不处于已删除/待审核/审核未通过的状态
         if (0 != product.getValidFlag()) {
@@ -1305,4 +1317,25 @@ public class PageServiceImpl implements PageService {
         CmPageVo cmPageById = pageMapper.findCmPageById(id);
         return ResponseJson.success(cmPageById);
     }
+
+    @Override
+    public ResponseJson<List<ProductPo>>getNewFloorRecommend(){
+        List<ProductPo> floorRecommend=pageMapper.getNewFloorRecommend();
+          return ResponseJson.success(floorRecommend);
+    }
+
+    @Override
+    public ResponseJson<List<ProductPo>>getNewFloorBrand(){
+        List<ProductPo> NewFloorBrand=pageMapper.getNewFloorBrand();
+        return ResponseJson.success(NewFloorBrand);
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<ProductPo>> getNewFloorList(Integer brandID,int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ProductPo> list = pageMapper.getNewFloorList(brandID);
+        PaginationVo<ProductPo> pageData = new PaginationVo(list);
+        return ResponseJson.success(pageData);
+    }
+
 }

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

@@ -101,7 +101,7 @@ public class ShopServiceImpl implements ShopService {
      * @return Map<String, Object>
      */
     @Override
-    public ResponseJson<Map<String, Object>> getShopProducts(Integer shopId, String name, String productCode, Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId, int pageNum, int pageSize) {
+    public ResponseJson<Map<String, Object>> getShopProducts(Integer shopId, String name, String productCode, Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId,Integer newvalidFlag, int pageNum, int pageSize) {
         if (null == shopId) {
             return ResponseJson.error("参数异常:缺少供应商Id", null);
         }

+ 126 - 0
src/main/resources/mapper/PageMapper.xml

@@ -44,6 +44,19 @@
         </if>
 		order by -sort desc,createDate desc
     </select>
+    <select id="getPageFloor" resultType="com.caimei365.commodity.model.vo.PageFloorVo">
+        select id, type, floorTitle as title, floorDetail as detail,floorType
+        from new_page_floor
+        where delFlag = 0
+        <if test="source == 1">
+            AND wwwEnabledStatus = 1
+        </if>
+        <if test="source == 2">
+            AND crmEnabledStatus = 1
+        </if>
+        and floorType is not null
+        order by -sort desc,createDate desc
+    </select>
     <select id="getFloorByPageId" resultType="com.caimei365.commodity.model.vo.PageFloorVo">
         select id, title ,description as detail
         from cm_page_centre
@@ -761,4 +774,117 @@
         limit 1
     </select>
 
+    <select id="getNewFloorRecommend" resultType="com.caimei365.commodity.model.po.ProductPo">
+       select
+       *
+        from product
+        where recommend = 1
+          and  newvalidFlag=1
+        limit 5
+    </select>
+    <select id="getNewFloorList" resultType="com.caimei365.commodity.model.po.ProductPo">
+        SELECT
+        a.productID AS "id",
+        a.productID AS "productID",
+        a.brandID AS "brandID",
+        a.bigTypeID AS "bigTypeID",
+        ifnull(a.smallTypeID,-1)  AS "smallTypeID",
+        ifnull(a.tinyTypeID,-1) AS "tinyTypeID",
+        a.selfTypeID AS "selfTypeID",
+        a.preferredFlag AS "preferredFlag",
+        a.shopID AS "shopID",
+        a.name AS "name",
+        a.searchKey AS "searchKey",
+        a.combinationID AS "combinationID",
+        a.productRemarks AS "productRemarks",
+        a.normalPrice AS "normalPrice",
+        a.price AS "price",
+        a.priceFlag AS "priceFlag",
+        a.beautyActFlag AS "beautyActFlag",
+        a.ladderPriceFlag AS "ladderPriceFlag",
+        a.stock AS "stock",
+        a.hasSkuFlag AS "hasSkuFlag",
+        a.mainImage AS "mainImage",
+        a.propertiesInfo AS "propertiesInfo",
+        a.addTime AS "addTime",
+        a.updateTime AS "updateTime",
+        a.sellNumber AS "sellNumber",
+        a.weekSellNumber AS "weekSellNumber",
+        a.beforeValidFlag AS "beforeValidFlag",
+        a.validFlag AS "validFlag",
+        a.favoriteTimes AS "favoriteTimes",
+        a.commentScore AS "commentScore",
+        a.commentTimes AS "commentTimes",
+        a.selfRecommendFlag AS "selfRecommendFlag",
+        a.sysRecommendFlag AS "sysRecommendFlag",
+        a.sortIndex AS "sortIndex",
+        a.featuredFlag AS "featuredFlag",
+        a.featuredSortIndex AS "featuredSortIndex",
+        a.productCode AS "productCode",
+        a.unit AS "unit",
+        a.synToERPFlag AS "synToERPFlag",
+        a.allAreaFlag AS "allAreaFlag",
+        a.provinceIDs AS "provinceIDs",
+        a.serviceNumber AS "serviceNumber",
+        a.maxBuyNumber AS "maxBuyNumber",
+        a.minBuyNumber AS "minBuyNumber",
+        a.packageCount AS "packageCount",
+        a.byFlag AS "byFlag",
+        a.normalProductFlag AS "normalProductFlag",
+        a.wholeSaleProductFlag AS "wholeSaleProductFlag",
+        a.promotionProductFlag AS "promotionProductFlag",
+        a.groupBuyProductFlag AS "groupBuyProductFlag",
+        a.step AS "step",
+        a.actStatus AS "actStatus",
+        a.actFlag AS "actFlag",
+        a.actType AS "actType",
+        a.onlineTime AS "onlineTime",
+        a.downlineTime AS "downlineTime",
+        a.freePostFlag AS "freePostFlag",
+        a.costPrice AS "costPrice",
+        a.costProportional AS "costProportional",
+        a.costCheckFlag AS "costCheckFlag",
+        a.precisehKey AS "precisehKey",
+        s.name AS "shopName",
+        a.actSort AS "actSort",
+        a.recommendType AS "recommendType",
+        a.aliasName as "aliasName",
+        a.visibility as "visibility",
+        a.productType as "productType",
+        a.qualificationImg as "qualificationImg",
+        a.includedTax as "includedTax",
+        a.invoiceType as "invoiceType",
+        a.taxPoint as "taxPoint",
+        a.tags as "tags",
+        a.machineType as "machineType",
+        a.trainingMethod as "trainingMethod",
+        a.trainingType as "trainingType",
+        a.trainingFee as "trainingFee",
+        a.commodityType as "commodityType",
+        a.splitCode,
+        a.announType,
+        a.newvalidFlag,
+        a.showFlag,
+        a.showTime,
+        a.newshowTime,
+        a.recommend
+        FROM product a
+        LEFT JOIN shop s on s.shopID = a.shopID
+        left join product p on a.productID = p.productId
+        <where>
+         <if test="brandID!=null and brandID!=''">
+           brandID=#{brandID}
+            </if>
+            and a.newvalidFlag = 1
+            and a.newvalidFlag!=4
+        </where>
+        order by a.sortIndex desc
+
+    </select>
+    <select id="getNewFloorBrand" resultType="com.caimei365.commodity.model.po.ProductPo">
+        SELECT s.name FROM product a
+        LEFT JOIN `brand` s ON s.brandID = a.brandID
+        WHERE  a.newvalidFlag = 1
+          AND a.newvalidFlag!=4
+    </select>
 </mapper>

+ 2 - 2
src/main/resources/mapper/SecondHandMapper.xml

@@ -26,13 +26,13 @@
             brandId, name, price, stock, aliasName, normalPrice, mainImage, productCategory, preferredFlag, shopId,
             sellNumber, costPrice, costCheckFlag, costProportional, hasSkuFlag, validFlag, ladderPriceFlag, sortIndex, featuredFlag, byFlag,
             step, actFlag, actStatus, freePostFlag, productType, machineType, includedTax, recommendType, invoiceType,
-            visibility, addTime, updateTime, onlineTime, downlineTime
+            visibility, addTime, updateTime, onlineTime, downlineTime,announType
         ) values (
             #{brandId}, #{name}, #{price}, #{stock}, #{aliasName}, #{normalPrice}, #{mainImage}, #{productCategory},
             #{preferredFlag}, #{shopId}, #{sellNumber}, #{costPrice}, #{costCheckFlag}, #{costProportional}, #{hasSkuFlag}, #{validFlag},
             #{ladderPriceFlag}, #{sortIndex}, #{featuredFlag}, #{byFlag}, #{step}, #{actFlag}, #{actStatus},
             #{freePostFlag}, #{productType}, #{machineType}, #{includedTax}, #{recommendType}, #{invoiceType},
-            #{visibility}, #{addTime}, #{updateTime}, #{onlineTime}, #{offlineTime}
+            #{visibility}, #{addTime}, #{updateTime}, #{onlineTime}, #{offlineTime},#{announType}
         )
     </insert>
     <insert id="insertSecondFileType">

+ 8 - 3
src/main/resources/mapper/ShopMapper.xml

@@ -5,6 +5,7 @@
         insert into product (
             shopID, name, aliasName, commodityType, bigTypeID, smallTypeID, tinyTypeID, mainImage,
             brandID, productType, tags, unit, normalPrice, price, includedTax, minBuyNumber, stock,
+
             <if test="productCategory != null and  productCategory != ''">
                 productCategory,
             </if>
@@ -74,7 +75,7 @@
             <if test="invoiceType != null and  invoiceType != ''">
                 invoiceType,
             </if>
-            updateTime, validFlag
+            updateTime, validFlag,newvalidFlag
         ) values (
             #{shopId}, #{name}, #{aliasName}, #{commodityType}, #{bigTypeId}, #{smallTypeId}, #{tinyTypeId}, #{mainImage},
             #{brandId}, #{productType}, #{tags}, #{unit}, #{normalPrice}, #{price}, #{includedTax}, #{minBuyNumber}, #{stock},
@@ -147,7 +148,7 @@
             <if test="invoiceType != null and  invoiceType != ''">
                 #{invoiceType},
             </if>
-             #{updateTime}, #{validFlag}
+             #{updateTime}, #{validFlag},#{newvalidFlag}
         )
     </insert>
     <update id="updateProduct">
@@ -366,7 +367,8 @@
             p.commodityType,
             p.bigTypeID as bigTypeId,
             p.smallTypeID as smallTypeId,
-            p.tinyTypeID as tinyTypeId
+            p.tinyTypeID as tinyTypeId,
+            p.newvalidFlag
         from product p
         <where>
             p.shopID = #{shopId}
@@ -394,6 +396,9 @@
             <if test="name != null and name != ''">
                 and p.name like CONCAT("%",#{name},"%")
             </if>
+        <if test="newvalidFlag !=null and newvalidFlag!=''">
+            and newvalidFlag =#{newvalidFlag}
+        </if>
         </where>
         order by p.productID desc
     </select>