From f35455ab2230b5dec1aeb7d5bf04e54e8f7fb1f7 Mon Sep 17 00:00:00 2001
From: lqyan
Date: Tue, 6 Feb 2024 17:34:33 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9B=B8=E5=85=B3=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../openapi/api/job/JHJobApiExecution.java | 58 +++++++++++------
.../sdk/openapi/api/job/JobActionEnum.java | 3 +
.../jhinno/sdk/openapi/api/job/JobInfo.java | 18 +-----
.../sdk/openapi/api/job/JobStatusEnum.java | 62 +++++++++++++++++++
.../sdk/openapi/api/job/JobsActionEnum.java | 5 +-
.../sdk/openapi/test/job/JobApiTest.java | 5 +-
6 files changed, 113 insertions(+), 38 deletions(-)
create mode 100644 src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java
diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java
index e590066..9068e3d 100644
--- a/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java
+++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java
@@ -85,8 +85,9 @@ public class JHJobApiExecution extends JHApiExecution {
* @param status 作业状态(非必填)
* @param condition 自定义条件(非必填)
* @return 作业列表
+ * @see JobStatusEnum
*/
- public PageJobInfo getJobPage(String username, Integer page, Integer pageSize, String name, String status, Map condition) {
+ public PageJobInfo getJobPage(String username, Integer page, Integer pageSize, String name, JobStatusEnum status, Map condition) {
Map params = new HashMap<>(5);
if (page != null) {
params.put("page", page);
@@ -97,8 +98,8 @@ public class JHJobApiExecution extends JHApiExecution {
if (StringUtils.isNotBlank(name)) {
params.put("jobName", name);
}
- if (StringUtils.isBlank(status)) {
- params.put("status", status);
+ if (status != null) {
+ params.put("status", status.getStatus());
}
if (CollectionUtil.isNotEmpty(condition)) {
params.put("condition", JSONUtil.toJsonStr(params));
@@ -108,6 +109,22 @@ public class JHJobApiExecution extends JHApiExecution {
});
}
+ /**
+ * 分页查询作业列表
+ * 作业名、作业状态等为非必填自动,如果为空则没有添加该查询条件
condition) {
+ return getJobPage(username, page, pageSize, name, JobStatusEnum.getJobStatus(status), condition);
+ }
/**
* 查询作业详情
@@ -157,18 +174,7 @@ public class JHJobApiExecution extends JHApiExecution {
/**
* 分页检索作业状态
*
- * status(作业状态)的取值如下:
- *
- * - RUN(运行)
- * - PEND(等待)
- * - PSUSP(等待中挂起)
- * - USUSP(用户挂起)
- * - SSUSP(系统挂起)
- * - ZOMBI(僵尸)
- * - DONE(完成)
- * - EXIT(退出)
- * - UNKNOWN#UNKWN(状态不明)
- *
+ * 可通过{@link JobStatusEnum#getJobStatus(String)} 获得{@link JobStatusEnum}
*
* @param username 用户名
* @param status 作业状态
@@ -176,8 +182,8 @@ public class JHJobApiExecution extends JHApiExecution {
* @param pageSize 分页大小
* @return 作业列表
*/
- public List getJobsByStatus(String username, String status, Integer page, Integer pageSize) {
- if (StringUtils.isBlank(status)) {
+ public List getJobsByStatus(String username, JobStatusEnum status, Integer page, Integer pageSize) {
+ if (status == null) {
throw new ArgsException("status不能为空!");
}
Map params = new HashMap<>(3);
@@ -187,12 +193,27 @@ public class JHJobApiExecution extends JHApiExecution {
if (pageSize != null) {
params.put("pageSize", pageSize);
}
- String path = JHApiClient.getUrl(JobPathConstant.JOB_LIST_BY_STATUS_PATH.replace("{status}", status), params);
+ String path = JHApiClient.getUrl(JobPathConstant.JOB_LIST_BY_STATUS_PATH.replace("{status}", status.getStatus()), params);
return get(path, username, new TypeReference>>() {
});
}
+ /**
+ * 作业的状态(必填),
+ *
+ * @param username 用户名
+ * @param status 作业状态,取值见{@link JobStatusEnum#getStatus()}
+ * @param page 页码
+ * @param pageSize 分页大小
+ * @return 作业列表
+ * @see JobStatusEnum
+ */
+ public List getJobsByStatus(String username, String status, Integer page, Integer pageSize) {
+ return getJobsByStatus(username, JobStatusEnum.getJobStatus(status), page, pageSize);
+ }
+
+
/**
* 通过作业id列表查询作业列表
*
@@ -283,7 +304,6 @@ public class JHJobApiExecution extends JHApiExecution {
/**
- * +
* 查询制定作业的作业历史
*
* @param username 用户名
diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java
index 8c32496..f0bd9cb 100644
--- a/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java
+++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobActionEnum.java
@@ -53,6 +53,9 @@ public enum JobActionEnum {
* @throws ArgsException action的类型不存在的异常
*/
public static JobActionEnum getJobAction(String action) {
+ if (StringUtils.isBlank(action)) {
+ throw new ArgsException("操作标识不能为空!");
+ }
for (JobActionEnum value : values()) {
if (StringUtils.equals(action, value.getAction())) {
return value;
diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java
index 9791127..266953e 100644
--- a/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java
+++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobInfo.java
@@ -36,22 +36,8 @@ public class JobInfo {
/**
* 作业状态
*
- * 可能的取值:
- *
- * - RUN(运行)
- * - PEND(等待)
- * - PSUSP(等待中挂起)
- * - USUSP(用户挂起)
- * - SSUSP(系统挂起)
- * - ZOMBI(僵尸)
- * - DONE(完成)
- * - EXIT(退出)
- * - UNKNOWN#UNKWN(状态不明)
- *
- *
- *
- *
- * 数组作业(及arrayJob="true")时status的类型是一个map
+ * 可能的取值见:{@link JobStatusEnum}
+ * 如果作业是数组作业(即arrayJob="true")时status的类型是一个map类型
* 如:{"done":1,"run":12}
*
*/
diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java
new file mode 100644
index 0000000..b861a98
--- /dev/null
+++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobStatusEnum.java
@@ -0,0 +1,62 @@
+package com.jhinno.sdk.openapi.api.job;
+
+import com.jhinno.sdk.openapi.ArgsException;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 作业状态
+ *
+ * 该枚举表示作业的状态的类型,其中status标识接口中的值,name标识对应的中文状态
+ *
+ * @author yanlongqi
+ * @date 2024/2/6 17:03
+ */
+
+@Getter
+@AllArgsConstructor
+public enum JobStatusEnum {
+
+ RUN("RUN", "运行"),
+ PEND("PEND", "等待"),
+ PSUSP("PSUSP", "等待中挂起"),
+ USUSP("USUSP", "用户挂起"),
+ SSUSP("SSUSP", "系统挂起"),
+ ZOMBI("ZOMBI", "僵尸"),
+ DONE("DONE", "完成"),
+ EXIT("EXIT", "退出"),
+ UNKNOWN_UNKWN("UNKNOWN#UNKWN", "状态不明");
+
+
+ /**
+ * 状态标识
+ */
+ private final String status;
+
+ /**
+ * 状态名称
+ */
+ private final String name;
+
+
+ /**
+ * 使用标号获得JobStatusEnum对象
+ *
+ * @param status 作业状态
+ * @return 作业状态
+ * @throws ArgsException 参数异常
+ */
+ public static JobStatusEnum getJobStatus(String status) {
+ if (StringUtils.isBlank(status)) {
+ throw new ArgsException("作业状态不能为空!");
+ }
+ for (JobStatusEnum value : values()) {
+ if (StringUtils.equals(status, value.getStatus())) {
+ return value;
+ }
+ }
+ throw new ArgsException(status + "类型不存在!");
+ }
+
+}
diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java
index ada179f..357222c 100644
--- a/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java
+++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobsActionEnum.java
@@ -38,9 +38,12 @@ public enum JobsActionEnum {
*
* @param action 操作字符
* @return 作业操作类型
- * @exception ArgsException action的类型不存在的异常
+ * @throws ArgsException action的类型不存在的异常
*/
public static JobsActionEnum getJobAction(String action) {
+ if (StringUtils.isBlank(action)) {
+ throw new ArgsException("操作标识不能为空!");
+ }
for (JobsActionEnum value : values()) {
if (StringUtils.equals(action, value.getAction())) {
return value;
diff --git a/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java b/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java
index 4784d82..b4d9286 100644
--- a/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java
+++ b/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java
@@ -2,6 +2,7 @@ package com.jhinno.sdk.openapi.test.job;
import com.jhinno.sdk.openapi.api.job.JHJobApiExecution;
import com.jhinno.sdk.openapi.api.job.JobHistoryInfo;
+import com.jhinno.sdk.openapi.api.job.JobStatusEnum;
import com.jhinno.sdk.openapi.api.job.PageJobInfo;
import com.jhinno.sdk.openapi.test.JHClientConfig;
import org.junit.Test;
@@ -47,7 +48,7 @@ public class JobApiTest {
*/
@Test
public void testGetJobPage() {
- PageJobInfo jhadmin = execution.getJobPage("jhadmin", 1, 5, null, null, null);
+ PageJobInfo jhadmin = execution.getJobPage("jhadmin", 1, 5, null, JobStatusEnum.DONE, null);
System.out.println(jhadmin);
}
@@ -73,7 +74,7 @@ public class JobApiTest {
*/
@Test
public void testGetJobsByStatus() {
- System.out.println(execution.getJobsByStatus("jhadmin", "DONE", 1, 10));
+ System.out.println(execution.getJobsByStatus("jhadmin", JobStatusEnum.DONE, 1, 10));
}