feat: 完善我的分享

This commit is contained in:
fit2cloud-chenyw
2021-11-10 18:04:20 +08:00
parent a4e515c1ab
commit 08ea1fafea
16 changed files with 437 additions and 20 deletions

View File

@@ -2,6 +2,8 @@ package io.dataease.base.mapper.ext;
import io.dataease.base.domain.PanelShare;
import io.dataease.base.mapper.ext.query.GridExample;
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
import io.dataease.dto.panel.PanelShareOutDTO;
import io.dataease.dto.panel.PanelSharePo;
import org.apache.ibatis.annotations.Param;
@@ -20,6 +22,10 @@ public interface ExtPanelShareMapper {
List<PanelShare> queryWithResource(GridExample example);
List<PanelShareOutDTO> queryTargets(String panelId);
void removeShares(@Param("request") PanelShareRemoveRequest request);
List<Long> queryUserIdWithRoleIds(Map<String, List<Long>> param);
List<Long> queryUserIdWithDeptIds(Map<String, List<Long>> param);

View File

@@ -8,6 +8,15 @@
<result column="creator" property="creator" />
</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.base.domain.PanelShare">
INSERT INTO panel_share (panel_group_id,target_id,granter,create_time,type)
VALUES
@@ -61,6 +70,26 @@
</if>
</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}
</select>
<select id="queryUserIdWithRoleIds" resultType="java.lang.Long" >
@@ -82,6 +111,14 @@
</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>

View File

@@ -3,12 +3,16 @@ package io.dataease.controller.panel.api;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.base.domain.PanelShare;
import io.dataease.controller.request.panel.PanelShareFineDto;
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
import io.dataease.controller.request.panel.PanelShareRequest;
import io.dataease.controller.sys.base.BaseGridRequest;
import io.dataease.dto.panel.PanelShareDto;
import io.dataease.dto.panel.PanelShareOutDTO;
import io.dataease.dto.panel.PanelSharePo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import springfox.documentation.annotations.ApiIgnore;
@@ -41,9 +45,20 @@ public interface ShareApi {
@PostMapping("/queryWithResourceId")
List<PanelShare> queryWithResourceId(BaseGridRequest request);
@ApiOperation("查询分享目标")
@PostMapping("/queryTargets/{panelId}")
@ApiImplicitParam(paramType = "path", value = "仪表板ID", name = "panelId", required = true, dataType = "String")
List<PanelShareOutDTO> queryTargets(@PathVariable("panelId") String panelId);
@ApiOperation("创建分享")
@PostMapping("/fineSave")
void fineSave(PanelShareFineDto panelShareFineDto);
@ApiOperation("删除分享")
@PostMapping("/removeShares")
void removeShares(PanelShareRemoveRequest request);
}

View File

@@ -3,11 +3,14 @@ package io.dataease.controller.panel.server;
import io.dataease.base.domain.PanelShare;
import io.dataease.controller.panel.api.ShareApi;
import io.dataease.controller.request.panel.PanelShareFineDto;
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
import io.dataease.controller.request.panel.PanelShareRequest;
import io.dataease.controller.sys.base.BaseGridRequest;
import io.dataease.dto.panel.PanelShareDto;
import io.dataease.dto.panel.PanelShareOutDTO;
import io.dataease.dto.panel.PanelSharePo;
import io.dataease.service.panel.ShareService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -39,10 +42,20 @@ public class ShareServer implements ShareApi {
return shareService.queryWithResource(request);
}
@Override
public List<PanelShareOutDTO> queryTargets(@PathVariable("panelId") String panelId) {
return shareService.queryTargets(panelId);
}
@Override
public void fineSave(@RequestBody PanelShareFineDto panelShareFineDto) {
shareService.fineSave(panelShareFineDto);
}
@Override
public void removeShares(@RequestBody PanelShareRemoveRequest request) {
shareService.removeShares(request);
}
}

View File

@@ -0,0 +1,18 @@
package io.dataease.controller.request.panel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("取消分享参数")
public class PanelShareRemoveRequest implements Serializable {
@ApiModelProperty("仪表板ID")
private String panelId;
@ApiModelProperty("分享ID")
private String shareId;
}

View File

@@ -0,0 +1,30 @@
package io.dataease.dto.panel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel("仪表板分享目标")
@Data
public class PanelShareOutDTO implements Serializable {
@ApiModelProperty("仪表板ID")
private String panelId;
@ApiModelProperty("分享ID")
private Long shareId;
@ApiModelProperty("分享类型{0:用户,1:角色,2:组织}")
private int type;
@ApiModelProperty("目标ID")
private String targetId;
@ApiModelProperty("目标名称")
private String targetName;
@ApiModelProperty("分享时间")
private Long createTime;
}

View File

@@ -15,9 +15,11 @@ import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.CommonBeanFactory;
import io.dataease.controller.request.panel.PanelShareFineDto;
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
import io.dataease.controller.request.panel.PanelShareRequest;
import io.dataease.controller.sys.base.BaseGridRequest;
import io.dataease.dto.panel.PanelShareDto;
import io.dataease.dto.panel.PanelShareOutDTO;
import io.dataease.dto.panel.PanelSharePo;
import io.dataease.service.message.DeMsgutil;
import lombok.Data;
@@ -345,5 +347,13 @@ public class ShareService {
return extPanelShareMapper.queryWithResource(example);
}
public List<PanelShareOutDTO> queryTargets(String panelId) {
return extPanelShareMapper.queryTargets(panelId);
}
public void removeShares(PanelShareRemoveRequest removeRequest) {
extPanelShareMapper.removeShares(removeRequest);
}
}