This is an automated email from the ASF dual-hosted git repository.

dockerzhang 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 ddbdb226d9 [INLONG-8447][Manager] Optimize paging logic (#8448)
ddbdb226d9 is described below

commit ddbdb226d9417b7b8d1edc410179c7caaaaec7c2
Author: vernedeng <[email protected]>
AuthorDate: Wed Sep 13 19:10:33 2023 +0800

    [INLONG-8447][Manager] Optimize paging logic (#8448)
---
 inlong-manager/manager-pojo/pom.xml                |  4 ++
 .../inlong/manager/pojo/common/PageResult.java     | 18 ++++++++
 .../service/cluster/InlongClusterServiceImpl.java  | 26 ++++-------
 .../service/consume/InlongConsumeServiceImpl.java  |  3 +-
 .../core/impl/WorkflowApproverServiceImpl.java     |  6 +--
 .../core/impl/WorkflowEventServiceImpl.java        |  8 +---
 .../service/group/InlongGroupServiceImpl.java      |  8 ++--
 .../service/heartbeat/HeartbeatServiceImpl.java    | 19 +++-----
 .../manager/service/node/DataNodeServiceImpl.java  |  8 +---
 .../manager/service/sink/AbstractSinkOperator.java |  9 +---
 .../service/source/AbstractSourceOperator.java     |  7 +--
 .../service/stream/InlongStreamServiceImpl.java    | 52 ++++++++++------------
 .../service/tenant/InlongTenantServiceImpl.java    |  9 +---
 .../transform/StreamTransformServiceImpl.java      | 11 ++---
 .../manager/service/user/InlongRoleService.java    |  5 +--
 .../service/user/InlongRoleServiceImpl.java        |  7 +--
 .../service/user/TenantRoleServiceImpl.java        |  6 +--
 .../manager/service/user/UserServiceImpl.java      |  9 ++--
 .../service/workflow/WorkflowServiceImpl.java      | 45 +++++++++----------
 .../service/user/InlongRoleServiceTest.java        |  8 ++--
 .../web/controller/InlongRoleController.java       |  4 +-
 21 files changed, 117 insertions(+), 155 deletions(-)

diff --git a/inlong-manager/manager-pojo/pom.xml 
b/inlong-manager/manager-pojo/pom.xml
index 7c8c8f3be4..6b8c54ffd7 100644
--- a/inlong-manager/manager-pojo/pom.xml
+++ b/inlong-manager/manager-pojo/pom.xml
@@ -92,6 +92,10 @@
             <artifactId>junit-jupiter</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
diff --git 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageResult.java
 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageResult.java
index 9d7bd4c0a0..a8ac47d24f 100644
--- 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageResult.java
+++ 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageResult.java
@@ -18,6 +18,7 @@
 package org.apache.inlong.manager.pojo.common;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.github.pagehelper.Page;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -25,6 +26,9 @@ import lombok.Data;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Data
 @JsonIgnoreProperties(ignoreUnknown = true)
@@ -68,6 +72,20 @@ public final class PageResult<T> implements Serializable {
         this.total = (long) list.size();
     }
 
+    public <R> PageResult<R> map(Function<? super T, ? extends R> mapper) {
+        List<R> newList = 
list.stream().map(mapper).collect(Collectors.toList());
+        return new PageResult<>(newList, total, pageNum, pageSize);
+    }
+
+    public PageResult<T> foreach(Consumer<? super T> action) {
+        list.forEach(action);
+        return this;
+    }
+
+    public static <T> PageResult<T> fromPage(Page<T> page) {
+        return new PageResult<>(page.getResult(), page.getTotal(), 
page.getPageNum(), page.getPageSize());
+    }
+
     public static <T> PageResult<T> empty() {
         return new PageResult<>(0L);
     }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
index dede44da6b..a2cbad20f2 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
@@ -232,11 +232,9 @@ public class InlongClusterServiceImpl implements 
InlongClusterService {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<InlongClusterTagEntity> entityPage = 
(Page<InlongClusterTagEntity>) clusterTagMapper
                 .selectByCondition(request);
+        PageResult<ClusterTagResponse> pageResult = 
PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
ClusterTagResponse::new));
 
-        List<ClusterTagResponse> tagList = 
CommonBeanUtils.copyListProperties(entityPage, ClusterTagResponse::new);
-
-        PageResult<ClusterTagResponse> pageResult = new PageResult<>(tagList,
-                entityPage.getTotal(), entityPage.getPageNum(), 
entityPage.getPageSize());
         LOGGER.debug("success to list cluster tag by {}", request);
         return pageResult;
     }
