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/system/mapper/UserMapper.xml |  128 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 113 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 9a570ac..3bbac39 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -74,7 +74,32 @@
     </select>
 
     <select id="exportUser" resultType="org.springblade.modules.system.excel.UserExcel">
-        SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user ${ew.customSqlSegment}
+        SELECT id,
+               tenant_id,
+               user_type,
+               account,
+               name,
+               real_name,
+               email,
+               phone,
+               birthday,
+               role_id,
+               dept_id,
+               post_id
+        FROM blade_user ${ew.customSqlSegment}
+        <if test="deptIdList!=null and deptIdList.size>0">
+            and id in (
+            SELECT
+            user_id
+            FROM
+            blade_user_dept
+            WHERE
+            dept_id IN
+            <foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
     </select>
 
     <!--按条件查询用户信息-->
@@ -83,6 +108,10 @@
         where is_deleted = 0
         <if test="user.roleId!=null and user.roleId!=''">
             and role_id like concat('%',#{user.roleId},'%')
+        </if>
+
+        <if test="user.deptId!=null and user.deptId!=''">
+            and dept_id like concat('%',#{user.deptId},'%')
         </if>
     </select>
 
@@ -98,19 +127,19 @@
             jd.id  = #{districtId}
           and bu.is_deleted = '0'
           and jh.is_deleted = '0'
-
+          and jh.role_type = '1'
     </select>
 
     <!--根据手机号查询对应账号和手机号的用户信息-->
     <select id="getUserListByPhoneOrAccount" resultType="org.springblade.modules.system.entity.User">
         SELECT * FROM blade_user where is_deleted = 0
-        and (account = #{phoneNumber} or phone = #{phoneNumber})
+        and account = #{phoneNumber}
     </select>
 
     <!--用户详情map-->
     <resultMap id="selectUserDetailMap" type="org.springblade.modules.system.vo.UserDetailVO" autoMapping="true">
-        <id property="id" column="id" />
-        <collection property="deptList"  javaType="java.util.List"
+        <id property="id" column="id"/>
+        <collection property="deptList" javaType="java.util.List"
                     ofType="org.springblade.modules.system.vo.DeptDetailVO" autoMapping="true">
             <id property="id" column="cid"/>
             <id property="level" column="region_level"/>
@@ -127,8 +156,21 @@
         left join blade_user_dept bud on bud.user_id = bu.id
         left join blade_dept bd on bud.dept_id = bd.id and bd.is_deleted = 0
         left join blade_region br on br.code = bd.region_code
-        where bu.is_deleted = 0
+        where bu.is_deleted = 0 and bd.dept_nature = 2
         and bu.id = #{userId}
+        union all
+        (
+        SELECT
+        bu.*,
+        bd.id as cid,bd.parent_id,bd.ancestors,bd.dept_category,bd.dept_name,bd.full_name,bd.sort,bd.region_code,
+        br.level as region_level
+        FROM blade_user bu
+        left join blade_user_dept bud on bud.user_id = bu.id
+        left join blade_dept bd on bud.dept_id = bd.id and bd.is_deleted = 0
+        left join v_police_region br on br.id = bd.region_code
+        where bu.is_deleted = 0 and bd.dept_nature = 1
+        and bu.id = #{userId}
+        )
     </select>
 
 
@@ -182,11 +224,11 @@
         LEFT JOIN jczz_house jhe ON jhe.house_code = jh.house_code
         LEFT JOIN jczz_district jd on jd.aoi_code=jhe.district_code
         <where>
-            <if test="districtId != nuu and districtId != ''">
+            <if test="districtId != null and districtId != ''">
                 and jd.id = #{districtId}
                 and bu.is_deleted = 0
             </if>
-            <if test="building != nuu and building != ''">
+            <if test="building != null and building != ''">
                 and jhe.building=#{building}
             </if>
 
@@ -201,21 +243,77 @@
         where bu.is_deleted = 0 and bud.id is null
         and bu.dept_id!=''
     </select>
+    <select id="getUserListByDeptIds" resultType="org.springblade.modules.system.entity.User">
+        SELECT * FROM blade_user bu where is_deleted = 0
+        and dept_id in
+        <foreach collection="deptIds.split(',')" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </select>
 
     <select id="getUserInfoByPropertyId" resultType="org.springblade.modules.system.entity.User"
             parameterType="java.lang.String">
-                SELECT * from blade_user bu  where bu.dept_id in (
-        SELECT
+            SELECT
+            *
+            FROM
+            blade_user bu
+            WHERE
+            bu.role_id = #{roleId}
+            and bu.dept_id IN (
+            SELECT
             id
-        FROM
+            FROM
             ( SELECT id, parent_id FROM blade_dept ORDER BY parent_id, id ) org_query,
-            ( SELECT @id := #{deptId} ) initialisation
-        WHERE
-            FIND_IN_SET( parent_id, @id ) > 0
+            (SELECT	@id := #{deptId} ) initialisation
+            WHERE
+            (FIND_IN_SET( parent_id, @id ) > 0 or FIND_IN_SET( id, @id ) > 0)
             AND @id := CONCAT( @id, ',', id )
-        ) or bu.dept_id=#{deptId}
+            )
 
     </select>
 
 
+
+    <select id="selectUserByDept" resultMap="userResultMap">
+        select * from blade_user where is_deleted = 0
+        and id != 1123598821738675201
+        <if test="deptIdList!=null and deptIdList.size>0">
+            and id in (
+            SELECT
+            user_id
+            FROM
+            blade_user_dept
+            WHERE
+            dept_id IN
+            <foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+        ORDER BY create_time desc
+    </select>
+
+
+    <select id="getPoliceUser" resultType="org.springblade.modules.system.entity.User">
+        SELECT
+            bu.id,
+            bu.name,
+            bu.phone
+        FROM
+            blade_user bu
+        where 1 = 1
+          and  bu.lat is not null
+          and  bu.lng is not null
+          and IFNULL((
+                 ACOS(
+                 SIN(
+                 (#{latitude} * 3.1415) / 180) * SIN((bu.lat * 3.1415) / 180) +
+                 COS((#{latitude} * 3.1415) / 180) * COS((bu.lat * 3.1415) / 180) * COS((#{longitude} * 3.1415) / 180
+                 - (bu.lng * 3.1415) / 180)) * 6370.996
+                 ), 2) &lt;= 1
+          and  bu.role_id like concat('%','1727864411451359233','%')
+          and bu.is_deleted = 0 and bu.status = 2 limit 1
+    </select>
+
+
 </mapper>

--
Gitblit v1.9.3