瀏覽代碼

阿里云推送商品,www新品标记替换新品橱窗新品

zhijiezhao 2 年之前
父節點
當前提交
a40052f3cf

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

@@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequiredArgsConstructor
 @RequestMapping("/commodity/seller")
 public class ProductSellerApi {
+
     private final SellerService sellerService;
 
     /**

+ 3 - 0
src/main/java/com/caimei365/commodity/mapper/SearchMapper.java

@@ -2,6 +2,7 @@ package com.caimei365.commodity.mapper;
 
 import com.caimei365.commodity.model.po.SearchHistoryPo;
 import com.caimei365.commodity.model.search.*;
+import com.caimei365.commodity.model.vo.PromotionsVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -254,4 +255,6 @@ public interface SearchMapper {
      */
     int countViewsByDate(Integer productId, Date date);
     int countSalesByDate(Integer productId, Date date);
+
+    List<Integer> findPromotions();
 }

+ 4 - 4
src/main/java/com/caimei365/commodity/model/search/ProductDO.java

@@ -76,10 +76,10 @@ public class ProductDO implements Serializable {
     private Integer p_promotions_id;
     /**商品类型:0其它类型(默认),1妆字号,2械字号 */
     private Integer p_product_type;
-//    /**
-//     * 新品状态1.新品
-//     */
-//    private Integer p_newvalidflag;
+    /**
+     * 新品状态1.新品
+     */
+    private Integer p_newvalidflag;
 
     private static final long serialVersionUID = 1L;
 }

+ 25 - 11
src/main/java/com/caimei365/commodity/service/impl/SearchIndexServiceImpl.java

@@ -13,6 +13,7 @@ import com.caimei365.commodity.components.SearchOpenService;
 import com.caimei365.commodity.mapper.SearchMapper;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.search.*;
+import com.caimei365.commodity.model.vo.PromotionsVo;
 import com.caimei365.commodity.service.SearchIndexService;
 import com.caimei365.commodity.service.SearchQueryService;
 import com.caimei365.commodity.utils.ImageUtils;
