浏览代码

Merge remote-tracking branch 'origin/developer' into developerC

chao 3 年之前
父节点
当前提交
c755352bf6

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

@@ -204,12 +204,12 @@ public class SearchIndexServiceImpl implements SearchIndexService {
             return ResponseJson.error("商品Id不能为空", null);
         }
         ProductDO product = searchMapper.searchProductById(productId);
-        List<Integer> promotionIds = searchMapper.findPromotionId(product.getP_id());
-        if (promotionIds != null && promotionIds.size() > 0) {
-            product.setP_promotions_id(promotionIds.get(0));
-        }
         // 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<DocumentDTO<MallProductDO>> mallProductList = new ArrayList<>();
 //            // 星范商品设值,【必须先于商品文档设值】

+ 34 - 26
src/main/java/com/caimei365/commodity/service/impl/SearchProductServiceImpl.java

@@ -81,25 +81,29 @@ public class SearchProductServiceImpl implements SearchProductService {
         if (promotionFlag == 1) {
             filterList.add("p_promotions_id > 0");
         }
-        if (!StringUtils.isEmpty(brandIds)) {
+        if (!StringUtils.isEmpty(brandIds) && !"null".equals(brandIds)) {
             StringBuffer brandBuilder = new StringBuffer();
-            if (brandIds.contains(",")) {
-                String[] split = brandIds.split(",");
-                for (int i = 0; i < split.length; i++) {
-                    if (i == 0) {
-                        brandBuilder.append("p_brand_id=").append(split[i]);
-                    } else {
-                        brandBuilder.append(" OR p_brand_id=").append(split[i]);
-                    }
+            List<String> brandList = new ArrayList<>();
+            String[] split = brandIds.split(",");
+            for (String s : split) {
+                if (!StringUtils.isEmpty(s) && !"null".equals(s)) {
+                    brandList.add(s);
+                }
+            }
+            for (int i = 0; i < brandList.size(); i++) {
+                if (i == 0) {
+                    brandBuilder.append(brandList.get(i));
+                } else {
+                    brandBuilder.append(" OR ").append(brandList.get(i));
                 }
-            } else {
-                brandBuilder.append("p_brand_id=").append(brandIds);
             }
             String brandFilter = brandBuilder.toString();
             if (brandFilter.contains("OR")) {
                 brandFilter = "(" + brandFilter + ")";
             }
-            filterList.add(brandFilter);
+            if (!StringUtils.isEmpty(brandFilter)) {
+                filterList.add(brandFilter);
+            }
         }
         String filter = "";
         StringBuffer filterBuffer = new StringBuffer();
@@ -111,7 +115,7 @@ public class SearchProductServiceImpl implements SearchProductService {
                     filterBuffer.append(" AND ").append(filterList.get(i));
                 }
             }
-            filter = "(" + filterBuffer.toString() + ")";
+            filter = filterBuffer.toString();
         }
         // 阿里云搜索
         ResponseJson<String> result = queryProduct(queryStr, filter, identity, pageNum, pageSize, sortField, sortType);
@@ -240,25 +244,29 @@ public class SearchProductServiceImpl implements SearchProductService {
         if (promotionFlag == 1) {
             filterList.add("p_promotions_id > 0");
         }
-        if (!StringUtils.isEmpty(brandIds)) {
+        if (!StringUtils.isEmpty(brandIds) && !"null".equals(brandIds)) {
             StringBuffer brandBuilder = new StringBuffer();
-            if (brandIds.contains(",")) {
-                String[] split = brandIds.split(",");
-                for (int i = 0; i < split.length; i++) {
-                    if (i == 0) {
-                        brandBuilder.append("p_brand_id=").append(split[i]);
-                    } else {
-                        brandBuilder.append(" OR p_brand_id=").append(split[i]);
-                    }
+            List<String> brandList = new ArrayList<>();
+            String[] split = brandIds.split(",");
+            for (String s : split) {
+                if (!StringUtils.isEmpty(s) && !"null".equals(s)) {
+                    brandList.add(s);
+                }
+            }
+            for (int i = 0; i < brandList.size(); i++) {
+                if (i == 0) {
+                    brandBuilder.append(brandList.get(i));
+                } else {
+                    brandBuilder.append(" OR ").append(brandList.get(i));
                 }
-            } else {
-                brandBuilder.append("p_brand_id=").append(brandIds);
             }
             String brandFilter = brandBuilder.toString();
             if (brandFilter.contains("OR")) {
                 brandFilter = "(" + brandFilter + ")";
             }
-            filterList.add(brandFilter);
+            if (!StringUtils.isEmpty(brandFilter)) {
+                filterList.add(brandFilter);
+            }
         }
         String filter = "";
         StringBuffer filterBuffer = new StringBuffer();
@@ -270,7 +278,7 @@ public class SearchProductServiceImpl implements SearchProductService {
                     filterBuffer.append(" AND ").append(filterList.get(i));
                 }
             }
-            filter = "(" + filterBuffer.toString() + ")";
+            filter = filterBuffer.toString();
         }
         SearchParams searchParams = searchOpenService.getScrollProductParams(queryStr, identity, requestPageSize, sortField, sortType);
         String thisFilter = searchParams.getFilter();

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

@@ -111,7 +111,10 @@ public class SellerServiceImpl implements SellerService {
             List<Integer> p = new ArrayList<>();
             p.add(productId);
             List<ProductItemVo> pd = sellerMapper.getProductList(p);
-            ProductItemVo productItemVo = pd.get(0);
+            ProductItemVo productItemVo = new ProductItemVo();
+            if (pd != null && pd.size() > 0) {
+                productItemVo = pd.get(0);
+            }
             PageHelper.startPage(pageNum, pageSize);
             productList = sellerMapper.getProductList(productIdList);
             //本商品设置首位

+ 7 - 2
src/main/resources/mapper/PageMapper.xml

@@ -457,10 +457,15 @@
         order by addTime desc
     </select>
     <select id="getArchiveImageList" resultType="java.lang.String">
-        select ossUrl from cm_product_archive_file where archiveContentId = #{archiveContentId}
+        select ifnull(waterOssUrl, ossUrl) as ossUrl
+        from cm_product_archive_file
+        where archiveContentId = #{archiveContentId}
     </select>
     <select id="getArchiveFile" resultType="com.caimei365.commodity.model.po.ArchiveFilePo">
-        select fileName,ossName,uploadTime from cm_product_archive_file where archiveContentId = #{archiveContentId}
+        select fileName, if(cc.type = 2,ossName,ifnull(waterOssName, ossName)) as ossName, uploadTime
+        from cm_product_archive_file cf
+        left join cm_product_archive_content cc on cf.archiveContentId = cc.id
+        where archiveContentId = #{archiveContentId}
     </select>
     <select id="getArchiveByArchiveId" resultType="com.caimei365.commodity.model.po.ArchivePo">
         select cpa.id                                                                                   AS "archiveId",