| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkAreaMapper">
- <sql id="Base_Column_List">
- link.id as id,
- u.id as "sysUser.id",
- u.name as "sysUser.name",
- t2.id AS "sysUser.deptId",
- t2.`name` AS "sysUser.deptName",
- area.id as "area.id",
- area.area_code as "area.areaCode",
- area.area_cname AS "area.areaCname",
- CONCAT(IFNULL(ppArea.area_cname,"") , IFNULL(pArea.area_cname,""),IFNULL(area.area_cname,"")) as "area.allName"
- </sql>
- <select id="queryPage" resultType="com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto">
- SELECT
- <include refid="Base_Column_List"/>
- FROM
- sys_user_link_area link
- LEFT JOIN sys_user u ON link.user_id = u.id
- LEFT JOIN sys_dept t2 ON u.dept_id = t2.id
- LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
- LEFT JOIN sys_area area ON link.area_code = area.area_code
- LEFT JOIN sys_area pArea ON pArea.area_code = area.upper_code
- LEFT JOIN sys_area ppArea ON ppArea.area_code = pArea.upper_code
- <where>
- <if test="vo.userId != null and vo.userId != ''">
- and link.user_id = #{vo.userId}
- </if>
- <if test="vo.userName != null and vo.userName != ''">
- and u.name like CONCAT('%', #{vo.userName}, '%')
- </if>
- <if test="vo.areaCode != null and vo.areaCode != ''">
- and EXISTS (
- SELECT
- area_code
- FROM
- ( SELECT * FROM sys_area area WHERE upper_code = #{vo.areaCode} OR area_code = #{vo.areaCode} ) areaAll
- WHERE
- areaAll.area_code = link.area_code
- )
- </if>
- </where>
- order by area.area_code
- </select>
- <delete id="deleteByUserId">
- delete from sys_user_link_area
- where user_id=#{userId}
- </delete>
- <select id="findAreaListByUserId" resultType="com.ydtech.modules.admin.model.SysArea">
- SELECT
- area.id as id,
- area.area_code as areaCode,
- area.area_cname as areaCname,
- area.upper_code as upperCode
- FROM
- sys_user_link_area link
- LEFT JOIN sys_area area ON link.area_code = area.area_code
- <where>
- <if test="userId != null and userId != ''">
- and link.user_id = #{userId}
- </if>
- </where>
- order by area.area_code
- </select>
- <select id="findAreaIdsByAgentUserId" resultType="String">
- SELECT
- DISTINCT id
- FROM
- (
- SELECT
- su.id,
- CASE
- WHEN LENGTH( su.dept_id )> 9 THEN
- SUBSTRING( su.dept_id, 3, 6 )+ ''
- WHEN LENGTH( su.dept_id )> 7 THEN
- SUBSTRING( su.dept_id, 3, 4 )+ ''
- WHEN LENGTH( su.dept_id )> 5 THEN
- SUBSTRING( su.dept_id, 3, 2 )+ '' ELSE '00'
- END AS dept_id
- FROM
- sys_user su
- LEFT JOIN sys_dept sd ON su.dept_id = sd.id
- AND sd.del_flag = '0'
- WHERE
- sd.management_source = 2
- ) b
- <where>
- <if test="areaCodes != null and areaCodes.size>0" >
- AND (
- <foreach collection="areaCodes" item="item" open=" (" separator="or" close=") ">
- b.dept_id LIKE CONCAT(#{item}, '%')
- </foreach>
- )
- </if>
- </where>
- </select>
- <select id="findAreaCodeByUserId" resultType="String">
- SELECT DISTINCT
- b.area_code
- FROM
- (
- SELECT
- ( TRIM( TRAILING '0' FROM link.area_code ) ) AS area_code
- FROM
- sys_user_link_area link
- WHERE
- link.user_id = #{userId}
- ORDER BY
- link.area_code
- ) b
- </select>
- </mapper>
|