From 4310c19a73f960dfd79c90cfe960cf564b068f72 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Thu, 26 May 2022 10:03:35 +0800
Subject: [PATCH] 1、资讯模糊匹配修改

---
 src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 169 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
index 7214381..73e70ff 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
@@ -18,6 +18,36 @@
         <if test="article.endTime!=null and article.endTime!=''">
             and create_time&lt;=#{article.endTime}
         </if>
+        <if test="article.publish!=null and article.publish!=''">
+            and publish = #{article.publish}
+        </if>
+        <if test="article.articleType!=null and article.articleType!=''">
+            and article_type like concat('%',#{article.articleType},'%')
+        </if>
+        <if test="article.keyword!=null and article.keyword!=''">
+            AND CONCAT(title,source_name)
+            LIKE CONCAT ('%', #{article.keyword},'%')
+        </if>
+        and iswords = "0"
+        order by create_time desc
+    </select>
+
+    <!--查询资讯敏感词预警-->
+    <select id="pageWords" resultType="org.springblade.modules.article.entity.Article">
+        select * from sys_article
+        where 1=1
+        <if test="article.title!=null and article.title!=''">
+            and title like concat('%',#{article.title},'%')
+        </if>
+        <if test="article.sourceName!=null and article.sourceName!=''">
+            and source_name like concat('%',#{article.sourceName},'%')
+        </if>
+        <if test="article.startTime!=null and article.startTime!=''">
+            and create_time&gt;=#{article.startTime}
+        </if>
+        <if test="article.endTime!=null and article.endTime!=''">
+            and create_time&lt;=#{article.endTime}
+        </if>
         <if test="article.articleType!=null and article.articleType!=''">
             and article_type = #{article.articleType}
         </if>
@@ -25,6 +55,7 @@
             AND CONCAT(title,source_name)
             LIKE CONCAT ('%', #{article.keyword},'%')
         </if>
+        and iswords = "1"
         order by create_time desc
     </select>
 
@@ -42,6 +73,30 @@
         <if test="(article.rolename==null and article.rolename=='') or (article.rolename!='administrator' and article.rolename!='policeAdmin')">
             AND publish = 1
         </if>
+        and iswords = "0"
+        order by create_time desc
+    </select>
+
+    <!--查询收藏资讯分页列表信息-->
+    <select id="pageCollectList" resultType="org.springblade.modules.article.entity.Article">
+        SELECT
+        art.*
+        FROM
+        sys_collect col
+        LEFT JOIN sys_article art on art.id = col.collect_article
+        WHERE
+        1 = 1 AND collect_user =  #{article.userid}
+        <if test="article.articleType!=null and article.articleType!=''">
+            and article_type LIKE CONCAT ('%', #{article.articleType},'%')
+        </if>
+        <if test="article.keyword!=null and article.keyword!=''">
+            AND CONCAT(title,source_name)
+            LIKE CONCAT ('%', #{article.keyword},'%')
+        </if>
+        <if test="(article.rolename==null and article.rolename=='') or (article.rolename!='administrator' and article.rolename!='policeAdmin')">
+            AND publish = 1
+        </if>
+        and iswords = "0"
         order by create_time desc
     </select>
 
@@ -67,6 +122,24 @@
         likes_article,
         b.islikes
         ) likes ON art.id = likes.likes_article
+
+        LEFT JOIN (
+        SELECT
+        a.collect_article,
+        COUNT( * ) AS collectcount,
+        b.iscollect
+        FROM
+        sys_collect a
+        LEFT JOIN ( SELECT collect_article, COUNT( * ) AS iscollect FROM sys_collect WHERE 1 = 1
+        <if test="article.userid!=null and article.userid!=''">
+            and collect_user = #{article.userid}
+        </if>
+        GROUP BY collect_article ) b ON a.collect_article = b.collect_article
+        GROUP BY
+        collect_article,
+        b.iscollect
+        ) collect ON art.id = collect.collect_article
+
         LEFT JOIN (
         SELECT
         article,
@@ -87,6 +160,72 @@
         <if test="(article.rolename==null and article.rolename=='') or (article.rolename!='administrator' and article.rolename!='policeAdmin')">
             AND publish = 1
         </if>
+        and iswords = "0"
+        order by create_time desc
+    </select>
+
+    <!--查询资讯分页列表信息-->
+    <select id="pageCollect" resultType="org.springblade.modules.article.vo.ArticleVo">
+        SELECT
+        *
+        FROM
+        sys_article art
+        LEFT JOIN (
+        SELECT
+        a.likes_article,
+        COUNT( * ) AS count,
+        b.islikes
+        FROM
+        sys_likes a
+        LEFT JOIN ( SELECT likes_article, COUNT( * ) AS islikes FROM sys_likes WHERE 1 = 1
+        <if test="article.userid!=null and article.userid!=''">
+            and likes_user = #{article.userid}
+        </if>
+        GROUP BY likes_article ) b ON a.likes_article = b.likes_article
+        GROUP BY
+        likes_article,
+        b.islikes
+        ) likes ON art.id = likes.likes_article
+
+        LEFT JOIN (
+        SELECT
+        a.collect_article,
+        COUNT( * ) AS collectcount,
+        b.iscollect
+        FROM
+        sys_collect a
+        LEFT JOIN ( SELECT collect_article, COUNT( * ) AS iscollect FROM sys_collect WHERE 1 = 1
+        <if test="article.userid!=null and article.userid!=''">
+            and collect_user = #{article.userid}
+        </if>
+        GROUP BY collect_article ) b ON a.collect_article = b.collect_article
+        GROUP BY
+        collect_article,
+        b.iscollect
+        ) collect ON art.id = collect.collect_article
+
+        LEFT JOIN (
+        SELECT
+        article,
+        COUNT(*) as comments
+        FROM
+        sys_comment
+        GROUP BY article
+        ) com on com.article = art.id
+        WHERE
+        1 = 1
+        AND iscollect = 1
+        <if test="article.articleType!=null and article.articleType!=''">
+            and article_type LIKE CONCAT ('%', #{article.articleType},'%')
+        </if>
+        <if test="article.keyword!=null and article.keyword!=''">
+            AND CONCAT(title,source_name)
+            LIKE CONCAT ('%', #{article.keyword},'%')
+        </if>
+        <if test="(article.rolename==null and article.rolename=='') or (article.rolename!='administrator' and article.rolename!='policeAdmin')">
+            AND publish = 1
+        </if>
+        and iswords = "0"
         order by create_time desc
     </select>
 
@@ -94,4 +233,34 @@
         update sys_article set iscomment = #{type}
         where id in(${ids})
     </update>
+
+    <!--个人资讯-->
+    <select id="selectArticleG" resultType="org.springblade.modules.article.entity.Article">
+        select * from sys_article
+        where 1=1
+        <if test="article.title!=null and article.title!=''">
+            and title like concat('%',#{article.title},'%')
+        </if>
+        <if test="article.sourceName!=null and article.sourceName!=''">
+            and source_name like concat('%',#{article.sourceName},'%')
+        </if>
+        <if test="article.startTime!=null and article.startTime!=''">
+            and create_time&gt;=#{article.startTime}
+        </if>
+        <if test="article.endTime!=null and article.endTime!=''">
+            and create_time&lt;=#{article.endTime}
+        </if>
+        <if test="article.articleType!=null and article.articleType!=''">
+            and article_type = #{article.articleType}
+        </if>
+        <if test="article.keyword!=null and article.keyword!=''">
+            AND CONCAT(title,source_name)
+            LIKE CONCAT ('%', #{article.keyword},'%')
+        </if>
+        <if test="(article.rolename==null and article.rolename=='') or (article.rolename!='administrator' and article.rolename!='policeAdmin')">
+            AND publish = 1
+        </if>
+        and iswords = "0" and type!=1
+        order by create_time desc
+    </select>
 </mapper>

--
Gitblit v1.9.3