This is an automated email from the ASF dual-hosted git repository.
healchow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new bfbfcab17 [INLONG-5285][Manager] Support custom query for group,
stream, source and sink (#5287)
bfbfcab17 is described below
commit bfbfcab17e98da4da66df710e800506783e7db48
Author: ciscozhou <[email protected]>
AuthorDate: Sun Jul 31 17:22:11 2022 +0800
[INLONG-5285][Manager] Support custom query for group, stream, source and
sink (#5287)
---
.../manager/common/enums/OrderFieldEnum.java} | 39 ++++++++--------------
.../manager/common/enums/OrderTypeEnum.java} | 39 ++++++++--------------
.../resources/mappers/InlongGroupEntityMapper.xml | 9 ++++-
.../resources/mappers/InlongStreamEntityMapper.xml | 9 ++++-
.../resources/mappers/StreamSinkEntityMapper.xml | 9 ++++-
.../resources/mappers/StreamSourceEntityMapper.xml | 9 ++++-
.../inlong/manager/pojo/common/PageRequest.java | 28 ++++++++++++++--
.../service/group/InlongGroupServiceImpl.java | 4 +++
.../service/sink/StreamSinkServiceImpl.java | 4 +++
.../service/source/StreamSourceServiceImpl.java | 4 +++
.../service/stream/InlongStreamServiceImpl.java | 4 +++
11 files changed, 102 insertions(+), 56 deletions(-)
diff --git
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/OrderFieldEnum.java
similarity index 50%
copy from
inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
copy to
inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/OrderFieldEnum.java
index 2589100b2..1595d94b7 100644
---
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
+++
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/OrderFieldEnum.java
@@ -15,38 +15,27 @@
* limitations under the License.
*/
-package org.apache.inlong.manager.pojo.common;
+package org.apache.inlong.manager.common.enums;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import org.apache.inlong.manager.common.beans.PageRequest;
/**
- * Pagination request
+ * The order field enumeration.
*/
-@ApiModel(value = "Pagination request")
-public class PageRequest {
+public enum OrderFieldEnum {
- @ApiModelProperty(value = "current page, default 1", required = true,
example = "1")
- private int pageNum = 1;
+ CREATE_TIME,
- @ApiModelProperty(value = "page size, default 10", required = true,
example = "10")
- private int pageSize = 10;
+ MODIFY_TIME;
- public int getPageNum() {
- return pageNum;
+ public static void checkOrderField(PageRequest pageRequest) {
+ for (OrderFieldEnum value : values()) {
+ if (value.name().equalsIgnoreCase(pageRequest.getOrderField())) {
+ pageRequest.setOrderField(value.name().toLowerCase());
+ return;
+ }
+ }
+ pageRequest.setOrderField(CREATE_TIME.name().toLowerCase());
}
- public PageRequest setPageNum(int pageNum) {
- this.pageNum = pageNum;
- return this;
- }
-
- public int getPageSize() {
- return pageSize;
- }
-
- public PageRequest setPageSize(int pageSize) {
- this.pageSize = pageSize;
- return this;
- }
}
diff --git
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/OrderTypeEnum.java
similarity index 50%
copy from
inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
copy to
inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/OrderTypeEnum.java
index 2589100b2..03f509e8c 100644
---
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
+++
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/OrderTypeEnum.java
@@ -15,38 +15,27 @@
* limitations under the License.
*/
-package org.apache.inlong.manager.pojo.common;
+package org.apache.inlong.manager.common.enums;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import org.apache.inlong.manager.common.beans.PageRequest;
/**
- * Pagination request
+ * The order type enumeration.
*/
-@ApiModel(value = "Pagination request")
-public class PageRequest {
+public enum OrderTypeEnum {
- @ApiModelProperty(value = "current page, default 1", required = true,
example = "1")
- private int pageNum = 1;
+ DESC,
- @ApiModelProperty(value = "page size, default 10", required = true,
example = "10")
- private int pageSize = 10;
+ ASC;
- public int getPageNum() {
- return pageNum;
+ public static void checkOrderType(PageRequest pageRequest) {
+ for (OrderTypeEnum value : values()) {
+ if (value.name().equalsIgnoreCase(pageRequest.getOrderType())) {
+ pageRequest.setOrderType(value.name().toLowerCase());
+ return;
+ }
+ }
+ pageRequest.setOrderType(DESC.name().toLowerCase());
}
- public PageRequest setPageNum(int pageNum) {
- this.pageNum = pageNum;
- return this;
- }
-
- public int getPageSize() {
- return pageSize;
- }
-
- public PageRequest setPageSize(int pageSize) {
- this.pageSize = pageSize;
- return this;
- }
}
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
index 1863ea0c1..f2b2b29e0 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
@@ -154,7 +154,14 @@
</foreach>
</if>
</where>
- order by modify_time desc
+ <choose>
+ <when test="orderField != null and orderField != '' and orderType
!= null and orderType != ''">
+ order by ${orderField} ${orderType}
+ </when>
+ <otherwise>
+ order by create_time desc
+ </otherwise>
+ </choose>
</select>
<select id="selectBriefList"
parameterType="org.apache.inlong.manager.pojo.group.InlongGroupPageRequest"
resultType="org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo">
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongStreamEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongStreamEntityMapper.xml
index b444a557e..f6b3a549a 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongStreamEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongStreamEntityMapper.xml
@@ -262,7 +262,14 @@
and stream.status = #{request.status, jdbcType=INTEGER}
</if>
</where>
- order by stream.modify_time desc
+ <choose>
+ <when test="request.orderField != null and request.orderField !=
'' and request.orderType != null and request.orderType != ''">
+ order by stream.${request.orderField} ${request.orderType}
+ </when>
+ <otherwise>
+ order by stream.create_time desc
+ </otherwise>
+ </choose>
</select>
<select id="selectBriefList"
resultType="org.apache.inlong.manager.pojo.stream.InlongStreamBriefInfo">
select id, inlong_group_id, inlong_stream_id, name, mq_resource,
modify_time
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
index fd2329bdb..ee65e9326 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
@@ -235,8 +235,15 @@
<if test="request.sortConsumerGroup != null and
request.sortConsumerGroup != ''">
and sort_consumer_group = #{request.sortConsumerGroup,
jdbcType=VARCHAR}
</if>
- order by modify_time desc
</where>
+ <choose>
+ <when test="request.orderField != null and request.orderField !=
'' and request.orderType != null and request.orderType != ''">
+ order by ${request.orderField} ${request.orderType}
+ </when>
+ <otherwise>
+ order by create_time desc
+ </otherwise>
+ </choose>
</select>
<select id="selectSummary"
resultType="org.apache.inlong.manager.pojo.sink.SinkBriefInfo">
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSourceEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSourceEntityMapper.xml
index cd5c08547..7b64a8c18 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSourceEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSourceEntityMapper.xml
@@ -125,8 +125,15 @@
<if test="request.status != null and request.status != ''">
and status = #{request.status, jdbcType=INTEGER}
</if>
- order by modify_time desc
</where>
+ <choose>
+ <when test="request.orderField != null and request.orderField !=
'' and request.orderType != null and request.orderType != ''">
+ order by ${request.orderField} ${request.orderType}
+ </when>
+ <otherwise>
+ order by create_time desc
+ </otherwise>
+ </choose>
</select>
<select id="selectByAgentIp"
resultType="org.apache.inlong.manager.dao.entity.StreamSourceEntity">
select
diff --git
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
index 2589100b2..8c1a105c8 100644
---
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
+++
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageRequest.java
@@ -26,12 +26,36 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(value = "Pagination request")
public class PageRequest {
- @ApiModelProperty(value = "current page, default 1", required = true,
example = "1")
+ @ApiModelProperty(value = "Current page number, default is 1")
private int pageNum = 1;
- @ApiModelProperty(value = "page size, default 10", required = true,
example = "10")
+ @ApiModelProperty(value = "Page size, default is 10")
private int pageSize = 10;
+ @ApiModelProperty(value = "Order field, support create_time and
modify_time, default is create_time")
+ private String orderField = "create_time";
+
+ @ApiModelProperty(value = "Order type, only support asc and desc, default
is desc")
+ private String orderType = "desc";
+
+ public String getOrderField() {
+ return orderField;
+ }
+
+ public PageRequest setOrderField(String orderField) {
+ this.orderField = orderField;
+ return this;
+ }
+
+ public String getOrderType() {
+ return orderType;
+ }
+
+ public PageRequest setOrderType(String orderType) {
+ this.orderType = orderType;
+ return this;
+ }
+
public int getPageNum() {
return pageNum;
}
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
index 771b84347..fc8014db8 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
@@ -27,6 +27,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.inlong.manager.common.consts.InlongConstants;
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
import org.apache.inlong.manager.common.enums.GroupStatus;
+import org.apache.inlong.manager.common.enums.OrderFieldEnum;
+import org.apache.inlong.manager.common.enums.OrderTypeEnum;
import org.apache.inlong.manager.common.enums.SourceType;
import org.apache.inlong.manager.common.exceptions.BusinessException;
import org.apache.inlong.manager.common.exceptions.WorkflowListenerException;
@@ -176,6 +178,8 @@ public class InlongGroupServiceImpl implements
InlongGroupService {
request.setPageSize(MAX_PAGE_SIZE);
}
PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ OrderFieldEnum.checkOrderField(request);
+ OrderTypeEnum.checkOrderType(request);
Page<InlongGroupEntity> entityPage = (Page<InlongGroupEntity>)
groupMapper.selectByCondition(request);
List<InlongGroupBriefInfo> briefInfos =
CommonBeanUtils.copyListProperties(entityPage,
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
index 8c66461de..8e6bceb6e 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkServiceImpl.java
@@ -27,6 +27,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.inlong.manager.common.consts.InlongConstants;
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
import org.apache.inlong.manager.common.enums.GroupStatus;
+import org.apache.inlong.manager.common.enums.OrderFieldEnum;
+import org.apache.inlong.manager.common.enums.OrderTypeEnum;
import org.apache.inlong.manager.common.enums.SinkStatus;
import org.apache.inlong.manager.common.enums.SinkType;
import org.apache.inlong.manager.common.exceptions.BusinessException;
@@ -183,6 +185,8 @@ public class StreamSinkServiceImpl implements
StreamSinkService {
Preconditions.checkNotNull(request.getInlongGroupId(),
ErrorCodeEnum.GROUP_ID_IS_EMPTY.getMessage());
PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ OrderFieldEnum.checkOrderField(request);
+ OrderTypeEnum.checkOrderType(request);
List<StreamSinkEntity> entityPage =
sinkMapper.selectByCondition(request);
Map<SinkType, Page<StreamSinkEntity>> sinkMap = Maps.newHashMap();
for (StreamSinkEntity streamSink : entityPage) {
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
index 9021818b7..eeb8315a4 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
@@ -27,6 +27,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.inlong.manager.common.consts.InlongConstants;
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
import org.apache.inlong.manager.common.enums.GroupStatus;
+import org.apache.inlong.manager.common.enums.OrderFieldEnum;
+import org.apache.inlong.manager.common.enums.OrderTypeEnum;
import org.apache.inlong.manager.common.enums.SourceStatus;
import org.apache.inlong.manager.common.enums.SourceType;
import org.apache.inlong.manager.common.exceptions.BusinessException;
@@ -171,6 +173,8 @@ public class StreamSourceServiceImpl implements
StreamSourceService {
Preconditions.checkNotNull(request.getInlongGroupId(),
ErrorCodeEnum.GROUP_ID_IS_EMPTY.getMessage());
PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ OrderFieldEnum.checkOrderField(request);
+ OrderTypeEnum.checkOrderType(request);
List<StreamSourceEntity> entityList =
sourceMapper.selectByCondition(request);
// Encapsulate the paging query results into the PageInfo object to
obtain related paging information
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
index c305661e8..5c00ed54c 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
@@ -25,6 +25,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.inlong.manager.common.consts.InlongConstants;
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
import org.apache.inlong.manager.common.enums.GroupStatus;
+import org.apache.inlong.manager.common.enums.OrderFieldEnum;
+import org.apache.inlong.manager.common.enums.OrderTypeEnum;
import org.apache.inlong.manager.common.enums.StreamStatus;
import org.apache.inlong.manager.common.exceptions.BusinessException;
import org.apache.inlong.manager.pojo.sink.SinkBriefInfo;
@@ -201,6 +203,8 @@ public class InlongStreamServiceImpl implements
InlongStreamService {
LOGGER.debug("begin to list inlong stream page by {}", request);
PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ OrderFieldEnum.checkOrderField(request);
+ OrderTypeEnum.checkOrderType(request);
Page<InlongStreamEntity> entityPage = (Page<InlongStreamEntity>)
streamMapper.selectByCondition(request);
List<InlongStreamBriefInfo> streamList =
CommonBeanUtils.copyListProperties(entityPage,
InlongStreamBriefInfo::new);