adminChildPermissionsMapper.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <!-- 命名,每一个映射对象不一样
  4. namespace:必须与对应的接口全类名一致
  5. -->
  6. <mapper namespace="com.iamberry.wechat.service.mapper.AdminChildPermissionsMapper">
  7. <!-- 一级菜单所有字段,并可以映射实体类 -->
  8. <sql id="permissionsField">
  9. p_id permissionsId, p_name permissionsName, p_url permissionsUrl, p_desc permissionsDesc, p_img permissionsImg
  10. </sql>
  11. <!-- 二级菜单所有字段,并可以映射实体类 -->
  12. <sql id="ermissionField">
  13. e_id ermissionsId, e_name ermissionsName, e_url ermissionsUrl,
  14. e_desc ermissionsDesc, p_id permissionId, e_status ermissionsStatus, e_img ermissionsImg
  15. </sql>
  16. <!-- 二级管理员拥有的权限字段,并映射实体类 -->
  17. <sql id="haveFidle">
  18. a_id haveId, permissions_id permissionId, adminChild_id adminChildId
  19. </sql>
  20. <!-- 根据二级管理员ID,获取所有的权限URL信息 -->
  21. <select id="selectAdminChildHavePermissionById" parameterType="int" resultType="AdminChildPermissionErmissions">
  22. (SELECT E_URL ermissionsUrl FROM TB_ADMIN_MENU_ERMISSIONS WHERE E_ID IN (SELECT PERMISSIONS_ID FROM TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS WHERE ADMINCHILD_ID = #{id}) ORDER BY E_ID DESC)
  23. UNION
  24. (SELECT A_URL ermissionsUrl FROM TB_ADMIN_MENU_PERMISSION_AUXILIARY WHERE E_ID IN ((SELECT E_ID ERMISSIONSURL FROM TB_ADMIN_MENU_ERMISSIONS WHERE E_ID IN (SELECT PERMISSIONS_ID FROM TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS WHERE ADMINCHILD_ID = #{id}))) ORDER BY A_ID DESC)
  25. </select>
  26. <!-- 根据二级管理员ID,获取所有的权限信息(权限实体类) -->
  27. <select id="selectAdminChildPermissionEntityById" parameterType="int" resultType="AdminChildPermissionErmissions">
  28. (SELECT
  29. <include refid="ermissionField"/>
  30. FROM
  31. TB_ADMIN_MENU_ERMISSIONS
  32. WHERE
  33. E_ID
  34. IN
  35. (
  36. SELECT
  37. PERMISSIONS_ID
  38. FROM
  39. TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS
  40. WHERE
  41. ADMINCHILD_ID = #{id}
  42. )
  43. )
  44. ORDER BY E_ID DESC
  45. </select>
  46. <!-- 一级菜单映射map -->
  47. <resultMap type="AdminChildPermissions" id="MenuPermissionMap">
  48. <id column="p_id" property="permissionsId"/>
  49. <result column="p_name" property="permissionsName"/>
  50. <result column="p_url" property="permissionsUrl"/>
  51. <result column="p_desc" property="permissionsDesc"/>
  52. <result column="p_img" property="permissionsImg"/>
  53. <collection property="menus" column="p_id" javaType="ArrayList" select="selectErmissionsByAdminChild"/>
  54. </resultMap>
  55. <!-- 获取一级菜单的信息 -->
  56. <select id="selectAllPermission" resultType="AdminChildPermissions">
  57. SELECT
  58. <include refid="permissionsField"/>
  59. FROM
  60. TB_ADMIN_MENU_PERMISSIONS
  61. ORDER BY P_ID DESC
  62. </select>
  63. <!-- 超级管理员的菜单信息 -->
  64. <select id="selectAdminMenuInfoByAdminId" parameterType="int" resultMap="MenuPermissionMap">
  65. SELECT
  66. *
  67. FROM
  68. TB_ADMIN_MENU_PERMISSIONS
  69. ORDER BY P_ID DESC
  70. </select>
  71. <!-- 根据一级菜单ID,获取所属的二级菜单信息 -->
  72. <select id="selectErmissionsByAdminChild" parameterType="int" resultType="AdminChildPermissionErmissions">
  73. SELECT <include refid="ermissionField"/> FROM TB_ADMIN_MENU_ERMISSIONS WHERE P_ID = #{id} AND E_STATUS = 0
  74. </select>
  75. <!-- 获取二级管理员的权限菜单 -->
  76. <select id="selectAdinChildPermissionByAdminChildId" parameterType="int" resultMap="MenuPermissionMap">
  77. SELECT
  78. *
  79. FROM
  80. TB_ADMIN_MENU_PERMISSIONS
  81. WHERE
  82. P_ID IN (
  83. SELECT
  84. DISTINCT P_ID
  85. FROM
  86. TB_ADMIN_MENU_ERMISSIONS
  87. WHERE
  88. E_ID
  89. IN
  90. (
  91. SELECT
  92. PERMISSIONS_ID
  93. FROM
  94. TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS
  95. WHERE
  96. ADMINCHILD_ID = #{id}
  97. )
  98. )
  99. ORDER BY P_ID DESC
  100. </select>
  101. <!-- 根据二级管理员ID,获取所属的二级管理员权限 -->
  102. <select id="selectPermissionById" parameterType="Integer" resultType="AdminChildHavePermission">
  103. SELECT <include refid="haveFidle"/> FROM TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS WHERE ADMINCHILD_ID = #{id} ORDER BY A_ID DESC
  104. </select>
  105. <!-- 根据二级管理员的ID,新增二级管理员权限 -->
  106. <insert id="insertPermissionById" parameterType="AdminChildHavePermission">
  107. INSERT INTO TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS(a_id,permissions_id,adminChild_id)
  108. VALUES (
  109. #{adminChildHavePermission.haveId},
  110. #{adminChildHavePermission.permissionId},
  111. #{adminChildHavePermission.adminChildId}
  112. )
  113. </insert>
  114. <!-- 根据二级管理员的ID,删除所有二级管理员权限 -->
  115. <delete id="deletePermissionById" parameterType="Integer">
  116. delete FROM TB_ADMIN_ADMINCHILD_HAVE_PERMISSIONS WHERE adminChild_id = #{adminChildId }
  117. </delete>
  118. </mapper>