diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java index 4a271b216..252c0f24b 100644 --- a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java @@ -23,17 +23,19 @@ public interface JobSummaryMapper extends BaseMapper { int insertOrUpdate(@Param("list") List list); - IPage jobTaskList(@Param("namespaceId") String namespaceId, Page page); + IPage jobTaskList(@Param("namespaceId") String namespaceId, @Param("groupNames") List groupNames, Page page); List jobLineList(@Param("namespaceId") String namespaceId, + @Param("groupNames") List groupNames, @Param("groupName") String groupName, @Param("type") String type, @Param("from") LocalDateTime from, @Param("to") LocalDateTime to); - DashboardCardResponseDO.JobTask toJobTask(@Param("namespaceId") String namespaceId); + DashboardCardResponseDO.JobTask toJobTask(@Param("namespaceId") String namespaceId, @Param("groupNames") List groupNames); List dashboardRank(@Param("namespaceId") String namespaceId, + @Param("groupNames") List groupNames, @Param("groupName") String groupName, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java index c609070b2..2c6ca80f2 100644 --- a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java @@ -23,13 +23,14 @@ public interface RetrySummaryMapper extends BaseMapper { int insertOrUpdate(@Param("list") List list); - DashboardCardResponseDO.RetryTask retryTask(@Param("namespaceId") String namespaceId); + DashboardCardResponseDO.RetryTask retryTask(@Param("namespaceId") String namespaceId, @Param("groupNames") List groupNames); - List retryTaskBarList(@Param("namespaceId") String namespaceId); + List retryTaskBarList(@Param("namespaceId") String namespaceId, @Param("groupNames") List groupNames); - IPage retryTaskList(@Param("namespaceId") String namespaceId, Page page); + IPage retryTaskList(@Param("namespaceId") String namespaceId, @Param("groupNames") List groupNames, Page page); List retryLineList(@Param("namespaceId") String namespaceId, + @Param("groupNames") List groupNames, @Param("groupName") String groupName, @Param("type") String type, @Param("from") LocalDateTime from, @@ -37,6 +38,7 @@ public interface RetrySummaryMapper extends BaseMapper { List dashboardRank(@Param("namespaceId") String namespaceId, + @Param("groupNames") List groupNames, @Param("groupName") String groupName, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime diff --git a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml index ebfee3b87..51d4b32a6 100644 --- a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml +++ b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml @@ -77,6 +77,12 @@ ifnull(SUM(success_num + fail_num + stop_num + cancel_num), 0) AS total FROM job_summary + + AND group_name IN + + #{groupName} + + AND group_name = #{groupName} @@ -87,13 +93,19 @@ diff --git a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml index b85f03ada..d52273ee3 100644 --- a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml +++ b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml @@ -48,6 +48,12 @@ ifnull(sum(running_num + finish_num + max_count_num + suspend_num), 0) AS totalNum FROM retry_summary WHERE namespace_id = #{namespaceId} + + AND group_name IN + + #{groupName} + + @@ -122,6 +140,12 @@ AND namespace_id = #{namespaceId} AND trigger_at >= #{startTime} AND trigger_at <= #{endTime} + + AND group_name IN + + #{groupName} + + GROUP BY namespace_id, group_name, scene_name HAVING total > 0 ORDER BY total DESC LIMIT 10 @@ -134,6 +158,12 @@ count(*) AS total FROM scene_config WHERE namespace_id = #{namespaceId} + + AND group_name IN + + #{groupName} + + GROUP BY namespace_id, group_name diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java index 3ee7c6443..62ff96d17 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java @@ -12,6 +12,7 @@ import com.aizuda.easy.retry.server.web.model.base.BaseQueryVO; import com.aizuda.easy.retry.server.web.model.base.PageResult; import com.aizuda.easy.retry.server.web.model.enums.DateTypeEnum; import com.aizuda.easy.retry.server.web.model.request.ServerNodeQueryVO; +import com.aizuda.easy.retry.server.web.model.request.UserSessionVO; import com.aizuda.easy.retry.server.web.model.response.*; import com.aizuda.easy.retry.server.web.service.DashBoardService; import com.aizuda.easy.retry.server.web.service.convert.*; @@ -39,10 +40,7 @@ import org.springframework.web.client.RestTemplate; import java.text.MessageFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Comparator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -71,16 +69,19 @@ public class DashBoardServiceImpl implements DashBoardService { @Override public DashboardCardResponseVO taskRetryJob() { - String namespaceId = UserSessionUtils.currentUserSession().getNamespaceId(); + // 查询登录用户权限 + UserSessionVO userSessionVO = UserSessionUtils.currentUserSession(); + String namespaceId = userSessionVO.getNamespaceId(); + List groupNames = userSessionVO.isUser() ? userSessionVO.getGroupNames() : new ArrayList<>(); DashboardCardResponseVO dashboardCardResponseVO = new DashboardCardResponseVO(); // 重试任务 - dashboardCardResponseVO.setRetryTask(RetrySummaryResponseVOConverter.INSTANCE.toRetryTask(retrySummaryMapper.retryTask(namespaceId))); + dashboardCardResponseVO.setRetryTask(RetrySummaryResponseVOConverter.INSTANCE.toRetryTask(retrySummaryMapper.retryTask(namespaceId, groupNames))); // 定时任务 - dashboardCardResponseVO.setJobTask(JobSummaryResponseVOConverter.INSTANCE.toTaskJob(jobSummaryMapper.toJobTask(namespaceId))); + dashboardCardResponseVO.setJobTask(JobSummaryResponseVOConverter.INSTANCE.toTaskJob(jobSummaryMapper.toJobTask(namespaceId, groupNames))); // 重试任务柱状图 - dashboardCardResponseVO.setRetryTaskBarList(RetrySummaryResponseVOConverter.INSTANCE.toRetryTaskBar(retrySummaryMapper.retryTaskBarList(namespaceId))); + dashboardCardResponseVO.setRetryTaskBarList(RetrySummaryResponseVOConverter.INSTANCE.toRetryTaskBar(retrySummaryMapper.retryTaskBarList(namespaceId, groupNames))); // 在线Pods - List activePodQuantityDO = serverNodeMapper.countActivePod(Lists.newArrayList(namespaceId, ServerRegister.NAMESPACE_ID)); + List activePodQuantityDO = serverNodeMapper.countActivePod(Lists.newArrayList(userSessionVO.getNamespaceId(), ServerRegister.NAMESPACE_ID)); Map map = activePodQuantityDO.stream().collect(Collectors.toMap(ActivePodQuantityResponseDO::getNodeType, ActivePodQuantityResponseDO::getTotal)); Long clientTotal = map.getOrDefault(NodeTypeEnum.CLIENT.getType(), 0L); Long serverTotal = map.getOrDefault(NodeTypeEnum.SERVER.getType(), 0L); @@ -94,10 +95,13 @@ public class DashBoardServiceImpl implements DashBoardService { @Override public DashboardRetryLineResponseVO retryLineList(BaseQueryVO baseQueryVO, String groupName, String type, String startTime, String endTime) { - String namespaceId = UserSessionUtils.currentUserSession().getNamespaceId(); + // 查询登录用户权限 + UserSessionVO userSessionVO = UserSessionUtils.currentUserSession(); + String namespaceId = userSessionVO.getNamespaceId(); + List groupNames = userSessionVO.isUser() ? userSessionVO.getGroupNames() : new ArrayList<>(); DashboardRetryLineResponseVO dashboardRetryLineResponseVO = new DashboardRetryLineResponseVO(); // 重试任务列表 - IPage IPage = retrySummaryMapper.retryTaskList(namespaceId, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize())); + IPage IPage = retrySummaryMapper.retryTaskList(namespaceId, groupNames, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize())); List taskList = JobSummaryResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVO(IPage.getRecords()); PageResult> pageResult = new PageResult<>(new PageDTO(IPage.getCurrent(), IPage.getSize(), IPage.getTotal()), taskList); dashboardRetryLineResponseVO.setTaskList(pageResult); @@ -106,14 +110,14 @@ public class DashBoardServiceImpl implements DashBoardService { DateTypeEnum dateTypeEnum = DateTypeEnum.valueOf(type); LocalDateTime startDateTime = dateTypeEnum.getStartTime().apply(StrUtil.isNotBlank(startTime) ? LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); LocalDateTime endDateTime = dateTypeEnum.getEndTime().apply(StrUtil.isNotBlank(endTime) ? LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); - List dashboardRetryLinkeResponseDOList = retrySummaryMapper.retryLineList(namespaceId, groupName, type, startDateTime, endDateTime); + List dashboardRetryLinkeResponseDOList = retrySummaryMapper.retryLineList(namespaceId, groupNames, groupName, type, startDateTime, endDateTime); List dashboardLineResponseVOList = DispatchQuantityResponseVOConverter.INSTANCE.toDashboardLineResponseVO(dashboardRetryLinkeResponseDOList); dateTypeEnum.getConsumer().accept(dashboardLineResponseVOList); dashboardLineResponseVOList.sort(Comparator.comparing(a -> a.getCreateDt())); dashboardRetryLineResponseVO.setDashboardLineResponseDOList(dashboardLineResponseVOList); // 排行榜 - List rankList = retrySummaryMapper.dashboardRank(namespaceId, groupName, startDateTime, endDateTime); + List rankList = retrySummaryMapper.dashboardRank(namespaceId, groupNames, groupName, startDateTime, endDateTime); List ranks = SceneQuantityRankResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVORank(rankList); dashboardRetryLineResponseVO.setRankList(ranks); return dashboardRetryLineResponseVO; @@ -122,10 +126,13 @@ public class DashBoardServiceImpl implements DashBoardService { @Override public DashboardRetryLineResponseVO jobLineList(BaseQueryVO baseQueryVO, String groupName, String type, String startTime, String endTime) { - String namespaceId = UserSessionUtils.currentUserSession().getNamespaceId(); + // 查询登录用户权限 + UserSessionVO userSessionVO = UserSessionUtils.currentUserSession(); + String namespaceId = userSessionVO.getNamespaceId(); + List groupNames = userSessionVO.isUser() ? userSessionVO.getGroupNames() : new ArrayList<>(); DashboardRetryLineResponseVO dashboardRetryLineResponseVO = new DashboardRetryLineResponseVO(); // 重试任务列表 - IPage IPage = jobSummaryMapper.jobTaskList(namespaceId, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize())); + IPage IPage = jobSummaryMapper.jobTaskList(namespaceId, groupNames, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize())); List taskList = JobSummaryResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVO(IPage.getRecords()); PageResult> pageResult = new PageResult<>(new PageDTO(IPage.getCurrent(), IPage.getSize(), IPage.getTotal()), taskList); dashboardRetryLineResponseVO.setTaskList(pageResult); @@ -134,14 +141,14 @@ public class DashBoardServiceImpl implements DashBoardService { DateTypeEnum dateTypeEnum = DateTypeEnum.valueOf(type); LocalDateTime startDateTime = dateTypeEnum.getStartTime().apply(StrUtil.isNotBlank(startTime) ? LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); LocalDateTime endDateTime = dateTypeEnum.getEndTime().apply(StrUtil.isNotBlank(endTime) ? LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); - List dashboardLineResponseDOList = jobSummaryMapper.jobLineList(namespaceId, groupName, type, startDateTime, endDateTime); + List dashboardLineResponseDOList = jobSummaryMapper.jobLineList(namespaceId, groupNames, groupName, type, startDateTime, endDateTime); List dashboardLineResponseVOList = DispatchQuantityResponseVOConverter.INSTANCE.toDashboardLineResponseVO(dashboardLineResponseDOList); dateTypeEnum.getConsumer().accept(dashboardLineResponseVOList); dashboardLineResponseVOList.sort(Comparator.comparing(a -> a.getCreateDt())); dashboardRetryLineResponseVO.setDashboardLineResponseDOList(dashboardLineResponseVOList); // 排行榜 - List rankList = jobSummaryMapper.dashboardRank(namespaceId, groupName, startDateTime, endDateTime); + List rankList = jobSummaryMapper.dashboardRank(namespaceId, groupNames, groupName, startDateTime, endDateTime); List ranks = SceneQuantityRankResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVORank(rankList); dashboardRetryLineResponseVO.setRankList(ranks); return dashboardRetryLineResponseVO; diff --git a/frontend/src/utils/permissionsConfig.js b/frontend/src/utils/permissionsConfig.js index f35d85af2..33a179ee7 100644 --- a/frontend/src/utils/permissionsConfig.js +++ b/frontend/src/utils/permissionsConfig.js @@ -161,6 +161,18 @@ const retryUser = [ } ] const jobUser = [ + { + roleId: 1, + permissionId: 'JobAnalysis', + permissionName: '定时任务', + actionEntitySet: [ + { + action: 'job', + describe: '定时', + defaultCheck: false + } + ] + }, { roleId: 1, permissionId: 'dashboard',