提交 02f4d5bb authored 作者: wangjiahao's avatar wangjiahao

fix:仪表板跳转配置时,删除仪表板ID还在配置选项的问题

上级 e7e65035
...@@ -20,4 +20,7 @@ public interface ExtPanelGroupMapper { ...@@ -20,4 +20,7 @@ public interface ExtPanelGroupMapper {
PanelGroupDTO panelGroup(String id); PanelGroupDTO panelGroup(String id);
void copyPanelView(@Param("pid") String panelId);
} }
...@@ -167,4 +167,15 @@ ...@@ -167,4 +167,15 @@
delete from panel_group where FIND_IN_SET(panel_group.id,GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) or FIND_IN_SET(panel_group.source,GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) delete from panel_group where FIND_IN_SET(panel_group.id,GET_PANEL_GROUP_WITH_CHILDREN(#{pid})) or FIND_IN_SET(panel_group.source,GET_PANEL_GROUP_WITH_CHILDREN(#{pid}))
</delete> </delete>
<insert id="copyPanelView">
INSERT INTO panel_view ( id, panel_id, chart_view_id ) SELECT
uuid(),
#{panelId},
chart_view_id
FROM
panel_view
WHERE
panel_id = #{panelId}
</insert>
</mapper> </mapper>
...@@ -17,6 +17,11 @@ public interface ExtPanelLinkJumpMapper { ...@@ -17,6 +17,11 @@ public interface ExtPanelLinkJumpMapper {
void deleteJump(@Param("panelId") String panelId,@Param("viewId") String viewId); void deleteJump(@Param("panelId") String panelId,@Param("viewId") String viewId);
void deleteJumpTargetViewInfoWithPanel(@Param("panelId") String panelId);
void deleteJumpInfoWithPanel(@Param("panelId") String panelId);
void deleteJumpWithPanel(@Param("panelId") String panelId);
List<PanelLinkJumpDTO> getTargetPanelJumpInfo(@Param("request")PanelLinkJumpBaseRequest request); List<PanelLinkJumpDTO> getTargetPanelJumpInfo(@Param("request")PanelLinkJumpBaseRequest request);
} }
...@@ -114,6 +114,38 @@ ...@@ -114,6 +114,38 @@
AND lj.source_view_id = #{viewId} AND lj.source_view_id = #{viewId}
</delete> </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 id="getTargetPanelJumpInfo" resultMap="AllJumpMap">
SELECT DISTINCT SELECT DISTINCT
concat( lj.source_view_id, '#', lji.source_field_id ) AS 'sourceInfo', concat( lj.source_view_id, '#', lji.source_field_id ) AS 'sourceInfo',
......
...@@ -4,6 +4,7 @@ import io.dataease.base.domain.*; ...@@ -4,6 +4,7 @@ import io.dataease.base.domain.*;
import io.dataease.base.mapper.ChartViewMapper; import io.dataease.base.mapper.ChartViewMapper;
import io.dataease.base.mapper.PanelGroupMapper; import io.dataease.base.mapper.PanelGroupMapper;
import io.dataease.base.mapper.ext.ExtPanelGroupMapper; import io.dataease.base.mapper.ext.ExtPanelGroupMapper;
import io.dataease.base.mapper.ext.ExtPanelLinkJumpMapper;
import io.dataease.commons.constants.PanelConstants; import io.dataease.commons.constants.PanelConstants;
import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.TreeUtils; import io.dataease.commons.utils.TreeUtils;
...@@ -55,6 +56,8 @@ public class PanelGroupService { ...@@ -55,6 +56,8 @@ public class PanelGroupService {
private SysAuthService sysAuthService; private SysAuthService sysAuthService;
@Resource @Resource
private PanelViewService panelViewService; private PanelViewService panelViewService;
@Resource
private ExtPanelLinkJumpMapper extPanelLinkJumpMapper;
public List<PanelGroupDTO> tree(PanelGroupRequest panelGroupRequest) { public List<PanelGroupDTO> tree(PanelGroupRequest panelGroupRequest) {
...@@ -116,7 +119,14 @@ public class PanelGroupService { ...@@ -116,7 +119,14 @@ public class PanelGroupService {
newPanel.setId(panelId); newPanel.setId(panelId);
newPanel.setCreateBy(AuthUtils.getUser().getUsername()); newPanel.setCreateBy(AuthUtils.getUser().getUsername());
panelGroupMapper.insertSelective(newPanel); panelGroupMapper.insertSelective(newPanel);
} else if ("move".equals(request.getOptType())) {
try{
panelViewService.syncPanelViews(newPanel);
}catch (Exception e){
e.printStackTrace();
LOGGER.error("更新panelView出错panelId:{}" ,request.getId());
} }
else if ("move".equals(request.getOptType())) {
PanelGroupWithBLOBs panelInfo = panelGroupMapper.selectByPrimaryKey(request.getId()); PanelGroupWithBLOBs panelInfo = panelGroupMapper.selectByPrimaryKey(request.getId());
if(panelInfo.getPid().equalsIgnoreCase(request.getPid())){ if(panelInfo.getPid().equalsIgnoreCase(request.getPid())){
DataEaseException.throwException(Translator.get("i18n_select_diff_folder")); DataEaseException.throwException(Translator.get("i18n_select_diff_folder"));
...@@ -139,6 +149,7 @@ public class PanelGroupService { ...@@ -139,6 +149,7 @@ public class PanelGroupService {
panelGroupMapper.updateByPrimaryKeySelective(request); panelGroupMapper.updateByPrimaryKeySelective(request);
} }
//带有权限的返回 //带有权限的返回
PanelGroupRequest authRequest = new PanelGroupRequest(); PanelGroupRequest authRequest = new PanelGroupRequest();
authRequest.setId(panelId); authRequest.setId(panelId);
...@@ -175,6 +186,11 @@ public class PanelGroupService { ...@@ -175,6 +186,11 @@ public class PanelGroupService {
storeService.removeByPanelId(id); storeService.removeByPanelId(id);
shareService.delete(id, null); shareService.delete(id, null);
panelLinkService.deleteByResourceId(id); panelLinkService.deleteByResourceId(id);
//清理跳转信息
extPanelLinkJumpMapper.deleteJumpTargetViewInfoWithPanel(id);
extPanelLinkJumpMapper.deleteJumpInfoWithPanel(id);
extPanelLinkJumpMapper.deleteJumpWithPanel(id);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论