@@ -567,16 +565,11 @@ public class InlongClusterServiceImpl implements 
InlongClusterService {
     public PageResult<ClusterInfo> list(ClusterPageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<InlongClusterEntity> entityPage = (Page<InlongClusterEntity>) 
clusterMapper.selectByCondition(request);
-        List<ClusterInfo> list = entityPage.stream()
+        PageResult<ClusterInfo> pageResult = PageResult.fromPage(entityPage)
                 .map(entity -> {
                     InlongClusterOperator instance = 
clusterOperatorFactory.getInstance(entity.getType());
                     return instance.getFromEntity(entity);
-                })
-                .collect(Collectors.toList());
-
-        PageResult<ClusterInfo> pageResult = new PageResult<>(
-                list, entityPage.getTotal(),
-                entityPage.getPageNum(), entityPage.getPageSize());
+                });
 
         LOGGER.debug("success to list inlong cluster by {}", request);
         return pageResult;
@@ -926,10 +919,8 @@ public class InlongClusterServiceImpl implements 
InlongClusterService {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<InlongClusterNodeEntity> entityPage =
                 (Page<InlongClusterNodeEntity>) 
clusterNodeMapper.selectByCondition(request);
-        List<ClusterNodeResponse> nodeList = 
CommonBeanUtils.copyListProperties(entityPage, ClusterNodeResponse::new);
-
-        PageResult<ClusterNodeResponse> pageResult = new 
PageResult<>(nodeList, entityPage.getTotal(),
-                entityPage.getPageNum(), entityPage.getPageSize());
+        PageResult<ClusterNodeResponse> pageResult = 
PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
ClusterNodeResponse::new));
 
         LOGGER.debug("success to list inlong cluster node by {}", request);
         return pageResult;
@@ -1501,9 +1492,10 @@ public class InlongClusterServiceImpl implements 
InlongClusterService {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<TenantClusterTagEntity> entityPage =
                 (Page<TenantClusterTagEntity>) 
tenantClusterTagMapper.selectByCondition(request);
-        List<TenantClusterTagInfo> infoList = 
CommonBeanUtils.copyListProperties(entityPage, TenantClusterTagInfo::new);
+        PageResult<TenantClusterTagInfo> pageResult = 
PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
TenantClusterTagInfo::new));
         LOGGER.debug("success to list tenant tag with request={}", request);
-        return new PageResult<>(infoList, entityPage.getTotal(), 
entityPage.getPageNum(), entityPage.getPageSize());
+        return pageResult;
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/consume/InlongConsumeServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/consume/InlongConsumeServiceImpl.java
index 5f44810632..4225579353 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/consume/InlongConsumeServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/consume/InlongConsumeServiceImpl.java
@@ -178,8 +178,7 @@ public class InlongConsumeServiceImpl implements 
InlongConsumeService {
         OrderFieldEnum.checkOrderField(request);
         OrderTypeEnum.checkOrderType(request);
         Page<InlongConsumeBriefInfo> briefInfos = 
(Page<InlongConsumeBriefInfo>) consumeMapper.selectBriefList(request);
-        PageResult<InlongConsumeBriefInfo> pageResult = new 
PageResult<>(briefInfos,
-                briefInfos.getTotal(), briefInfos.getPageNum(), 
briefInfos.getPageSize());
+        PageResult<InlongConsumeBriefInfo> pageResult = 
PageResult.fromPage(briefInfos);
 
         LOGGER.debug("success to list inlong consume for {}", request);
         return pageResult;
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowApproverServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowApproverServiceImpl.java
index c2899215fe..656647d800 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowApproverServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowApproverServiceImpl.java
@@ -118,10 +118,8 @@ public class WorkflowApproverServiceImpl implements 
WorkflowApproverService {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
 
         Page<WorkflowApproverEntity> page = (Page<WorkflowApproverEntity>) 
approverMapper.selectByCondition(request);
-        List<ApproverResponse> resultList = 
CommonBeanUtils.copyListProperties(page,
-                ApproverResponse::new);
-
-        return new PageResult<>(resultList, page.getTotal(), 
page.getPageNum(), page.getPageSize());
+        return PageResult.fromPage(page)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
ApproverResponse::new));
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowEventServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowEventServiceImpl.java
index 7b1494566b..be4aa7f3c0 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowEventServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/WorkflowEventServiceImpl.java
@@ -33,8 +33,6 @@ import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 /**
  * Workflow event related services
  */
