From c5df08e485c87bbdacc0e1a4373427d579ec5cbd Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 28 Apr 2022 11:11:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=96=E6=B6=88=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../panel/PanelShareRemoveRequest.java | 6 +++++ .../dataease/service/panel/ShareService.java | 27 ++++++++++++++++--- .../views/panel/GrantAuth/ShareHead/index.vue | 4 ++- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelShareRemoveRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelShareRemoveRequest.java index 595b194ec2..302115956c 100644 --- a/backend/src/main/java/io/dataease/controller/request/panel/PanelShareRemoveRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelShareRemoveRequest.java @@ -15,4 +15,10 @@ public class PanelShareRemoveRequest implements Serializable { @ApiModelProperty("分享ID") private String shareId; + + @ApiModelProperty("分享类型{0:用户,1:角色,2:组织}") + private Integer type; + + @ApiModelProperty("目标ID") + private Long targetId; } diff --git a/backend/src/main/java/io/dataease/service/panel/ShareService.java b/backend/src/main/java/io/dataease/service/panel/ShareService.java index 0501d52ea6..4155a4bf7f 100644 --- a/backend/src/main/java/io/dataease/service/panel/ShareService.java +++ b/backend/src/main/java/io/dataease/service/panel/ShareService.java @@ -92,9 +92,9 @@ public class ShareService { } else { shareNodes = typeSharedMap.get(key); } - - if (null != authURDMap.get(key)) { - Map dataMap = filterData(authURDMap.get(key), shareNodes); + List value = entry.getValue(); + if (null != value) { + Map dataMap = filterData(value, shareNodes); List newIds = (List) dataMap.get("add"); for (int i = 0; i < newIds.size(); i++) { Long id = newIds.get(i); @@ -340,8 +340,29 @@ public class ShareService { .collect(Collectors.toList()); } + @Transactional public void removeShares(PanelShareRemoveRequest removeRequest) { + String panelId = removeRequest.getPanelId(); extPanelShareMapper.removeShares(removeRequest); + AuthURD sharedAuthURD = new AuthURD(); + List removeIds = new ArrayList(){{add(removeRequest.getTargetId());}}; + buildRedAuthURD(removeRequest.getType(), removeIds, sharedAuthURD); + CurrentUserDto user = AuthUtils.getUser(); + Gson gson = new Gson(); + PanelGroup panel = panelGroupMapper.selectByPrimaryKey(panelId); + + String msg = panel.getName(); + + List msgParam = new ArrayList<>(); + msgParam.add(panelId); + Set redIds = AuthUtils.userIdsByURD(sharedAuthURD); + redIds.forEach(userId -> { + if (!user.getUserId().equals(userId)) { + DeMsgutil.sendMsg(userId, 3L, user.getNickName() + " 取消分享了仪表板【" + msg + "】,请查收!", + gson.toJson(msgParam)); + } + }); + } } diff --git a/frontend/src/views/panel/GrantAuth/ShareHead/index.vue b/frontend/src/views/panel/GrantAuth/ShareHead/index.vue index 6c1c20a62c..357a166d20 100644 --- a/frontend/src/views/panel/GrantAuth/ShareHead/index.vue +++ b/frontend/src/views/panel/GrantAuth/ShareHead/index.vue @@ -110,7 +110,9 @@ export default { if (!tag || !tag.shareId) return const param = { panelId: this.panelInfo.id, - shareId: tag.shareId + shareId: tag.shareId, + targetId: tag.targetId, + type: tag.type } removeShares(param).then(res => { this.initTagDatas()