Bladeren bron

关键词1.0版本功能开发
关键词联动逻辑优化

JiangChongBo 2 jaren geleden
bovenliggende
commit
d510049953

+ 2 - 0
src/main/java/com/caimei/modules/product/dao/KeywordFrequencyDao.java

@@ -24,4 +24,6 @@ public interface KeywordFrequencyDao extends CrudDao<SearchFrequency> {
     List<SearchFrequency> getInfoByIdList(@Param("idList") int[] idList);
 
     List<SearchFrequencyVo> getKeywordList();
+
+    List<SearchFrequencyVo> getvalueList(@Param("keyword") String keyword);
 }

+ 16 - 0
src/main/java/com/caimei/modules/product/service/KeywordFrequencyService.java

@@ -61,6 +61,7 @@ public class KeywordFrequencyService extends CrudService<KeywordFrequencyDao, Se
         keywordFrequencyDao.addKeyWordList(array);
         //保存后重置关键词redis缓存
         cacheKeyWord();
+        conKeyWord();
 //        String[]  idList=ids.split(",");
 //        int[] array = Arrays.asList(idList).stream().mapToInt(Integer::parseInt).toArray();
 //        for (int i=0; i<array.length;i++){
@@ -115,6 +116,21 @@ public class KeywordFrequencyService extends CrudService<KeywordFrequencyDao, Se
         redisService.set("keyword",keyword,60L * 60 * 24 * 30);
 //        System.out.println(redisService.getExpireTime("keyword"));
 //        String key=redisService.get("keyword").toString();
+//        System.out.println(key);
+    }
+    /**
+     * redis缓存关键词(把所有的关键词整合到一个字符串中)
+     * 用时从redis取出转成list集合返回给前端进行联动
+     */
+    public void conKeyWord(){
+        List<SearchFrequencyVo> keywordList = keywordFrequencyDao.getKeywordList();
+        keywordList.stream().forEach(SearchFrequencyVo ->{
+            List<SearchFrequencyVo> searchFrequencyVos = keywordFrequencyDao.getvalueList(SearchFrequencyVo.getKeyword());
+            String keyword = JSONObject.toJSONString(searchFrequencyVos);//有值的字段才转
+            redisService.set(SearchFrequencyVo.getKeyword(),keyword,60L * 60 * 24 * 30);
+        });
+//        System.out.println(redisService.getExpireTime("keyword"));
+//        String key=redisService.get("keyword").toString();
 //        System.out.println(key);
     }
 }

+ 2 - 0
src/main/java/com/caimei/modules/product/web/KeywordFrequencyController.java

@@ -172,6 +172,7 @@ public class KeywordFrequencyController extends BaseController {
         keywordFrequencyService.save(searchFrequency);
         //保存后重置关键词redis缓存
         keywordFrequencyService.cacheKeyWord();
+        keywordFrequencyService.conKeyWord();
         addMessage(redirectAttributes, "保存成功");
         //编辑
         if(null !=searchFrequency.getStatus()&&1==searchFrequency.getStatus()){
@@ -283,6 +284,7 @@ public class KeywordFrequencyController extends BaseController {
             keywordFrequencyService.importKeyword(searchFrequencyList);
             //保存后重置关键词redis缓存
             keywordFrequencyService.cacheKeyWord();
+            keywordFrequencyService.conKeyWord();
         } catch (IOException  e) {//| ParseException
             e.printStackTrace();
         }

+ 11 - 0
src/main/resources/mappings/modules/product/SearchFrequencyMapper.xml

@@ -103,4 +103,15 @@
           and   delStatus=1
           and keyword is not null
     </select>
+    <select id="getvalueList" resultType="com.caimei.modules.product.entity.SearchFrequencyVo">
+        select
+            keyword
+        from cm_user_search_frequency
+        where trueStatus=1
+          and   delStatus=1
+          and keyword is not null
+        <if test="keyword != null and keyword != ''">
+            and keyword like concat('%', #{keyword},'%')
+        </if>
+    </select>
 </mapper>