@@ -56,10 +54,8 @@ public class WorkflowEventServiceImpl implements 
WorkflowEventService {
     public PageResult<EventLogResponse> list(EventLogRequest query) {
         PageHelper.startPage(query.getPageNum(), query.getPageSize());
         Page<WorkflowEventLogEntity> page = (Page<WorkflowEventLogEntity>) 
queryService.listEventLog(query);
-
-        List<EventLogResponse> viewList = 
CommonBeanUtils.copyListProperties(page, EventLogResponse::new);
-
-        return new PageResult<>(viewList, page.getTotal(), page.getPageNum(), 
page.getPageSize());
+        return PageResult.fromPage(page)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
EventLogResponse::new));
     }
 
     @Override
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 5be12a3a3a..ed4e122296 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
@@ -316,9 +316,10 @@ public class InlongGroupServiceImpl implements 
InlongGroupService {
         OrderFieldEnum.checkOrderField(request);
         OrderTypeEnum.checkOrderType(request);
         Page<InlongGroupEntity> entityPage = (Page<InlongGroupEntity>) 
groupMapper.selectByCondition(request);
+        PageResult<InlongGroupBriefInfo> pageResult = 
PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
InlongGroupBriefInfo::new));
 
-        List<InlongGroupBriefInfo> briefInfos = 
CommonBeanUtils.copyListProperties(entityPage,
-                InlongGroupBriefInfo::new);
+        List<InlongGroupBriefInfo> briefInfos = pageResult.getList();
 
         // list all related sources
         if (request.isListSources() && CollectionUtils.isNotEmpty(briefInfos)) 
{
@@ -337,9 +338,6 @@ public class InlongGroupServiceImpl implements 
InlongGroupService {
             });
         }
 
-        PageResult<InlongGroupBriefInfo> pageResult = new 
PageResult<>(briefInfos,
-                entityPage.getTotal(), entityPage.getPageNum(), 
entityPage.getPageSize());
-
         LOGGER.debug("success to list inlong group for {}", request);
         return pageResult;
     }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/heartbeat/HeartbeatServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/heartbeat/HeartbeatServiceImpl.java
index d3f634f769..ec45c3f9ba 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/heartbeat/HeartbeatServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/heartbeat/HeartbeatServiceImpl.java
@@ -278,31 +278,24 @@ public class HeartbeatServiceImpl implements 
HeartbeatService {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<ComponentHeartbeatEntity> entityPage =
                 (Page<ComponentHeartbeatEntity>) 
componentHeartbeatMapper.selectByCondition(request);
-        List<ComponentHeartbeatResponse> responseList = 
CommonBeanUtils.copyListProperties(entityPage,
-                ComponentHeartbeatResponse::new);
-
-        return new PageResult<>(responseList, entityPage.getTotal());
+        return PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
ComponentHeartbeatResponse::new));
     }
 
     private PageResult<GroupHeartbeatResponse> 
listGroupHeartbeatOpt(HeartbeatPageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<GroupHeartbeatEntity> entityPage = (Page<GroupHeartbeatEntity>) 
groupHeartbeatMapper.selectByCondition(
                 request);
-        List<GroupHeartbeatResponse> responseList = 
CommonBeanUtils.copyListProperties(entityPage,
-                GroupHeartbeatResponse::new);
-
-        return new PageResult<>(responseList,
-                entityPage.getTotal(), entityPage.getPageNum(), 
entityPage.getPageSize());
+        return PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
GroupHeartbeatResponse::new));
     }
 
     private PageResult<StreamHeartbeatResponse> 
