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/discuss/mapper/UserTopicsMapper.xml |  220 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 208 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml b/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
index a1510be..95ae488 100644
--- a/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
+++ b/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
@@ -5,7 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="userTopicsResultMap" type="org.springblade.modules.discuss.vo.UserTopicsVO">
         <result property="id" column="id"/>
-        <result property="userId" column="user_id"/>
+        <result property="householdId" column="household_id"/>
         <result property="topicsId" column="topics_id"/>
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
@@ -17,7 +17,7 @@
     <sql id="selectUserTopics">
         select
             id,
-            user_id,
+            household_id,
             topics_id,
             create_time,
             update_time,
@@ -30,21 +30,25 @@
 
 
     <select id="selectUserTopicsPage" resultMap="userTopicsResultMap">
-        SELECT distinct
+        SELECT
         jut.article_id,
         jut.delete_flag,
         jut.signature_path,
         jut.create_time,
+        jut.household_id,
         bu.avatar,
-        bu.`name`,
-        bu.phone,
+        jh.name,
+        jh.phone_number phone,
         jda.address_name,
         jda.aoi_name
+        <if test="userTopics.articleId != null ">,
+        group_concat(jt.option_content) optionContent  </if>
         FROM
         jczz_user_topics as jut
-        LEFT JOIN blade_user bu ON jut.user_id = bu.id AND bu.is_deleted = 0
-        LEFT JOIN jczz_household jh ON jh.associated_user_id = jut.user_id AND jh.is_deleted = 0
+        LEFT JOIN jczz_household jh ON jh.id = jut.household_id and jh.is_deleted = 0
         LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
+        LEFT JOIN jczz_topics jt on jt.id = jut.topics_id
+        LEFT JOIN blade_user bu ON jh.associated_user_id = bu.id AND bu.is_deleted = 0
         <where>
             <if test="userTopics.id != null ">and jut.id = #{userTopics.id}</if>
             <if test="userTopics.name != null and userTopics.name != ''">
