mirror of
https://github.com/dataease/dataease.git
synced 2026-05-19 02:08:10 +08:00
feat: 完善我的分享
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user