133 lines
4.8 KiB
XML
133 lines
4.8 KiB
XML
<?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="io.dataease.ext.ExtPanelShareMapper">
|
|
|
|
<resultMap id="treeNodeMap" type="io.dataease.dto.panel.PanelSharePo">
|
|
<id column="id" property="id" />
|
|
<result column="name" property="name" />
|
|
<result column="status" property="status" />
|
|
<result column="creator" property="creator" />
|
|
<result column="user_id" jdbcType="BIGINT" property="userId" />
|
|
</resultMap>
|
|
|
|
<resultMap id="targetMap" type="io.dataease.dto.panel.PanelShareOutDTO">
|
|
<result column="panel_id" property="panelId" />
|
|
<result column="share_id" property="shareId" />
|
|
<result column="type" property="type" />
|
|
<result column="target_Id" property="targetId" />
|
|
<result column="target_Name" property="targetName" />
|
|
<result column="create_time" property="createTime" />
|
|
</resultMap>
|
|
|
|
<insert id="batchInsert" parameterType="io.dataease.plugins.common.base.domain.PanelShare">
|
|
INSERT INTO panel_share (panel_group_id,target_id,granter,create_time,type)
|
|
VALUES
|
|
<foreach collection="shares" item="share" separator=",">
|
|
(#{share.panelGroupId}, #{share.targetId}, #{userName}, #{share.createTime}, #{share.type})
|
|
</foreach>
|
|
</insert>
|
|
|
|
<delete id="batchDelete" parameterType="java.lang.Long" >
|
|
delete from panel_share
|
|
where share_id in
|
|
<foreach collection="shareIds" item="shareId" open="(" separator="," close=")" >
|
|
#{shareId}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<select id="query" resultMap="treeNodeMap">
|
|
select distinct s.panel_group_id as id, u.nick_name as creator, g.name, u.user_id, g.status
|
|
from panel_share s
|
|
left join panel_group g on g.id = s.panel_group_id
|
|
left join sys_user u on u.username = IFNULL(s.granter,g.create_by)
|
|
where
|
|
( s.target_id = #{userId} and s.type = 0 ) or
|
|
( s.target_id = #{deptId} and s.type = 2 ) or
|
|
( s.target_id in
|
|
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
|
|
#{roleId}
|
|
</foreach>
|
|
and s.type = 1 )
|
|
<if test="orderByClause == null">
|
|
order by s.create_time desc
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<select id="queryOut" resultMap="treeNodeMap">
|
|
select distinct s.panel_group_id as id, g.name, g.status
|
|
from panel_share s
|
|
left join panel_group g on g.id = s.panel_group_id
|
|
where ( s.granter is not null and s.granter = #{userName} ) or ( s.granter is null and g.create_by = #{userName} )
|
|
order by s.create_time desc
|
|
|
|
</select>
|
|
|
|
<select id="queryWithResource" parameterType="io.dataease.controller.request.panel.PanelShareSearchRequest" resultMap="io.dataease.plugins.common.base.mapper.PanelShareMapper.BaseResultMap">
|
|
select s.*
|
|
from panel_share s
|
|
left join panel_group g on g.id = s.panel_group_id
|
|
where
|
|
s.panel_group_id = #{resourceId}
|
|
<if test="type != null">
|
|
and s.type = #{type}
|
|
</if>
|
|
and (( s.granter is not null and s.granter = #{currentUserName} ) or ( s.granter is null and g.create_by = #{currentUserName} ))
|
|
order by s.create_time desc
|
|
|
|
|
|
</select>
|
|
|
|
<select id="queryTargets" resultMap="targetMap">
|
|
select
|
|
s.share_id,
|
|
s.panel_group_id as panel_id,
|
|
s.type,
|
|
s.target_id,
|
|
s.create_time,
|
|
(
|
|
CASE s.type
|
|
WHEN 0 THEN (select nick_name from sys_user where user_id = s.target_id)
|
|
WHEN 1 THEN (select name from sys_role where role_id = s.target_id)
|
|
WHEN 2 THEN (select name from sys_dept where dept_id = s.target_id)
|
|
END
|
|
) as target_name
|
|
from panel_share s
|
|
where s.panel_group_id = #{panelId}
|
|
and s.granter = #{userName}
|
|
|
|
|
|
</select>
|
|
|
|
<select id="queryUserIdWithRoleIds" resultType="java.lang.Long" >
|
|
select user_id
|
|
from sys_users_roles
|
|
where role_id in
|
|
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
|
|
#{roleId}
|
|
</foreach>
|
|
</select>
|
|
|
|
|
|
<select id="queryUserIdWithDeptIds" resultType="java.lang.Long" >
|
|
select user_id
|
|
from sys_user
|
|
where dept_id in
|
|
<foreach collection="deptIds" item="deptId" open='(' separator=',' close=')'>
|
|
#{deptId}
|
|
</foreach>
|
|
</select>
|
|
|
|
<delete id="removeShares" parameterType="io.dataease.controller.request.panel.PanelShareRemoveRequest">
|
|
delete from panel_share
|
|
where panel_group_id = #{request.panelId}
|
|
<if test="request.shareId != null">
|
|
and share_id = #{request.shareId}
|
|
</if>
|
|
</delete>
|
|
|
|
|
|
|
|
|
|
</mapper>
|