@@ -204,9 +205,14 @@ public class SearchIndexServiceImpl implements SearchIndexService {
         ProductDO product = searchMapper.searchProductById(productId);
         // product p_promotions_id
         if (null != product) {
-            List<Integer> promotionIds = searchMapper.findPromotionId(product.getP_id());
-            if (promotionIds != null && promotionIds.size() > 0) {
-                product.setP_promotions_id(promotionIds.get(0));
+            List<Integer> productIds = searchMapper.findPromotions();
+            if(null!=productIds&&productIds.size()>0){
+                boolean contains = productIds.contains(productId);
+                if(contains){
+                    product.setP_promotions_id(1);
+                }else{
+                    product.setP_promotions_id(0);
+                }
             }
 //            // 定义星范商品数据
 //            List<DocumentDTO<MallProductDO>> mallProductList = new ArrayList<>();
@@ -548,15 +554,15 @@ public class SearchIndexServiceImpl implements SearchIndexService {
             // 获取失效商品IDs
             List<Integer> invalidIds = searchMapper.findProductInvalidIds();
             // 根据商品IDs获取星范IDs
-            List<Integer> mallInvalidIds = searchMapper.findMallInvalidIdsByProductIds(invalidIds);
+//            List<Integer> mallInvalidIds = searchMapper.findMallInvalidIdsByProductIds(invalidIds);
             // 删除文档只需要设置需删除文档主键值即可
             Map<String, Object> deleteDoc = Maps.newLinkedHashMap();
-            if (null != mallInvalidIds) {
-                for (Integer mallId : mallInvalidIds) {
-                    // 根据ID(主键)删除文档
-                    deleteDoc.put("m_id", mallId);
-                }
-            }
+//            if (null != mallInvalidIds) {
+//                for (Integer mallId : mallInvalidIds) {
+//                    // 根据ID(主键)删除文档
+//                    deleteDoc.put("m_id", mallId);
+//                }
+//            }
             for (Integer invalidId : invalidIds) {
                 // 根据ID(主键)删除文档
                 deleteDoc.put("p_id", invalidId);
@@ -602,7 +608,15 @@ public class SearchIndexServiceImpl implements SearchIndexService {
             PageHelper.startPage(i, 100);
             // 获取数据库商品列表的分页数据
             List<ProductDO> dbList = searchMapper.searchProductList();
-
+            List<Integer> promotions=searchMapper.findPromotions();
+            dbList.forEach(d->{
+                boolean contains = promotions.contains(d.getP_id());
+                if(contains){
+                    d.setP_promotions_id(1);
+                }else{
+                    d.setP_promotions_id(0);
+                }
+            });
 //            // 定义星范商品数据
 //            List<DocumentDTO<MallProductDO>> mallProductList = new ArrayList<>();
             // 定义商品文档数据

+ 12 - 10
src/main/java/com/caimei365/commodity/service/impl/SearchProductServiceImpl.java

@@ -73,11 +73,12 @@ public class SearchProductServiceImpl implements SearchProductService {
         }
         List<String> filterList = new ArrayList<>();
         if (newFlag == 1) {
-            Calendar c = Calendar.getInstance();
-            c.setTime(new Date());
-            c.add(Calendar.YEAR, -1);
-            String time = new SimpleDateFormat("yyyyMMdd").format(c.getTime());
-            filterList.add("p_time > " + time);
+//            Calendar c = Calendar.getInstance();
+//            c.setTime(new Date());
+//            c.add(Calendar.YEAR, -1);
+//            String time = new SimpleDateFormat("yyyyMMdd").format(c.getTime());
+//            filterList.add("p_time > " + time);
+            filterList.add("p_newvalidflag = 1");
         }
         if (promotionFlag == 1) {
             filterList.add("p_promotions_id > 0");
@@ -257,11 +258,12 @@ public class SearchProductServiceImpl implements SearchProductService {
         }
         List<String> filterList = new ArrayList<>();
         if (newFlag == 1) {
-            Calendar c = Calendar.getInstance();
-            c.setTime(new Date());
-            c.add(Calendar.YEAR, -1);
-            String time = new SimpleDateFormat("yyyyMMdd").format(c.getTime());
-            filterList.add("p_time > " + time);
+//            Calendar c = Calendar.getInstance();
+//            c.setTime(new Date());
+//            c.add(Calendar.YEAR, -1);
+//            String time = new SimpleDateFormat("yyyyMMdd").format(c.getTime());
+//            filterList.add("p_time > " + time);
+            filterList.add("p_newvalidflag = 1");
         }
         if (promotionFlag == 1) {
             filterList.add("p_promotions_id > 0");

+ 12 - 3
src/main/resources/mapper/SearchMapper.xml

@@ -27,7 +27,8 @@
         br.weights as p_sort,
         DATE_FORMAT(p.ADDTIME,'%Y%m%d') as p_time,
         IFNULL(p.visibility,3) as p_visibility,
-        p.newvalidflag
+        ifnull(p.newvalidflag,0) as p_newvalidflag,
+        p.productType as p_product_type
     </sql>
     <sql id="Product_Joins">
         left join tinytype as t on p.tinyTypeID = t.tinyTypeID
@@ -37,7 +38,7 @@
         left join shop as sh on p.shopID = sh.shopID
     </sql>
     <select id="searchProductById" resultType="com.caimei365.commodity.model.search.ProductDO">
-        select<include refid="Search_Product_List"/>, p.productCategory
+        select<include refid="Search_Product_List"/>
         from product p
         <include refid="Product_Joins"/>
         where p.validFlag in (2,3,9) and p.productCategory = 1
@@ -538,7 +539,7 @@
     <select id="findPromotionId" resultType="java.lang.Integer">
         select pr.id
         from cm_promotions pr
-                 left join cm_promotions_product prp on pr.id = prp.promotionsId
+        left join cm_promotions_product prp on pr.id = prp.promotionsId
         where (prp.productId = #{p_id} or
                prp.supplierId = (select p.shopID from product p where p.productID = #{p_id})
             )
@@ -553,4 +554,12 @@
     <select id="countSalesByDate" resultType="java.lang.Integer">
         select IFNULL(sum(sales),0) from cm_product_sales_record where productId = #{productId} and saleTime > #{date}
     </select>
+    <select id="findPromotions" resultType="java.lang.Integer">
+        SELECT DISTINCT
+        cpp.productId
+        FROM cm_promotions cp
+        LEFT JOIN cm_promotions_product cpp ON cp.id=cpp.promotionsId
+        WHERE (cp.status=1 OR (cp.status=2 AND cp.endTime>NOW()))
+        AND cp.delFlag=0
+    </select>
 </mapper>