From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml |  290 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 231 insertions(+), 59 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 54b12d8..1cf62e9 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
@@ -23,7 +23,7 @@
         <result column="update_user" property="updateUser"/>
         <result column="create_user" property="createUser"/>
         <result column="is_deleted" property="isDeleted"/>
-        <result property="articleRange"    column="article_range"    />
+        <result property="articleRange" column="article_range"/>
         <collection property="countNumber" column="id" javaType="int" select="selectStlCount">
         </collection>
 
@@ -40,30 +40,29 @@
     </select>
 
 
-
     <sql id="selectArticle">
-        select
-            id,
-            title,
-            type,
-            content,
-            url,
-            video_url,
-            source_id,
-            source_name,
-            article_type,
-            recommend,
-            publish,
-            iscomment,
-            view_number,
-            create_time,
-            update_time,
-            update_user,
-            create_user,
-            is_deleted,
-            article_range
-        from
-            jczz_article
+        select id,
+               title,
+               type,
+               content,
+               url,
+               video_url,
+               source_id,
+               source_name,
+               article_type,
+               recommend,
+               publish,
+               iscomment,
+               view_number,
+               create_time,
+               update_time,
+               update_user,
+               create_user,
+               is_deleted,
+               article_range,
+               building,
+               unit
+        from jczz_article
     </sql>
 
 
@@ -87,9 +86,9 @@
             ja.update_user,
             ja.create_user,
             ja.is_deleted,
-            jpd.id pdId,
-            (select bdb.dict_value from blade_dict_biz bdb where bdb.parent_id='1722966265111248897' and ja.article_type = bdb.dict_key) dictValue,
-            jpd.event_type
+            (select bdb.dict_value from blade_dict_biz bdb where bdb.parent_id='1740566650527752194' and ja.article_type
+            = bdb.dict_key) dictValue,
+            jpd.id pdId
             from jczz_article ja
             LEFT JOIN jczz_public_discuss jpd on jpd.article_id=ja.id
             where ja.is_deleted = 0
@@ -97,13 +96,47 @@
             <if test="article.articleType != null and article.articleType != ''">
                 and ja.article_type = #{article.articleType}
             </if>
+
             <if test="article.eventType != null">
                 and jpd.event_type = #{article.eventType}
             </if>
 
