From a4a41c4ab71aeaf87fc9cbdf7d05a008fbc49025 Mon Sep 17 00:00:00 2001 From: tjq Date: Fri, 16 Sep 2022 23:28:42 +0800 Subject: [PATCH] feat: define JobLogConfig --- .../powerjob/common/model/JobLogConfig.java | 45 +++++++++++++++++++ .../request/http/SaveJobInfoRequest.java | 11 +++++ .../common/request/query/JobInfoQuery.java | 2 + .../powerjob/common/response/JobInfoDTO.java | 12 +++++ .../server/core/service/JobService.java | 5 +++ .../persistence/remote/model/JobInfoDO.java | 9 ++++ .../server/web/response/JobInfoVO.java | 16 +++++++ 7 files changed, 100 insertions(+) create mode 100644 powerjob-common/src/main/java/tech/powerjob/common/model/JobLogConfig.java diff --git a/powerjob-common/src/main/java/tech/powerjob/common/model/JobLogConfig.java b/powerjob-common/src/main/java/tech/powerjob/common/model/JobLogConfig.java new file mode 100644 index 00000000..edc54467 --- /dev/null +++ b/powerjob-common/src/main/java/tech/powerjob/common/model/JobLogConfig.java @@ -0,0 +1,45 @@ +package tech.powerjob.common.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +/** + * 任务日志配置 + * + * @author yhz + * @since 2022/9/16 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class JobLogConfig { + /** + * log type {@link LogType} + */ + private Integer type; + /** + * log level {@link tech.powerjob.common.enums.LogLevel} + */ + private Integer level; + + @Getter + @AllArgsConstructor + public enum LogType { + ONLINE(1), + LOCAL(2); + private final Integer v; + + public LogType of(Integer type) { + for (LogType logType : values()) { + if (logType.v.equals(type)) { + return logType; + } + } + return ONLINE; + } + } +} diff --git a/powerjob-common/src/main/java/tech/powerjob/common/request/http/SaveJobInfoRequest.java b/powerjob-common/src/main/java/tech/powerjob/common/request/http/SaveJobInfoRequest.java index e0541527..a031b35f 100644 --- a/powerjob-common/src/main/java/tech/powerjob/common/request/http/SaveJobInfoRequest.java +++ b/powerjob-common/src/main/java/tech/powerjob/common/request/http/SaveJobInfoRequest.java @@ -5,6 +5,7 @@ import tech.powerjob.common.enums.ExecuteType; import tech.powerjob.common.enums.ProcessorType; import tech.powerjob.common.enums.TimeExpressionType; import tech.powerjob.common.model.AlarmConfig; +import tech.powerjob.common.model.JobLogConfig; import tech.powerjob.common.model.LifeCycle; import tech.powerjob.common.utils.CommonUtils; import lombok.Data; @@ -139,6 +140,16 @@ public class SaveJobInfoRequest { */ private AlarmConfig alarmConfig; + /** + * 任务归类,开放给接入方自由定制 + */ + private String tag; + + /** + * 日志配置,包括日志级别、日志方式等配置信息 + */ + private JobLogConfig logConfig; + /** * Check non-null properties. diff --git a/powerjob-common/src/main/java/tech/powerjob/common/request/query/JobInfoQuery.java b/powerjob-common/src/main/java/tech/powerjob/common/request/query/JobInfoQuery.java index aa208900..d726b545 100644 --- a/powerjob-common/src/main/java/tech/powerjob/common/request/query/JobInfoQuery.java +++ b/powerjob-common/src/main/java/tech/powerjob/common/request/query/JobInfoQuery.java @@ -50,4 +50,6 @@ public class JobInfoQuery extends PowerQuery { private Date gmtModifiedGt; private Integer dispatchStrategyEq; + + private String tagEq; } diff --git a/powerjob-common/src/main/java/tech/powerjob/common/response/JobInfoDTO.java b/powerjob-common/src/main/java/tech/powerjob/common/response/JobInfoDTO.java index 0c04ffa5..567a9614 100644 --- a/powerjob-common/src/main/java/tech/powerjob/common/response/JobInfoDTO.java +++ b/powerjob-common/src/main/java/tech/powerjob/common/response/JobInfoDTO.java @@ -2,6 +2,7 @@ package tech.powerjob.common.response; import lombok.Data; import tech.powerjob.common.model.AlarmConfig; +import tech.powerjob.common.model.JobLogConfig; import java.util.Date; @@ -125,4 +126,15 @@ public class JobInfoDTO { private String lifecycle; private AlarmConfig alarmConfig; + + /** + * 任务归类,开放给接入方自由定制 + */ + private String tag; + + /** + * 日志配置,包括日志级别、日志方式等配置信息 + */ + private JobLogConfig logConfig; + } diff --git a/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/service/JobService.java b/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/service/JobService.java index 62591f3b..b3fe7703 100644 --- a/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/service/JobService.java +++ b/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/service/JobService.java @@ -1,6 +1,7 @@ package tech.powerjob.server.core.service; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.data.jpa.domain.Specification; @@ -107,6 +108,10 @@ public class JobService { } jobInfoDO.setAlarmConfig(JSON.toJSONString(request.getAlarmConfig())); } + // 日志配置 + if (request.getLogConfig() != null) { + jobInfoDO.setLogConfig(JSONObject.toJSONString(request.getLogConfig())); + } JobInfoDO res = jobInfoRepository.saveAndFlush(jobInfoDO); return res.getId(); } diff --git a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/remote/model/JobInfoDO.java b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/remote/model/JobInfoDO.java index 7abdd9dc..3fba4f45 100644 --- a/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/remote/model/JobInfoDO.java +++ b/powerjob-server/powerjob-server-persistence/src/main/java/tech/powerjob/server/persistence/remote/model/JobInfoDO.java @@ -145,4 +145,13 @@ public class JobInfoDO { */ private String alarmConfig; + /** + * 任务归类,开放给接入方自由定制 + */ + private String tag; + + /** + * 日志配置,包括日志级别、日志方式等配置信息 + */ + private String logConfig; } diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java index 9bda80ff..d30679b9 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java @@ -1,10 +1,12 @@ package tech.powerjob.server.web.response; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import tech.powerjob.common.enums.ExecuteType; import tech.powerjob.common.enums.ProcessorType; import tech.powerjob.common.enums.TimeExpressionType; import tech.powerjob.common.model.AlarmConfig; +import tech.powerjob.common.model.JobLogConfig; import tech.powerjob.common.model.LifeCycle; import tech.powerjob.common.utils.CommonUtils; import tech.powerjob.server.common.SJ; @@ -144,6 +146,16 @@ public class JobInfoVO { private AlarmConfig alarmConfig; + /** + * 任务归类,开放给接入方自由定制 + */ + private String tag; + + /** + * 日志配置,包括日志级别、日志方式等配置信息 + */ + private JobLogConfig logConfig; + public static JobInfoVO from(JobInfoDO jobInfoDO) { JobInfoVO jobInfoVO = new JobInfoVO(); BeanUtils.copyProperties(jobInfoDO, jobInfoVO); @@ -173,6 +185,10 @@ public class JobInfoVO { jobInfoVO.setLifeCycle(LifeCycle.parse(jobInfoDO.getLifecycle())); } + if (!StringUtils.isEmpty(jobInfoDO.getLogConfig())) { + jobInfoVO.setLogConfig(JSONObject.parseObject(jobInfoDO.getLogConfig(), JobLogConfig.class)); + } + return jobInfoVO; } }