zhijiezhao 2 年之前
父節點
當前提交
8d448d0209

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

@@ -103,7 +103,7 @@ public interface BaseMapper {
 
     void uplinkageFrequencyById(Integer id, Integer linkageFrequency, Integer frequency, Integer delStatus);
 
-    Integer findKeywordId(String keyword);
+    SearchFrequencyVo findKeywordId(String keyword);
 
     void updateKeywordTimes(Integer id);
 
@@ -118,4 +118,6 @@ public interface BaseMapper {
     SysUser findUserNameById(String id);
 
     List<String> getRoleNamesByUserId(Integer id);
+
+    void updateKeywordRecommend(Integer id);
 }

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

@@ -39,12 +39,16 @@ public class ProductServiceImpl implements ProductService {
          * cm_user_search_frequency中keyword为唯一,表中已有添加一次frequency,表中没有则新增,修改时刷新searchTime 最近一次搜索时间
          */
         SearchFrequencyVo sea = new SearchFrequencyVo();
-        Integer id = baseMapper.findKeywordId(keyword);
-        if (null != id) {
-            //已存在改次数,不存在插入
-            baseMapper.updateKeywordTimes(id);
-            sea.setId(id);
-        }else{
+        SearchFrequencyVo id = baseMapper.findKeywordId(keyword);
+        if (null != id & null != id.getId()) {
+            //已存在改次数,不存在插入 如果加上本次查询,有三次,则立即修改推荐标记,置入推荐列表
+            if (2 == id.getFrequency()) {
+                baseMapper.updateKeywordRecommend(id.getId());
+            } else {
+                baseMapper.updateKeywordTimes(id.getId());
+            }
+            sea.setId(id.getId());
+        } else {
             sea.setFrequency(1);
             sea.setKeyword(keyword);
             baseMapper.saveInfo(sea);
@@ -55,7 +59,7 @@ public class ProductServiceImpl implements ProductService {
 
     @Override
     public void updateAllKeyword() {
-       baseMapper.updateAllKeyword();
+        baseMapper.updateAllKeyword();
     }
 
     @Override
@@ -63,7 +67,7 @@ public class ProductServiceImpl implements ProductService {
         //查询本周时间内搜索大于等于三次的
         Calendar instance = Calendar.getInstance();
         instance.setTime(new Date());
-        instance.add(Calendar.WEEK_OF_MONTH,-1);
+        instance.add(Calendar.WEEK_OF_MONTH, -1);
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<Integer> ids = baseMapper.getRecommendKeyword(format.format(instance.getTime()));
         baseMapper.updateRecommend(ids);

+ 10 - 2
src/main/resources/mapper/BaseMapper.xml

@@ -136,8 +136,8 @@
           and trueStatus = #{trueStutas}
     </select>
 
-    <select id="findKeywordId" resultType="java.lang.Integer">
-        select id
+    <select id="findKeywordId" resultType="com.caimei365.tools.model.po.SearchFrequencyVo">
+        select id,frequency
         from cm_user_search_frequency
         where keyword = #{keyword}
           and delStatus = 1
@@ -204,6 +204,14 @@
         </foreach>
     </update>
 
+    <update id="updateKeywordRecommend">
+        UPDATE cm_user_search_frequency
+        SET frequency  = frequency + 1,
+            recommendStatus = 1,
+            searchtime = NOW()
+        WHERE id = #{id}
+    </update>
+
     <insert id="saveInfo" parameterType="com.caimei365.tools.model.po.SearchFrequencyVo" useGeneratedKeys="true"
             keyProperty="id">
         insert into cm_user_search_frequency(keyword, frequency, searchTime)