浏览代码

mq异步关键词功能类型 信息中心,美业资料,供应商主页搜索

JiangChongBo 2 年之前
父节点
当前提交
e233d6f354

+ 32 - 32
src/main/java/com/caimei365/tools/listener/IpSaveListener.java

@@ -45,8 +45,8 @@ public class IpSaveListener implements RocketMQListener<String> {
         String param = params[2];
         String saveName = params[3];
         IpSavePo ipSavePo = new IpSavePo();
-//        SearchFrequencyVo searchFrequencyVo=new SearchFrequencyVo();
-//        searchFrequencyVo.setPath(path);
+        SearchFrequencyVo searchFrequencyVo=new SearchFrequencyVo();
+        searchFrequencyVo.setPath(path);
         if (StringUtils.isNotBlank(param)) {
             ipSavePo.setParams(param);
             if (param.contains("userId") || param.contains("keyword")) {
@@ -73,7 +73,7 @@ public class IpSaveListener implements RocketMQListener<String> {
                                     va = java.net.URLDecoder.decode(va, "UTF-8");
                                 }
                                 ipSavePo.setKeyWord(va);
-//                                searchFrequencyVo.setKeyword(va);
+                                searchFrequencyVo.setKeyword(va);
                             } catch (UnsupportedEncodingException e) {
                                 e.printStackTrace();
                             }
@@ -95,35 +95,35 @@ public class IpSaveListener implements RocketMQListener<String> {
         String nowDate = format.format(new Date());
         Long aLong = Long.valueOf(nowDate);
         ipSavePo.setSaveTime(aLong);
-//        //根据来源统计关键词
-//        //首页搜索  fromSearch = 1
-//        if(null !=searchFrequencyVo &&"/commodity/search/query/product".equals(searchFrequencyVo.getPath())){
-//            searchFrequencyVo.setFromSearch(1);
-//            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
-//                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
-//            }
-//        }
-//        //信息中心搜索  fromSearch = 2
-//        if(null !=searchFrequencyVo &&"/commodity/search/query/article".equals(searchFrequencyVo.getPath())){
-//            searchFrequencyVo.setFromSearch(2);
-//            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
-//                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
-//            }
-//        }
-//        //美业资料搜索 fromSearch=3
-//        if(null !=searchFrequencyVo &&"/commodity/product/archive".equals(searchFrequencyVo.getPath())){
-//            searchFrequencyVo.setFromSearch(3);
-//            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
-//                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
-//            }
-//        }
-//        //供应商主页搜索 fromSearch=4
-//        if(null !=searchFrequencyVo &&"/commodity/search/query/baike/keyword".equals(searchFrequencyVo.getPath())){
-//            searchFrequencyVo.setFromSearch(4);
-//            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
-//                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
-//            }
-//        }
+        //根据来源统计关键词
+        //首页搜索  fromSearch = 1
+        if(null !=searchFrequencyVo &&"/commodity/search/query/product".equals(searchFrequencyVo.getPath())){
+            searchFrequencyVo.setFromSearch(1);
+            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
+                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
+            }
+        }
+        //信息中心搜索  fromSearch = 2
+        if(null !=searchFrequencyVo &&"/commodity/search/query/article".equals(searchFrequencyVo.getPath())){
+            searchFrequencyVo.setFromSearch(2);
+            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
+                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
+            }
+        }
+        //美业资料搜索 fromSearch=3
+        if(null !=searchFrequencyVo &&"/commodity/product/archive".equals(searchFrequencyVo.getPath())){
+            searchFrequencyVo.setFromSearch(3);
+            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
+                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
+            }
+        }
+        //供应商主页搜索 fromSearch=4
+        if(null !=searchFrequencyVo &&"/commodity/search/query/baike/keyword".equals(searchFrequencyVo.getPath())){
+            searchFrequencyVo.setFromSearch(4);
+            if(StringUtils.isNotBlank(searchFrequencyVo.getKeyword())){
+                productService.conKeyword(searchFrequencyVo.getFromSearch(),searchFrequencyVo.getPath(),searchFrequencyVo.getKeyword());
+            }
+        }
         ipSaveService.save(ipSavePo);
     }
 }

+ 5 - 5
src/main/java/com/caimei365/tools/mapper/BaseMapper.java

@@ -86,9 +86,9 @@ public interface BaseMapper {
     void insertProductViews(Integer productId, Integer views, Date viewTime);
 
 
-//    List<SearchFrequencyVo>  getInfoBykeyword(String keyword, Integer fromSearch);
-//
-//    void saveInfo(SearchFrequencyVo searchFrequencyVo);
-//
-//    void upFrequencyById(Integer id,Integer frequency);
+    List<SearchFrequencyVo>  getInfoBykeyword(String keyword, Integer fromSearch);
+
+    void saveInfo(SearchFrequencyVo searchFrequencyVo);
+
+    void upFrequencyById(Integer id,Integer frequency);
 }

+ 1 - 1
src/main/java/com/caimei365/tools/service/ProductService.java

