fix: 2.5.0:
1、Dashboard普通用户登录定时任务权限没有显示 2、Dashbaord添加用户权限按命名空间,组进行查询
This commit is contained in:
parent
c1f4c0736a
commit
3ca7e269ae
@ -23,17 +23,19 @@ public interface JobSummaryMapper extends BaseMapper<JobSummary> {
|
||||
|
||||
int insertOrUpdate(@Param("list") List<JobSummary> list);
|
||||
|
||||
IPage<DashboardRetryLineResponseDO.Task> jobTaskList(@Param("namespaceId") String namespaceId, Page<Object> page);
|
||||
IPage<DashboardRetryLineResponseDO.Task> jobTaskList(@Param("namespaceId") String namespaceId, @Param("groupNames") List<String> groupNames, Page<Object> page);
|
||||
|
||||
List<DashboardLineResponseDO> jobLineList(@Param("namespaceId") String namespaceId,
|
||||
@Param("groupNames") List<String> 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<String> groupNames);
|
||||
|
||||
List<DashboardRetryLineResponseDO.Rank> dashboardRank(@Param("namespaceId") String namespaceId,
|
||||
@Param("groupNames") List<String> groupNames,
|
||||
@Param("groupName") String groupName,
|
||||
@Param("startTime") LocalDateTime startTime,
|
||||
@Param("endTime") LocalDateTime endTime
|
||||
|
@ -23,13 +23,14 @@ public interface RetrySummaryMapper extends BaseMapper<RetrySummary> {
|
||||
|
||||
int insertOrUpdate(@Param("list") List<RetrySummary> list);
|
||||
|
||||
DashboardCardResponseDO.RetryTask retryTask(@Param("namespaceId") String namespaceId);
|
||||
DashboardCardResponseDO.RetryTask retryTask(@Param("namespaceId") String namespaceId, @Param("groupNames") List<String> groupNames);
|
||||
|
||||
List<DashboardCardResponseDO.RetryTaskBar> retryTaskBarList(@Param("namespaceId") String namespaceId);
|
||||
List<DashboardCardResponseDO.RetryTaskBar> retryTaskBarList(@Param("namespaceId") String namespaceId, @Param("groupNames") List<String> groupNames);
|
||||
|
||||
IPage<DashboardRetryLineResponseDO.Task> retryTaskList(@Param("namespaceId") String namespaceId, Page<Object> page);
|
||||
IPage<DashboardRetryLineResponseDO.Task> retryTaskList(@Param("namespaceId") String namespaceId, @Param("groupNames") List<String> groupNames, Page<Object> page);
|
||||
|
||||
List<DashboardLineResponseDO> retryLineList(@Param("namespaceId") String namespaceId,
|
||||
@Param("groupNames") List<String> groupNames,
|
||||
@Param("groupName") String groupName,
|
||||
@Param("type") String type,
|
||||
@Param("from") LocalDateTime from,
|
||||
@ -37,6 +38,7 @@ public interface RetrySummaryMapper extends BaseMapper<RetrySummary> {
|
||||
|
||||
|
||||
List<DashboardRetryLineResponseDO.Rank> dashboardRank(@Param("namespaceId") String namespaceId,
|
||||
@Param("groupNames") List<String> groupNames,
|
||||
@Param("groupName") String groupName,
|
||||
@Param("startTime") LocalDateTime startTime,
|
||||
@Param("endTime") LocalDateTime endTime
|
||||
|
@ -77,6 +77,12 @@
|
||||
ifnull(SUM(success_num + fail_num + stop_num + cancel_num), 0) AS total
|
||||
FROM job_summary
|
||||
<where>
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="groupName != null and groupName != '' ">
|
||||
AND group_name = #{groupName}
|
||||
</if>
|
||||
@ -87,13 +93,19 @@
|
||||
|
||||
<select id="toJobTask"
|
||||
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.DashboardCardResponseDO$JobTask">
|
||||
SELECT ifnull(sum(success_num), 0) AS successNum,
|
||||
ifnull(sum(stop_num), 0) AS stopNum,
|
||||
ifnull(sum(cancel_num), 0) AS cancelNum,
|
||||
ifnull(sum(fail_num), 0) AS failNum,
|
||||
ifnull(sum(success_num + fail_num + stop_num + cancel_num), 0) AS totalNum
|
||||
SELECT ifnull(sum(success_num), 0) AS successNum,
|
||||
ifnull(sum(stop_num), 0) AS stopNum,
|
||||
ifnull(sum(cancel_num), 0) AS cancelNum,
|
||||
ifnull(sum(fail_num), 0) AS failNum,
|
||||
ifnull(sum(success_num + fail_num + stop_num + cancel_num), 0) AS totalNum
|
||||
FROM job_summary
|
||||
WHERE namespace_id = #{namespaceId}
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="dashboardRank"
|
||||
@ -102,6 +114,12 @@
|
||||
CONCAT(group_name, '/', (SELECT job_name FROM job WHERE id=job_id)) `name`,
|
||||
SUM(fail_num) AS total FROM job_summary
|
||||
<where>
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="groupName != '' and groupName != null">
|
||||
AND group_name = #{groupName}
|
||||
</if>
|
||||
@ -120,6 +138,12 @@
|
||||
count(*) AS total
|
||||
FROM job
|
||||
WHERE namespace_id = #{namespaceId}
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
GROUP BY namespace_id, group_name
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -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}
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="retryTaskBarList"
|
||||
@ -69,6 +75,12 @@
|
||||
LEFT JOIN (SELECT DATE (trigger_at) AS triggerAt,
|
||||
SUM(running_num + finish_num + max_count_num + suspend_num) AS taskTotal FROM retry_summary
|
||||
WHERE namespace_id = #{namespaceId}
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
GROUP BY triggerAt
|
||||
) b
|
||||
ON tmp.date = b.triggerAt
|
||||
@ -107,6 +119,12 @@
|
||||
</if>
|
||||
AND namespace_id = #{namespaceId} AND trigger_at BETWEEN #{from} AND #{to}
|
||||
</where>
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
GROUP BY createDt
|
||||
</select>
|
||||
|
||||
@ -122,6 +140,12 @@
|
||||
AND namespace_id = #{namespaceId}
|
||||
AND trigger_at >= #{startTime} AND trigger_at <= #{endTime}
|
||||
</where>
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
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}
|
||||
<if test="groupNames != null and groupNames.size > 0">
|
||||
AND group_name IN
|
||||
<foreach collection="groupNames" item="groupName" open="(" separator="," close=")">
|
||||
#{groupName}
|
||||
</foreach>
|
||||
</if>
|
||||
GROUP BY namespace_id, group_name
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -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<String> 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<ActivePodQuantityResponseDO> activePodQuantityDO = serverNodeMapper.countActivePod(Lists.newArrayList(namespaceId, ServerRegister.NAMESPACE_ID));
|
||||
List<ActivePodQuantityResponseDO> activePodQuantityDO = serverNodeMapper.countActivePod(Lists.newArrayList(userSessionVO.getNamespaceId(), ServerRegister.NAMESPACE_ID));
|
||||
Map<Integer, Long> 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<String> groupNames = userSessionVO.isUser() ? userSessionVO.getGroupNames() : new ArrayList<>();
|
||||
DashboardRetryLineResponseVO dashboardRetryLineResponseVO = new DashboardRetryLineResponseVO();
|
||||
// 重试任务列表
|
||||
IPage<DashboardRetryLineResponseDO.Task> IPage = retrySummaryMapper.retryTaskList(namespaceId, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize()));
|
||||
IPage<DashboardRetryLineResponseDO.Task> IPage = retrySummaryMapper.retryTaskList(namespaceId, groupNames, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize()));
|
||||
List<DashboardRetryLineResponseVO.Task> taskList = JobSummaryResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVO(IPage.getRecords());
|
||||
PageResult<List<DashboardRetryLineResponseVO.Task>> 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<DashboardLineResponseDO> dashboardRetryLinkeResponseDOList = retrySummaryMapper.retryLineList(namespaceId, groupName, type, startDateTime, endDateTime);
|
||||
List<DashboardLineResponseDO> dashboardRetryLinkeResponseDOList = retrySummaryMapper.retryLineList(namespaceId, groupNames, groupName, type, startDateTime, endDateTime);
|
||||
List<DashboardLineResponseVO> dashboardLineResponseVOList = DispatchQuantityResponseVOConverter.INSTANCE.toDashboardLineResponseVO(dashboardRetryLinkeResponseDOList);
|
||||
dateTypeEnum.getConsumer().accept(dashboardLineResponseVOList);
|
||||
dashboardLineResponseVOList.sort(Comparator.comparing(a -> a.getCreateDt()));
|
||||
dashboardRetryLineResponseVO.setDashboardLineResponseDOList(dashboardLineResponseVOList);
|
||||
|
||||
// 排行榜
|
||||
List<DashboardRetryLineResponseDO.Rank> rankList = retrySummaryMapper.dashboardRank(namespaceId, groupName, startDateTime, endDateTime);
|
||||
List<DashboardRetryLineResponseDO.Rank> rankList = retrySummaryMapper.dashboardRank(namespaceId, groupNames, groupName, startDateTime, endDateTime);
|
||||
List<DashboardRetryLineResponseVO.Rank> 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<String> groupNames = userSessionVO.isUser() ? userSessionVO.getGroupNames() : new ArrayList<>();
|
||||
DashboardRetryLineResponseVO dashboardRetryLineResponseVO = new DashboardRetryLineResponseVO();
|
||||
// 重试任务列表
|
||||
IPage<DashboardRetryLineResponseDO.Task> IPage = jobSummaryMapper.jobTaskList(namespaceId, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize()));
|
||||
IPage<DashboardRetryLineResponseDO.Task> IPage = jobSummaryMapper.jobTaskList(namespaceId, groupNames, new Page<>(baseQueryVO.getPage(), baseQueryVO.getSize()));
|
||||
List<DashboardRetryLineResponseVO.Task> taskList = JobSummaryResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVO(IPage.getRecords());
|
||||
PageResult<List<DashboardRetryLineResponseVO.Task>> 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<DashboardLineResponseDO> dashboardLineResponseDOList = jobSummaryMapper.jobLineList(namespaceId, groupName, type, startDateTime, endDateTime);
|
||||
List<DashboardLineResponseDO> dashboardLineResponseDOList = jobSummaryMapper.jobLineList(namespaceId, groupNames, groupName, type, startDateTime, endDateTime);
|
||||
List<DashboardLineResponseVO> dashboardLineResponseVOList = DispatchQuantityResponseVOConverter.INSTANCE.toDashboardLineResponseVO(dashboardLineResponseDOList);
|
||||
dateTypeEnum.getConsumer().accept(dashboardLineResponseVOList);
|
||||
dashboardLineResponseVOList.sort(Comparator.comparing(a -> a.getCreateDt()));
|
||||
dashboardRetryLineResponseVO.setDashboardLineResponseDOList(dashboardLineResponseVOList);
|
||||
|
||||
// 排行榜
|
||||
List<DashboardRetryLineResponseDO.Rank> rankList = jobSummaryMapper.dashboardRank(namespaceId, groupName, startDateTime, endDateTime);
|
||||
List<DashboardRetryLineResponseDO.Rank> rankList = jobSummaryMapper.dashboardRank(namespaceId, groupNames, groupName, startDateTime, endDateTime);
|
||||
List<DashboardRetryLineResponseVO.Rank> ranks = SceneQuantityRankResponseVOConverter.INSTANCE.toDashboardRetryLineResponseVORank(rankList);
|
||||
dashboardRetryLineResponseVO.setRankList(ranks);
|
||||
return dashboardRetryLineResponseVO;
|
||||
|
@ -161,6 +161,18 @@ const retryUser = [
|
||||
}
|
||||
]
|
||||
const jobUser = [
|
||||
{
|
||||
roleId: 1,
|
||||
permissionId: 'JobAnalysis',
|
||||
permissionName: '定时任务',
|
||||
actionEntitySet: [
|
||||
{
|
||||
action: 'job',
|
||||
describe: '定时',
|
||||
defaultCheck: false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
roleId: 1,
|
||||
permissionId: 'dashboard',
|
||||
|
Loading…
Reference in New Issue
Block a user