linwe
2024-09-03 764d883b5ea3bdc06abbec548b6df0511e567978
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -50,18 +50,18 @@
        </if>
        <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>
            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 id
        ORDER BY create_time desc
    </select>
    <select id="getUser" resultMap="userResultMap">
@@ -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,50 @@
            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"
                    ofType="org.springblade.modules.system.vo.DeptDetailVO" autoMapping="true">
            <id property="id" column="cid"/>
            <id property="level" column="region_level"/>
        </collection>
    </resultMap>
    <!--用户详情接口-->
    <select id="getUserInfo" resultType="org.springblade.modules.system.vo.UserDetailVO">
        SELECT * FROM blade_user where is_deleted = 0
        and id = #{userId}
    <select id="getUserInfo" resultMap="selectUserDetailMap">
        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.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 blade_region br on br.code = bd.region_code
        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>
@@ -144,6 +204,116 @@
        id = #{id}
    </select>
    <select id="getUserInfoByDistrictId"
            resultType="org.flowable.idm.engine.impl.persistence.entity.UserEntity">
        SELECT
        bu.id,
        bu.tenant_id,
        bu.code,
        bu.user_type,
        bu.account,
        bu.name,
        bu.real_name,
        bu.avatar,
        bu.email,
        bu.phone,
        bu.birthday
        FROM
        blade_user bu
        LEFT JOIN jczz_household jh ON bu.id = jh.associated_user_id
        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 != null and districtId != ''">
                and jd.id = #{districtId}
                and bu.is_deleted = 0
            </if>
            <if test="building != null and building != ''">
                and jhe.building=#{building}
            </if>
        </where>
    </select>
    <!--查询没有匹配的数据-->
    <select id="getNotBindUserDept" resultType="org.springblade.modules.system.entity.User">
        select bu.* from blade_user bu
        left join blade_user_dept bud on bu.id = bud.user_id
        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.role_id = #{roleId}
            and bu.dept_id IN (
            SELECT
            id
            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 or FIND_IN_SET( id, @id ) > 0)
            AND @id := CONCAT( @id, ',', id )
            )
    </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>