273 lines
11 KiB
XML
273 lines
11 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.ExtPanelLinkJumpMapper">
|
|
<resultMap id="BaseResultMapDTO" type="io.dataease.dto.panel.linkJump.PanelLinkJumpDTO"
|
|
extends="io.dataease.plugins.common.base.mapper.PanelLinkJumpMapper.BaseResultMap">
|
|
<collection property="linkJumpInfoArray" ofType="io.dataease.dto.panel.linkJump.PanelLinkJumpInfoDTO"
|
|
column="{id=id,source_view_id=source_view_id}"
|
|
select="getLinkJumpInfo">
|
|
</collection>
|
|
</resultMap>
|
|
|
|
<resultMap id="LinkJumpInfoMap" type="io.dataease.dto.panel.linkJump.PanelLinkJumpInfoDTO"
|
|
extends="io.dataease.plugins.common.base.mapper.PanelLinkJumpInfoMapper.BaseResultMap">
|
|
<result column="source_field_id" jdbcType="VARCHAR" property="sourceFieldId"/>
|
|
<result column="source_field_name" jdbcType="VARCHAR" property="sourceFieldName"/>
|
|
<result column="publicJumpId" jdbcType="VARCHAR" property="publicJumpId"/>
|
|
<collection property="targetViewInfoList"
|
|
ofType="io.dataease.plugins.common.base.domain.PanelLinkJumpTargetViewInfo">
|
|
<result column="target_view_id" jdbcType="VARCHAR" property="targetViewId"/>
|
|
<result column="target_field_id" jdbcType="VARCHAR" property="targetFieldId"/>
|
|
</collection>
|
|
</resultMap>
|
|
|
|
<resultMap id="AllJumpMap" type="io.dataease.dto.panel.linkJump.PanelLinkJumpDTO">
|
|
<result column="sourceInfo" jdbcType="VARCHAR" property="sourceInfo"/>
|
|
<collection property="targetInfoList" ofType="String">
|
|
<result column="targetInfo" jdbcType="VARCHAR"/>
|
|
</collection>
|
|
</resultMap>
|
|
|
|
<select id="getLinkJumpInfo" resultMap="LinkJumpInfoMap">
|
|
SELECT dataset_table_field.id AS 'source_field_id', dataset_table_field.NAME AS 'source_field_name', panel_link_jump_info.id,
|
|
panel_link_jump_info.link_jump_id,
|
|
panel_link_jump_info.link_type,
|
|
panel_link_jump_info.jump_type,
|
|
panel_link_jump_info.target_panel_id,
|
|
panel_link_jump_info.content,
|
|
ifnull(panel_link_mapping.uuid, panel_link_mapping.id) AS publicJumpId,
|
|
ifnull(panel_link_jump_info.checked, 0) AS checked,
|
|
ifnull(panel_link_jump_info.attach_params, 0) AS attach_params,
|
|
panel_link_jump_target_view_info.target_view_id,
|
|
panel_link_jump_target_view_info.target_field_id
|
|
FROM chart_view
|
|
LEFT JOIN dataset_table_field ON chart_view.table_id = dataset_table_field.table_id
|
|
LEFT JOIN panel_link_jump
|
|
ON chart_view.id = panel_link_jump.source_view_id and panel_link_jump.id = #{id}
|
|
LEFT JOIN panel_link_jump_info ON panel_link_jump.id = panel_link_jump_info.link_jump_id
|
|
AND dataset_table_field.id = panel_link_jump_info.source_field_id
|
|
LEFT JOIN panel_link_jump_target_view_info
|
|
ON panel_link_jump_info.id = panel_link_jump_target_view_info.link_jump_info_id
|
|
LEFT JOIN panel_link_mapping on panel_link_jump_info.target_panel_id = panel_link_mapping.resource_id
|
|
WHERE chart_view.id = #{source_view_id}
|
|
ORDER BY CONVERT(dataset_table_field.NAME using gbk)
|
|
</select>
|
|
|
|
<select id="queryWithPanelId" resultMap="BaseResultMapDTO">
|
|
SELECT chart_view.id AS source_view_id,
|
|
panel_link_jump.id,
|
|
#{panelId} as 'source_panel_id', panel_link_jump.link_jump_info,
|
|
ifnull(panel_link_jump.checked, 0) AS checked
|
|
FROM chart_view
|
|
LEFT JOIN panel_link_jump ON chart_view.id = panel_link_jump.source_view_id
|
|
WHERE panel_link_jump.source_panel_id = #{panelId}
|
|
and panel_link_jump.checked = 1
|
|
</select>
|
|
|
|
<select id="queryWithViewId" resultMap="BaseResultMapDTO">
|
|
SELECT chart_view.id AS source_view_id,
|
|
panel_link_jump.id,
|
|
#{panelId} as 'source_panel_id', panel_link_jump.link_jump_info,
|
|
ifnull(panel_link_jump.checked, 0) AS checked
|
|
FROM chart_view
|
|
LEFT JOIN panel_link_jump ON chart_view.id = panel_link_jump.source_view_id
|
|
AND panel_link_jump.source_panel_id = #{panelId}
|
|
WHERE chart_view.id = #{viewId}
|
|
</select>
|
|
|
|
<delete id="deleteJumpTargetViewInfo">
|
|
DELETE
|
|
ljtv
|
|
FROM
|
|
panel_link_jump_target_view_info ljtv,
|
|
panel_link_jump_info lji,
|
|
panel_link_jump lj
|
|
WHERE
|
|
ljtv.link_jump_info_id = lji.id
|
|
AND lji.link_jump_id = lj.id
|
|
AND lj.source_panel_id =
|
|
#{panelId}
|
|
AND
|
|
lj
|
|
.
|
|
source_view_id
|
|
=
|
|
#{viewId}
|
|
</delete>
|
|
|
|
<delete id="deleteJumpInfo">
|
|
DELETE
|
|
lji
|
|
FROM
|
|
panel_link_jump_info lji,
|
|
panel_link_jump lj
|
|
WHERE
|
|
lji.link_jump_id = lj.id
|
|
AND lj.source_panel_id =
|
|
#{panelId}
|
|
AND
|
|
lj
|
|
.
|
|
source_view_id
|
|
=
|
|
#{viewId}
|
|
</delete>
|
|
|
|
<delete id="deleteJump">
|
|
DELETE
|
|
lj
|
|
FROM
|
|
panel_link_jump lj
|
|
WHERE
|
|
lj.source_panel_id =
|
|
#{panelId}
|
|
AND
|
|
lj
|
|
.
|
|
source_view_id
|
|
=
|
|
#{viewId}
|
|
</delete>
|
|
|
|
|
|
<delete id="deleteJumpTargetViewInfoWithPanel">
|
|
DELETE
|
|
ljtv
|
|
FROM
|
|
panel_link_jump_target_view_info ljtv,
|
|
panel_link_jump_info lji,
|
|
panel_link_jump lj
|
|
WHERE
|
|
ljtv.link_jump_info_id = lji.id
|
|
AND lji.link_jump_id = lj.id
|
|
AND (lj.source_panel_id =
|
|
#{panelId}
|
|
or
|
|
lji
|
|
.
|
|
target_panel_id
|
|
=
|
|
#{panelId}
|
|
)
|
|
</delete>
|
|
|
|
<delete id="deleteJumpInfoWithPanel">
|
|
DELETE
|
|
lji
|
|
FROM
|
|
panel_link_jump_info lji,
|
|
panel_link_jump lj
|
|
WHERE
|
|
lji.link_jump_id = lj.id
|
|
AND (lj.source_panel_id =
|
|
#{panelId}
|
|
or
|
|
lji
|
|
.
|
|
target_panel_id
|
|
=
|
|
#{panelId}
|
|
)
|
|
</delete>
|
|
|
|
<delete id="deleteJumpWithPanel">
|
|
DELETE
|
|
lj
|
|
FROM
|
|
panel_link_jump lj
|
|
WHERE
|
|
lj.source_panel_id =
|
|
#{panelId}
|
|
</delete>
|
|
|
|
<select id="getTargetPanelJumpInfo" resultMap="AllJumpMap">
|
|
SELECT DISTINCT
|
|
concat( lj.source_view_id, '#', lji.source_field_id ) AS 'sourceInfo',
|
|
concat( jtvi.target_view_id, '#', jtvi.target_field_id ) AS 'targetInfo'
|
|
FROM
|
|
panel_link_jump_target_view_info jtvi
|
|
LEFT JOIN panel_link_jump_info lji ON jtvi.link_jump_info_id = lji.id
|
|
LEFT JOIN panel_link_jump lj ON lji.link_jump_id = lj.id
|
|
WHERE
|
|
lj.source_panel_id = #{request.sourcePanelId}
|
|
AND lj.source_view_id = #{request.sourceViewId}
|
|
AND lji.target_panel_id = #{request.targetPanelId}
|
|
<if test="request.sourceFieldId != null">
|
|
AND lji.source_field_id = #{request.sourceFieldId}
|
|
</if>
|
|
</select>
|
|
|
|
<insert id="copyLinkJump">
|
|
insert into panel_link_jump (id, source_panel_id, source_view_id, link_jump_info, `checked`, copy_from, copy_id)
|
|
select UUID() as id,
|
|
panel_view_copy.t_panel_id as source_panel_id,
|
|
panel_view_copy.t_chart_view_id as source_view_id,
|
|
panel_link_jump.link_jump_info,
|
|
panel_link_jump.checked,
|
|
panel_link_jump.id as copy_from,
|
|
#{copyId} as copy_id
|
|
from panel_link_jump
|
|
inner join
|
|
(SELECT pvs.panel_id as s_panel_id,
|
|
pvs.chart_view_id as s_chart_view_id,
|
|
pvt.panel_id as t_panel_id,
|
|
pvt.chart_view_id as t_chart_view_id
|
|
FROM panel_view pvt
|
|
inner JOIN panel_view pvs ON pvt.copy_from = pvs.id
|
|
WHERE pvt.copy_id = #{copyId}) panel_view_copy
|
|
on panel_link_jump.source_panel_id = panel_view_copy.s_panel_id
|
|
and panel_link_jump.source_view_id = panel_view_copy.s_chart_view_id
|
|
</insert>
|
|
|
|
<insert id="copyLinkJumpInfo">
|
|
INSERT INTO panel_link_jump_info (id,
|
|
link_jump_id,
|
|
link_type,
|
|
jump_type,
|
|
target_panel_id,
|
|
source_field_id,
|
|
content,
|
|
`checked`,
|
|
`attach_params`,
|
|
copy_from,
|
|
copy_id)
|
|
SELECT uuid() AS id,
|
|
plj_copy.t_id,
|
|
link_type,
|
|
jump_type,
|
|
target_panel_id,
|
|
source_field_id,
|
|
content,
|
|
`checked`,
|
|
`attach_params`,
|
|
id AS copy_from,
|
|
#{copyId}
|
|
FROM panel_link_jump_info
|
|
inner JOIN (SELECT id AS t_id,
|
|
copy_from AS s_id
|
|
FROM panel_link_jump
|
|
WHERE copy_id = #{copyId}) plj_copy ON panel_link_jump_info.link_jump_id = plj_copy.s_id
|
|
</insert>
|
|
|
|
<insert id="copyLinkJumpTarget">
|
|
INSERT INTO panel_link_jump_target_view_info (target_id,
|
|
link_jump_info_id,
|
|
target_view_id,
|
|
target_field_id,
|
|
copy_from,
|
|
copy_id)
|
|
SELECT uuid() AS id,
|
|
plji_copy.t_id AS link_jump_info_id,
|
|
target_view_id,
|
|
target_field_id,
|
|
copy_from,
|
|
#{copyId} AS copy_id
|
|
FROM panel_link_jump_target_view_info
|
|
inner JOIN (SELECT id AS t_id,
|
|
copy_from AS s_id
|
|
FROM panel_link_jump_info
|
|
WHERE copy_id = #{copyId}) plji_copy
|
|
ON panel_link_jump_target_view_info.link_jump_info_id = plji_copy.s_id
|
|
</insert>
|
|
</mapper>
|