+            <if test="article.type != null">
+                and ja.type = #{article.type}
+            </if>
+
+            <if test="article.type == null">
+                and ja.type = 0
+            </if>
+
             <if test="article.districtId != null and article.districtId != ''">
                 and (ja.article_range like concat('%',#{article.districtId},'%')
-                or ja.article_range is null)
+                or ja.article_range is null or ja.article_range = '')
+            </if>
+            <if test="article.districtIdList != null and article.districtIdList.size() > 0 ">
+                and (ja.article_range like
+                <foreach collection="article.districtIdList" separator=" or article_range like" item="id">'%${id}%'
+                </foreach>
+                ) or ja.article_range is null
+            </if>
+
+            <if test="article.districtId == null ">
+                and ja.article_range is  null
+            </if>
+
+            <if test="article.householdId != null">
+                and (FIND_IN_SET ( #{article.householdId}, jpd.user_ids )
+                OR jpd.user_ids IS NULL or jpd.user_ids = '')
+            </if>
+
+            <if test="article.building != null and article.building != ''">
+                and (ja.building = #{article.building}
+                or ja.building is null)
+            </if>
+
+            <if test="article.unit != null and article.unit != ''">
+                and (ja.unit = #{article.unit}
+                or ja.unit is null)
             </if>
         </if>
         <!-- 查询文章 -->
@@ -134,9 +167,34 @@
                 and ja.article_type = #{article.articleType}
             </if>
 
+            <if test="article.type != null">
+                and ja.type = #{article.type}
+            </if>
+
+            <if test="article.type == null">
+                and ja.type = 0
+            </if>
+
             <if test="article.districtId != null and article.districtId != ''">
-                and ja.article_range like concat('%',#{article.districtId},'%')
-                or ja.article_range is null
+                and (ja.article_range like concat('%',#{article.districtId},'%')
+                or ja.article_range is null)
+            </if>
+
+            <if test="article.districtIdList != null and article.districtIdList.size() > 0 ">
+                and (ja.article_range like
+                <foreach collection="article.districtIdList" separator=" or article_range like" item="id">'%${id}%'
+                </foreach>
+                ) or ja.article_range is null
+            </if>
+
+            <if test="article.building != null and article.building != ''">
+                and (ja.building = #{article.building}
+                or ja.building is null)
+            </if>
+
+            <if test="article.unit != null and article.unit != ''">
+                and (ja.unit = #{article.unit}
+                or ja.unit is null)
             </if>
         </if>
 
@@ -144,34 +202,60 @@
     </select>
 
     <!--查询资讯分页列表信息-->
-    <select id="selectArticlePage" resultType="org.springblade.modules.article.entity.Article">
-        select * from jczz_article
+    <select id="selectArticlePage" resultType="org.springblade.modules.article.vo.ArticleVO">
+        SELECT
+        ja.*,
+        br.`village_name` communityName,
+        br.town_name streetName
+        FROM
+        jczz_article ja
+        LEFT JOIN jczz_district jd ON ja.district_id = jd.id
+        LEFT JOIN blade_region br on br.`code` = jd.community_code
         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.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},'%')
+        and ja.is_deleted = 0
+        <if test="article.communityName!=null and article.communityName!=''">
+            and br.`village_name` like concat('%',#{article.communityName},'%')
         </if>
 
-        and is_deleted = 0
-        order by id desc
+        <if test="article.streetName!=null and article.streetName!=''">
+            and br.town_name like concat('%',#{article.streetName},'%')
+        </if>
+
+        <if test="article.title!=null and article.title!=''">
+            and ja.title like concat('%',#{article.title},'%')
+        </if>
+        <if test="article.sourceName!=null and article.sourceName!=''">
+            and ja.source_name like concat('%',#{article.sourceName},'%')
+        </if>
+        <if test="article.startTime!=null and article.startTime!=''">
+            and ja.create_time&gt;=#{article.startTime}
+        </if>
+        <if test="article.endTime!=null and article.endTime!=''">
+            and ja.create_time&lt;=#{article.endTime}
+        </if>
+        <if test="article.publish!=null and article.publish!=''">
+            and ja.publish = #{article.publish}
+        </if>
+        <if test="article.articleType!=null and article.articleType!=''">
+            and ja.article_type like concat('%',#{article.articleType},'%')
+        </if>
+        <if test="article.type != null ">and ja.type = #{article.type}</if>
+
+        <if test="article.keyword!=null and article.keyword!=''">
+            AND CONCAT(ja.title,ja.source_name)
+            LIKE CONCAT ('%', #{article.keyword},'%')
+        </if>
+        <if test="article.districtIdList != null and article.districtIdList.size() > 0 ">
+            and (ja.article_range like
+            <foreach collection="article.districtIdList" separator=" or article_range like" item="id">'%${id}%'
+            </foreach>
+            )
+            <!--            and ja.district_id in-->
+            <!--            <foreach collection="article.districtIdList" index="index" item="item" open="(" separator="," close=")">-->
+            <!--                #{item}-->
+            <!--            </foreach>-->
+        </if>
+        order by ja.create_time desc
     </select>
 
     <!--查询资讯敏感词预警-->
@@ -227,7 +311,7 @@
         sys_collect col
         LEFT JOIN jczz_article art on art.id = col.collect_article
         WHERE
-        1 = 1 AND collect_user =  #{article.userid}
+        1 = 1 AND collect_user = #{article.userid}
         <if test="article.articleType!=null and article.articleType!=''">
             and article_type LIKE CONCAT ('%', #{article.articleType},'%')
         </if>
@@ -372,8 +456,9 @@
     </select>
 
     <update id="upcomment">
-        update jczz_article set iscomment = #{type}
-        where id in(${ids})
+        update jczz_article
+        set iscomment = #{type}
+        where id in (${ids})
     </update>
 
     <!--个人资讯-->
@@ -427,7 +512,7 @@
         ja.create_user,
         ja.is_deleted,
         ja.article_range,
-        ((select bdb.dict_value from blade_dict_biz bdb where bdb.parent_id='1722966265111248897' and ja.article_type
+        ((select bdb.dict_value from blade_dict_biz bdb where bdb.parent_id=#{parentId} and ja.article_type
         = bdb.dict_key)) dictValue
         from jczz_article ja
         <where>
@@ -463,4 +548,91 @@
         WHERE jda.address_code = #{houseCode}
 
     </select>
+    <select id="getArticleByDistrictId" resultType="org.springblade.modules.article.vo.ArticleVO"
+            parameterType="org.springblade.modules.article.vo.ArticleVO">
+        SELECT
+        ja.*,
+        br.`village_name` communityName,
+        br.town_name streetName
+        FROM
+        jczz_article ja
+        LEFT JOIN jczz_district jd ON ja.district_id = jd.id
+        LEFT JOIN blade_region br on br.`code` = jd.community_code
+        LEFT JOIN jczz_public_discuss jpd on jpd.article_id=ja.id
+        where 1=1
+        and ja.is_deleted = 0
+
+        <if test="article.eventType != null">
+            and jpd.event_type = #{article.eventType}
+            and jpd.end_time is not null
+        </if>
+
+        <if test="article.propertyFlag!=null ">
+            <if test="article.communityName!=null and article.communityName!=''">
+                and br.`village_name` like concat('%',#{article.communityName},'%')
+            </if>
+
+            <if test="article.streetName!=null and article.streetName!=''">
+                and br.town_name like concat('%',#{article.streetName},'%')
+            </if>
+        </if>
+
+        <if test="article.title!=null and article.title!=''">
+            and ja.title like concat('%',#{article.title},'%')
+        </if>
+        <if test="article.sourceName!=null and article.sourceName!=''">
+            and ja.source_name like concat('%',#{article.sourceName},'%')
+        </if>
+        <if test="article.startTime!=null and article.startTime!=''">
+            and ja.create_time&gt;=#{article.startTime}
+        </if>
+        <if test="article.endTime!=null and article.endTime!=''">
+            and ja.create_time&lt;=#{article.endTime}
+        </if>
+        <if test="article.publish!=null and article.publish!=''">
+            and ja.publish = #{article.publish}
+        </if>
+        <if test="article.articleType!=null and article.articleType!=''">
+            and ja.article_type like concat('%',#{article.articleType},'%')
+        </if>
+        <if test="article.type != null ">
+          and ja.type = #{article.type}
+          </if>
+
+        <if test="article.keyword!=null and article.keyword!=''">
+            AND CONCAT(ja.title,ja.source_name)
+            LIKE CONCAT ('%', #{article.keyword},'%')
+        </if>
+        <if test="article.districtIdList != null and article.districtIdList.size() > 0 ">
+            and (ja.article_range like
+            <foreach collection="article.districtIdList" separator=" or article_range like" item="id">'%${id}%'
+            </foreach>
+            )
+        </if>
+        order by ja.create_time desc
+
+    </select>
+
+    <select id="getAllList" resultType="org.springblade.modules.article.entity.Article">
+        SELECT
+        ja.*
+        FROM
+        jczz_article ja
+        where 1=1
+        and ja.is_deleted = 0
+        and ja.publish = 1
+        and ja.type = 0
+        limit #{i},#{size}
+    </select>
+
+    <select id="getAllListTotal" resultType="java.lang.Integer">
+        SELECT
+        count(*)
+        FROM
+        jczz_article ja
+        where 1=1
+        and ja.is_deleted = 0
+        and ja.publish = 1
+        and ja.type = 0
+    </select>
 </mapper>

--
Gitblit v1.9.3