<?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="com.nova.sankuai.infra.mapper.PermissionMapper">
|
|
<resultMap id="PermissionMap" type="com.nova.sankuai.domain.vo.PermissionVo">
|
<id column="id" property="id"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="name" property="name"/>
|
<result column="code" property="code"/>
|
<collection property="children" ofType="com.nova.sankuai.domain.vo.PermissionVo">
|
<id column="pid" property="id"/>
|
<result column="pparentId" property="parentId"/>
|
<result column="pname" property="name"/>
|
<result column="pcode" property="code"/>
|
</collection>
|
</resultMap>
|
|
<select id="getPermissionsByUser" resultType="com.nova.sankuai.domain.entity.Permission">
|
select * from permission p
|
where p.login_flag = 1 or p.id in (
|
select rp.permission_id
|
from role_permission rp
|
where rp.role_id in
|
(
|
select ru.role_id
|
from role_user ru
|
where ru.user_id = #{userId})
|
)
|
</select>
|
|
|
<select id="selectChildren" resultType="java.lang.Long">
|
select id from permission
|
where parent_id in
|
<foreach collection="permissionIds" item="item" index="index" open="(" close=")" separator=",">
|
#{item}
|
</foreach>
|
</select>
|
|
|
<select id="getPermissions" resultMap="PermissionMap">
|
select
|
p1.id as id,
|
p1.parent_id as parentId,
|
p1.name as name,
|
p1.code as code,
|
p2.id as pid,
|
p2.parent_id as pparentId,
|
p2.name as pname,
|
p2.code as pcode
|
from permission p1
|
left join permission p2 on p1.id = p2.parent_id
|
where p1.menu_flag = 1
|
</select>
|
</mapper>
|