| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <?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="org.jeecg.modules.system.mapper.SysPermissionMapper">	<resultMap id="TreeModel" type="org.jeecg.modules.system.model.TreeModel" >		<result column="id" property="key" jdbcType="VARCHAR"/>		<result column="name" property="title" jdbcType="VARCHAR"/>		<result column="icon" property="icon" jdbcType="VARCHAR"/>		<result column="parent_id" property="parentId" jdbcType="VARCHAR"/>		<result column="leaf_flag" property="isLeaf" jdbcType="INTEGER"/>	</resultMap>		<!-- 通过<resultMap>映射实体类属性名和表的字段名对应关系 -->	<resultMap id="SysPermission" type="org.jeecg.modules.system.entity.SysPermission">	   <!-- result属性映射非匹配字段 -->	    <result column="is_route" property="route"/>	    <result column="keep_alive" property="keepAlive"/>	    <result column="is_leaf" property="leaf"/>	</resultMap>			<select id="queryListByParentId" parameterType="Object"  resultMap="TreeModel">		   SELECT                      id                   ,parent_id                   ,name                   ,icon                   ,leaf_flag		   FROM   sys_permission		   WHERE 1=1		    <choose>		   		<when test="parentId != null and parentId != ''">		   			AND parent_id =  #{parentId,jdbcType=VARCHAR}		   		</when>		   		<otherwise>		   			AND parent_id is null		   		</otherwise>		    </choose>	</select>		<!-- 获取登录用户拥有的权限 -->	<select id="queryByUser" parameterType="Object"  resultMap="SysPermission">		   SELECT * FROM (			   SELECT p.*			   FROM  sys_permission p			   WHERE (exists(						select a.id from sys_role_permission a						join sys_role b on a.role_id = b.id						join sys_user_role c on c.role_id = b.id						join sys_user d on d.id = c.user_id						where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}					)					or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1)					or p.url = '/online')			   and p.del_flag = 0			<!--update begin Author:lvdandan  Date:20200213 for:加入部门权限 -->			   UNION			   SELECT p.*			   FROM  sys_permission p			   WHERE exists(					select a.id from sys_depart_role_permission a					join sys_depart_role b on a.role_id = b.id					join sys_depart_role_user c on c.drole_id = b.id					join sys_user d on d.id = c.user_id					where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}			   )			   and p.del_flag = 0			<!--update end Author:lvdandan  Date:20200213 for:加入部门权限 -->		   ) h order by h.sort_no ASC	</select>	<!-- 根据用户账号查询菜单权限 -->	<select id="queryCountByUsername" parameterType="Object" resultType="int">		select sum(cnt) from (		  select count(*) as cnt			from sys_role_permission a			join sys_permission b on a.permission_id = b.id			join sys_role c on a.role_id = c.id			join sys_user_role d on d.role_id = c.id			join sys_user e on d.user_id = e.id			where e.username = #{username}			<if test="permission.id !=null and permission.id != ''">				and b.id =  #{permission.id}			</if>			<if test="permission.url !=null and permission.url != ''">				and b.url =  #{permission.url}			</if>		union all		  select count(*) as cnt			from sys_permission z		    join sys_depart_role_permission y on z.id = y.permission_id			join sys_depart_role x on y.role_id = x.id			join sys_depart_role_user w on w.drole_id = x.id			join sys_user v on w.user_id = v.id			where v.username = #{username}			<if test="permission.id !=null and permission.id != ''">				and z.id =  #{permission.id}			</if>			<if test="permission.url !=null and permission.url != ''">				and z.url =  #{permission.url}			</if>		) temp	</select>	</mapper>
 |