@@ -53,17 +57,26 @@
             <if test="userTopics.phone != null and userTopics.phone != ''">
                 and bu.phone like concat('%',#{userTopics.phone},'%')
             </if>
-            <if test="userTopics.userId != null ">and jut.user_id = #{userTopics.userId}</if>
+
+            <if test="userTopics.aoiCodeList != null and userTopics.aoiCodeList.size() > 0">
+                and jda.aoi_code in
+                <foreach collection="userTopics.aoiCodeList" item="code" open="(" close=")" separator=",">
+                    #{code}
+                </foreach>
+            </if>
+
+            <if test="userTopics.householdId != null ">and jut.household_id = #{userTopics.householdId}</if>
             <if test="userTopics.topicsId != null ">and jut.topics_id = #{userTopics.topicsId}</if>
             <if test="userTopics.createTime != null ">and jut.create_time = #{userTopics.createTime}</if>
             <if test="userTopics.updateTime != null ">and jut.update_time = #{userTopics.updateTime}</if>
             <if test="userTopics.deleteFlag != null ">and jut.delete_flag = #{userTopics.deleteFlag}</if>
-            <if test="userTopics.articleId != null ">and jut.article_id = #{userTopics.articleId}
+            <if test="userTopics.articleId != null ">
+                and jut.article_id = #{userTopics.articleId}
                 and jut.delete_flag = 0
-                GROUP BY jut.article_id, jut.signature_path,jut.create_time,jut.delete_flag,
+                GROUP BY jut.article_id, jut.signature_path,jut.create_time,jut.household_id,jut.delete_flag,
                 bu.avatar,
-                bu.`name`,
-                bu.phone,
+                jh.name,
+                jh.phone_number,
                 jda.address_name,
                 jda.aoi_name
             </if>
@@ -85,4 +98,187 @@
     </select>
 
 
+    <select id="exportUser" resultType="org.springblade.modules.discuss.excel.UserTopicsExcel">
+        SELECT
+        jut.article_id,
+        jut.delete_flag,
+        jut.signature_path,
+        jut.create_time,
+        jut.household_id,
+        bu.avatar,
+        jh.name,
+        jh.phone_number phone,
+        jda.address_name,
+        jhs.area,
+        jhs.remark,
+        jda.address_code houseCode,
+        jda.aoi_name
+        <if test="articleId != null ">,
+            group_concat(jt.option_content) optionContent  </if>
+        FROM
+        jczz_user_topics as jut
+        LEFT JOIN jczz_household jh ON jh.id = jut.household_id and jh.is_deleted = 0
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
+        LEFT JOIN jczz_topics jt on jt.id = jut.topics_id
+        LEFT JOIN blade_user bu ON jh.associated_user_id = bu.id AND bu.is_deleted = 0
+        LEFT JOIN jczz_house jhs on jhs.house_code= jda.address_code
+        <where>
+            <if test="id != null ">and jut.id = #{id}</if>
+            <if test="name != null and name != ''">
+                and bu.name like concat('%',#{name},'%')
+            </if>
+            <if test="phone != null and phone != ''">
+                and bu.phone like concat('%',#{phone},'%')
+            </if>
+
+            <if test="aoiCodeList != null and aoiCodeList.size() > 0">
+                and jda.aoi_code in
+                <foreach collection="aoiCodeList" item="code" open="(" close=")" separator=",">
+                    #{code}
+                </foreach>
+            </if>
+
+            <if test="householdId != null ">and jut.household_id = #{householdId}</if>
+            <if test="topicsId != null ">and jut.topics_id = #{topicsId}</if>
+            <if test="createTime != null ">and jut.create_time = #{createTime}</if>
+            <if test="updateTime != null ">and jut.update_time = #{updateTime}</if>
+            <if test="deleteFlag != null ">and jut.delete_flag = #{deleteFlag}</if>
+            <if test="articleId != null ">
+                and jut.article_id = #{articleId}
+                and jut.delete_flag = 0
+                GROUP BY jut.article_id, jut.signature_path,jut.create_time,jut.household_id,jut.delete_flag,
+                bu.avatar,
+                jh.name,
+                jh.phone_number,
+                jda.address_name,
+                jhs.area,
+                jhs.remark,
+                jda.address_code,
+                jda.aoi_name
+            </if>
+        </where>
+
+    </select>
+
+
+    <select id="getresult" resultMap="userTopicsResultMap">
+
+        SELECT
+            jts.option_content
+        FROM
+            jczz_user_topics jut
+                LEFT JOIN jczz_topics jts ON jts.id = jut.topics_id
+        WHERE
+            jut.article_id = #{articleId}
+          and jut.household_id=#{householdId}
+          and jts.discuss_content=#{discussContent}
+
+    </select>
+
+    <select id="getresultTwo" resultType="org.springblade.modules.discuss.excel.UserTopicsExcel">
+        SELECT
+        jut.article_id,
+        jut.delete_flag,
+        jut.signature_path,
+        jut.create_time,
+        jut.household_id,
+        bu.avatar,
+        jh.name,
+        jh.phone_number phone,
+        jda.address_name,
+        jhs.area,
+        jhs.remark,
+        jda.address_code houseCode,
+        jda.aoi_name,
+        jt.option_content,
+        jhs.building,
+        jhs.room,
+        jhs.district_name
+        FROM
+        jczz_user_topics as jut
+        LEFT JOIN jczz_household jh ON jh.id = jut.household_id
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
+        LEFT JOIN jczz_topics jt on jt.id = jut.topics_id
+        LEFT JOIN blade_user bu ON jh.associated_user_id = bu.id AND bu.is_deleted = 0
+        LEFT JOIN jczz_house jhs on jhs.house_code= jda.address_code
+        <where>
+            and jt.discuss_content != '议事规则'
+            and jt.discuss_content != '管理规约'
+            <if test="id != null ">and jut.id = #{id}</if>
+            <if test="name != null and name != ''">
+                and bu.name like concat('%',#{name},'%')
+            </if>
+            <if test="phone != null and phone != ''">
+                and bu.phone like concat('%',#{phone},'%')
+            </if>
+
+            <if test="aoiCodeList != null and aoiCodeList.size() > 0">
+                and jda.aoi_code in
+                <foreach collection="aoiCodeList" item="code" open="(" close=")" separator=",">
+                    #{code}
+                </foreach>
+            </if>
+
+            <if test="householdId != null ">and jut.household_id = #{householdId}</if>
+            <if test="topicsId != null ">and jut.topics_id = #{topicsId}</if>
+            <if test="createTime != null ">and jut.create_time = #{createTime}</if>
+            <if test="updateTime != null ">and jut.update_time = #{updateTime}</if>
+            <if test="deleteFlag != null ">and jut.delete_flag = #{deleteFlag}</if>
+            <if test="articleId != null ">
+                and jut.article_id = #{articleId}
+                and jut.delete_flag = 0
+            </if>
+        </where>
+
+    </select>
+    <select id="getHouseholdList" resultType="org.springblade.modules.discuss.excel.holdExcel">
+        SELECT
+        jh.id,
+        jh.room,
+        jh.building,
+        jh.house_name,
+        jh.district_name,
+        jut.create_time,
+        jh.area,
+        (
+        SELECT
+        group_concat( jt.id ) AS optionContent
+        FROM jczz_topics jt
+        WHERE  jt.id = jut.topics_id
+        and jut.house_code = jh.house_code
+        AND jut.article_id = #{articleId}
+        ) optionContent,
+        (SELECT jhd.name from jczz_household jhd where  jhd.house_code = jh.house_code AND jhd.is_deleted = 0 and jhd.relationship = 1 limit 1 ) name,
+        (SELECT jhd.phone_number from jczz_household jhd where  jhd.house_code = jh.house_code AND jhd.is_deleted = 0 and jhd.relationship = 1 limit 1 ) phone
+        FROM
+        jczz_house jh
+        LEFT JOIN jczz_household jhd ON jhd.house_code = jh.house_code
+        AND jh.is_deleted = 0 and jhd.relationship = 1
+        LEFT JOIN jczz_user_topics jut on jut.household_id = jhd.id AND jut.article_id = #{articleId}
+        <where>
+            <if test="aoiCodeList != null and aoiCodeList.size() > 0">
+                and jh.district_code in
+                <foreach collection="aoiCodeList" item="code" open="(" close=")" separator=",">
+                    #{code}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY id
+    </select>
+
+    <select id="getUserTopicsTotal" resultType="java.util.Map">
+        SELECT IFNULL(sum(a.area), 0) AS area,
+               IFNULL(COUNT(1), 0)       number
+        FROM (SELECT DISTINCT jut.house_code,
+                              jh.area
+              FROM jczz_user_topics jut
+                       LEFT JOIN jczz_household jhd ON jhd.id = jut.household_id
+                       LEFT JOIN jczz_house jh ON jh.house_code = jhd.house_code
+                       LEFT JOIN jczz_topics jt ON jt.id = jut.topics_id
+                  AND jt.delete_flag = 0
+              WHERE jut.article_id = #{articleId}) a
+
+    </select>
+
+
 </mapper>

--
Gitblit v1.9.3