Kaynağa Gözat

增加关键词搜索

fangqing 6 ay önce
ebeveyn
işleme
0105363f92

+ 21 - 1
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityArticleController.java

@@ -26,6 +26,8 @@ import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 
 /**
 /**
  * 社区文章管理
  * 社区文章管理
@@ -81,6 +83,8 @@ public class CommunityArticleController extends BaseController {
     @Autowired
     @Autowired
     private CommunityCollectionMapper communityCollectionMapper;
     private CommunityCollectionMapper communityCollectionMapper;
 
 
+    @Autowired
+    private  CommunityTagMapper communityTagMapper;
 
 
     /**
     /**
      * 获取文章列表信息
      * 获取文章列表信息
@@ -876,5 +880,21 @@ public class CommunityArticleController extends BaseController {
         return AjaxResult.success(collectionArticleVos);
         return AjaxResult.success(collectionArticleVos);
     }
     }
 
 
-
+    /**
+     * 搜索关键字
+     * @param content
+     * @return 内容
+     */
+    @ApiOperation("查询关键词")
+    @GetMapping("/TrendingTopic")
+    //@Anonymous
+    public AjaxResult TrendingTopic(@RequestParam(required = false) String content) {
+        List<TrendingTop> trendingTops = null;
+        try {
+            trendingTops = communityArticleMapper.selectTrendingTopByContent(content);
+        } catch (Exception e) {
+            throw new ProjectException();
+        }
+        return AjaxResult.success("获取成功!",trendingTops);
+    }
 }
 }

+ 24 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/TrendingTop.java

@@ -0,0 +1,24 @@
+package com.ruoyi.generator.domain.Community;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author fangqing
+ * @date 2024/12/12 19:13
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class TrendingTop {
+
+
+    @ApiModelProperty("类型")
+    private String type;
+    @ApiModelProperty("内容")
+    private String content;
+
+
+}

+ 8 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityArticleMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.generator.domain.Community.CommunityArticle;
 import com.ruoyi.generator.domain.Community.CommunityArticle;
 import com.ruoyi.generator.domain.Community.CommunityArticleCollect;
 import com.ruoyi.generator.domain.Community.CommunityArticleCollect;
 import com.ruoyi.generator.domain.Community.CommunityLike;
 import com.ruoyi.generator.domain.Community.CommunityLike;
+import com.ruoyi.generator.domain.Community.TrendingTop;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 import com.ruoyi.generator.vo.CommunityArticleVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -93,6 +94,13 @@ public interface CommunityArticleMapper extends BaseMapper<CommunityArticle> {
      * @return 删除是否成功
      * @return 删除是否成功
      */
      */
     boolean deleteCommunityCollectById(CommunityArticleCollect collect);
     boolean deleteCommunityCollectById(CommunityArticleCollect collect);
+
+    /**
+     * 搜索关键字
+     * @param content
+     * @return 内容
+     */
+    List<TrendingTop> selectTrendingTopByContent(@Param("content") String content);
 }
 }
 
 
 
 

+ 5 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -695,6 +695,11 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
         return true;
         return true;
     }
     }
 
 
+    @Override
+    public  List<TrendingTop> selectTrendingTopByContent(String content) {
+        return communityArticleMapper.selectTrendingTopByContent(content);
+    }
+
     /**
     /**
      *
      *
      */
      */

+ 7 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityArticleService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.domain.Community.*;
 import com.ruoyi.generator.vo.*;
 import com.ruoyi.generator.vo.*;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.text.ParseException;
 import java.text.ParseException;
 import java.util.List;
 import java.util.List;
@@ -167,5 +168,11 @@ public interface ICommunityArticleService extends IService<CommunityArticle> {
      */
      */
     Boolean checkCommentPermission(Long userId,Long commentId,Long articleId) throws ParseException;
     Boolean checkCommentPermission(Long userId,Long commentId,Long articleId) throws ParseException;
 
 
+    /**
+     * 搜索关键字
+     * @param content
+     * @return 内容
+     */
+    List<TrendingTop> selectTrendingTopByContent(@Param("content") String content);
 
 
 }
 }

+ 22 - 0
ruoyi-generator/src/main/resources/mapper/community/ArticleMapper.xml

@@ -290,6 +290,7 @@
         </where>
         </where>
     </select>
     </select>
 
 
+
     <insert id="insertCommunityCollectById" parameterType="communityArticleCollect">
     <insert id="insertCommunityCollectById" parameterType="communityArticleCollect">
         insert into community_article_collect (article_id, user_id, create_by, create_time, update_by, update_time)
         insert into community_article_collect (article_id, user_id, create_by, create_time, update_by, update_time)
         values (#{articleId}, #{userId}, #{userId}, now(), #{userId}, now());
         values (#{articleId}, #{userId}, #{userId}, now(), #{userId}, now());
@@ -301,4 +302,25 @@
         where user_id = #{userId}
         where user_id = #{userId}
           and article_id = #{articleId};
           and article_id = #{articleId};
     </delete>
     </delete>
+
+    <select id="selectTrendingTopByContent" resultType="com.ruoyi.generator.domain.Community.TrendingTop">
+        SELECT
+            type, content
+        FROM (
+                 SELECT
+                     'article' as type, title as content
+                 FROM community_article
+                 WHERE title LIKE CONCAT( #{content}, '%') AND is_delete != '1'
+                 UNION ALL
+                 SELECT
+                     'tag' as type, tag_name
+                 FROM community_tag
+                 WHERE tag_name LIKE CONCAT( #{content}, '%') AND is_delete != '1'
+                 UNION ALL
+                 SELECT
+                     'user' as type, nick_name
+                 FROM sys_user
+                 WHERE nick_name LIKE CONCAT( #{content}, '%') AND status = '0'
+             ) AS A
+    </select>
 </mapper>
 </mapper>