listStreamHeartbeatOpt(HeartbeatPageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<StreamHeartbeatEntity> entityPage =
                 (Page<StreamHeartbeatEntity>) 
streamHeartbeatMapper.selectByCondition(request);
-        List<StreamHeartbeatResponse> responseList = 
CommonBeanUtils.copyListProperties(entityPage,
-                StreamHeartbeatResponse::new);
-
-        return new PageResult<>(responseList, entityPage.getTotal(), 
entityPage.getPageNum(), entityPage.getPageSize());
+        return PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
StreamHeartbeatResponse::new));
     }
 
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
index 4de9ef5dd0..4535f14f61 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
@@ -147,15 +147,11 @@ public class DataNodeServiceImpl implements 
DataNodeService {
     public PageResult<DataNodeInfo> list(DataNodePageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<DataNodeEntity> entityPage = (Page<DataNodeEntity>) 
dataNodeMapper.selectByCondition(request);
-        List<DataNodeInfo> list = entityPage.stream()
+        PageResult<DataNodeInfo> pageResult = PageResult.fromPage(entityPage)
                 .map(entity -> {
                     DataNodeOperator dataNodeOperator = 
operatorFactory.getInstance(entity.getType());
                     return dataNodeOperator.getFromEntity(entity);
-                }).collect(Collectors.toList());
-
-        PageResult<DataNodeInfo> pageResult = new PageResult<>(list, 
entityPage.getTotal(),
-                entityPage.getPageNum(), entityPage.getPageSize());
-
+                });
         LOGGER.debug("success to list data node by {}", request);
         return pageResult;
     }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/AbstractSinkOperator.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/AbstractSinkOperator.java
