zhijiezhao 3 年之前
父節點
當前提交
7c4915bc67

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

@@ -248,7 +248,4 @@ public interface SearchMapper {
     List<Integer> findPromotion(List<Integer> productIds);
 
     List<Integer> findPromotionId(Integer p_id);
-
-    List<Integer> findShopPromotion(Integer p_id);
-
 }

+ 0 - 8
src/main/java/com/caimei365/commodity/service/impl/SearchIndexServiceImpl.java

@@ -208,10 +208,6 @@ public class SearchIndexServiceImpl implements SearchIndexService {
         if (promotionIds != null && promotionIds.size() > 0) {
             product.setP_promotions_id(promotionIds.get(0));
         }
-        List<Integer> shopPromotionIds = searchMapper.findShopPromotion(product.getP_id());
-        if (shopPromotionIds != null && shopPromotionIds.size() > 0) {
-            product.setP_promotions_id(shopPromotionIds.get(0));
-        }
         // product p_promotions_id
         if (null != product) {
             // 定义星范商品数据
@@ -1141,10 +1137,6 @@ public class SearchIndexServiceImpl implements SearchIndexService {
         if (promotionIds != null && promotionIds.size() > 0) {
             product.setP_promotions_id(promotionIds.get(0));
         }
-        List<Integer> shopPromotionIds = searchMapper.findShopPromotion(product.getP_id());
-        if (shopPromotionIds != null && shopPromotionIds.size() > 0) {
-            product.setP_promotions_id(shopPromotionIds.get(0));
-        }
         productDoc.setCmd("add");
         productDoc.setFields(product);
         productList.add(productDoc);

+ 10 - 11
src/main/resources/mapper/SearchMapper.xml

@@ -529,16 +529,15 @@
         and cp.delflag = 0
     </select>
     <select id="findPromotionId" resultType="java.lang.Integer">
-        select cpp.promotionsId
-        from cm_promotions_product cpp
-                 left join cm_promotions cp on cp.id = cpp.promotionsId
-        where cpp.productId = #{p_id}
-          and (cp.endTime > now() or cp.status = '1')
-          and cp.delflag = 0
-    </select>
-    <select id="findShopPromotion" resultType="java.lang.Integer">
-        SELECT promotionsId
-        FROM cm_promotions_product
-        WHERE supplierId = (SELECT shopID FROM product WHERE productID = #{p_id})
+        select pr.id
+        from cm_promotions pr
+                 left join cm_promotions_product prp on pr.id = prp.promotionsId
+        where (prp.productId = #{productId} or
+               prp.supplierId = (select p.shopID from product p where p.productID = #{productId})
+            )
+          and (pr.status = 1 or (pr.status = 2 and (NOW() between pr.beginTime and pr.endTime)))
+          and pr.delFlag not in (1, 2)
+        order by pr.type desc
+        limit 1
     </select>
 </mapper>