SysUserLinkAreaMapper.xml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkAreaMapper">
  6. <sql id="Base_Column_List">
  7. link.id as id,
  8. u.id as "sysUser.id",
  9. u.name as "sysUser.name",
  10. t2.id AS "sysUser.deptId",
  11. t2.`name` AS "sysUser.deptName",
  12. area.id as "area.id",
  13. area.area_code as "area.areaCode",
  14. area.area_cname AS "area.areaCname",
  15. CONCAT(IFNULL(ppArea.area_cname,"") , IFNULL(pArea.area_cname,""),IFNULL(area.area_cname,"")) as "area.allName"
  16. </sql>
  17. <select id="queryPage" resultType="com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto">
  18. SELECT
  19. <include refid="Base_Column_List"/>
  20. FROM
  21. sys_user_link_area link
  22. LEFT JOIN sys_user u ON link.user_id = u.id
  23. LEFT JOIN sys_dept t2 ON u.dept_id = t2.id
  24. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  25. LEFT JOIN sys_area area ON link.area_code = area.area_code
  26. LEFT JOIN sys_area pArea ON pArea.area_code = area.upper_code
  27. LEFT JOIN sys_area ppArea ON ppArea.area_code = pArea.upper_code
  28. <where>
  29. <if test="vo.userId != null and vo.userId != ''">
  30. and link.user_id = #{vo.userId}
  31. </if>
  32. <if test="vo.userName != null and vo.userName != ''">
  33. and u.name like CONCAT('%', #{vo.userName}, '%')
  34. </if>
  35. <if test="vo.areaCode != null and vo.areaCode != ''">
  36. and EXISTS (
  37. SELECT
  38. area_code
  39. FROM
  40. ( SELECT * FROM sys_area area WHERE upper_code = #{vo.areaCode} OR area_code = #{vo.areaCode} ) areaAll
  41. WHERE
  42. areaAll.area_code = link.area_code
  43. )
  44. </if>
  45. </where>
  46. order by area.area_code
  47. </select>
  48. <delete id="deleteByUserId">
  49. delete from sys_user_link_area
  50. where user_id=#{userId}
  51. </delete>
  52. <select id="findAreaListByUserId" resultType="com.ydtech.modules.admin.model.SysArea">
  53. SELECT
  54. area.id as id,
  55. area.area_code as areaCode,
  56. area.area_cname as areaCname,
  57. area.upper_code as upperCode
  58. FROM
  59. sys_user_link_area link
  60. LEFT JOIN sys_area area ON link.area_code = area.area_code
  61. <where>
  62. <if test="userId != null and userId != ''">
  63. and link.user_id = #{userId}
  64. </if>
  65. </where>
  66. order by area.area_code
  67. </select>
  68. <select id="findAreaIdsByAgentUserId" resultType="String">
  69. SELECT
  70. DISTINCT id
  71. FROM
  72. (
  73. SELECT
  74. su.id,
  75. CASE
  76. WHEN LENGTH( su.dept_id )> 9 THEN
  77. SUBSTRING( su.dept_id, 3, 6 )+ ''
  78. WHEN LENGTH( su.dept_id )> 7 THEN
  79. SUBSTRING( su.dept_id, 3, 4 )+ ''
  80. WHEN LENGTH( su.dept_id )> 5 THEN
  81. SUBSTRING( su.dept_id, 3, 2 )+ '' ELSE '00'
  82. END AS dept_id
  83. FROM
  84. sys_user su
  85. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  86. AND sd.del_flag = '0'
  87. WHERE
  88. sd.management_source = 2
  89. ) b
  90. <where>
  91. <if test="areaCodes != null and areaCodes.size>0" >
  92. AND (
  93. <foreach collection="areaCodes" item="item" open=" (" separator="or" close=") ">
  94. b.dept_id LIKE CONCAT(#{item}, '%')
  95. </foreach>
  96. )
  97. </if>
  98. </where>
  99. </select>
  100. <select id="findAreaCodeByUserId" resultType="String">
  101. SELECT DISTINCT
  102. b.area_code
  103. FROM
  104. (
  105. SELECT
  106. ( TRIM( TRAILING '0' FROM link.area_code ) ) AS area_code
  107. FROM
  108. sys_user_link_area link
  109. WHERE
  110. link.user_id = #{userId}
  111. ORDER BY
  112. link.area_code
  113. ) b
  114. </select>
  115. </mapper>