diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.java index a3c52468e1..bdd70c8719 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.java @@ -7,12 +7,13 @@ import io.dataease.dto.panel.PanelSharePo; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; public interface ExtPanelShareMapper { int batchInsert(@Param("shares") List shares); - List query(GridExample example); + List query(Map param); List queryWithResource(GridExample example); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.xml index 1d29450bb7..6f17c63e55 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelShareMapper.xml @@ -16,16 +16,17 @@ - select distinct s.panel_group_id as id, g.create_by as creator, g.name from panel_share s left join panel_group g on g.id = s.panel_group_id - - - - - order by ${orderByClause} - + where + ( s.target_id = #{userId} and s.type = 0 ) or + ( s.target_id = #{deptId} and s.type = 1 ) or + s.target_id in + + #{roleId} + order by s.create_time desc 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 0fcd5582ad..d3b8d07708 100644 --- a/backend/src/main/java/io/dataease/service/panel/ShareService.java +++ b/backend/src/main/java/io/dataease/service/panel/ShareService.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -92,7 +93,14 @@ public class ShareService { Long deptId = user.getDeptId(); List roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()); - List targetIds = new ArrayList<>(); + Map param = new HashMap<>(); + param.put("userId", userId); + param.put("deptId", deptId); + param.put("roleIds", roleIds); + + List datas = extPanelShareMapper.query(param); + + /*List targetIds = new ArrayList<>(); targetIds.add(userId); targetIds.add(deptId); targetIds.addAll(roleIds); @@ -105,14 +113,15 @@ public class ShareService { request.setConditions(new ArrayList(){{add(condition);}}); GridExample example = request.convertExample(); - List datas = extPanelShareMapper.query(example); + List datas = extPanelShareMapper.query(example);*/ List dtoLists = datas.stream().map(po -> BeanUtils.copyBean(new PanelShareDto(), po)).collect(Collectors.toList()); return convertTree(dtoLists); } //List构建Tree private List convertTree(List datas){ - Map> map = datas.stream().filter(panelShareDto -> StringUtils.isNotEmpty(panelShareDto.getCreator())).collect(Collectors.groupingBy(PanelShareDto::getCreator)); + String username = AuthUtils.getUser().getUsername(); + Map> map = datas.stream().filter(panelShareDto -> StringUtils.isNotEmpty(panelShareDto.getCreator()) && !StringUtils.equals(username, panelShareDto.getCreator())).collect(Collectors.groupingBy(PanelShareDto::getCreator)); return map.entrySet().stream().map(entry -> { PanelShareDto panelShareDto = new PanelShareDto(); panelShareDto.setName(entry.getKey());