From d19635b3e4f1d7fb58e26e185175105958d923f7 Mon Sep 17 00:00:00 2001 From: wodeyangzipingpingwuqi Date: Fri, 27 Dec 2024 17:27:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:(1.3.0-beta1):=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E=E8=B4=9F?= =?UTF-8?q?=E8=B4=A3=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/persistence/po/Job.java | 5 ++++ .../server/web/model/request/JobQueryVO.java | 1 + .../web/model/request/JobRequestVO.java | 5 ++++ .../web/model/response/JobResponseVO.java | 8 ++++++ .../web/service/impl/JobServiceImpl.java | 28 +++++++++++++++++-- .../service/impl/NotifyConfigServiceImpl.java | 2 +- 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/Job.java b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/Job.java index 805901e27..544ec8494 100644 --- a/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/Job.java +++ b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/Job.java @@ -147,4 +147,9 @@ public class Job extends CreateUpdateDt { */ private String notifyIds; + /** + * 负责人id + */ + private Long owerId; + } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobQueryVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobQueryVO.java index ca48d99ba..baf542482 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobQueryVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobQueryVO.java @@ -15,5 +15,6 @@ public class JobQueryVO extends BaseQueryVO { private String groupName; private String jobName; private Integer jobStatus; + private String owerName; private String executorInfo; } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobRequestVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobRequestVO.java index e2d89d95d..47099254c 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobRequestVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/JobRequestVO.java @@ -130,4 +130,9 @@ public class JobRequestVO { */ private Set notifyIds; + /** + * 负责人id + */ + private Long owerId; + } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobResponseVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobResponseVO.java index 0b3ae8f32..c01a268a9 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobResponseVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobResponseVO.java @@ -134,4 +134,12 @@ public class JobResponseVO { * 通知告警场景配置id列表 */ private Set notifyIds; + + /** + * 负责人名称 + */ + private String owerName; + + private Long owerId; + } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java index cd90221ac..dc94f46f6 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobServiceImpl.java @@ -33,11 +33,14 @@ import com.aizuda.snailjob.server.web.util.UserSessionUtils; import com.aizuda.snailjob.template.datasource.access.AccessTemplate; import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper; import com.aizuda.snailjob.template.datasource.persistence.mapper.JobSummaryMapper; +import com.aizuda.snailjob.template.datasource.persistence.mapper.SystemUserMapper; import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig; import com.aizuda.snailjob.template.datasource.persistence.po.Job; import com.aizuda.snailjob.template.datasource.persistence.po.JobSummary; +import com.aizuda.snailjob.template.datasource.persistence.po.SystemUser; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.google.common.collect.Lists; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -48,6 +51,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; +import java.util.stream.Collectors; /** * @author opensnail @@ -66,6 +70,7 @@ public class JobServiceImpl implements JobService { private final AccessTemplate accessTemplate; private final GroupHandler groupHandler; private final JobSummaryMapper jobSummaryMapper; + private final SystemUserMapper systemUserMapper; private static Long calculateNextTriggerAt(final JobRequestVO jobRequestVO, Long time) { if (Objects.equals(jobRequestVO.getTriggerType(), SystemConstants.WORKFLOW_TRIGGER_TYPE)) { @@ -86,20 +91,35 @@ public class JobServiceImpl implements JobService { UserSessionVO userSessionVO = UserSessionUtils.currentUserSession(); List groupNames = UserSessionUtils.getGroupNames(queryVO.getGroupName()); + Set owerIds = systemUserMapper.selectList(new LambdaQueryWrapper() + .select(SystemUser::getId) + .likeRight(SystemUser::getUsername, queryVO.getOwerName())) + .stream() + .map(i -> i.getId()) + .collect(Collectors.toSet()); + if (CollUtil.isEmpty(owerIds) && StrUtil.isNotBlank(queryVO.getOwerName())) { + return new PageResult<>(pageDTO, Lists.newArrayList()); + } + PageDTO selectPage = jobMapper.selectPage(pageDTO, new LambdaQueryWrapper() .eq(Job::getNamespaceId, userSessionVO.getNamespaceId()) .in(CollUtil.isNotEmpty(groupNames), Job::getGroupName, groupNames) - .likeRight(StrUtil.isNotBlank(queryVO.getJobName()), Job::getJobName, - StrUtil.trim(queryVO.getJobName())) + .likeRight(StrUtil.isNotBlank(queryVO.getJobName()), Job::getJobName, StrUtil.trim(queryVO.getJobName())) .like(StrUtil.isNotBlank(queryVO.getExecutorInfo()), Job::getExecutorInfo, StrUtil.trim(queryVO.getExecutorInfo())) .eq(Objects.nonNull(queryVO.getJobStatus()), Job::getJobStatus, queryVO.getJobStatus()) .eq(Job::getDeleted, StatusEnum.NO.getStatus()) + .in(CollUtil.isNotEmpty(owerIds), Job::getOwerId, owerIds) .orderByDesc(Job::getId)); - List jobResponseList = JobResponseVOConverter.INSTANCE.convertList(selectPage.getRecords()); + for (JobResponseVO jobResponseVO : jobResponseList) { + SystemUser systemUser = systemUserMapper.selectById(jobResponseVO.getOwerId()); + if (Objects.nonNull(systemUser)) { + jobResponseVO.setOwerName(systemUser.getUsername()); + } + } return new PageResult<>(pageDTO, jobResponseList); } @@ -142,6 +162,7 @@ public class JobServiceImpl implements JobService { job.setNextTriggerAt(calculateNextTriggerAt(jobRequestVO, DateUtils.toNowMilli())); job.setNamespaceId(UserSessionUtils.currentUserSession().getNamespaceId()); job.setNotifyIds(JsonUtil.toJsonString(jobRequestVO.getNotifyIds())); + job.setOwerId(jobRequestVO.getOwerId()); job.setId(null); return 1 == jobMapper.insert(job); } @@ -156,6 +177,7 @@ public class JobServiceImpl implements JobService { // 判断常驻任务 Job updateJob = JobConverter.INSTANCE.convert(jobRequestVO); updateJob.setNotifyIds(JsonUtil.toJsonString(jobRequestVO.getNotifyIds())); + updateJob.setOwerId(jobRequestVO.getOwerId()); updateJob.setResident(isResident(jobRequestVO)); updateJob.setNamespaceId(job.getNamespaceId()); diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyConfigServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyConfigServiceImpl.java index c950d3853..ada1e43b0 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyConfigServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyConfigServiceImpl.java @@ -53,7 +53,7 @@ public class NotifyConfigServiceImpl implements NotifyConfigService { .eq(StrUtil.isNotBlank(queryVO.getGroupName()), NotifyConfig::getGroupName, queryVO.getGroupName()) .eq(Objects.nonNull(queryVO.getNotifyStatus()), NotifyConfig::getNotifyStatus, queryVO.getNotifyStatus()) .eq(Objects.nonNull(queryVO.getSystemTaskType()), NotifyConfig::getSystemTaskType, queryVO.getSystemTaskType()) - .like(StrUtil.isNotBlank(queryVO.getNotifyName()), NotifyConfig::getNotifyName, queryVO.getNotifyName()) + .likeRight(StrUtil.isNotBlank(queryVO.getNotifyName()), NotifyConfig::getNotifyName, queryVO.getNotifyName()) .orderByDesc(NotifyConfig::getId)) .getRecords();