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"
SELECT
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
and link.user_id = #{vo.userId}
and u.name like CONCAT('%', #{vo.userName}, '%')
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
)
order by area.area_code
delete from sys_user_link_area
where user_id=#{userId}
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
and link.user_id = #{userId}
order by area.area_code
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
AND (
b.dept_id LIKE CONCAT(#{item}, '%')
)
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