index 789065951f..44d8a58752 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/AbstractSinkOperator.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/AbstractSinkOperator.java
@@ -47,7 +47,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 /**
  * Default operation of stream sink.
@@ -110,13 +109,7 @@ public abstract class AbstractSinkOperator implements 
StreamSinkOperator {
         if (CollectionUtils.isEmpty(entityPage)) {
             return PageResult.empty();
         }
-
-        List<StreamSink> streamSinks = entityPage.getResult()
-                .stream()
-                .map(this::getFromEntity)
-                .collect(Collectors.toList());
-
-        return new PageResult<>(streamSinks, entityPage.getTotal(), 
entityPage.getPageNum(), entityPage.getPageSize());
+        return PageResult.fromPage(entityPage).map(this::getFromEntity);
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/AbstractSourceOperator.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/AbstractSourceOperator.java
index 863a5b8038..eaf75c9971 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/AbstractSourceOperator.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/AbstractSourceOperator.java
@@ -48,7 +48,6 @@ import 
org.springframework.transaction.annotation.Transactional;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 /**
  * Default operator of stream source.
@@ -112,11 +111,7 @@ public abstract class AbstractSourceOperator implements 
StreamSourceOperator {
         if (CollectionUtils.isEmpty(entityPage)) {
             return PageResult.empty();
         }
-
-        List<StreamSource> streamSources = entityPage.stream()
-                .map(this::getFromEntity)
-                .collect(Collectors.toList());
-        return new PageResult<>(streamSources, entityPage.getTotal(), 
entityPage.getPageNum(), entityPage.size());
+        return PageResult.fromPage(entityPage).map(this::getFromEntity);
     }
 
     @Override
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 b9562d5f4e..b9d8ef8d36 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
@@ -365,11 +365,8 @@ public class InlongStreamServiceImpl implements 
InlongStreamService {
         OrderFieldEnum.checkOrderField(request);
         OrderTypeEnum.checkOrderType(request);
         Page<InlongStreamEntity> entityPage = (Page<InlongStreamEntity>) 
streamMapper.selectByCondition(request);
-        List<InlongStreamBriefInfo> streamList = 
CommonBeanUtils.copyListProperties(entityPage,
-                InlongStreamBriefInfo::new);
-
-        PageResult<InlongStreamBriefInfo> pageResult = new 
PageResult<>(streamList,
-                entityPage.getTotal(), entityPage.getPageNum(), 
entityPage.getPageSize());
+        PageResult<InlongStreamBriefInfo> pageResult = 
PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
InlongStreamBriefInfo::new));
 
         LOGGER.debug("success to list inlong stream info for groupId={}", 
request.getInlongGroupId());
         return pageResult;
@@ -399,31 +396,28 @@ public class InlongStreamServiceImpl implements 
InlongStreamService {
         OrderFieldEnum.checkOrderField(request);
         OrderTypeEnum.checkOrderType(request);
         Page<InlongStreamEntity> page = (Page<InlongStreamEntity>) 
streamMapper.selectByCondition(request);
-        List<InlongStreamInfo> streamInfoList = 
CommonBeanUtils.copyListProperties(page, InlongStreamInfo::new);
-
-        // Convert and encapsulate the paged results
-        for (InlongStreamInfo streamInfo : streamInfoList) {
-            // Set the field information of the inlong stream
-            String streamId = streamInfo.getInlongStreamId();
-            unpackExtParams(streamInfo);
-            List<StreamField> streamFields = getStreamFields(groupId, 
streamId);
-            streamInfo.setFieldList(streamFields);
-            List<InlongStreamExtEntity> extEntities = 
streamExtMapper.selectByRelatedId(groupId, streamId);
-            List<InlongStreamExtInfo> streamExtInfos = 
CommonBeanUtils.copyListProperties(
-                    extEntities, InlongStreamExtInfo::new);
-            streamInfo.setExtList(streamExtInfos);
-
-            // query all valid stream sources
-            List<StreamSource> sourceList = sourceService.listSource(groupId, 
streamId);
-            streamInfo.setSourceList(sourceList);
-
-            // query all valid stream sinks and its extended info, field info
-            List<StreamSink> sinkList = sinkService.listSink(groupId, 
streamId);
-            streamInfo.setSinkList(sinkList);
-        }
 
-        PageResult<InlongStreamInfo> pageResult = new 
PageResult<>(streamInfoList, page.getTotal(),
-                page.getPageNum(), page.getPageSize());
+        PageResult<InlongStreamInfo> pageResult = PageResult.fromPage(page)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
InlongStreamInfo::new))
+                .foreach(streamInfo -> {
+                    // Set the field information of the inlong stream
+                    String streamId = streamInfo.getInlongStreamId();
+                    unpackExtParams(streamInfo);
+                    List<StreamField> streamFields = getStreamFields(groupId, 
streamId);
+                    streamInfo.setFieldList(streamFields);
+                    List<InlongStreamExtEntity> extEntities = 
streamExtMapper.selectByRelatedId(groupId, streamId);
+                    List<InlongStreamExtInfo> streamExtInfos = 
CommonBeanUtils.copyListProperties(
+                            extEntities, InlongStreamExtInfo::new);
+                    streamInfo.setExtList(streamExtInfos);
+
+                    // query all valid stream sources
+                    List<StreamSource> sourceList = 
sourceService.listSource(groupId, streamId);
+                    streamInfo.setSourceList(sourceList);
+
+                    // query all valid stream sinks and its extended info, 
field info
+                    List<StreamSink> sinkList = sinkService.listSink(groupId, 
streamId);
+                    streamInfo.setSinkList(sinkList);
+                });
 
         LOGGER.debug("success to list full inlong stream info by {}", request);
         return pageResult;
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
index 40ceb3391c..321255e342 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
@@ -127,14 +127,9 @@ public class InlongTenantServiceImpl implements 
InlongTenantService {
         }
 
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
-
         Page<InlongTenantEntity> entityPage = 
inlongTenantEntityMapper.selectByCondition(request);
-
-        List<InlongTenantInfo> tenantList = 
CommonBeanUtils.copyListProperties(entityPage, InlongTenantInfo::new);
-        PageResult<InlongTenantInfo> pageResult = new PageResult<>(tenantList,
-                entityPage.getTotal(), entityPage.getPageNum(), 
entityPage.getPageSize());
-
-        return pageResult;
+        return PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
InlongTenantInfo::new));
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/transform/StreamTransformServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/transform/StreamTransformServiceImpl.java
index 6ffdcd975b..512580c9a4 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/transform/StreamTransformServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/transform/StreamTransformServiceImpl.java
@@ -142,7 +142,6 @@ public class StreamTransformServiceImpl implements 
StreamTransformService {
         String streamId = request.getInlongStreamId();
         LOGGER.debug("begin to fetch transform info by groupId={} and 
streamId={} ", groupId, streamId);
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
-        PageResult<TransformResponse> pageResponse = new PageResult<>();
         InlongGroupEntity groupEntity = groupMapper.selectByGroupId(groupId);
         if (groupEntity == null) {
             throw new BusinessException(ErrorCodeEnum.GROUP_NOT_FOUND,
@@ -151,13 +150,11 @@ public class StreamTransformServiceImpl implements 
StreamTransformService {
 
         // query result
         List<StreamTransformEntity> entityList = 
transformMapper.selectByCondition(request);
-        if (CollectionUtils.isEmpty(entityList)) {
-            pageResponse.setList(Collections.emptyList());
-            return pageResponse;
+        List<TransformResponse> responses = Collections.emptyList();
+        if (!CollectionUtils.isEmpty(entityList)) {
+            responses = getTransformResponse(entityList);
         }
-
-        pageResponse.setList(getTransformResponse(entityList));
-        return pageResponse;
+        return new PageResult<>(responses, (long) responses.size(), 
request.getPageNum(), request.getPageSize());
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleService.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleService.java
index 387eed54cb..40af75b867 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleService.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleService.java
@@ -17,15 +17,14 @@
 
 package org.apache.inlong.manager.service.user;
 
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.InlongRoleInfo;
 import org.apache.inlong.manager.pojo.user.InlongRolePageRequest;
 import org.apache.inlong.manager.pojo.user.InlongRoleRequest;
 
-import com.github.pagehelper.PageInfo;
-
 public interface InlongRoleService {
 
-    PageInfo<InlongRoleInfo> listByCondition(InlongRolePageRequest request);
+    PageResult<InlongRoleInfo> listByCondition(InlongRolePageRequest request);
 
     int save(InlongRoleRequest request, String operator);
 
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleServiceImpl.java
index 59fd417371..31180e7632 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/InlongRoleServiceImpl.java
@@ -24,13 +24,13 @@ import 
org.apache.inlong.manager.common.util.CommonBeanUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.dao.entity.InlongUserRoleEntity;
 import org.apache.inlong.manager.dao.mapper.InlongUserRoleEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.InlongRoleInfo;
 import org.apache.inlong.manager.pojo.user.InlongRolePageRequest;
 import org.apache.inlong.manager.pojo.user.InlongRoleRequest;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,10 +43,11 @@ public class InlongRoleServiceImpl implements 
InlongRoleService {
     private InlongUserRoleEntityMapper inlongUserMapper;
 
     @Override
-    public PageInfo<InlongRoleInfo> listByCondition(InlongRolePageRequest 
request) {
+    public PageResult<InlongRoleInfo> listByCondition(InlongRolePageRequest 
request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<InlongUserRoleEntity> entityPage = 
inlongUserMapper.selectByCondition(request);
-        return entityPage.toPageInfo(entity -> 
CommonBeanUtils.copyProperties(entity, InlongRoleInfo::new));
+        return PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
InlongRoleInfo::new));
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
index f6fba9f411..6b8f6acb67 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
@@ -71,10 +71,8 @@ public class TenantRoleServiceImpl implements 
TenantRoleService {
 
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<TenantUserRoleEntity> entityPage = 
tenantUserRoleEntityMapper.listByCondition(request);
-        List<TenantRoleInfo> tenantRoleInfos = 
CommonBeanUtils.copyListProperties(entityPage, TenantRoleInfo::new);
-        return new PageResult<>(tenantRoleInfos,
-                entityPage.getTotal(),
-                entityPage.getPageNum(), entityPage.getPageSize());
+        return PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
TenantRoleInfo::new));
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
index 02388f55d0..a8ac5f4bd7 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
@@ -77,7 +77,6 @@ import java.time.Duration;
 import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -209,13 +208,11 @@ public class UserServiceImpl implements UserService {
     public PageResult<UserInfo> list(UserRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<UserEntity> entityPage = (Page<UserEntity>) 
userMapper.selectByCondition(request);
-        List<UserInfo> userList = 
CommonBeanUtils.copyListProperties(entityPage, UserInfo::new);
+        PageResult<UserInfo> pageResult = PageResult.fromPage(entityPage)
+                .map(entity -> CommonBeanUtils.copyProperties(entity, 
UserInfo::new));
 
         // Check whether the user account has expired
-        userList.forEach(entity -> 
entity.setStatus(entity.getDueDate().after(new Date()) ? "valid" : "invalid"));
-
-        PageResult<UserInfo> pageResult = new PageResult<>(userList, 
entityPage.getTotal(),
-                entityPage.getPageNum(), entityPage.getPageSize());
+        pageResult.foreach(entity -> 
entity.setStatus(entity.getDueDate().after(new Date()) ? "valid" : "invalid"));
 
         LOGGER.debug("success to list users for request={}, result size={}", 
request, pageResult.getTotal());
         return pageResult;
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowServiceImpl.java
index 2b09ed9b83..0863b8e666 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowServiceImpl.java
@@ -53,7 +53,6 @@ import org.apache.inlong.manager.workflow.util.WorkflowUtils;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Maps;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -137,16 +136,15 @@ public class WorkflowServiceImpl implements 
WorkflowService {
     public PageResult<ProcessResponse> listProcess(ProcessRequest query) {
         PageHelper.startPage(query.getPageNum(), query.getPageSize());
         Page<WorkflowProcessEntity> result = (Page<WorkflowProcessEntity>) 
queryService.listProcessEntity(query);
-        PageInfo<ProcessResponse> pageInfo = result.toPageInfo(entity -> {
-            ProcessResponse response = 
WorkflowUtils.getProcessResponse(entity);
-            if (query.getIncludeShowInList()) {
-                response.setShowInList(getShowInList(entity));
-            }
-            return response;
-        });
-
-        PageResult<ProcessResponse> pageResult = new 
PageResult<>(pageInfo.getList(),
-                pageInfo.getTotal(), pageInfo.getPageNum(), 
pageInfo.getPageSize());
+        PageResult<ProcessResponse> pageResult =
+                PageResult.fromPage(result)
+                        .map(entity -> {
+                            ProcessResponse response = 
WorkflowUtils.getProcessResponse(entity);
+                            if (query.getIncludeShowInList()) {
+                                response.setShowInList(getShowInList(entity));
+                            }
+                            return response;
+                        });
 
         if (query.getIncludeCurrentTask()) {
             TaskRequest taskQuery = TaskRequest.builder()
@@ -164,10 +162,11 @@ public class WorkflowServiceImpl implements 
WorkflowService {
         PageHelper.startPage(query.getPageNum(), query.getPageSize());
         Page<WorkflowTaskEntity> result = (Page<WorkflowTaskEntity>) 
queryService.listTaskEntity(query);
 
-        PageInfo<TaskResponse> pageInfo = 
result.toPageInfo(WorkflowUtils::getTaskResponse);
-        addShowInListForEachTask(pageInfo.getList());
+        PageResult<TaskResponse> pageInfo = PageResult.fromPage(result)
+                .map(WorkflowUtils::getTaskResponse);
 
-        return new PageResult<>(pageInfo.getList(), pageInfo.getTotal(), 
pageInfo.getPageNum(), pageInfo.getPageSize());
+        addShowInListForEachTask(pageInfo.getList());
+        return pageInfo;
     }
 
     @Override
@@ -200,13 +199,14 @@ public class WorkflowServiceImpl implements 
WorkflowService {
         Page<WorkflowProcessEntity> entityPage = (Page<WorkflowProcessEntity>) 
queryService.listProcessEntity(
                 processRequest);
 
-        PageInfo<WorkflowExecuteLog> pageInfo = entityPage.toPageInfo(inst -> 
WorkflowExecuteLog.builder()
-                .processId(inst.getId())
-                .processDisplayName(inst.getDisplayName())
-                .status(inst.getStatus())
-                .startTime(inst.getStartTime())
-                .endTime(inst.getEndTime())
-                .build());
+        PageResult<WorkflowExecuteLog> pageInfo = 
PageResult.fromPage(entityPage)
+                .map(inst -> WorkflowExecuteLog.builder()
+                        .processId(inst.getId())
+                        .processDisplayName(inst.getDisplayName())
+                        .status(inst.getStatus())
+                        .startTime(inst.getStartTime())
+                        .endTime(inst.getEndTime())
+                        .build());
 
         // According to the process execution log, query the execution log of 
each task in the process
         for (WorkflowExecuteLog executeLog : pageInfo.getList()) {
@@ -234,8 +234,7 @@ public class WorkflowServiceImpl implements WorkflowService 
{
 
         LOGGER.info("success to page list task execute logs for " + query);
 
-        return new PageResult<>(pageInfo.getList(), pageInfo.getTotal(), 
pageInfo.getPageNum(),
-                pageInfo.getPageSize());
+        return pageInfo;
     }
 
     private Consumer<ProcessResponse> addCurrentTask(TaskRequest query) {
diff --git 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/user/InlongRoleServiceTest.java
 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/user/InlongRoleServiceTest.java
index ea673e4dba..d96fa0f802 100644
--- 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/user/InlongRoleServiceTest.java
+++ 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/user/InlongRoleServiceTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.inlong.manager.service.user;
 
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.InlongRoleInfo;
 import org.apache.inlong.manager.pojo.user.InlongRolePageRequest;
 import org.apache.inlong.manager.pojo.user.InlongRoleRequest;
@@ -25,7 +26,6 @@ import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRoleCode;
 import org.apache.inlong.manager.service.ServiceBaseTest;
 
-import com.github.pagehelper.PageInfo;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Order;
@@ -82,11 +82,11 @@ class InlongRoleServiceTest extends ServiceBaseTest {
         }
         InlongRolePageRequest pageRequest = new InlongRolePageRequest();
         pageRequest.setRoleCode(UserRoleCode.INLONG_OPERATOR);
-        PageInfo<InlongRoleInfo> infos = 
inlongRoleService.listByCondition(pageRequest);
-        Assertions.assertEquals(max, infos.getSize());
+        PageResult<InlongRoleInfo> infos = 
inlongRoleService.listByCondition(pageRequest);
+        Assertions.assertEquals(max, infos.getList().size());
 
         pageRequest.setRoleCode(UserRoleCode.INLONG_ADMIN);
         infos = inlongRoleService.listByCondition(pageRequest);
-        Assertions.assertEquals(1, infos.getSize());
+        Assertions.assertEquals(1, infos.getList().size());
     }
 }
\ No newline at end of file
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongRoleController.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongRoleController.java
index dc8ea9fe7e..d209d65bb8 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongRoleController.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongRoleController.java
@@ -18,6 +18,7 @@
 package org.apache.inlong.manager.web.controller;
 
 import org.apache.inlong.manager.common.enums.OperationType;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.user.InlongRoleInfo;
 import org.apache.inlong.manager.pojo.user.InlongRolePageRequest;
@@ -27,7 +28,6 @@ import org.apache.inlong.manager.pojo.user.UserRoleCode;
 import org.apache.inlong.manager.service.operationlog.OperationLog;
 import org.apache.inlong.manager.service.user.InlongRoleService;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
@@ -78,7 +78,7 @@ public class InlongRoleController {
     @RequestMapping(value = "/role/inlong/list", method = RequestMethod.POST)
     @ApiOperation(value = "List inlong roles by paginating")
     @RequiresRoles(logical = Logical.OR, value = {UserRoleCode.INLONG_ADMIN, 
UserRoleCode.INLONG_OPERATOR})
-    public Response<PageInfo<InlongRoleInfo>> listByCondition(@RequestBody 
InlongRolePageRequest request) {
+    public Response<PageResult<InlongRoleInfo>> listByCondition(@RequestBody 
InlongRolePageRequest request) {
         return Response.success(inlongRoleService.listByCondition(request));
     }
 }


Reply via email to