Explorar o código

商城首页增加新品橱窗楼层

Duan_xu %!s(int64=3) %!d(string=hai) anos
pai
achega
50e8dd6f34

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

@@ -93,17 +93,21 @@ public class ProductPageApi {
 
         return pageService.getNewFloorRecommend();
     }
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = false, name = "brandID", value = "品牌id"),
+
+    })
     @ApiOperation("新品橱窗列表")
     @GetMapping("/home/NewFloorList")
-    public ResponseJson<PaginationVo<ProductPo>> getNewFloorList(Integer brandID,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+    public ResponseJson<PaginationVo<ProductItemVo>> getNewFloorList(@RequestParam(value = "brandID")List<String> brandID,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                    @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
 
-        return pageService.getNewFloorList(brandID,pageNum,pageSize);
+        return pageService.getNewFloorList(null,brandID,pageNum,pageSize);
     }
 
     @ApiOperation("新品橱窗品牌查询")
     @GetMapping("/home/BrandName")
-    public ResponseJson<List<ProductPo>> getNewFloorBrand() {
+    public ResponseJson <List<BrandVo>>getNewFloorBrand() {
 
         return pageService.getNewFloorBrand();
     }

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

@@ -51,6 +51,7 @@ public class ProductShopApi {
     @ApiImplicitParams({
         @ApiImplicitParam(required = true, name = "shopId", value = "供应商Id"),
         @ApiImplicitParam(required = false, name = "name", value = "商品名称"),
+            @ApiImplicitParam(required = false, name = "newvalidFlag", value = "新品商品状态  0.参与 , 1.审核通过, 2.未参与 ,3.审核未通过,4.时间过期"),
         @ApiImplicitParam(required = false, name = "productCode", value = "货号"),
         @ApiImplicitParam(required = false, name = "validFlag", value = "状态:0逻辑删除,1待审核,2已上架,3已下架,8审核未通过,9已隐身,10已冻结"),
         @ApiImplicitParam(required = false, name = "featuredFlag", value = "是否主推:0否,1是"),

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

@@ -373,7 +373,7 @@ public interface PageMapper {
     /**
      * 新品橱窗商品列表
      */
-    List<ProductPo> getNewFloorList(Integer brandID);
+    List<ProductItemVo> getNewFloorList(List<String> brandID);
 
-    List<ProductPo>getNewFloorBrand();
+    List<BrandVo> getNewFloorBrand();
 }

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

@@ -30,7 +30,7 @@ public interface ShopMapper {
     /**
      * 获取供应商-我的商品列表
      */
-    List<ProductItemVo> getShopProductsSelect(Integer shopId, String name, String productCode, Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId);
+    List<ProductItemVo> getShopProductsSelect(Integer newvalidFlag,Integer shopId, String name, String productCode, Integer validFlag, Integer featuredFlag, Integer commodityType, Integer bigTypeId, Integer smallTypeId, Integer tinyTypeId);
     /**
      * 列表显示分类
      */

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

@@ -36,7 +36,7 @@ public class PageFloorVo implements Serializable {
     /**
      * 固定楼层相关商品图片
      */
-    private List<ProductPo> newfloorlist;
+    private List<ProductItemVo> newfloorlist;
     private List<PageFloorVo> subFloors;
     private List<ImageLinkVo> floorData;
     /**

+ 28 - 0
src/main/java/com/caimei365/commodity/model/vo/ProductItemVo.java

@@ -23,6 +23,8 @@ public class ProductItemVo implements Serializable {
      * 商品productID
      */
     private Integer productId;
+
+    private Integer brandID;
     /**
      * 名称name
      */
@@ -235,4 +237,30 @@ public class ProductItemVo implements Serializable {
      * 超级会员优惠价标签
      */
     private String svipPriceTag;
+    /**
+     * 发布类型 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;
 }

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

@@ -231,9 +231,9 @@ public interface PageService {
 
     ResponseJson<List<ProductPo>>getNewFloorRecommend();
 
-     ResponseJson<List<ProductPo>>getNewFloorBrand();
+     ResponseJson <List<BrandVo>>getNewFloorBrand();
 
-    ResponseJson<PaginationVo<ProductPo>> getNewFloorList(Integer brandID,int pageNum, int pageSize);
+    ResponseJson<PaginationVo<ProductItemVo>> getNewFloorList(Integer userId,List<String> brandID,int pageNum, int pageSize);
 
 
     /**

+ 53 - 18
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -138,13 +138,11 @@ public class PageServiceImpl implements PageService {
     @Override
     public ResponseJson<Map<String, Object>> getHomeData(Integer userId, Integer source) {
         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);
+        List<PageFloorVo> pageFloorList = pageMapper.getPageFloor(source);
         Iterator<PageFloorVo> floorIterator = homePageFloor.iterator();
         while (floorIterator.hasNext()) {
             PageFloorVo floor = floorIterator.next();
@@ -156,6 +154,13 @@ public class PageServiceImpl implements PageService {
                 floorIterator.remove();
                 continue;
             }
+            pageFloorList.forEach(pageFloor->{
+                pageFloor.setFloorImageList(floorImageList);
+                if (1 == pageFloor.getFloorType()) {
+                    List<ProductItemVo> newProductList = pageMapper.getNewFloorList(null);
+                    pageFloor.setNewfloorlist(newProductList);
+                }
+            });
             setFloorImageProduct(userId, floorImageList, source);
             floor.setFloorImageList(floorImageList);
         }
@@ -177,14 +182,21 @@ 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);
-            }
-        });
+
+//        List<FloorImageVo> floorImageList = pageMapper.getFloorImageById(floor.getId(), source);
+//        setFloorImageProduct(userId, floorImageList, source);
+//        pageFloorList.forEach(pageFloor->{
+//            if (floorImageList == null || floorImageList.size() == 0) {
+//                floorIterator.remove();
+//            }
+//            pageFloor.setFloorImageList(floorImageList);
+//            if (1 == pageFloor.getFloorType()) {
+//                List<ProductPo> newProductList = pageMapper.getNewFloorList(null);
+//                pageFloor.setNewfloorlist(newProductList);
+//            }
+//        });
         map.put("PageFloor",pageFloorList);
+
         return ResponseJson.success(map);
     }
 
@@ -1026,6 +1038,10 @@ public class PageServiceImpl implements PageService {
         }
     }
 
+
+
+
+
     /**
      * 优惠券标识是否显示
      *
@@ -1325,16 +1341,35 @@ public class PageServiceImpl implements PageService {
     }
 
     @Override
-    public ResponseJson<List<ProductPo>>getNewFloorBrand(){
-        List<ProductPo> NewFloorBrand=pageMapper.getNewFloorBrand();
-        return ResponseJson.success(NewFloorBrand);
-    }
+    public ResponseJson <List<BrandVo>>getNewFloorBrand() {
 
+        List<BrandVo> floorBrand = pageMapper.getNewFloorBrand();
+        return ResponseJson.success(floorBrand);
+    }
     @Override
-    public ResponseJson<PaginationVo<ProductPo>> getNewFloorList(Integer brandID,int pageNum, int pageSize) {
+    public ResponseJson<PaginationVo<ProductItemVo>> getNewFloorList(Integer userId,List<String> brandID,int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<ProductPo> list = pageMapper.getNewFloorList(brandID);
-        PaginationVo<ProductPo> pageData = new PaginationVo(list);
+
+
+        List<ProductItemVo> list = pageMapper.getNewFloorList(brandID);
+
+        list.forEach(product -> {
+            if (StringUtils.isNotBlank(product.getBrandID().toString())) {
+                if (product.getBrandID().toString().contains(",")) {
+                    String[] split = product.getBrandID().toString().split(",");
+                    String Cons = "";
+                    for (String con : split) {
+                        Cons += product.getBrandID().toString() + ",";
+                    }
+                    Cons = Cons.substring(0, Cons.length() - 1);
+System.out.println(Cons);
+                }
+            }
+            product.setPriceGrade(priceUtilService.getPriceGrade(product.getPrice()));
+            product.setPrice(0d);
+            product.setImage(ImageUtils.getImageURL("product", product.getImage(), 0, domain));
+        });
+        PaginationVo<ProductItemVo> pageData = new PaginationVo(list);
         return ResponseJson.success(pageData);
     }
 

+ 6 - 0
src/main/java/com/caimei365/commodity/service/impl/SearchProductServiceImpl.java

@@ -130,6 +130,12 @@ public class SearchProductServiceImpl implements SearchProductService {
     }
 
 
+
+
+
+
+
+
     @Override
     public ResponseJson<Set<HashMap<String, Object>>> queryBrand(String keyword, Integer id, Integer idType, Integer newFlag, Integer promotionFlag, Integer identity) {
         log.info("查询品牌传入keyword----------->"+keyword+"-------------》id"+id+"------------->idType"+idType+"newFlag----------------->"+newFlag+"------------>promotionFlag------------->"+promotionFlag+"identity------------>"+identity);

+ 24 - 22
src/main/java/com/caimei365/commodity/service/impl/SecondHandServiceImpl.java

@@ -283,9 +283,9 @@ public class SecondHandServiceImpl implements SecondHandService {
         if (null == publishIdentity || publishIdentity <= 0) {
             return ResponseJson.error("参数异常:请选择发布者身份");
         }
-        if (StringUtils.isEmpty(fileType)) {
-            return ResponseJson.error("参数异常:请选择包含的文件类型");
-        }
+//        if (StringUtils.isEmpty(fileType)) {
+//            return ResponseJson.error("参数异常:请选择包含的文件类型");
+//        }
         if (StringUtils.isEmpty(secondHandType)) {
             return ResponseJson.error("参数异常:请选择分类");
         } else if (StringUtils.equals("1", secondHandType)) {
@@ -313,30 +313,30 @@ public class SecondHandServiceImpl implements SecondHandService {
         if (StringUtils.isEmpty(name)) {
             return ResponseJson.error("参数异常:请输入商品名称");
         }
-        if (null == price || price <= 0) {
-            return ResponseJson.error("参数异常:请输入交易价");
-        }
-        if (StringUtils.isEmpty(contactName)) {
-            return ResponseJson.error("参数异常:请输入联系人姓名");
-        }
+//        if (null == price || price <= 0) {
+//            return ResponseJson.error("参数异常:请输入交易价");
+//        }
+//        if (StringUtils.isEmpty(contactName)) {
+//            return ResponseJson.error("参数异常:请输入联系人姓名");
+//        }
         if (null == townId) {
             return ResponseJson.error("参数异常:请完善联系地址");
         }
         if (StringUtils.isEmpty(address)) {
             return ResponseJson.error("参数异常:请填写详细地址");
         }
-        if (StringUtils.isEmpty(image)) {
-            return ResponseJson.error("参数异常:请上传图片");
-        }
+//        if (StringUtils.isEmpty(image)) {
+//            return ResponseJson.error("参数异常:请上传图片");
+//        }
         if (StringUtils.isEmpty(productQuality)) {
             return ResponseJson.error("参数异常:请输入商品成色");
         }
         if (StringUtils.isEmpty(source)) {
             return ResponseJson.error("参数异常:请输入发布来源");
         }
-        if (StringUtils.isBlank(cardNumber)) {
-            return ResponseJson.error("参数异常:请输入收款卡号");
-        }
+//        if (StringUtils.isBlank(cardNumber)) {
+//            return ResponseJson.error("参数异常:请输入收款卡号");
+//        }
         // 保存二手商品
         return saveSecondHandProduct(secondDto);
     }
@@ -521,14 +521,16 @@ public class SecondHandServiceImpl implements SecondHandService {
         /* 保存商品二手附加详细信息 */
         secondHandMapper.saveSencondHandProduct(secondPo);
         //保存商品包含文件
-        String fileTypes = secondDto.getFileType();
-        if (fileTypes.contains(",")) {
-            String[] split = fileTypes.split(",");
-            for (String fileType : split) {
-                secondHandMapper.insertSecondFileType(fileType, secondPo.getId(), product.getProductId());
+        if(!"".equals(secondDto.getFileType()) || secondDto.getFileType()!=null) {
+            String fileTypes = secondDto.getFileType();
+            if (fileTypes.contains(",")) {
+                String[] split = fileTypes.split(",");
+                for (String fileType : split) {
+                    secondHandMapper.insertSecondFileType(fileType, secondPo.getId(), product.getProductId());
+                }
+            } else {
+                secondHandMapper.insertSecondFileType(fileTypes, secondPo.getId(), product.getProductId());
             }
-        } else {
-            secondHandMapper.insertSecondFileType(fileTypes, secondPo.getId(), product.getProductId());
         }
         return ResponseJson.success(product.getProductId());
     }

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

@@ -107,7 +107,7 @@ public class ShopServiceImpl implements ShopService {
         }
         Map<String, Object> map = new HashMap<>();
         PageHelper.startPage(pageNum, pageSize);
-        List<ProductItemVo> productList = shopMapper.getShopProductsSelect(shopId, name, productCode, validFlag, featuredFlag, commodityType, bigTypeId, smallTypeId, tinyTypeId);
+        List<ProductItemVo> productList = shopMapper.getShopProductsSelect(newvalidFlag,shopId, name, productCode, validFlag, featuredFlag, commodityType, bigTypeId, smallTypeId, tinyTypeId);
         if (null != productList && productList.size() > 0) {
             for (ProductItemVo product : productList) {
                 String typeName = shopMapper.getTypeName(product.getBigTypeId(), product.getSmallTypeId(), product.getTinyTypeId());

+ 48 - 95
src/main/resources/mapper/PageMapper.xml

@@ -782,109 +782,62 @@
           and  newvalidFlag=1
         limit 5
     </select>
-    <select id="getNewFloorList" resultType="com.caimei365.commodity.model.po.ProductPo">
+    <select id="getNewFloorList" resultType="com.caimei365.commodity.model.vo.ProductItemVo">
         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
+        p.productID,
+        p.actStatus,
+        p.name,
+        p.aliasName,
+        p.visibility,
+        p.mainImage as image,
+        p.unit,
+        p.productCode as code,
+        p.priceFlag,
+        p.price,
+        p.shopID as shopId,
+        p.searchKey as keyword,
+        p.minBuyNumber as minBuyNumber,
+        p.maxBuyNumber as maxBuyNumber,
+        p.ladderPriceFlag,
+        p.normalPrice,
+        p.step,
+        p.taxPoint as taxRate,
+        p.includedTax,
+        p.invoiceType,
+        p.productCategory as productCategory,
+        p.validFlag,
+        p.featuredFlag,
+        p.commodityType,
+        p.bigTypeID as bigTypeId,
+        p.smallTypeID as smallTypeId,
+        p.tinyTypeID as tinyTypeId,
+        p.productType,
+        p.brandID
+        from product p
         <where>
-         <if test="brandID!=null and brandID!=''">
-           brandID=#{brandID}
+
+            <if test="brandID != null and brandID.size > 0">
+                and
+                <foreach collection="brandID" item="item" index="index" open="(" close=")" separator="OR">
+                    p.brandID LIKE CONCAT('%',#{item},'%')
+                </foreach>
             </if>
-            and a.newvalidFlag = 1
-            and a.newvalidFlag!=4
+            and p.newvalidFlag = 1
+            and p.newvalidFlag!=4
+            and p.validFlag = 2
         </where>
-        order by a.sortIndex desc
+
+#         order by p.combinationSort != 0 desc, p.combinationSort asc
+
+        order by p.sortIndex desc
 
     </select>
-    <select id="getNewFloorBrand" resultType="com.caimei365.commodity.model.po.ProductPo">
-        SELECT s.name FROM product a
+    <select id="getNewFloorBrand" resultType="com.caimei365.commodity.model.vo.BrandVo">
+        SELECT s.brandID as id,s.name FROM product a
         LEFT JOIN `brand` s ON s.brandID = a.brandID
         WHERE  a.newvalidFlag = 1
+          and s.brandID is not null
+          and s.name is not null
           AND a.newvalidFlag!=4
     </select>
 </mapper>

+ 2 - 1
src/main/resources/mapper/ShopMapper.xml

@@ -4,7 +4,7 @@
     <insert id="insertProduct" keyColumn="productID" keyProperty="productId"  parameterType="com.caimei365.commodity.model.po.ProductPo" useGeneratedKeys="true">
         insert into product (
             shopID, name, aliasName, commodityType, bigTypeID, smallTypeID, tinyTypeID, mainImage,
-            brandID, productType, tags, unit, normalPrice, price, includedTax, minBuyNumber, stock,
+            brandID, productType, tags, unit, normalPrice, price, includedTax, minBuyNumber, stock
 
             <if test="productCategory != null and  productCategory != ''">
                 productCategory,
@@ -157,6 +157,7 @@
             bigTypeId = #{bigTypeId}, smallTypeId = #{smallTypeId}, tinyTypeId = #{tinyTypeId}, mainImage = #{mainImage},
             brandId = #{brandId}, productType = #{productType}, tags = #{tags}, unit = #{unit}, normalPrice = #{normalPrice},
             price = #{price}, price = #{price}, includedTax = #{includedTax}, minBuyNumber = #{minBuyNumber}, stock = #{stock},
+                           newvalidFlag=#{newvalidFlag}
             <if test="productCategory != null and  productCategory != ''">
                 productCategory = #{productCategory},
             </if>