@@ -9,5 +9,5 @@ import org.springframework.stereotype.Service;
  * @date : 2021/10/26
  */
 public interface ProductService {
-//     void conKeyword(Integer fromType,String path,String keyword);
+     void conKeyword(Integer fromType,String path,String keyword);
     }

+ 25 - 25
src/main/java/com/caimei365/tools/service/impl/ProductServiceImpl.java

@@ -29,29 +29,29 @@ public class ProductServiceImpl implements ProductService {
      * @param keyword
      * @return
      */
-//    @Override
-//    public void conKeyword(Integer fromType,String path,String keyword){
-//        Date date=new Date();
-//        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        sd.format(date);
-////        searchFrequency.setSearchTime(new java.sql.Timestamp(date.getTime()));
-//        Calendar cal = Calendar.getInstance();
-//        cal.setTime(date);
-//        //根据关键词和来源查询数据库是否存在(存在来源也相同时增加次数,存在但来源不同时和不存在则新增)
-//        List<SearchFrequencyVo> searchFrequencyVoList = baseMapper.getInfoBykeyword(keyword,fromType);
-//        if(null!= searchFrequencyVoList && searchFrequencyVoList.size()>0){
-//            //存在 统计次数
-//            Integer frequency= searchFrequencyVoList.get(0).getFrequency()+1;
-//            baseMapper.upFrequencyById(searchFrequencyVoList.get(0).getId(),frequency);
-//        }else{
-//            //不存在 新增
-//            SearchFrequencyVo sea=new SearchFrequencyVo();
-//            sea.setKeyword(keyword);
-//            sea.setFrequency(1);
-//            sea.setPath(path);
-//            sea.setFromSearch(fromType);
-//            sea.setSearchTime(new java.sql.Timestamp(cal.getTime().getTime()));
-//            baseMapper.saveInfo(sea);
-//        }
-//    }
+    @Override
+    public void conKeyword(Integer fromType,String path,String keyword){
+        Date date=new Date();
+        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        sd.format(date);
+//        searchFrequency.setSearchTime(new java.sql.Timestamp(date.getTime()));
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        //根据关键词和来源查询数据库是否存在(存在来源也相同时增加次数,存在但来源不同时和不存在则新增)
+        List<SearchFrequencyVo> searchFrequencyVoList = baseMapper.getInfoBykeyword(keyword,fromType);
+        if(null!= searchFrequencyVoList && searchFrequencyVoList.size()>0){
+            //存在 统计次数
+            Integer frequency= searchFrequencyVoList.get(0).getFrequency()+1;
+            baseMapper.upFrequencyById(searchFrequencyVoList.get(0).getId(),frequency);
+        }else{
+            //不存在 新增
+            SearchFrequencyVo sea=new SearchFrequencyVo();
+            sea.setKeyword(keyword);
+            sea.setFrequency(1);
+            sea.setPath(path);
+            sea.setFromSearch(fromType);
+            sea.setSearchTime(new java.sql.Timestamp(cal.getTime().getTime()));
+            baseMapper.saveInfo(sea);
+        }
+    }
 }

+ 20 - 20
src/main/resources/mapper/BaseMapper.xml

@@ -103,25 +103,25 @@
         SELECT id FROM cm_short_link WHERE shortLink = #{shortLink}
     </select>
 
-<!--    <select id="getInfoBykeyword" resultType="com.caimei365.tools.model.po.SearchFrequencyVo">-->
-<!--        select-->
-<!--            id,-->
-<!--            fromSearch,-->
-<!--            path,-->
-<!--            keyword,-->
-<!--            frequency,-->
-<!--            searchTime,-->
-<!--            trueStatus-->
-<!--        from cm_user_search_frequency-->
-<!--        where keyword=#{keyword}-->
-<!--          and   fromSearch=#{fromSearch}-->
-<!--    </select>-->
-<!--    <update id="upFrequencyById">-->
-<!--        update cm_user_search_frequency set frequency=#{frequency} where id=#{id}-->
-<!--    </update>-->
-<!--    <insert id="saveInfo" parameterType="com.caimei365.tools.model.po.SearchFrequencyVo">-->
-<!--        insert into cm_user_search_frequency(fromSearch,path,keyword,frequency,searchTime)-->
-<!--        values (#{fromSearch},#{path},#{keyword},#{frequency},#{searchTime})-->
+    <select id="getInfoBykeyword" resultType="com.caimei365.tools.model.po.SearchFrequencyVo">
+        select
+            id,
+            fromSearch,
+            path,
+            keyword,
+            frequency,
+            searchTime,
+            trueStatus
+        from cm_user_search_frequency
+        where keyword=#{keyword}
+          and   fromSearch=#{fromSearch}
+    </select>
+    <update id="upFrequencyById">
+        update cm_user_search_frequency set frequency=#{frequency} where id=#{id}
+    </update>
+    <insert id="saveInfo" parameterType="com.caimei365.tools.model.po.SearchFrequencyVo">
+        insert into cm_user_search_frequency(fromSearch,path,keyword,frequency,searchTime)
+        values (#{fromSearch},#{path},#{keyword},#{frequency},#{searchTime})
 
-<!--    </insert>-->
+    </insert>
 </mapper>