PermissionMapper.xml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  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. <mapper namespace="com.bz.smart_city.dao.PermissionMapper">
  4. <!--auto generated Code-->
  5. <resultMap id="BaseResultMap" type="com.bz.smart_city.entity.Permission">
  6. <result column="id" property="id" jdbcType="INTEGER"/>
  7. <result column="parent_id" property="parentId" jdbcType="INTEGER"/>
  8. <result column="name" property="name" jdbcType="VARCHAR"/>
  9. <result column="permission" property="permission" jdbcType="VARCHAR"/>
  10. <result column="icon" property="icon" jdbcType="VARCHAR"/>
  11. <result column="path" property="path" jdbcType="VARCHAR"/>
  12. <result column="sort" property="sort" jdbcType="INTEGER"/>
  13. <result column="is_menu" property="isMenu" jdbcType="INTEGER"/>
  14. <result column="status" property="status" jdbcType="INTEGER"/>
  15. <result column="is_super_admin_menu" property="isSuperAdminMenu" jdbcType="TINYINT"/>
  16. <result column="is_site_menu" property="isSiteMenu" jdbcType="TINYINT"/>
  17. <result column="create_date" property="createDate" jdbcType="TIMESTAMP"/>
  18. <result column="create_by" property="createBy" jdbcType="VARCHAR"/>
  19. <result column="update_date" property="updateDate" jdbcType="TIMESTAMP"/>
  20. <result column="update_by" property="updateBy" jdbcType="VARCHAR"/>
  21. <result column="sys_id" property="sysId" jdbcType="INTEGER"/>
  22. <result column="alias" property="alias" jdbcType="VARCHAR"/>
  23. <result column="is_site_menu" property="isBillingMenu" jdbcType="INTEGER"/>
  24. </resultMap>
  25. <!--auto generated Code-->
  26. <sql id="Base_Column_List">
  27. id,
  28. parent_id,
  29. name,
  30. permission,
  31. icon,
  32. path,
  33. sort,
  34. is_menu,
  35. status,
  36. is_super_admin_menu,
  37. is_site_menu,
  38. create_date,
  39. create_by,
  40. update_date,
  41. update_by,
  42. sys_id,
  43. alias,
  44. is_billing_menu
  45. </sql>
  46. <!--auto generated Code-->
  47. <insert id="insert" useGeneratedKeys="true" keyProperty="permission.id">
  48. INSERT INTO sc_permission (
  49. id,
  50. parent_id,
  51. name,
  52. permission,
  53. icon,
  54. path,
  55. sort,
  56. is_menu,
  57. status,
  58. is_super_admin_menu,
  59. is_site_menu,
  60. create_date,
  61. create_by,
  62. update_date,
  63. update_by,
  64. sys_id,
  65. alias,
  66. is_billing_menu
  67. ) VALUES (
  68. #{permission.id,jdbcType=INTEGER},
  69. #{permission.parentId,jdbcType=INTEGER},
  70. #{permission.name,jdbcType=VARCHAR},
  71. #{permission.permission,jdbcType=VARCHAR},
  72. #{permission.icon,jdbcType=VARCHAR},
  73. #{permission.path,jdbcType=VARCHAR},
  74. #{permission.sort,jdbcType=INTEGER},
  75. #{permission.isMenu,jdbcType=INTEGER},
  76. #{permission.status,jdbcType=INTEGER},
  77. #{permission.isSuperAdminMenu,jdbcType=TINYINT},
  78. #{permission.isSiteMenu,jdbcType=TINYINT},
  79. #{permission.createDate,jdbcType=TIMESTAMP},
  80. #{permission.createBy,jdbcType=VARCHAR},
  81. #{permission.updateDate,jdbcType=TIMESTAMP},
  82. #{permission.updateBy,jdbcType=VARCHAR},
  83. #{permission.sysId,jdbcType=INTEGER},
  84. #{permission.alias,jdbcType=VARCHAR},
  85. #{permission.isBillingMenu,jdbcType=INTEGER}
  86. )
  87. </insert>
  88. <!--auto generated Code-->
  89. <insert id="insertSelective" useGeneratedKeys="true" keyProperty="permission.id">
  90. INSERT INTO sc_permission
  91. <trim prefix="(" suffix=")" suffixOverrides=",">
  92. <if test="permission.id!=null"> id,</if>
  93. <if test="permission.parentId!=null"> parent_id,</if>
  94. <if test="permission.name!=null"> name,</if>
  95. <if test="permission.permission!=null"> permission,</if>
  96. <if test="permission.icon!=null"> icon,</if>
  97. <if test="permission.path!=null"> path,</if>
  98. <if test="permission.sort!=null"> sort,</if>
  99. <if test="permission.isMenu!=null"> is_menu,</if>
  100. <if test="permission.status!=null"> status,</if>
  101. <if test="permission.isSuperAdminMenu!=null"> is_super_admin_menu,</if>
  102. <if test="permission.isSiteMenu!=null"> is_site_menu,</if>
  103. <if test="permission.createDate!=null"> create_date,</if>
  104. <if test="permission.createBy!=null"> create_by,</if>
  105. <if test="permission.updateDate!=null"> update_date,</if>
  106. <if test="permission.updateBy!=null"> update_by,</if>
  107. <if test="permission.sysId!=null"> sys_id,</if>
  108. <if test="permission.alias!=null"> alias,</if>
  109. <if test="permission.isBillingMenu!=null"> is_billing_menu</if>
  110. </trim>
  111. VALUES
  112. <trim prefix="(" suffix=")" suffixOverrides=",">
  113. <if test="permission.id!=null"> #{permission.id,jdbcType=INTEGER},</if>
  114. <if test="permission.parentId!=null"> #{permission.parentId,jdbcType=INTEGER},</if>
  115. <if test="permission.name!=null"> #{permission.name,jdbcType=VARCHAR},</if>
  116. <if test="permission.permission!=null"> #{permission.permission,jdbcType=VARCHAR},</if>
  117. <if test="permission.icon!=null"> #{permission.icon,jdbcType=VARCHAR},</if>
  118. <if test="permission.path!=null"> #{permission.path,jdbcType=VARCHAR},</if>
  119. <if test="permission.sort!=null"> #{permission.sort,jdbcType=INTEGER},</if>
  120. <if test="permission.isMenu!=null"> #{permission.isMenu,jdbcType=INTEGER},</if>
  121. <if test="permission.status!=null"> #{permission.status,jdbcType=INTEGER},</if>
  122. <if test="permission.isSuperAdminMenu!=null"> #{permission.isSuperAdminMenu,jdbcType=TINYINT},</if>
  123. <if test="permission.isSiteMenu!=null"> #{permission.isSiteMenu,jdbcType=TINYINT},</if>
  124. <if test="permission.createDate!=null"> #{permission.createDate,jdbcType=TIMESTAMP},</if>
  125. <if test="permission.createBy!=null"> #{permission.createBy,jdbcType=VARCHAR},</if>
  126. <if test="permission.updateDate!=null"> #{permission.updateDate,jdbcType=TIMESTAMP},</if>
  127. <if test="permission.updateBy!=null"> #{permission.updateBy,jdbcType=VARCHAR},</if>
  128. <if test="permission.sysId!=null"> #{permission.sysId,jdbcType=INTEGER},</if>
  129. <if test="permission.alias!=null"> #{permission.alias,jdbcType=VARCHAR},</if>
  130. <if test="permission.isBillingMenu!=null"> #{permission.isBillingMenu,jdbcType=INTEGER}</if>
  131. </trim>
  132. </insert>
  133. <!--auto generated Code-->
  134. <insert id="insertList">
  135. INSERT INTO sc_permission(
  136. id,
  137. parent_id,
  138. name,
  139. permission,
  140. icon,
  141. path,
  142. sort,
  143. is_menu,
  144. status,
  145. is_super_admin_menu,
  146. is_site_menu,
  147. create_date,
  148. create_by,
  149. update_date,
  150. update_by,
  151. sys_id,
  152. alias,
  153. is_billing_menu
  154. )VALUES
  155. <foreach collection="permissions" item="permission" index="index" separator=",">
  156. (
  157. #{permission.id,jdbcType=INTEGER},
  158. #{permission.parentId,jdbcType=INTEGER},
  159. #{permission.name,jdbcType=VARCHAR},
  160. #{permission.permission,jdbcType=VARCHAR},
  161. #{permission.icon,jdbcType=VARCHAR},
  162. #{permission.path,jdbcType=VARCHAR},
  163. #{permission.sort,jdbcType=INTEGER},
  164. #{permission.isMenu,jdbcType=INTEGER},
  165. #{permission.status,jdbcType=INTEGER},
  166. #{permission.isSuperAdminMenu,jdbcType=TINYINT},
  167. #{permission.isSiteMenu,jdbcType=TINYINT},
  168. #{permission.createDate,jdbcType=TIMESTAMP},
  169. #{permission.createBy,jdbcType=VARCHAR},
  170. #{permission.updateDate,jdbcType=TIMESTAMP},
  171. #{permission.updateBy,jdbcType=VARCHAR},
  172. #{permission.sysId,jdbcType=INTEGER},
  173. #{permission.alias,jdbcType=VARCHAR},
  174. #{permission.isBillingMenu,jdbcType=INTEGER}
  175. )
  176. </foreach>
  177. </insert>
  178. <!--auto generated Code-->
  179. <update id="updateByPrimaryKeySelective">
  180. UPDATE sc_permission
  181. <set>
  182. <if test="permission.id != null"> id = #{permission.id,jdbcType=INTEGER},</if>
  183. <if test="permission.parentId != null"> parent_id = #{permission.parentId,jdbcType=INTEGER},</if>
  184. <if test="permission.name != null"> name = #{permission.name,jdbcType=VARCHAR},</if>
  185. <if test="permission.permission != null"> permission = #{permission.permission,jdbcType=VARCHAR},</if>
  186. <if test="permission.icon != null"> icon = #{permission.icon,jdbcType=VARCHAR},</if>
  187. <if test="permission.path != null"> path = #{permission.path,jdbcType=VARCHAR},</if>
  188. <if test="permission.sort != null"> sort = #{permission.sort,jdbcType=INTEGER},</if>
  189. <if test="permission.isMenu != null"> is_menu = #{permission.isMenu,jdbcType=INTEGER},</if>
  190. <if test="permission.status != null"> status = #{permission.status,jdbcType=INTEGER},</if>
  191. <if test="permission.isSuperAdminMenu != null"> is_super_admin_menu = #{permission.isSuperAdminMenu,jdbcType=TINYINT},</if>
  192. <if test="permission.isSiteMenu != null"> is_site_menu = #{permission.isSiteMenu,jdbcType=TINYINT},</if>
  193. <if test="permission.createDate != null"> create_date = #{permission.createDate,jdbcType=TIMESTAMP},</if>
  194. <if test="permission.createBy != null"> create_by = #{permission.createBy,jdbcType=VARCHAR},</if>
  195. <if test="permission.updateDate != null"> update_date = #{permission.updateDate,jdbcType=TIMESTAMP},</if>
  196. <if test="permission.updateBy != null"> update_by = #{permission.updateBy,jdbcType=VARCHAR},</if>
  197. <if test="permission.sysId != null"> sys_id = #{permission.sysId,jdbcType=INTEGER},</if>
  198. <if test="permission.alias != null"> alias = #{permission.alias,jdbcType=VARCHAR},</if>
  199. <if test="permission.isBillingMenu != null"> is_billing_menu = #{permission.isBillingMenu,jdbcType=INTEGER}</if>
  200. </set>
  201. WHERE id = #{permission.id,jdbcType=INTEGER}
  202. </update>
  203. <select id="getAllMenu" resultType="com.bz.smart_city.entity.Permission">
  204. select p.* from sc_permission p left join sc_role_permission rp on p.`id`=rp.`pid` left join sc_role r on rp.`rid`=r.`id` WHERE p.`status`=1 and rp.status = 1 and r.status = 1 order by p.`id` desc
  205. </select>
  206. <select id="getMenuByUserId" resultType="com.bz.smart_city.entity.Permission">
  207. SELECT distinct sp.* FROM sc_role_permission srp
  208. RIGHT JOIN sc_permission sp ON sp.id=srp.pid
  209. where srp.rid in (
  210. SELECT sur.rid FROM sc_user_role sur
  211. LEFT JOIN sc_user su ON (su.id = sur.uid and su.status=1)
  212. LEFT JOIN sc_role sr ON(sr.id = sur.rid and sr.status = 1)
  213. WHERE sur.uid = #{userId} and sur.status=1 <if test="siteId != null"> and sr.site_id = #{siteId} </if>
  214. ) AND is_menu = 1 and srp.status = 1 and sp.status = 1 order by parent_id,sort asc
  215. </select>
  216. <select id="getMenuBySuperAdmin" resultType="com.bz.smart_city.entity.Permission">
  217. select sp.* from sc_permission sp
  218. where sp.is_menu=1 and sp.status=1 and sp.is_super_admin_menu=1 order by sp.parent_id,sp.sort asc
  219. </select>
  220. <select id="getElementByUserId" resultType="com.bz.smart_city.entity.Permission">
  221. SELECT sp.* FROM sc_role_permission srp RIGHT JOIN sc_permission sp ON sp.id=srp.pid where srp.rid in (
  222. SELECT sur.rid FROM sc_user_role sur
  223. LEFT JOIN sc_role sr ON (sr.id = sur.rid and sr.status=1)
  224. WHERE sur.uid = #{userId} and sur.status=1 <if test="siteId != null"> and sr.site_id = #{siteId} </if>
  225. ) AND is_menu = 0 and srp.status = 1 and sp.status = 1 order by sort asc
  226. </select>
  227. <select id="getAllPermission" resultType="com.bz.smart_city.entity.Permission">
  228. select * from (
  229. select <include refid="Base_Column_List"/> from sc_permission
  230. where status = 1
  231. <if test="isSuperAdminMenu != null"> and is_super_admin_menu = 1</if>
  232. <if test="isSiteMenu != null"> and is_site_menu = 1</if>
  233. <if test="sysIdList != null and sysIdList.size()>0">
  234. and sys_id in <foreach collection="sysIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
  235. </if>
  236. union
  237. select <include refid="Base_Column_List"/> from sc_permission
  238. where status = 1 and sys_id is null
  239. <if test="isSuperAdminMenu != null"> and is_super_admin_menu = 1</if>
  240. <if test="isSiteMenu != null"> and is_site_menu = 1</if>
  241. ) a
  242. order by parent_id,sort asc
  243. </select>
  244. <select id="getAllPermissionV2" resultType="com.bz.smart_city.entity.Permission">
  245. select <include refid="Base_Column_List"/> from sc_permission
  246. where status = 1
  247. <if test="isSuperAdminMenu != null"> and is_super_admin_menu = #{isSuperAdminMenu}</if>
  248. <if test="isSiteMenu != null"> and is_site_menu = #{isSiteMenu}</if>
  249. <if test="isBillingMenu != null"> and is_billing_menu = #{isBillingMenu}</if>
  250. order by parent_id,sort asc
  251. </select>
  252. <select id="getRolePermissionByRoleId" resultType="com.bz.smart_city.entity.Permission">
  253. SELECT sp.* FROM sc_role_permission srp RIGHT JOIN sc_permission sp ON sp.id=srp.pid
  254. where srp.rid = #{roleId} AND sp.status = 1 and srp.status = 1 order by id asc
  255. </select>
  256. <update id="delById">
  257. update sc_permission set status = 0,update_date=NOW(),update_by=#{updateBy} WHERE id = #{id}
  258. </update>
  259. <select id="findByAdminType" resultType="com.bz.smart_city.entity.Permission">
  260. select <include refid="Base_Column_List"/> from sc_permission
  261. where 1 = 1 and status=1
  262. <if test="type != null and type == 1"> and is_super_admin_menu=1</if>
  263. <if test="type != null and type == 2"> and is_site_menu=1 and sys_id is null</if>
  264. union
  265. select <include refid="Base_Column_List"/> from sc_permission
  266. where 1 = 1 and status=1
  267. <if test="type != null and type == 1"> and is_super_admin_menu=1</if>
  268. <if test="type != null and type == 2"> and is_site_menu=1
  269. <if test="sysIds != null and sysIds.size()>0">
  270. and sys_id in <foreach collection="sysIds" item="item" open="(" separator="," close=")">#{item}</foreach>
  271. </if>
  272. </if>
  273. </select>
  274. <select id="getPermissionBySuperAdmin" resultType="com.bz.smart_city.entity.Permission">
  275. select <include refid="Base_Column_List"/> from sc_permission where is_menu=0 and status=1 and is_super_admin_menu=1
  276. </select>
  277. <select id="getPermissionBySiteAdmin" resultType="com.bz.smart_city.entity.Permission">
  278. SELECT distinct sp.* FROM sc_site_permission ssp
  279. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  280. WHERE ssp.`status` = 1 and sp.`status` = 1
  281. <if test="isMenu != null"> and is_menu = #{isMenu}</if>
  282. <if test="isSiteMenu != null"> and is_site_menu = #{isSiteMenu}</if>
  283. <if test="isBillingMenu != null "> and is_billing_menu = #{isBillingMenu}</if>
  284. and ssp.site_id = #{siteId}
  285. order by sp.parent_id,sp.sort asc
  286. </select>
  287. <select id="getPermissionBySiteAdminV2" resultType="com.bz.smart_city.entity.Permission">
  288. SELECT distinct sp.* FROM sc_site_permission ssp
  289. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  290. WHERE ssp.`status` = 1 and sp.`status` = 1 and is_menu = 0 and is_site_menu=1 and ssp.site_id = #{siteId}
  291. order by sp.parent_id,sp.sort asc
  292. </select>
  293. <select id="getPermissionBySiteAdminV3" resultType="com.bz.smart_city.entity.Permission">
  294. SELECT distinct sp.* FROM sc_site_permission ssp
  295. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  296. WHERE ssp.`status` = 1 and sp.`status` = 1 and is_menu = 0 and is_billing_menu=#{isBillingMenu} and ssp.site_id = #{siteId}
  297. order by sp.parent_id,sp.sort asc
  298. </select>
  299. <select id="findBySortUnique" resultType="int">
  300. select count(1) from sc_permission
  301. where status = 1 and parent_id = #{parentId} and sort = #{sort}
  302. <if test="id != null"> and id != #{id}</if>
  303. </select>
  304. <select id="findByNameUnique" resultType="int">
  305. select count(1) from sc_permission
  306. where status = 1 and parent_id = #{parentId} and name = #{name}
  307. <if test="id != null"> and id != #{id}</if>
  308. </select>
  309. <select id="findById" resultMap="BaseResultMap">
  310. SELECT <include refid="Base_Column_List"/> FROM sc_permission WHERE status = 1 and id = #{id}
  311. </select>
  312. <select id="findChannelMenu" resultMap="BaseResultMap">
  313. SELECT <include refid="Base_Column_List"/> FROM sc_permission WHERE status = 1 and sys_id = #{sysId} and parent_id = 1
  314. </select>
  315. <update id="delBySysId">
  316. UPDATE sc_permission SET status = 0,update_date=NOW(),update_by=#{updateBy} WHERE status = 1 AND sys_id = #{sysId}
  317. </update>
  318. <select id="getMenuBySiteAdmin" resultMap="BaseResultMap">
  319. SELECT distinct sp.* FROM sc_site_permission ssp
  320. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  321. WHERE ssp.`status` = 1 and sp.`status` = 1 and is_menu = 1 and is_site_menu=1 and ssp.site_id = #{siteId}
  322. order by sp.parent_id,sp.sort asc
  323. </select>
  324. <select id="getMenuBySiteAdminV2" resultMap="BaseResultMap">
  325. SELECT distinct sp.* FROM sc_site_permission ssp
  326. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  327. WHERE ssp.`status` = 1 and sp.`status` = 1 and is_menu = 1 and is_billing_menu=#{isBillingMenu} and ssp.site_id = #{siteId}
  328. order by sp.parent_id,sp.sort asc
  329. </select>
  330. <select id="getAllPermissionBySiteId" resultMap="BaseResultMap">
  331. select * from (
  332. select <include refid="Base_Column_List"/> from sc_permission
  333. where status=1 and is_site_menu=1 and sys_id is null
  334. union
  335. select <include refid="Base_Column_List"/> from sc_permission
  336. where status=1 and is_site_menu=1 and sys_id in(
  337. select channel_id from sc_site_channel where status = 1 and site_id = #{siteId}
  338. )
  339. ) a order by a.parent_id,sort asc
  340. </select>
  341. <select id="getAllPermissionBySiteIdV2" resultMap="BaseResultMap">
  342. SELECT distinct sp.* FROM sc_site_permission ssp
  343. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  344. WHERE ssp.`status` = 1 and sp.`status` = 1 and is_site_menu=1 and ssp.site_id = #{siteId}
  345. order by sp.parent_id,sp.sort asc
  346. </select>
  347. <select id="getAllPermissionBySiteIdV3" resultMap="BaseResultMap">
  348. SELECT distinct sp.* FROM sc_site_permission ssp
  349. RIGHT JOIN sc_permission sp ON sp.id=ssp.permission_id
  350. WHERE ssp.`status` = 1 and sp.`status` = 1 and is_billing_menu=#{isBillingMenu} and ssp.site_id = #{siteId}
  351. order by sp.parent_id,sp.sort asc
  352. </select>
  353. </mapper>