Prechádzať zdrojové kódy

产品仪器热搜词

chao 3 rokov pred
rodič
commit
71c4c156a9

+ 8 - 0
src/main/java/com/caimei365/commodity/controller/SearchProductApi.java

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 搜索商品(阿里云搜索)
@@ -178,4 +179,11 @@ public class SearchProductApi {
         return searchProductService.deleteSearchHistory(userId);
     }
 
+    /**
+     * 产品仪器热搜词
+     */
+    @GetMapping("/hot/keyword")
+    public ResponseJson<Map<String, Object>> getHotSearchTerms() {
+        return searchProductService.getHotSearchTerms();
+    }
 }

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

@@ -25,12 +25,19 @@ public interface PageMapper {
     Integer getPageTypeSort(Integer pageId);
 
     /**
-     * 查询分页详情热搜词
+     * 查询热搜词(单个页面)
      *
      * @param pageId
      */
     List<HotSearchVo> getHotSearchByPageId(Integer pageId, Integer source);
 
+    /**
+     * 查询热搜词(多个页面Id)
+     *
+     * @param pageIds
+     */
+    List<HotSearchVo> getHotSearchByPageIds(@Param("pageIds") List<Integer> pageIds, @Param("source") Integer source);
+
     /**
      * 首页楼层
      *
@@ -289,4 +296,8 @@ public interface PageMapper {
      * 售后无忧,购物须知
      */
     AfterSaleVo getAfterSale();
+    /**
+     * 查询产品,仪器页面信息
+     */
+    List<Integer> getPageIdByTypeSort(Integer typeSort);
 }

+ 5 - 0
src/main/java/com/caimei365/commodity/service/SearchProductService.java

@@ -4,6 +4,7 @@ import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.po.SearchHistoryPo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Description
@@ -82,4 +83,8 @@ public interface SearchProductService {
      * @param userId 用户Id
      */
     ResponseJson<Void> deleteSearchHistory(Integer userId);
+    /**
+     * 产品仪器热搜词
+     */
+    ResponseJson<Map<String, Object>> getHotSearchTerms();
 }

+ 35 - 2
src/main/java/com/caimei365/commodity/service/impl/SearchProductServiceImpl.java

@@ -7,12 +7,15 @@ import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
 import com.aliyun.opensearch.sdk.generated.commons.OpenSearchException;
 import com.aliyun.opensearch.sdk.generated.search.SearchParams;
 import com.caimei365.commodity.components.SearchOpenService;
+import com.caimei365.commodity.mapper.PageMapper;
 import com.caimei365.commodity.mapper.SearchMapper;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.po.SearchHistoryPo;
+import com.caimei365.commodity.model.vo.HotSearchVo;
 import com.caimei365.commodity.model.vo.PaginationVo;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.service.SearchProductService;
+import com.caimei365.commodity.utils.AppletsLinkUtil;
 import com.caimei365.commodity.utils.Json2PojoUtil;
 import com.caimei365.commodity.components.PriceUtilService;
 import com.github.pagehelper.PageHelper;
@@ -22,8 +25,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * Description
@@ -41,6 +43,8 @@ public class SearchProductServiceImpl implements SearchProductService {
     @Resource
     private SearchMapper searchMapper;
     @Resource
+    private PageMapper pageMapper;
+    @Resource
     private SearchOpenService searchOpenService;
     @Resource
     private PriceUtilService priceUtilService;
@@ -367,4 +371,33 @@ public class SearchProductServiceImpl implements SearchProductService {
         searchMapper.deleteAllSearchHistory(userId);
         return ResponseJson.success(null);
     }
+
+    /**
+     * 产品仪器热搜词
+     */
+    @Override
+    public ResponseJson<Map<String, Object>> getHotSearchTerms() {
+        //产品
+        List<HotSearchVo> productHotSearch = getHotSearch(1, 2);
+        //仪器
+        List<HotSearchVo> instrumentHotSearch = getHotSearch(2, 2);
+        Map<String, Object> map = new HashMap<>(2);
+        map.put("productHotSearch", productHotSearch);
+        map.put("instrumentHotSearch", instrumentHotSearch);
+        return ResponseJson.success(map);
+    }
+
+    private List<HotSearchVo> getHotSearch(Integer typeSort, Integer source) {
+        List<Integer> pageIds = pageMapper.getPageIdByTypeSort(typeSort);
+        List<HotSearchVo> productHotSearch = new ArrayList<>();
+        if (pageIds != null) {
+            productHotSearch = pageMapper.getHotSearchByPageIds(pageIds, source);
+        }
+        productHotSearch.forEach(h -> {
+            String link = h.getLink();
+            h.setLinkType(AppletsLinkUtil.getLinkType(link));
+            h.setLinkParam(AppletsLinkUtil.getLinkParam(h.getLinkType(), link));
+        });
+        return productHotSearch;
+    }
 }

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

@@ -20,6 +20,26 @@
         </if>
         order by -sort desc, creationTime desc
     </select>
+    <select id="getHotSearchByPageIds" resultType="com.caimei365.commodity.model.vo.HotSearchVo">
+        select
+        id, pageId, name, isHot, link, pcStatus, sort, appletsStatus, creationTime
+        from
+        cm_page_hot_search
+        where
+        <if test="pageIds.size() > 0">
+            and pageId in
+            <foreach collection="pageIds" open="(" separator="," close=")" item="pageId">
+                #{pageId}
+            </foreach>
+        </if>
+        <if test="source == 1">
+            and pcStatus = 1
+        </if>
+        <if test="source == 2">
+            and appletsStatus = 1
+        </if>
+        order by -sort desc, creationTime desc
+    </select>
     <select id="getHomePageFloor" resultType="com.caimei365.commodity.model.vo.PageFloorVo">
         select id, type, floorTitle as title, floorDetail as detail
 		from new_page_floor
@@ -534,5 +554,8 @@
         FROM cm_mall_organize
         WHERE id = 0 AND delFlag = '0'
     </select>
+    <select id="getPageIdByTypeSort" resultType="java.lang.Integer">
+        SELECT id FROM cm_page WHERE enabledStatus = 1 AND typeSort = #{typeSort}
+    </select>
 
 </mapper>