You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/08/25 08:06:12 UTC

[inlong] branch master updated: [INLONG-5290][Manager] Optimize the objects returned by paging queries (#5558)

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 1f0ec44a6 [INLONG-5290][Manager] Optimize the objects returned by paging queries (#5558)
1f0ec44a6 is described below

commit 1f0ec44a65e73e79361950f9cb37102d4d4fa8ba
Author: leosanqing <st...@qq.com>
AuthorDate: Thu Aug 25 16:06:08 2022 +0800

    [INLONG-5290][Manager] Optimize the objects returned by paging queries (#5558)
---
 .../inlong/manager/client/ut/Kafka2HiveTest.java   | 14 ++--
 .../inlong/manager/client/cli/DescribeCommand.java |  4 +-
 .../inlong/manager/client/cli/ListCommand.java     |  4 +-
 inlong-manager/manager-client/pom.xml              |  4 --
 .../apache/inlong/manager/client/api/DataNode.java |  4 +-
 .../inlong/manager/client/api/InlongClient.java    |  6 +-
 .../manager/client/api/LowLevelInlongClient.java   |  4 +-
 .../org/apache/inlong/manager/client/api/User.java |  4 +-
 .../apache/inlong/manager/client/api/Workflow.java |  6 +-
 .../manager/client/api/impl/DataNodeImpl.java      |  4 +-
 .../manager/client/api/impl/InlongClientImpl.java  | 14 ++--
 .../manager/client/api/impl/InlongClusterImpl.java |  8 +--
 .../client/api/impl/LowLevelInlongClientImpl.java  |  6 +-
 .../inlong/manager/client/api/impl/UserImpl.java   |  4 +-
 .../manager/client/api/impl/WorkflowImpl.java      |  6 +-
 .../client/api/inner/client/DataNodeClient.java    |  6 +-
 .../api/inner/client/InlongClusterClient.java      | 14 ++--
 .../client/api/inner/client/InlongGroupClient.java | 16 ++---
 .../api/inner/client/InlongStreamClient.java       |  8 +--
 .../client/api/inner/client/StreamSinkClient.java  |  6 +-
 .../api/inner/client/StreamSourceClient.java       |  6 +-
 .../client/api/inner/client/UserClient.java        |  6 +-
 .../api/inner/client/WorkflowApproverClient.java   |  4 +-
 .../client/api/inner/client/WorkflowClient.java    | 11 +--
 .../manager/client/api/service/DataNodeApi.java    |  4 +-
 .../client/api/service/InlongClusterApi.java       |  6 +-
 .../manager/client/api/service/InlongGroupApi.java |  4 +-
 .../client/api/service/InlongStreamApi.java        |  6 +-
 .../manager/client/api/service/StreamSinkApi.java  |  4 +-
 .../client/api/service/StreamSourceApi.java        |  4 +-
 .../inlong/manager/client/api/service/UserApi.java |  4 +-
 .../manager/client/api/service/WorkflowApi.java    |  6 +-
 .../client/api/service/WorkflowApproverApi.java    |  4 +-
 .../client/api/service/WorkflowEventApi.java       |  4 +-
 .../client/api/inner/ClientFactoryTest.java        | 32 ++++-----
 .../api/inner/WorkflowApproverClientTest.java      |  4 +-
 .../client/api/inner/WorkflowClientTest.java       |  6 +-
 .../inlong/manager/pojo/common/PageResult.java     | 79 ++++++++++++++++++++++
 .../inlong/manager/pojo/page/PageResultTest.java   | 72 ++++++++++++++++++++
 .../service/cluster/InlongClusterService.java      |  8 +--
 .../service/cluster/InlongClusterServiceImpl.java  | 41 ++++++-----
 .../manager/service/core/ConsumptionService.java   |  4 +-
 .../manager/service/core/HeartbeatService.java     | 10 +--
 .../service/core/WorkflowApproverService.java      |  4 +-
 .../manager/service/core/WorkflowEventService.java |  4 +-
 .../service/core/impl/ConsumptionServiceImpl.java  | 16 +++--
 .../service/core/impl/HeartbeatServiceImpl.java    | 27 +++-----
 .../core/impl/WorkflowApproverServiceImpl.java     |  9 ++-
 .../core/impl/WorkflowEventServiceImpl.java        | 12 ++--
 .../manager/service/group/InlongGroupService.java  |  4 +-
 .../service/group/InlongGroupServiceImpl.java      | 12 ++--
 .../manager/service/node/DataNodeService.java      |  4 +-
 .../manager/service/node/DataNodeServiceImpl.java  | 12 ++--
 .../manager/service/sink/AbstractSinkOperator.java | 15 ++--
 .../manager/service/sink/StreamSinkOperator.java   |  4 +-
 .../manager/service/sink/StreamSinkService.java    |  4 +-
 .../service/sink/StreamSinkServiceImpl.java        | 12 ++--
 .../service/source/AbstractSourceOperator.java     | 19 ++++--
 .../service/source/StreamSourceOperator.java       |  4 +-
 .../service/source/StreamSourceService.java        |  4 +-
 .../service/source/StreamSourceServiceImpl.java    | 13 ++--
 .../service/stream/InlongStreamService.java        |  6 +-
 .../service/stream/InlongStreamServiceImpl.java    | 18 ++---
 .../inlong/manager/service/user/UserService.java   |  6 +-
 .../manager/service/user/UserServiceImpl.java      | 13 ++--
 .../manager/service/workflow/WorkflowService.java  | 14 ++--
 .../service/workflow/WorkflowServiceImpl.java      | 23 ++++---
 .../service/cluster/InlongClusterServiceTest.java  | 12 ++--
 .../service/core/impl/DataNodeServiceTest.java     |  6 +-
 .../workflow/WorkflowApproverServiceImplTest.java  |  6 +-
 .../web/controller/ConsumptionController.java      |  4 +-
 .../manager/web/controller/DataNodeController.java |  4 +-
 .../web/controller/HeartbeatController.java        | 10 +--
 .../web/controller/InlongClusterController.java    | 10 +--
 .../web/controller/InlongGroupController.java      |  6 +-
 .../web/controller/InlongStreamController.java     |  6 +-
 .../web/controller/StreamSinkController.java       |  6 +-
 .../web/controller/StreamSourceController.java     |  6 +-
 .../manager/web/controller/UserController.java     |  4 +-
 .../web/controller/WorkflowApproverController.java |  4 +-
 .../manager/web/controller/WorkflowController.java | 12 ++--
 .../web/controller/WorkflowEventController.java    |  4 +-
 .../controller/openapi/OpenClusterController.java  |  4 +-
 83 files changed, 502 insertions(+), 332 deletions(-)

diff --git a/inlong-manager/manager-client-examples/src/test/java/org/apache/inlong/manager/client/ut/Kafka2HiveTest.java b/inlong-manager/manager-client-examples/src/test/java/org/apache/inlong/manager/client/ut/Kafka2HiveTest.java
index b60b05bd7..f53524ca6 100644
--- a/inlong-manager/manager-client-examples/src/test/java/org/apache/inlong/manager/client/ut/Kafka2HiveTest.java
+++ b/inlong-manager/manager-client-examples/src/test/java/org/apache/inlong/manager/client/ut/Kafka2HiveTest.java
@@ -17,17 +17,18 @@
 
 package org.apache.inlong.manager.client.ut;
 
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import org.apache.inlong.manager.client.api.InlongGroup;
 import org.apache.inlong.manager.client.api.InlongGroupContext;
 import org.apache.inlong.manager.client.api.InlongStreamBuilder;
-import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.common.enums.DataFormat;
 import org.apache.inlong.manager.common.enums.FieldType;
 import org.apache.inlong.manager.common.enums.ProcessName;
 import org.apache.inlong.manager.common.enums.ProcessStatus;
 import org.apache.inlong.manager.common.enums.TaskStatus;
+import org.apache.inlong.manager.common.util.JsonUtils;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.group.pulsar.InlongPulsarInfo;
 import org.apache.inlong.manager.pojo.sink.SinkField;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -40,7 +41,6 @@ import org.apache.inlong.manager.pojo.workflow.EventLogResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessResponse;
 import org.apache.inlong.manager.pojo.workflow.TaskResponse;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
-import org.apache.inlong.manager.common.util.JsonUtils;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -327,8 +327,8 @@ class Kafka2HiveTest extends BaseTest {
         streamInfo.setSourceList(kafkaSources);
         streamInfo.setSinkList(hiveSinks);
 
-        Response<PageInfo<InlongStreamInfo>> fullStreamResponsePage = Response.success(
-                new PageInfo<>(Lists.newArrayList(streamInfo))
+        Response<PageResult<InlongStreamInfo>> fullStreamResponsePage = Response.success(
+                new PageResult<>(Lists.newArrayList(streamInfo))
         );
         stubFor(
                 post(urlMatching(MANAGER_URL_PREFIX + "/stream/listAll.*"))
@@ -369,7 +369,7 @@ class Kafka2HiveTest extends BaseTest {
         stubFor(
                 get(urlMatching(MANAGER_URL_PREFIX + "/workflow/event/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(
                                         Lists.newArrayList(eventLogView1, eventLogView2)
                                 ))))
                         )
@@ -378,7 +378,7 @@ class Kafka2HiveTest extends BaseTest {
         stubFor(
                 get(urlMatching(MANAGER_URL_PREFIX + "/stream/config/log/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>())))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>())))
                         )
         );
     }
diff --git a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
index 630bd1660..4a5d33df7 100644
--- a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
+++ b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/DescribeCommand.java
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.client.cli;
 
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.inner.client.InlongGroupClient;
 import org.apache.inlong.manager.client.api.inner.client.InlongStreamClient;
 import org.apache.inlong.manager.client.api.inner.client.StreamSinkClient;
@@ -27,6 +26,7 @@ import org.apache.inlong.manager.client.api.inner.client.StreamSourceClient;
 import org.apache.inlong.manager.client.cli.pojo.GroupInfo;
 import org.apache.inlong.manager.client.cli.util.ClientUtils;
 import org.apache.inlong.manager.client.cli.util.PrintUtils;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -97,7 +97,7 @@ public class DescribeCommand extends AbstractCommand {
                 InlongGroupClient groupClient = ClientUtils.clientFactory.getGroupClient();
                 InlongGroupPageRequest pageRequest = new InlongGroupPageRequest();
                 pageRequest.setKeyword(group);
-                PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups(pageRequest);
+                PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups(pageRequest);
                 PrintUtils.print(pageInfo.getList(), GroupInfo.class);
             } catch (Exception e) {
                 System.out.println(e.getMessage());
diff --git a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
index 84a259a96..c313746c7 100644
--- a/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
+++ b/inlong-manager/manager-client-tools/src/main/java/org/apache/inlong/manager/client/cli/ListCommand.java
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.client.cli;
 
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.common.enums.SimpleGroupStatus;
 import org.apache.inlong.manager.client.api.inner.client.InlongGroupClient;
 import org.apache.inlong.manager.client.api.inner.client.InlongStreamClient;
@@ -31,6 +30,7 @@ import org.apache.inlong.manager.client.cli.pojo.SourceInfo;
 import org.apache.inlong.manager.client.cli.pojo.StreamInfo;
 import org.apache.inlong.manager.client.cli.util.ClientUtils;
 import org.apache.inlong.manager.client.cli.util.PrintUtils;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -113,7 +113,7 @@ public class ListCommand extends AbstractCommand {
                 ClientUtils.initClientFactory();
                 InlongGroupClient groupClient = ClientUtils.clientFactory.getGroupClient();
 
-                PageInfo<InlongGroupBriefInfo> groupPageInfo = groupClient.listGroups(pageRequest);
+                PageResult<InlongGroupBriefInfo> groupPageInfo = groupClient.listGroups(pageRequest);
                 PrintUtils.print(groupPageInfo.getList(), GroupInfo.class);
             } catch (Exception e) {
                 System.out.println(e.getMessage());
diff --git a/inlong-manager/manager-client/pom.xml b/inlong-manager/manager-client/pom.xml
index 3e7fb64cc..53061975f 100644
--- a/inlong-manager/manager-client/pom.xml
+++ b/inlong-manager/manager-client/pom.xml
@@ -53,10 +53,6 @@
             <groupId>commons-collections</groupId>
             <artifactId>commons-collections</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.github.pagehelper</groupId>
-            <artifactId>pagehelper</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/DataNode.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/DataNode.java
index 54a044a85..9c5c31eb1 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/DataNode.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/DataNode.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.node.DataNodeRequest;
 import org.apache.inlong.manager.pojo.node.DataNodeResponse;
 
@@ -45,7 +45,7 @@ public interface DataNode {
      * @param request page request conditions
      * @return node list
      */
-    PageInfo<DataNodeResponse> list(DataNodeRequest request);
+    PageResult<DataNodeResponse> list(DataNodeRequest request);
 
     /**
      * Update data node.
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java
index 801b66523..132d37c35 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.client.api;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.impl.InlongClientImpl;
 import org.apache.inlong.manager.pojo.cluster.BindTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
@@ -28,6 +27,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupStatusInfo;
 
@@ -134,7 +134,7 @@ public interface InlongClient {
      * @param request page request conditions
      * @return cluster tag list
      */
-    PageInfo<ClusterTagResponse> listTag(ClusterTagPageRequest request);
+    PageResult<ClusterTagResponse> listTag(ClusterTagPageRequest request);
 
     /**
      * Update cluster tag.
@@ -222,7 +222,7 @@ public interface InlongClient {
      * @param request page request conditions
      * @return cluster node list
      */
-    PageInfo<ClusterNodeResponse> listNode(ClusterPageRequest request);
+    PageResult<ClusterNodeResponse> listNode(ClusterPageRequest request);
 
     /**
      * Update cluster node.
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/LowLevelInlongClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/LowLevelInlongClient.java
index fb8824651..57d67ab57 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/LowLevelInlongClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/LowLevelInlongClient.java
@@ -17,9 +17,9 @@
 
 package org.apache.inlong.manager.client.api;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.impl.LowLevelInlongClientImpl;
 import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 
@@ -56,6 +56,6 @@ public interface LowLevelInlongClient {
      * @return group info page
      * @throws Exception the exception may throw
      */
-    PageInfo<InlongGroupBriefInfo> listGroup(InlongGroupPageRequest request) throws Exception;
+    PageResult<InlongGroupBriefInfo> listGroup(InlongGroupPageRequest request) throws Exception;
 
 }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/User.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/User.java
index 21c091651..ac2d405e6 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/User.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/User.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRequest;
 
@@ -52,7 +52,7 @@ public interface User {
      * @param request request
      * @return user info list
      */
-    PageInfo<UserInfo> list(UserRequest request);
+    PageResult<UserInfo> list(UserRequest request);
 
     /**
      * Update user info
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/Workflow.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/Workflow.java
index b6edbe647..a97575107 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/Workflow.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/Workflow.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.ProcessDetailResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessRequest;
 import org.apache.inlong.manager.pojo.workflow.ProcessResponse;
@@ -87,7 +87,7 @@ public interface Workflow {
      * @param request workflow process request
      * @return process response list
      */
-    PageInfo<ProcessResponse> listProcess(ProcessRequest request);
+    PageResult<ProcessResponse> listProcess(ProcessRequest request);
 
     /**
      * Get task list
@@ -95,5 +95,5 @@ public interface Workflow {
      * @param request workflow task query request
      * @return task response list
      */
-    PageInfo<TaskResponse> listTask(TaskRequest request);
+    PageResult<TaskResponse> listTask(TaskRequest request);
 }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/DataNodeImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/DataNodeImpl.java
index 1696518c5..87fa11bf6 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/DataNodeImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/DataNodeImpl.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.client.api.impl;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.DataNode;
 import org.apache.inlong.manager.client.api.inner.client.ClientFactory;
 import org.apache.inlong.manager.client.api.inner.client.DataNodeClient;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.node.DataNodeRequest;
 import org.apache.inlong.manager.pojo.node.DataNodeResponse;
 
@@ -51,7 +51,7 @@ public class DataNodeImpl implements DataNode {
     }
 
     @Override
-    public PageInfo<DataNodeResponse> list(DataNodeRequest request) {
+    public PageResult<DataNodeResponse> list(DataNodeRequest request) {
         Preconditions.checkNotNull(request, "request cannot be null");
         return dataNodeClient.list(request);
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java
index c373bfb11..eac22c0fa 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.client.api.impl;
 
-import com.github.pagehelper.PageInfo;
 import com.google.common.base.Splitter;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -35,6 +34,8 @@ import org.apache.inlong.manager.client.api.inner.client.ClientFactory;
 import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
 import org.apache.inlong.manager.client.api.inner.client.InlongGroupClient;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
+import org.apache.inlong.manager.common.util.HttpUtils;
+import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.pojo.cluster.BindTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeRequest;
@@ -44,13 +45,12 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupStatusInfo;
 import org.apache.inlong.manager.pojo.source.StreamSource;
-import org.apache.inlong.manager.common.util.HttpUtils;
-import org.apache.inlong.manager.common.util.Preconditions;
 
 import java.util.List;
 import java.util.Map;
@@ -108,7 +108,7 @@ public class InlongClientImpl implements InlongClient {
 
     @Override
     public List<InlongGroup> listGroup(String expr, int status, int pageNum, int pageSize) {
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups(expr, status, pageNum,
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups(expr, status, pageNum,
                 pageSize);
         if (CollectionUtils.isEmpty(pageInfo.getList())) {
             return Lists.newArrayList();
@@ -127,7 +127,7 @@ public class InlongClientImpl implements InlongClient {
         request.setGroupIdList(groupIds);
         request.setListSources(true);
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups(request);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups(request);
         List<InlongGroupBriefInfo> briefInfos = pageInfo.getList();
         Map<String, InlongGroupStatusInfo> groupStatusMap = Maps.newHashMap();
         if (CollectionUtils.isNotEmpty(briefInfos)) {
@@ -170,7 +170,7 @@ public class InlongClientImpl implements InlongClient {
     }
 
     @Override
-    public PageInfo<ClusterTagResponse> listTag(ClusterTagPageRequest request) {
+    public PageResult<ClusterTagResponse> listTag(ClusterTagPageRequest request) {
         return clusterClient.listTag(request);
     }
 
@@ -238,7 +238,7 @@ public class InlongClientImpl implements InlongClient {
     }
 
     @Override
-    public PageInfo<ClusterNodeResponse> listNode(ClusterPageRequest request) {
+    public PageResult<ClusterNodeResponse> listNode(ClusterPageRequest request) {
         Preconditions.checkNotNull(request.getParentId(), "Cluster id cannot be empty");
         return clusterClient.listNode(request);
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClusterImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClusterImpl.java
index 4a11ace32..4f6748f76 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClusterImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClusterImpl.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.client.api.impl;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.InlongCluster;
 import org.apache.inlong.manager.client.api.inner.client.ClientFactory;
 import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
@@ -26,6 +25,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeResponse;
 import org.apache.inlong.manager.pojo.cluster.ClusterPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 
 import java.util.List;
 
@@ -45,7 +45,7 @@ public class InlongClusterImpl implements InlongCluster {
         ClusterPageRequest request = new ClusterPageRequest();
         request.setName(clusterName);
         request.setType(clusterType);
-        PageInfo<ClusterNodeResponse> clusterNodePage = clusterClient.listNode(request);
+        PageResult<ClusterNodeResponse> clusterNodePage = clusterClient.listNode(request);
         return clusterNodePage.getList();
     }
 
@@ -55,7 +55,7 @@ public class InlongClusterImpl implements InlongCluster {
         request.setName(clusterName);
         request.setType(clusterType);
         request.setClusterTagList(clusterTags);
-        PageInfo<ClusterNodeResponse> clusterNodePage = clusterClient.listNode(request);
+        PageResult<ClusterNodeResponse> clusterNodePage = clusterClient.listNode(request);
         return clusterNodePage.getList();
     }
 
@@ -65,7 +65,7 @@ public class InlongClusterImpl implements InlongCluster {
         request.setName(clusterName);
         request.setType(clusterType);
         request.setClusterTag(clusterTag);
-        PageInfo<ClusterNodeResponse> clusterNodePage = clusterClient.listNode(request);
+        PageResult<ClusterNodeResponse> clusterNodePage = clusterClient.listNode(request);
         return clusterNodePage.getList();
     }
 
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/LowLevelInlongClientImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/LowLevelInlongClientImpl.java
index c34fe8b74..d006ed00f 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/LowLevelInlongClientImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/LowLevelInlongClientImpl.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.client.api.impl;
 
-import com.github.pagehelper.PageInfo;
 import com.google.common.base.Splitter;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
@@ -27,10 +26,11 @@ import org.apache.inlong.manager.client.api.LowLevelInlongClient;
 import org.apache.inlong.manager.client.api.inner.client.InlongClusterClient;
 import org.apache.inlong.manager.client.api.inner.client.InlongGroupClient;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
+import org.apache.inlong.manager.common.util.HttpUtils;
 import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
-import org.apache.inlong.manager.common.util.HttpUtils;
 
 import java.util.Map;
 
@@ -79,7 +79,7 @@ public class LowLevelInlongClientImpl implements LowLevelInlongClient {
     }
 
     @Override
-    public PageInfo<InlongGroupBriefInfo> listGroup(InlongGroupPageRequest request) {
+    public PageResult<InlongGroupBriefInfo> listGroup(InlongGroupPageRequest request) {
         InlongGroupClient groupClient = ClientUtils.getClientFactory(configuration).getGroupClient();
         return groupClient.listGroups(request);
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/UserImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/UserImpl.java
index 712854324..ef86ff2a2 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/UserImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/UserImpl.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.client.api.impl;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.User;
 import org.apache.inlong.manager.client.api.inner.client.ClientFactory;
 import org.apache.inlong.manager.client.api.inner.client.UserClient;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRequest;
 
@@ -55,7 +55,7 @@ public class UserImpl implements User {
     }
 
     @Override
-    public PageInfo<UserInfo> list(UserRequest request) {
+    public PageResult<UserInfo> list(UserRequest request) {
         Preconditions.checkNotNull(request, "request cannot be null");
         return userClient.list(request);
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/WorkflowImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/WorkflowImpl.java
index aea0f9ee6..f86cc028b 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/WorkflowImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/WorkflowImpl.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.client.api.impl;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.Workflow;
 import org.apache.inlong.manager.client.api.inner.client.ClientFactory;
 import org.apache.inlong.manager.client.api.inner.client.WorkflowClient;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.ProcessDetailResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessRequest;
 import org.apache.inlong.manager.pojo.workflow.ProcessResponse;
@@ -79,13 +79,13 @@ public class WorkflowImpl implements Workflow {
     }
 
     @Override
-    public PageInfo<ProcessResponse> listProcess(ProcessRequest request) {
+    public PageResult<ProcessResponse> listProcess(ProcessRequest request) {
         Preconditions.checkNotNull(request, "process request cannot be null");
         return workflowClient.listProcess(request);
     }
 
     @Override
-    public PageInfo<TaskResponse> listTask(TaskRequest request) {
+    public PageResult<TaskResponse> listTask(TaskRequest request) {
         Preconditions.checkNotNull(request, "task request cannot be null");
         return workflowClient.listTask(request);
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/DataNodeClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/DataNodeClient.java
index 463be9fed..b2248d31c 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/DataNodeClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/DataNodeClient.java
@@ -17,11 +17,11 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.DataNodeApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.node.DataNodeRequest;
 import org.apache.inlong.manager.pojo.node.DataNodeResponse;
@@ -71,9 +71,9 @@ public class DataNodeClient {
      * @param request page request conditions
      * @return node list
      */
-    public PageInfo<DataNodeResponse> list(DataNodeRequest request) {
+    public PageResult<DataNodeResponse> list(DataNodeRequest request) {
         Preconditions.checkNotNull(request, "request cannot be null");
-        Response<PageInfo<DataNodeResponse>> response = ClientUtils.executeHttpCall(dataNodeApi.list(request));
+        Response<PageResult<DataNodeResponse>> response = ClientUtils.executeHttpCall(dataNodeApi.list(request));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongClusterClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongClusterClient.java
index b855ae426..b0cf37001 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongClusterClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongClusterClient.java
@@ -17,11 +17,10 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.InlongClusterApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
-import org.apache.inlong.manager.pojo.common.Response;
+import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.pojo.cluster.BindTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeRequest;
@@ -31,7 +30,8 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
-import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.common.Response;
 
 /**
  * Client for {@link InlongClusterApi}.
@@ -75,8 +75,8 @@ public class InlongClusterClient {
      * @param request page request conditions
      * @return cluster tag list
      */
-    public PageInfo<ClusterTagResponse> listTag(ClusterTagPageRequest request) {
-        Response<PageInfo<ClusterTagResponse>> response = ClientUtils.executeHttpCall(
+    public PageResult<ClusterTagResponse> listTag(ClusterTagPageRequest request) {
+        Response<PageResult<ClusterTagResponse>> response = ClientUtils.executeHttpCall(
                 inlongClusterApi.listTag(request));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
@@ -215,8 +215,8 @@ public class InlongClusterClient {
      * @param request page request conditions
      * @return cluster node list
      */
-    public PageInfo<ClusterNodeResponse> listNode(ClusterPageRequest request) {
-        Response<PageInfo<ClusterNodeResponse>> response = ClientUtils.executeHttpCall(
+    public PageResult<ClusterNodeResponse> listNode(ClusterPageRequest request) {
+        Response<PageResult<ClusterNodeResponse>> response = ClientUtils.executeHttpCall(
                 inlongClusterApi.listNode(request));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
index 148e9b8cc..aabafaf64 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
@@ -17,24 +17,24 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import lombok.SneakyThrows;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.common.enums.SimpleGroupStatus;
 import org.apache.inlong.manager.client.api.service.InlongGroupApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
+import org.apache.inlong.manager.common.util.JsonUtils;
+import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
-import org.apache.inlong.manager.pojo.group.InlongGroupCountResponse;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
+import org.apache.inlong.manager.pojo.group.InlongGroupCountResponse;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupResetRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupTopicInfo;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
-import org.apache.inlong.manager.common.util.JsonUtils;
-import org.apache.inlong.manager.common.util.Preconditions;
 import org.springframework.boot.configurationprocessor.json.JSONObject;
 import retrofit2.Call;
 
@@ -105,7 +105,7 @@ public class InlongGroupClient {
     /**
      * Get inlong group list.
      */
-    public PageInfo<InlongGroupBriefInfo> listGroups(String keyword, int status, int pageNum, int pageSize) {
+    public PageResult<InlongGroupBriefInfo> listGroups(String keyword, int status, int pageNum, int pageSize) {
         InlongGroupPageRequest request = InlongGroupPageRequest.builder()
                 .keyword(keyword)
                 .status(status)
@@ -113,7 +113,7 @@ public class InlongGroupClient {
         request.setPageNum(pageNum <= 0 ? 1 : pageNum);
         request.setPageSize(pageSize);
 
-        Response<PageInfo<InlongGroupBriefInfo>> pageInfoResponse = ClientUtils.executeHttpCall(
+        Response<PageResult<InlongGroupBriefInfo>> pageInfoResponse = ClientUtils.executeHttpCall(
                 inlongGroupApi.listGroups(request));
         if (pageInfoResponse.isSuccess()) {
             return pageInfoResponse.getData();
@@ -131,8 +131,8 @@ public class InlongGroupClient {
      * @param pageRequest page request
      * @return Response encapsulate of inlong group list
      */
-    public PageInfo<InlongGroupBriefInfo> listGroups(InlongGroupPageRequest pageRequest) {
-        Response<PageInfo<InlongGroupBriefInfo>> response = ClientUtils.executeHttpCall(
+    public PageResult<InlongGroupBriefInfo> listGroups(InlongGroupPageRequest pageRequest) {
+        Response<PageResult<InlongGroupBriefInfo>> response = ClientUtils.executeHttpCall(
                 inlongGroupApi.listGroups(pageRequest));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongStreamClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongStreamClient.java
index 924296d1d..21115a0e9 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongStreamClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongStreamClient.java
@@ -17,12 +17,12 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.InlongStreamApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.stream.InlongStreamBriefInfo;
 import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
@@ -118,8 +118,8 @@ public class InlongStreamClient {
      * @param request query request
      * @return inlong stream brief list
      */
-    public PageInfo<InlongStreamBriefInfo> listByCondition(InlongStreamPageRequest request) {
-        Response<PageInfo<InlongStreamBriefInfo>> response = ClientUtils.executeHttpCall(
+    public PageResult<InlongStreamBriefInfo> listByCondition(InlongStreamPageRequest request) {
+        Response<PageResult<InlongStreamBriefInfo>> response = ClientUtils.executeHttpCall(
                 inlongStreamApi.listByCondition(request));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
@@ -132,7 +132,7 @@ public class InlongStreamClient {
         InlongStreamPageRequest pageRequest = new InlongStreamPageRequest();
         pageRequest.setInlongGroupId(inlongGroupId);
 
-        Response<PageInfo<InlongStreamInfo>> response = ClientUtils.executeHttpCall(
+        Response<PageResult<InlongStreamInfo>> response = ClientUtils.executeHttpCall(
                 inlongStreamApi.listStream(pageRequest));
         ClientUtils.assertRespSuccess(response);
         return response.getData().getList();
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSinkClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSinkClient.java
index bd55c2a1e..c902c2e96 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSinkClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSinkClient.java
@@ -17,15 +17,15 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.StreamSinkApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
+import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.sink.SinkRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
-import org.apache.inlong.manager.common.util.Preconditions;
 
 import java.util.List;
 
@@ -67,7 +67,7 @@ public class StreamSinkClient {
      * List stream sinks by the specified sink type.
      */
     public List<StreamSink> listSinks(String groupId, String streamId, String sinkType) {
-        Response<PageInfo<StreamSink>> response = ClientUtils.executeHttpCall(
+        Response<PageResult<StreamSink>> response = ClientUtils.executeHttpCall(
                 streamSinkApi.listSinks(groupId, streamId, sinkType));
         ClientUtils.assertRespSuccess(response);
         return response.getData().getList();
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSourceClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSourceClient.java
index 0bc170db4..f1eb4a87d 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSourceClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/StreamSourceClient.java
@@ -17,15 +17,15 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.StreamSourceApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
+import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.source.SourceRequest;
 import org.apache.inlong.manager.pojo.source.StreamSource;
-import org.apache.inlong.manager.common.util.Preconditions;
 
 import java.util.List;
 
@@ -60,7 +60,7 @@ public class StreamSourceClient {
      * List stream sources by the specified source type.
      */
     public List<StreamSource> listSources(String groupId, String streamId, String sourceType) {
-        Response<PageInfo<StreamSource>> response = ClientUtils.executeHttpCall(
+        Response<PageResult<StreamSource>> response = ClientUtils.executeHttpCall(
                 streamSourceApi.listSources(groupId, streamId, sourceType));
         ClientUtils.assertRespSuccess(response);
         return response.getData().getList();
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/UserClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/UserClient.java
index 4e177802c..374ccdbc2 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/UserClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/UserClient.java
@@ -17,11 +17,11 @@
 
 package org.apache.inlong.manager.client.api.inner.client;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.UserApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRequest;
@@ -83,10 +83,10 @@ public class UserClient {
      * @param request request
      * @return user info list
      */
-    public PageInfo<UserInfo> list(UserRequest request) {
+    public PageResult<UserInfo> list(UserRequest request) {
         Preconditions.checkNotNull(request, "request cannot be null");
 
-        Response<PageInfo<UserInfo>> response = ClientUtils.executeHttpCall(userApi.list(request));
+        Response<PageResult<UserInfo>> response = ClientUtils.executeHttpCall(userApi.list(request));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowApproverClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowApproverClient.java
index 2976f488a..7c8ac4505 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowApproverClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowApproverClient.java
@@ -18,13 +18,13 @@
 package org.apache.inlong.manager.client.api.inner.client;
 
 import com.fasterxml.jackson.core.type.TypeReference;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
 import org.apache.inlong.manager.client.api.service.WorkflowApproverApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.JsonUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.ApproverPageRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverRequest;
@@ -90,7 +90,7 @@ public class WorkflowApproverClient {
         Map<String, Object> requestMap = JsonUtils.OBJECT_MAPPER.convertValue(request,
                 new TypeReference<Map<String, Object>>() {
                 });
-        Response<PageInfo<ApproverResponse>> response = ClientUtils.executeHttpCall(
+        Response<PageResult<ApproverResponse>> response = ClientUtils.executeHttpCall(
                 workflowApproverApi.listByCondition(requestMap));
         ClientUtils.assertRespSuccess(response);
 
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowClient.java
index fed7e97a7..aa3bfa462 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/WorkflowClient.java
@@ -20,7 +20,6 @@ package org.apache.inlong.manager.client.api.inner.client;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.inlong.manager.client.api.ClientConfiguration;
@@ -28,6 +27,7 @@ import org.apache.inlong.manager.client.api.service.WorkflowApi;
 import org.apache.inlong.manager.client.api.util.ClientUtils;
 import org.apache.inlong.manager.common.util.JsonUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.ProcessDetailResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessRequest;
@@ -180,13 +180,14 @@ public class WorkflowClient {
      * @param request workflow process request
      * @return process response list
      */
-    public PageInfo<ProcessResponse> listProcess(ProcessRequest request) {
+    public PageResult<ProcessResponse> listProcess(ProcessRequest request) {
         Preconditions.checkNotNull(request, "process request cannot be null");
 
         Map<String, Object> requestMap = JsonUtils.OBJECT_MAPPER.convertValue(request,
                 new TypeReference<Map<String, Object>>() {
                 });
-        Response<PageInfo<ProcessResponse>> response = ClientUtils.executeHttpCall(workflowApi.listProcess(requestMap));
+        Response<PageResult<ProcessResponse>> response = ClientUtils.executeHttpCall(
+                workflowApi.listProcess(requestMap));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
     }
@@ -197,13 +198,13 @@ public class WorkflowClient {
      * @param request workflow task query request
      * @return task response list
      */
-    public PageInfo<TaskResponse> listTask(TaskRequest request) {
+    public PageResult<TaskResponse> listTask(TaskRequest request) {
         Preconditions.checkNotNull(request, "task request cannot be null");
 
         Map<String, Object> requestMap = JsonUtils.OBJECT_MAPPER.convertValue(request,
                 new TypeReference<Map<String, Object>>() {
                 });
-        Response<PageInfo<TaskResponse>> response = ClientUtils.executeHttpCall(workflowApi.listTask(requestMap));
+        Response<PageResult<TaskResponse>> response = ClientUtils.executeHttpCall(workflowApi.listTask(requestMap));
         ClientUtils.assertRespSuccess(response);
         return response.getData();
     }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/DataNodeApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/DataNodeApi.java
index 0debf462c..69e13dead 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/DataNodeApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/DataNodeApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.node.DataNodeRequest;
 import org.apache.inlong.manager.pojo.node.DataNodeResponse;
@@ -37,7 +37,7 @@ public interface DataNodeApi {
     Call<Response<DataNodeResponse>> get(@Path("id") Integer id);
 
     @POST("node/list")
-    Call<Response<PageInfo<DataNodeResponse>>> list(@Body DataNodeRequest request);
+    Call<Response<PageResult<DataNodeResponse>>> list(@Body DataNodeRequest request);
 
     @POST("node/update")
     Call<Response<Boolean>> update(@Body DataNodeRequest request);
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongClusterApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongClusterApi.java
index 857337405..127802cea 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongClusterApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongClusterApi.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.pojo.cluster.BindTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeRequest;
@@ -27,6 +26,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import retrofit2.Call;
 import retrofit2.http.Body;
@@ -44,7 +44,7 @@ public interface InlongClusterApi {
     Call<Response<ClusterTagResponse>> getTag(@Path("id") Integer id);
 
     @POST("cluster/tag/list")
-    Call<Response<PageInfo<ClusterTagResponse>>> listTag(@Body ClusterTagPageRequest request);
+    Call<Response<PageResult<ClusterTagResponse>>> listTag(@Body ClusterTagPageRequest request);
 
     @POST("cluster/tag/update")
     Call<Response<Boolean>> updateTag(@Body ClusterTagRequest request);
@@ -77,7 +77,7 @@ public interface InlongClusterApi {
     Call<Response<ClusterNodeResponse>> getNode(@Path("id") Integer id);
 
     @POST("cluster/node/list")
-    Call<Response<PageInfo<ClusterNodeResponse>>> listNode(@Body ClusterPageRequest request);
+    Call<Response<PageResult<ClusterNodeResponse>>> listNode(@Body ClusterPageRequest request);
 
     @POST("cluster/node/update")
     Call<Response<Boolean>> updateNode(@Body ClusterNodeRequest request);
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
index 39341f8fd..be83fa6e0 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
@@ -40,7 +40,7 @@ public interface InlongGroupApi {
     Call<Response<Object>> getGroupInfo(@Path("id") String id);
 
     @POST("group/list")
-    Call<Response<PageInfo<InlongGroupBriefInfo>>> listGroups(@Body InlongGroupPageRequest request);
+    Call<Response<PageResult<InlongGroupBriefInfo>>> listGroups(@Body InlongGroupPageRequest request);
 
     @POST("group/save")
     Call<Response<String>> createGroup(@Body InlongGroupRequest request);
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java
index 679dd3aae..717609591 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.stream.InlongStreamBriefInfo;
 import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
@@ -46,10 +46,10 @@ public interface InlongStreamApi {
             @Query("streamId") String streamId);
 
     @POST("stream/list")
-    Call<Response<PageInfo<InlongStreamBriefInfo>>> listByCondition(@Body InlongStreamPageRequest request);
+    Call<Response<PageResult<InlongStreamBriefInfo>>> listByCondition(@Body InlongStreamPageRequest request);
 
     @POST("stream/listAll")
-    Call<Response<PageInfo<InlongStreamInfo>>> listStream(@Body InlongStreamPageRequest request);
+    Call<Response<PageResult<InlongStreamInfo>>> listStream(@Body InlongStreamPageRequest request);
 
     @POST("stream/startProcess/{groupId}/{streamId}")
     Call<Response<Boolean>> startProcess(@Path("groupId") String groupId, @Path("streamId") String streamId);
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSinkApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSinkApi.java
index 4d66087f2..9324c85f1 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSinkApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSinkApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.sink.SinkRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -41,7 +41,7 @@ public interface StreamSinkApi {
     Call<Response<Boolean>> deleteSink(@Path("id") Integer id);
 
     @GET("sink/list")
-    Call<Response<PageInfo<StreamSink>>> listSinks(@Query("inlongGroupId") String groupId,
+    Call<Response<PageResult<StreamSink>>> listSinks(@Query("inlongGroupId") String groupId,
             @Query("inlongStreamId") String streamId, @Query("sinkType") String sinkType);
 
     @GET("sink/get/{id}")
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSourceApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSourceApi.java
index d43aaf67d..5c0fe8c15 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSourceApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/StreamSourceApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.source.SourceRequest;
 import org.apache.inlong.manager.pojo.source.StreamSource;
@@ -38,7 +38,7 @@ public interface StreamSourceApi {
     Call<Response<Boolean>> updateSource(@Body SourceRequest request);
 
     @GET("source/list")
-    Call<Response<PageInfo<StreamSource>>> listSources(@Query("inlongGroupId") String groupId,
+    Call<Response<PageResult<StreamSource>>> listSources(@Query("inlongGroupId") String groupId,
             @Query("inlongStreamId") String streamId, @Query("sourceType") String sourceType);
 
     @DELETE("source/delete/{id}")
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/UserApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/UserApi.java
index 0f91ab3cc..3221136db 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/UserApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/UserApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRequest;
@@ -41,7 +41,7 @@ public interface UserApi {
     Call<Response<UserInfo>> getById(@Path("id") Integer id);
 
     @POST("user/listAll")
-    Call<Response<PageInfo<UserInfo>>> list(@Body UserRequest request);
+    Call<Response<PageResult<UserInfo>>> list(@Body UserRequest request);
 
     @POST("user/update")
     Call<Response<Integer>> update(@Body UserRequest userInfo);
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApi.java
index d11e2144c..89c2ccc3c 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.ProcessDetailResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessResponse;
@@ -60,9 +60,9 @@ public interface WorkflowApi {
     Call<Response<ProcessDetailResponse>> detail(@Path("processId") Integer processId, @Query("taskId") Integer taskId);
 
     @GET("workflow/listProcess")
-    Call<Response<PageInfo<ProcessResponse>>> listProcess(@Query("query") Map<String, Object> query);
+    Call<Response<PageResult<ProcessResponse>>> listProcess(@Query("query") Map<String, Object> query);
 
     @GET("workflow/listTask")
-    Call<Response<PageInfo<TaskResponse>>> listTask(@Query("query") Map<String, Object> query);
+    Call<Response<PageResult<TaskResponse>>> listTask(@Query("query") Map<String, Object> query);
 
 }
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApproverApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApproverApi.java
index 8573b6a85..3dcfb04d1 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApproverApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowApproverApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.ApproverRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverResponse;
@@ -39,7 +39,7 @@ public interface WorkflowApproverApi {
     Call<Response<ApproverResponse>> get(@Path("id") Integer id);
 
     @GET("workflow/approver/list")
-    Call<Response<PageInfo<ApproverResponse>>> listByCondition(@Query("map") Map<String, Object> map);
+    Call<Response<PageResult<ApproverResponse>>> listByCondition(@Query("map") Map<String, Object> map);
 
     @POST("workflow/approver/update")
     Call<Response<Integer>> update(@Body ApproverRequest request);
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowEventApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowEventApi.java
index abecf1ebf..209f28102 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowEventApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/WorkflowEventApi.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.client.api.service;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.EventLogResponse;
 import retrofit2.Call;
@@ -27,6 +27,6 @@ import retrofit2.http.Query;
 public interface WorkflowEventApi {
 
     @GET("workflow/event/list")
-    Call<Response<PageInfo<EventLogResponse>>> getInlongGroupError(@Query("inlongGroupId") String groupId,
+    Call<Response<PageResult<EventLogResponse>>> getInlongGroupError(@Query("inlongGroupId") String groupId,
             @Query("status") Integer status);
 }
diff --git a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
index 54f8158ae..1c88b943f 100644
--- a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
+++ b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/ClientFactoryTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.client.api.inner;
 
-import com.github.pagehelper.PageInfo;
 import com.github.tomakehurst.wiremock.WireMockServer;
 import com.github.tomakehurst.wiremock.client.WireMock;
 import com.google.common.collect.Lists;
@@ -54,6 +53,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
 import org.apache.inlong.manager.pojo.cluster.pulsar.PulsarClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.pulsar.PulsarClusterRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupCountResponse;
@@ -218,11 +218,11 @@ class ClientFactoryTest {
         stubFor(
                 post(urlMatching("/inlong/manager/api/group/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(groupBriefInfos))))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(groupBriefInfos))))
                         )
         );
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
         Assertions.assertEquals(JsonUtils.toJsonString(groupBriefInfos),
                 JsonUtils.toJsonString(pageInfo.getList()));
     }
@@ -253,11 +253,11 @@ class ClientFactoryTest {
         stubFor(
                 post(urlMatching("/inlong/manager/api/group/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(groupBriefInfos))))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(groupBriefInfos))))
                         )
         );
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
         Assertions.assertEquals(JsonUtils.toJsonString(groupBriefInfos),
                 JsonUtils.toJsonString(pageInfo.getList()));
     }
@@ -291,11 +291,11 @@ class ClientFactoryTest {
         stubFor(
                 post(urlMatching("/inlong/manager/api/group/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(groupBriefInfos))))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(groupBriefInfos))))
                         )
         );
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
         Assertions.assertEquals(JsonUtils.toJsonString(groupBriefInfos),
                 JsonUtils.toJsonString(pageInfo.getList()));
     }
@@ -331,11 +331,11 @@ class ClientFactoryTest {
         stubFor(
                 post(urlMatching("/inlong/manager/api/group/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(groupBriefInfos))))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(groupBriefInfos))))
                         )
         );
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
         Assertions.assertEquals(JsonUtils.toJsonString(groupBriefInfos),
                 JsonUtils.toJsonString(pageInfo.getList()));
     }
@@ -402,12 +402,12 @@ class ClientFactoryTest {
         stubFor(
                 post(urlMatching("/inlong/manager/api/group/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(groupBriefInfos)))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(groupBriefInfos)))
                                 )
                         )
         );
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
         Assertions.assertEquals(JsonUtils.toJsonString(groupBriefInfos),
                 JsonUtils.toJsonString(pageInfo.getList()));
     }
@@ -423,7 +423,7 @@ class ClientFactoryTest {
                         )
         );
 
-        PageInfo<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
+        PageResult<InlongGroupBriefInfo> pageInfo = groupClient.listGroups("keyword", 1, 1, 10);
         Assertions.assertNull(pageInfo);
     }
 
@@ -665,7 +665,7 @@ class ClientFactoryTest {
                 post(urlMatching("/inlong/manager/api/stream/listAll.*"))
                         .willReturn(
                                 okJson(JsonUtils.toJsonString(
-                                        Response.success(new PageInfo<>(Lists.newArrayList(streamInfo))))
+                                        Response.success(new PageResult<>(Lists.newArrayList(streamInfo))))
                                 )
                         )
         );
@@ -724,7 +724,7 @@ class ClientFactoryTest {
                 get(urlMatching("/inlong/manager/api/sink/list.*"))
                         .willReturn(
                                 okJson(JsonUtils.toJsonString(
-                                        Response.success(new PageInfo<>(Lists.newArrayList(sinkList))))
+                                        Response.success(new PageResult<>(Lists.newArrayList(sinkList))))
                                 )
                         )
         );
@@ -1008,13 +1008,13 @@ class ClientFactoryTest {
         stubFor(
                 post(urlMatching("/inlong/manager/api/node/list.*"))
                         .willReturn(
-                                okJson(JsonUtils.toJsonString(Response.success(new PageInfo<>(nodeResponses))))
+                                okJson(JsonUtils.toJsonString(Response.success(new PageResult<>(nodeResponses))))
                         )
         );
 
         HiveDataNodeRequest request = new HiveDataNodeRequest();
         request.setName("test_hive_node");
-        PageInfo<DataNodeResponse> nodePageInfo = dataNodeClient.list(request);
+        PageResult<DataNodeResponse> nodePageInfo = dataNodeClient.list(request);
         Assertions.assertEquals(JsonUtils.toJsonString(nodePageInfo.getList()), JsonUtils.toJsonString(nodeResponses));
     }
 
diff --git a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowApproverClientTest.java b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowApproverClientTest.java
index 5cbd3ba6b..d32e22649 100644
--- a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowApproverClientTest.java
+++ b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowApproverClientTest.java
@@ -17,10 +17,10 @@
 
 package org.apache.inlong.manager.client.api.inner;
 
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import org.apache.inlong.manager.client.api.inner.client.WorkflowApproverClient;
 import org.apache.inlong.manager.common.util.JsonUtils;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.ApproverPageRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverRequest;
@@ -71,7 +71,7 @@ class WorkflowApproverClientTest extends ClientFactoryTest {
                         .willReturn(
                                 okJson(JsonUtils.toJsonString(
                                         Response.success(
-                                                PageInfo.of(
+                                                new PageResult<>(
                                                         Lists.newArrayList(
                                                                 ApproverResponse.builder()
                                                                         .taskName("task1")
diff --git a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowClientTest.java b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowClientTest.java
index ae4686a26..98fe7b40a 100644
--- a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowClientTest.java
+++ b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/WorkflowClientTest.java
@@ -17,11 +17,11 @@
 
 package org.apache.inlong.manager.client.api.inner;
 
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import org.apache.inlong.manager.client.api.inner.client.WorkflowClient;
 import org.apache.inlong.manager.common.enums.ProcessName;
 import org.apache.inlong.manager.common.util.JsonUtils;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.group.pulsar.InlongPulsarInfo;
 import org.apache.inlong.manager.pojo.workflow.ProcessRequest;
@@ -86,14 +86,14 @@ public class WorkflowClientTest extends ClientFactoryTest {
                 get(urlMatching("/inlong/manager/api/workflow/listProcess.*"))
                         .willReturn(
                                 okJson(JsonUtils.toJsonString(
-                                        Response.success(new PageInfo<>(responses)))
+                                        Response.success(new PageResult<>(responses)))
                                 )
                         )
         );
 
         ProcessRequest request = new ProcessRequest();
         request.setId(1);
-        PageInfo<ProcessResponse> pageInfo = workflowClient.listProcess(request);
+        PageResult<ProcessResponse> pageInfo = workflowClient.listProcess(request);
         Assertions.assertEquals(JsonUtils.toJsonString(pageInfo.getList()), JsonUtils.toJsonString(responses));
     }
 }
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
new file mode 100644
index 000000000..9d7bd4c0a
--- /dev/null
+++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/common/PageResult.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.manager.pojo.common;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+@ApiModel("Paginated query results")
+public final class PageResult<T> implements Serializable {
+
+    @ApiModelProperty(value = "data record", required = true)
+    private List<T> list;
+
+    @ApiModelProperty(value = "The total number of items matching the filter criteria", required = true)
+    private Long total;
+
+    @ApiModelProperty(value = "pageSize", required = true)
+    private Integer pageSize;
+
+    @ApiModelProperty(value = "pageNum", required = true)
+    private Integer pageNum;
+
+    public PageResult() {
+    }
+
+    public PageResult(List<T> list, Long total) {
+        this.list = list;
+        this.total = total;
+    }
+
+    public PageResult(List<T> list, Long total, Integer pageNum, Integer pageSize) {
+        this.list = list;
+        this.total = total;
+        this.pageNum = pageNum;
+        this.pageSize = pageSize;
+    }
+
+    public PageResult(Long total) {
+        this.list = new ArrayList<>();
+        this.total = total;
+    }
+
+    public PageResult(List<T> list) {
+        this.list = list;
+        this.total = (long) list.size();
+    }
+
+    public static <T> PageResult<T> empty() {
+        return new PageResult<>(0L);
+    }
+
+    public static <T> PageResult<T> empty(Long total) {
+        return new PageResult<>(total);
+    }
+
+}
\ No newline at end of file
diff --git a/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/page/PageResultTest.java b/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/page/PageResultTest.java
new file mode 100644
index 000000000..0266c22cd
--- /dev/null
+++ b/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/page/PageResultTest.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.manager.pojo.page;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import org.apache.inlong.manager.common.util.JsonUtils;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
+import org.apache.inlong.manager.pojo.group.none.InlongNoneMqInfo;
+import org.apache.inlong.manager.pojo.group.pulsar.InlongPulsarInfo;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+
+/**
+ * Tests for the {@link org.apache.inlong.manager.pojo.common.PageResult}.
+ */
+
+class PageResultTest {
+
+    @Test
+    void testDeserializePageInfoFromWeb() {
+
+        String pageInfoJson = "{\"total\":30,\"list\":[{\"id\":null,\"inlongGroupId\":\"22\",\"name\":null,"
+                + "\"description\":null,\"middlewareType\":null,\"mqType\":\"NONE\",\"mqResource\":null,"
+                + "\"enableZookeeper\":0,\"enableCreateResource\":null,\"lightweight\":null,"
+                + "\"inlongClusterTag\":null,\"dailyRecords\":null,\"dailyStorage\":null,\"peakRecords\":null,"
+                + "\"maxLength\":null,\"inCharges\":null,\"followers\":null,\"status\":null,\"creator\":null,"
+                + "\"modifier\":null,\"createTime\":null,\"modifyTime\":null,\"extList\":null,\"sortConf\":null,"
+                + "\"version\":44},{\"id\":null,\"inlongGroupId\":null,\"name\":null,\"description\":null,"
+                + "\"middlewareType\":null,\"mqType\":\"PULSAR\",\"mqResource\":null,\"enableZookeeper\":0,"
+                + "\"enableCreateResource\":null,\"lightweight\":null,\"inlongClusterTag\":null,"
+                + "\"dailyRecords\":null,\"dailyStorage\":null,\"peakRecords\":null,\"maxLength\":null,"
+                + "\"inCharges\":null,\"followers\":null,\"status\":null,\"creator\":null,\"modifier\":null,"
+                + "\"createTime\":null,\"modifyTime\":null,\"extList\":null,\"sortConf\":null,\"version\":null,"
+                + "\"tenant\":null,\"adminUrl\":null,\"serviceUrl\":null,\"queueModule\":\"PARALLEL\","
+                + "\"partitionNum\":3,\"ensemble\":3,\"writeQuorum\":3,\"ackQuorum\":2,\"ttl\":24,"
+                + "\"ttlUnit\":\"hours\",\"retentionTime\":72,\"retentionTimeUnit\":\"hours\","
+                + "\"retentionSize\":-1,\"retentionSizeUnit\":\"MB\"}],\"pageNum\":1,\"pageSize\":20,\"size\":0,"
+                + "\"startRow\":0,\"endRow\":0,\"pages\":0,\"prePage\":0,\"nextPage\":0,\"isFirstPage\":false,"
+                + "\"isLastPage\":false,\"hasPreviousPage\":false,\"hasNextPage\":false,\"navigatePages\":0,"
+                + "\"navigatepageNums\":null,\"navigateFirstPage\":0,\"navigateLastPage\":0}";
+
+        PageResult<InlongGroupInfo> pageResult = JsonUtils.parseObject(pageInfoJson,
+                new TypeReference<PageResult<InlongGroupInfo>>() {
+                });
+
+        Assertions.assertEquals(1, pageResult.getPageNum());
+        Assertions.assertEquals(30, pageResult.getTotal());
+        Assertions.assertEquals(20, pageResult.getPageSize());
+
+        List<InlongGroupInfo> inlongGroupInfos = pageResult.getList();
+        Assertions.assertTrue(inlongGroupInfos.get(0) instanceof InlongNoneMqInfo);
+        Assertions.assertTrue(inlongGroupInfos.get(1) instanceof InlongPulsarInfo);
+    }
+}
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterService.java
index e57e5500b..244ee8372 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterService.java
@@ -17,7 +17,6 @@
 
 package org.apache.inlong.manager.service.cluster;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.common.pojo.dataproxy.DataProxyConfig;
 import org.apache.inlong.common.pojo.dataproxy.DataProxyNodeResponse;
 import org.apache.inlong.manager.pojo.cluster.BindTagRequest;
@@ -29,6 +28,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
+import org.apache.inlong.manager.pojo.common.PageResult;
 
 import java.util.List;
 
@@ -61,7 +61,7 @@ public interface InlongClusterService {
      * @param request page request conditions
      * @return cluster tag list
      */
-    PageInfo<ClusterTagResponse> listTag(ClusterTagPageRequest request);
+    PageResult<ClusterTagResponse> listTag(ClusterTagPageRequest request);
 
     /**
      * Update cluster tag.
@@ -116,7 +116,7 @@ public interface InlongClusterService {
      * @param request page request conditions
      * @return cluster list
      */
-    PageInfo<ClusterInfo> list(ClusterPageRequest request);
+    PageResult<ClusterInfo> list(ClusterPageRequest request);
 
     /**
      * Update cluster information
@@ -170,7 +170,7 @@ public interface InlongClusterService {
      * @param currentUser current operator
      * @return cluster node list
      */
-    PageInfo<ClusterNodeResponse> listNode(ClusterPageRequest request, String currentUser);
+    PageResult<ClusterNodeResponse> listNode(ClusterPageRequest request, String currentUser);
 
     /**
      * Query node IP list by cluster type
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 944e3fe22..d3a05b7ff 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.cluster;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.google.common.base.Joiner;
 import com.google.common.collect.Sets;
 import com.google.gson.Gson;
@@ -62,6 +61,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
 import org.apache.inlong.manager.pojo.cluster.pulsar.PulsarClusterDTO;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.stream.InlongStreamBriefInfo;
@@ -153,16 +153,17 @@ public class InlongClusterServiceImpl implements InlongClusterService {
     }
 
     @Override
-    public PageInfo<ClusterTagResponse> listTag(ClusterTagPageRequest request) {
+    public PageResult<ClusterTagResponse> listTag(ClusterTagPageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<InlongClusterTagEntity> entityPage = (Page<InlongClusterTagEntity>) clusterTagMapper
                 .selectByCondition(request);
+
         List<ClusterTagResponse> tagList = CommonBeanUtils.copyListProperties(entityPage, ClusterTagResponse::new);
-        PageInfo<ClusterTagResponse> page = new PageInfo<>(tagList);
-        page.setTotal(tagList.size());
 
+        PageResult<ClusterTagResponse> pageResult = new PageResult<>(tagList,
+                entityPage.getTotal(), entityPage.getPageNum(), entityPage.getPageSize());
         LOGGER.debug("success to list cluster tag by {}", request);
-        return page;
+        return pageResult;
     }
 
     @Override
@@ -313,18 +314,23 @@ public class InlongClusterServiceImpl implements InlongClusterService {
     }
 
     @Override
-    public PageInfo<ClusterInfo> list(ClusterPageRequest request) {
+    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()
                 .map(entity -> {
                     InlongClusterOperator instance = clusterOperatorFactory.getInstance(entity.getType());
                     return instance.getFromEntity(entity);
-                }).collect(Collectors.toList());
-        PageInfo<ClusterInfo> page = new PageInfo<>(list);
-        page.setTotal(list.size());
+                })
+                .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 page;
+        return pageResult;
     }
 
     @Override
@@ -494,12 +500,11 @@ public class InlongClusterServiceImpl implements InlongClusterService {
     }
 
     @Override
-    public PageInfo<ClusterNodeResponse> listNode(ClusterPageRequest request, String currentUser) {
+    public PageResult<ClusterNodeResponse> listNode(ClusterPageRequest request, String currentUser) {
         if (StringUtils.isNotBlank(request.getClusterTag())) {
             List<ClusterNodeResponse> nodeList = listNodeByClusterTag(request);
-            PageInfo<ClusterNodeResponse> page = new PageInfo<>(nodeList);
-            page.setTotal(nodeList.size());
-            return page;
+
+            return new PageResult<>(nodeList, (long) nodeList.size());
         }
         Integer parentId = request.getParentId();
         Preconditions.checkNotNull(parentId, "Cluster id cannot be empty");
@@ -507,17 +512,19 @@ public class InlongClusterServiceImpl implements InlongClusterService {
         UserEntity userEntity = userMapper.selectByName(currentUser);
         boolean isInCharge = Preconditions.inSeparatedString(currentUser, cluster.getInCharges(),
                 InlongConstants.COMMA);
+
         Preconditions.checkTrue(isInCharge || userEntity.getAccountType().equals(UserTypeEnum.ADMIN.getCode()),
                 "Current user does not have permission to get cluster node list");
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<InlongClusterNodeEntity> entityPage = (Page<InlongClusterNodeEntity>)
                 clusterNodeMapper.selectByCondition(request);
         List<ClusterNodeResponse> nodeList = CommonBeanUtils.copyListProperties(entityPage, ClusterNodeResponse::new);
-        PageInfo<ClusterNodeResponse> page = new PageInfo<>(nodeList);
-        page.setTotal(nodeList.size());
+
+        PageResult<ClusterNodeResponse> pageResult = new PageResult<>(nodeList, entityPage.getTotal(),
+                entityPage.getPageNum(), entityPage.getPageSize());
 
         LOGGER.debug("success to list inlong cluster node by {}", request);
-        return page;
+        return pageResult;
     }
 
     public List<ClusterNodeResponse> listNodeByClusterTag(ClusterPageRequest request) {
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/ConsumptionService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/ConsumptionService.java
index e1ad392c2..489c8d1c0 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/ConsumptionService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/ConsumptionService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.core;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionInfo;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionListVo;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionQuery;
@@ -43,7 +43,7 @@ public interface ConsumptionService {
      * @param query Consumption info
      * @return Consumption list
      */
-    PageInfo<ConsumptionListVo> list(ConsumptionQuery query);
+    PageResult<ConsumptionListVo> list(ConsumptionQuery query);
 
     /**
      * Get data consumption details
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/HeartbeatService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/HeartbeatService.java
index 86863c5d8..df6093ed0 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/HeartbeatService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/HeartbeatService.java
@@ -17,12 +17,12 @@
 
 package org.apache.inlong.manager.service.core;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.heartbeat.ComponentHeartbeatResponse;
 import org.apache.inlong.manager.pojo.heartbeat.GroupHeartbeatResponse;
 import org.apache.inlong.manager.pojo.heartbeat.HeartbeatPageRequest;
-import org.apache.inlong.manager.pojo.heartbeat.HeartbeatReportRequest;
 import org.apache.inlong.manager.pojo.heartbeat.HeartbeatQueryRequest;
+import org.apache.inlong.manager.pojo.heartbeat.HeartbeatReportRequest;
 import org.apache.inlong.manager.pojo.heartbeat.StreamHeartbeatResponse;
 
 /**
@@ -68,7 +68,7 @@ public interface HeartbeatService {
      * @param request paging query request
      * @return list of component heartbeat
      */
-    PageInfo<ComponentHeartbeatResponse> listComponentHeartbeat(HeartbeatPageRequest request);
+    PageResult<ComponentHeartbeatResponse> listComponentHeartbeat(HeartbeatPageRequest request);
 
     /**
      * List group heartbeat by page
@@ -76,7 +76,7 @@ public interface HeartbeatService {
      * @param request paging query request
      * @return list of group heartbeat
      */
-    PageInfo<GroupHeartbeatResponse> listGroupHeartbeat(HeartbeatPageRequest request);
+    PageResult<GroupHeartbeatResponse> listGroupHeartbeat(HeartbeatPageRequest request);
 
     /**
      * List stream heartbeat by page
@@ -84,6 +84,6 @@ public interface HeartbeatService {
      * @param request paging query request
      * @return list of stream heartbeat
      */
-    PageInfo<StreamHeartbeatResponse> listStreamHeartbeat(HeartbeatPageRequest request);
+    PageResult<StreamHeartbeatResponse> listStreamHeartbeat(HeartbeatPageRequest request);
 
 }
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowApproverService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowApproverService.java
index 6d4131eda..8c99be293 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowApproverService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowApproverService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.core;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.ApproverPageRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverResponse;
@@ -60,7 +60,7 @@ public interface WorkflowApproverService {
      * @param request page query request
      * @return approver list
      */
-    PageInfo<ApproverResponse> listByCondition(ApproverPageRequest request);
+    PageResult<ApproverResponse> listByCondition(ApproverPageRequest request);
 
     /**
      * Update workflow approve.
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowEventService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowEventService.java
index a998aa710..f9020b6c7 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowEventService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/WorkflowEventService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.core;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.EventLogRequest;
 import org.apache.inlong.manager.pojo.workflow.EventLogResponse;
 import org.apache.inlong.manager.workflow.event.process.ProcessEvent;
@@ -42,7 +42,7 @@ public interface WorkflowEventService {
      * @param query Query conditions
      * @return Log list
      */
-    PageInfo<EventLogResponse> list(EventLogRequest query);
+    PageResult<EventLogResponse> list(EventLogRequest query);
 
     /**
      * Execute the listener based on the log ID
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/ConsumptionServiceImpl.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/ConsumptionServiceImpl.java
index 6efafbdeb..e7a1c9e12 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/ConsumptionServiceImpl.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/ConsumptionServiceImpl.java
@@ -19,14 +19,13 @@ package org.apache.inlong.manager.service.core.impl;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.inlong.manager.common.consts.InlongConstants;
+import org.apache.inlong.manager.common.consts.MQType;
 import org.apache.inlong.manager.common.enums.ClusterType;
 import org.apache.inlong.manager.common.enums.ConsumptionStatus;
 import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
-import org.apache.inlong.manager.common.consts.MQType;
 import org.apache.inlong.manager.common.exceptions.BusinessException;
 import org.apache.inlong.manager.common.util.CommonBeanUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
@@ -38,6 +37,7 @@ import org.apache.inlong.manager.dao.mapper.ConsumptionPulsarEntityMapper;
 import org.apache.inlong.manager.dao.mapper.InlongGroupEntityMapper;
 import org.apache.inlong.manager.pojo.cluster.pulsar.PulsarClusterInfo;
 import org.apache.inlong.manager.pojo.common.CountInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionInfo;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionListVo;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionMqExtBase;
@@ -110,14 +110,16 @@ public class ConsumptionServiceImpl implements ConsumptionService {
     }
 
     @Override
-    public PageInfo<ConsumptionListVo> list(ConsumptionQuery query) {
+    public PageResult<ConsumptionListVo> list(ConsumptionQuery query) {
         PageHelper.startPage(query.getPageNum(), query.getPageSize());
         query.setIsAdminRole(LoginUserUtils.getLoginUser().getRoles().contains(UserRoleCode.ADMIN));
         Page<ConsumptionEntity> pageResult = (Page<ConsumptionEntity>) consumptionMapper.listByQuery(query);
-        PageInfo<ConsumptionListVo> pageInfo = pageResult
-                .toPageInfo(entity -> CommonBeanUtils.copyProperties(entity, ConsumptionListVo::new));
-        pageInfo.setTotal(pageResult.getTotal());
-        return pageInfo;
+        List<ConsumptionListVo> consumptionListVos = CommonBeanUtils.copyListProperties(pageResult.getResult(),
+                ConsumptionListVo::new);
+
+        return new PageResult<>(
+                consumptionListVos, pageResult.getTotal(), pageResult.getPageNum(), pageResult.getPageSize()
+        );
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/HeartbeatServiceImpl.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/HeartbeatServiceImpl.java
index a0c2b5d8c..0d789a30d 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/HeartbeatServiceImpl.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/HeartbeatServiceImpl.java
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.core.impl;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.google.gson.Gson;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
@@ -37,6 +36,7 @@ import org.apache.inlong.manager.dao.entity.StreamHeartbeatEntity;
 import org.apache.inlong.manager.dao.mapper.ComponentHeartbeatEntityMapper;
 import org.apache.inlong.manager.dao.mapper.GroupHeartbeatEntityMapper;
 import org.apache.inlong.manager.dao.mapper.StreamHeartbeatEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.heartbeat.ComponentHeartbeatResponse;
 import org.apache.inlong.manager.pojo.heartbeat.GroupHeartbeatResponse;
 import org.apache.inlong.manager.pojo.heartbeat.HeartbeatPageRequest;
@@ -161,7 +161,7 @@ public class HeartbeatServiceImpl implements HeartbeatService {
     }
 
     @Override
-    public PageInfo<ComponentHeartbeatResponse> listComponentHeartbeat(HeartbeatPageRequest request) {
+    public PageResult<ComponentHeartbeatResponse> listComponentHeartbeat(HeartbeatPageRequest request) {
         Preconditions.checkNotNull(request, ErrorCodeEnum.REQUEST_IS_EMPTY.getMessage());
         String component = request.getComponent();
         Preconditions.checkNotEmpty(component, ErrorCodeEnum.REQUEST_COMPONENT_EMPTY.getMessage());
@@ -180,7 +180,7 @@ public class HeartbeatServiceImpl implements HeartbeatService {
     }
 
     @Override
-    public PageInfo<GroupHeartbeatResponse> listGroupHeartbeat(HeartbeatPageRequest request) {
+    public PageResult<GroupHeartbeatResponse> listGroupHeartbeat(HeartbeatPageRequest request) {
         Preconditions.checkNotNull(request, ErrorCodeEnum.REQUEST_IS_EMPTY.getMessage());
         String component = request.getComponent();
         Preconditions.checkNotEmpty(component, ErrorCodeEnum.REQUEST_COMPONENT_EMPTY.getMessage());
@@ -199,7 +199,7 @@ public class HeartbeatServiceImpl implements HeartbeatService {
     }
 
     @Override
-    public PageInfo<StreamHeartbeatResponse> listStreamHeartbeat(HeartbeatPageRequest request) {
+    public PageResult<StreamHeartbeatResponse> listStreamHeartbeat(HeartbeatPageRequest request) {
         Preconditions.checkNotNull(request, ErrorCodeEnum.REQUEST_IS_EMPTY.getMessage());
         String component = request.getComponent();
         Preconditions.checkNotEmpty(component, ErrorCodeEnum.REQUEST_COMPONENT_EMPTY.getMessage());
@@ -251,40 +251,35 @@ public class HeartbeatServiceImpl implements HeartbeatService {
         return true;
     }
 
-    private PageInfo<ComponentHeartbeatResponse> listComponentHeartbeatOpt(HeartbeatPageRequest request) {
+    private PageResult<ComponentHeartbeatResponse> listComponentHeartbeatOpt(HeartbeatPageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
         Page<ComponentHeartbeatEntity> entityPage = (Page<ComponentHeartbeatEntity>)
                 componentHeartbeatMapper.selectByCondition(request);
         List<ComponentHeartbeatResponse> responseList = CommonBeanUtils.copyListProperties(entityPage,
                 ComponentHeartbeatResponse::new);
 
-        PageInfo<ComponentHeartbeatResponse> pageInfo = new PageInfo<>(responseList);
-        pageInfo.setTotal(responseList.size());
-        return pageInfo;
+        return new PageResult<>(responseList, entityPage.getTotal());
     }
 
-    private PageInfo<GroupHeartbeatResponse> listGroupHeartbeatOpt(HeartbeatPageRequest request) {
+    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);
 
-        PageInfo<GroupHeartbeatResponse> pageInfo = new PageInfo<>(responseList);
-        pageInfo.setTotal(responseList.size());
-        return pageInfo;
+        return new PageResult<>(responseList,
+                entityPage.getTotal(), entityPage.getPageNum(), entityPage.getPageSize());
     }
 
-    private PageInfo<StreamHeartbeatResponse> listStreamHeartbeatOpt(HeartbeatPageRequest request) {
+    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);
 
-        PageInfo<StreamHeartbeatResponse> pageInfo = new PageInfo<>(responseList);
-        pageInfo.setTotal(responseList.size());
-        return pageInfo;
+        return new PageResult<>(responseList, entityPage.getTotal(), entityPage.getPageNum(), entityPage.getPageSize());
     }
 
 }
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 60dc7cc10..bdac4978f 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.core.impl;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.common.consts.InlongConstants;
 import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
 import org.apache.inlong.manager.common.exceptions.BusinessException;
@@ -27,6 +26,7 @@ import org.apache.inlong.manager.common.util.CommonBeanUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.dao.entity.WorkflowApproverEntity;
 import org.apache.inlong.manager.dao.mapper.WorkflowApproverEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.ApproverPageRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverResponse;
@@ -111,15 +111,14 @@ public class WorkflowApproverServiceImpl implements WorkflowApproverService {
     }
 
     @Override
-    public PageInfo<ApproverResponse> listByCondition(ApproverPageRequest request) {
+    public PageResult<ApproverResponse> listByCondition(ApproverPageRequest request) {
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
 
         Page<WorkflowApproverEntity> page = (Page<WorkflowApproverEntity>) approverMapper.selectByCondition(request);
         List<ApproverResponse> resultList = CommonBeanUtils.copyListProperties(page,
                 ApproverResponse::new);
-        PageInfo<ApproverResponse> pageInfo = new PageInfo<>(resultList);
-        pageInfo.setTotal(page.getTotal());
-        return pageInfo;
+
+        return new PageResult<>(resultList, page.getTotal(), page.getPageNum(), page.getPageSize());
     }
 
     @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 6ca972c2f..21fea8664 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
@@ -19,11 +19,11 @@ package org.apache.inlong.manager.service.core.impl;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-import org.apache.inlong.manager.pojo.workflow.EventLogRequest;
-import org.apache.inlong.manager.pojo.workflow.EventLogResponse;
 import org.apache.inlong.manager.common.util.CommonBeanUtils;
 import org.apache.inlong.manager.dao.entity.WorkflowEventLogEntity;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.workflow.EventLogRequest;
+import org.apache.inlong.manager.pojo.workflow.EventLogResponse;
 import org.apache.inlong.manager.service.core.WorkflowEventService;
 import org.apache.inlong.manager.workflow.core.EventListenerService;
 import org.apache.inlong.manager.workflow.core.WorkflowQueryService;
@@ -52,15 +52,13 @@ public class WorkflowEventServiceImpl implements WorkflowEventService {
     }
 
     @Override
-    public PageInfo<EventLogResponse> list(EventLogRequest query) {
+    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);
-        PageInfo<EventLogResponse> pageInfo = new PageInfo<>(viewList);
-        pageInfo.setTotal(page.getTotal());
 
-        return pageInfo;
+        return new PageResult<>(viewList, page.getTotal(), page.getPageNum(), page.getPageSize());
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
index 9136f6cfa..48dccc0f5 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.group;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupApproveRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupCountResponse;
@@ -59,7 +59,7 @@ public interface InlongGroupService {
      * @param request pagination query request
      * @return group list
      */
-    PageInfo<InlongGroupBriefInfo> listBrief(InlongGroupPageRequest request);
+    PageResult<InlongGroupBriefInfo> listBrief(InlongGroupPageRequest request);
 
     /**
      * Modify group information
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 ebec5d8d5..65aecd2e3 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
@@ -20,7 +20,6 @@ package org.apache.inlong.manager.service.group;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections.CollectionUtils;
@@ -43,6 +42,7 @@ import org.apache.inlong.manager.dao.mapper.InlongGroupExtEntityMapper;
 import org.apache.inlong.manager.dao.mapper.StreamSourceEntityMapper;
 import org.apache.inlong.manager.pojo.common.OrderFieldEnum;
 import org.apache.inlong.manager.pojo.common.OrderTypeEnum;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupApproveRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupCountResponse;
@@ -181,7 +181,7 @@ public class InlongGroupServiceImpl implements InlongGroupService {
     }
 
     @Override
-    public PageInfo<InlongGroupBriefInfo> listBrief(InlongGroupPageRequest request) {
+    public PageResult<InlongGroupBriefInfo> listBrief(InlongGroupPageRequest request) {
         if (request.getPageSize() > MAX_PAGE_SIZE) {
             LOGGER.warn("list group info, but page size is {}, change to {}", request.getPageSize(), MAX_PAGE_SIZE);
             request.setPageSize(MAX_PAGE_SIZE);
@@ -210,10 +210,12 @@ public class InlongGroupServiceImpl implements InlongGroupService {
                 group.setStreamSources(sources);
             });
         }
-        PageInfo<InlongGroupBriefInfo> page = new PageInfo<>(briefInfos);
-        page.setTotal(entityPage.getTotal());
+
+        PageResult<InlongGroupBriefInfo> pageResult = new PageResult<>(briefInfos,
+                entityPage.getTotal(), entityPage.getPageNum(), entityPage.getPageSize());
+
         LOGGER.debug("success to list inlong group for {}", request);
-        return page;
+        return pageResult;
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeService.java
index 29422e81d..be5427097 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.node;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.node.DataNodeInfo;
 import org.apache.inlong.manager.pojo.node.DataNodePageRequest;
 import org.apache.inlong.manager.pojo.node.DataNodeRequest;
@@ -50,7 +50,7 @@ public interface DataNodeService {
      * @param request page request conditions
      * @return node list
      */
-    PageInfo<DataNodeInfo> list(DataNodePageRequest request);
+    PageResult<DataNodeInfo> list(DataNodePageRequest request);
 
     /**
      * Update data node.
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 893987663..aa823dae5 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.node;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.common.consts.DataNodeType;
 import org.apache.inlong.manager.common.consts.InlongConstants;
 import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
@@ -27,6 +26,7 @@ import org.apache.inlong.manager.common.exceptions.BusinessException;
 import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.dao.entity.DataNodeEntity;
 import org.apache.inlong.manager.dao.mapper.DataNodeEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.node.DataNodeInfo;
 import org.apache.inlong.manager.pojo.node.DataNodePageRequest;
 import org.apache.inlong.manager.pojo.node.DataNodeRequest;
@@ -89,7 +89,7 @@ public class DataNodeServiceImpl implements DataNodeService {
     }
 
     @Override
-    public PageInfo<DataNodeInfo> list(DataNodePageRequest request) {
+    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()
@@ -97,10 +97,12 @@ public class DataNodeServiceImpl implements DataNodeService {
                     DataNodeOperator dataNodeOperator = operatorFactory.getInstance(entity.getType());
                     return dataNodeOperator.getFromEntity(entity);
                 }).collect(Collectors.toList());
-        PageInfo<DataNodeInfo> page = new PageInfo<>(list);
-        page.setTotal(entityPage.getTotal());
+
+        PageResult<DataNodeInfo> pageResult = new PageResult<>(list, entityPage.getTotal(),
+                entityPage.getPageNum(), entityPage.getPageSize());
+
         LOGGER.debug("success to list data node by {}", request);
-        return page;
+        return pageResult;
     }
 
     @Override
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 2e790fff1..ac227ca56 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.sink;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.Page;
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.inlong.manager.common.consts.InlongConstants;
@@ -32,6 +31,7 @@ import org.apache.inlong.manager.dao.entity.StreamSinkEntity;
 import org.apache.inlong.manager.dao.entity.StreamSinkFieldEntity;
 import org.apache.inlong.manager.dao.mapper.StreamSinkEntityMapper;
 import org.apache.inlong.manager.dao.mapper.StreamSinkFieldEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.sink.SinkField;
 import org.apache.inlong.manager.pojo.sink.SinkRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -42,6 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * Default operation of stream sink.
@@ -95,11 +96,17 @@ public abstract class AbstractSinkOperator implements StreamSinkOperator {
     }
 
     @Override
-    public PageInfo<? extends StreamSink> getPageInfo(Page<StreamSinkEntity> entityPage) {
+    public PageResult<? extends StreamSink> getPageInfo(Page<StreamSinkEntity> entityPage) {
         if (CollectionUtils.isEmpty(entityPage)) {
-            return new PageInfo<>();
+            return PageResult.empty();
         }
-        return entityPage.toPageInfo(this::getFromEntity);
+
+        List<StreamSink> streamSinks = entityPage.getResult()
+                .stream()
+                .map(this::getFromEntity)
+                .collect(Collectors.toList());
+
+        return new PageResult<>(streamSinks, entityPage.getTotal(), entityPage.getPageNum(), entityPage.getPageSize());
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkOperator.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkOperator.java
index e8231c419..e23b6cef2 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkOperator.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkOperator.java
@@ -18,8 +18,8 @@
 package org.apache.inlong.manager.service.sink;
 
 import com.github.pagehelper.Page;
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.dao.entity.StreamSinkEntity;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.sink.SinkField;
 import org.apache.inlong.manager.pojo.sink.SinkRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -68,7 +68,7 @@ public interface StreamSinkOperator {
      * @param entityPage sink entity page
      * @return sink info list
      */
-    PageInfo<? extends StreamSink> getPageInfo(Page<StreamSinkEntity> entityPage);
+    PageResult<? extends StreamSink> getPageInfo(Page<StreamSinkEntity> entityPage);
 
     /**
      * Update the sink info.
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkService.java
index 6abefbc16..6b09fd551 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/StreamSinkService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.sink;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.sink.SinkApproveDTO;
 import org.apache.inlong.manager.pojo.sink.SinkBriefInfo;
@@ -93,7 +93,7 @@ public interface StreamSinkService {
      * @param request paging request.
      * @return sink list
      */
-    PageInfo<? extends StreamSink> listByCondition(SinkPageRequest request);
+    PageResult<? extends StreamSink> listByCondition(SinkPageRequest request);
 
     /**
      * Modify data sink information.
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 f5860fb9e..2c537e848 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.sink;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections.CollectionUtils;
@@ -36,6 +35,7 @@ import org.apache.inlong.manager.dao.mapper.StreamSinkEntityMapper;
 import org.apache.inlong.manager.dao.mapper.StreamSinkFieldEntityMapper;
 import org.apache.inlong.manager.pojo.common.OrderFieldEnum;
 import org.apache.inlong.manager.pojo.common.OrderTypeEnum;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.sink.SinkApproveDTO;
 import org.apache.inlong.manager.pojo.sink.SinkBriefInfo;
@@ -177,7 +177,7 @@ public class StreamSinkServiceImpl implements StreamSinkService {
     }
 
     @Override
-    public PageInfo<? extends StreamSink> listByCondition(SinkPageRequest request) {
+    public PageResult<? extends StreamSink> listByCondition(SinkPageRequest request) {
         Preconditions.checkNotNull(request.getInlongGroupId(), ErrorCodeEnum.GROUP_ID_IS_EMPTY.getMessage());
 
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
@@ -191,14 +191,14 @@ public class StreamSinkServiceImpl implements StreamSinkService {
         List<StreamSink> responseList = Lists.newArrayList();
         for (Map.Entry<String, Page<StreamSinkEntity>> entry : sinkMap.entrySet()) {
             StreamSinkOperator sinkOperator = operatorFactory.getInstance(entry.getKey());
-            PageInfo<? extends StreamSink> pageInfo = sinkOperator.getPageInfo(entry.getValue());
+            PageResult<? extends StreamSink> pageInfo = sinkOperator.getPageInfo(entry.getValue());
             responseList.addAll(pageInfo.getList());
         }
         // Encapsulate the paging query results into the PageInfo object to obtain related paging information
-        PageInfo<? extends StreamSink> pageInfo = PageInfo.of(responseList);
+        PageResult<StreamSink> pageResult = new PageResult<>(responseList);
 
-        LOGGER.debug("success to list sink page, result size {}", pageInfo.getSize());
-        return pageInfo;
+        LOGGER.debug("success to list sink page, result size {}", pageResult.getList().size());
+        return pageResult;
     }
 
     @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 72d12343e..d97dff612 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
@@ -18,7 +18,6 @@
 package org.apache.inlong.manager.service.source;
 
 import com.github.pagehelper.Page;
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.inlong.manager.common.consts.InlongConstants;
@@ -26,15 +25,16 @@ import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
 import org.apache.inlong.manager.common.enums.GroupStatus;
 import org.apache.inlong.manager.common.enums.SourceStatus;
 import org.apache.inlong.manager.common.exceptions.BusinessException;
-import org.apache.inlong.manager.pojo.source.SourceRequest;
-import org.apache.inlong.manager.pojo.source.StreamSource;
-import org.apache.inlong.manager.pojo.stream.StreamField;
 import org.apache.inlong.manager.common.util.CommonBeanUtils;
 import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.dao.entity.StreamSourceEntity;
 import org.apache.inlong.manager.dao.entity.StreamSourceFieldEntity;
 import org.apache.inlong.manager.dao.mapper.StreamSourceEntityMapper;
 import org.apache.inlong.manager.dao.mapper.StreamSourceFieldEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.source.SourceRequest;
+import org.apache.inlong.manager.pojo.source.StreamSource;
+import org.apache.inlong.manager.pojo.stream.StreamField;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,6 +44,7 @@ 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.
@@ -98,11 +99,15 @@ public abstract class AbstractSourceOperator implements StreamSourceOperator {
     }
 
     @Override
-    public PageInfo<? extends StreamSource> getPageInfo(Page<StreamSourceEntity> entityPage) {
+    public PageResult<? extends StreamSource> getPageInfo(Page<StreamSourceEntity> entityPage) {
         if (CollectionUtils.isEmpty(entityPage)) {
-            return new PageInfo<>();
+            return PageResult.empty();
         }
-        return entityPage.toPageInfo(this::getFromEntity);
+
+        List<StreamSource> streamSources = entityPage.stream()
+                .map(this::getFromEntity)
+                .collect(Collectors.toList());
+        return new PageResult<>(streamSources, entityPage.getTotal(), entityPage.getPageNum(), entityPage.size());
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceOperator.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceOperator.java
index 2a4436ce3..181102561 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceOperator.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceOperator.java
@@ -18,8 +18,8 @@
 package org.apache.inlong.manager.service.source;
 
 import com.github.pagehelper.Page;
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.dao.entity.StreamSourceEntity;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.source.SourceRequest;
 import org.apache.inlong.manager.pojo.source.StreamSource;
@@ -87,7 +87,7 @@ public interface StreamSourceOperator {
      * @param entityPage given entity page
      * @return source list response
      */
-    PageInfo<? extends StreamSource> getPageInfo(Page<StreamSourceEntity> entityPage);
+    PageResult<? extends StreamSource> getPageInfo(Page<StreamSourceEntity> entityPage);
 
     /**
      * Update the source info.
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceService.java
index b375b6bc7..f0940cecb 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.source;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.source.SourcePageRequest;
 import org.apache.inlong.manager.pojo.source.SourceRequest;
@@ -85,7 +85,7 @@ public interface StreamSourceService {
      * @param request paging request.
      * @return source list
      */
-    PageInfo<? extends StreamSource> listByCondition(SourcePageRequest request);
+    PageResult<? extends StreamSource> listByCondition(SourcePageRequest request);
 
     /**
      * Modify data source information
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 972db279c..04a64e7ac 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.source;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections.CollectionUtils;
@@ -37,6 +36,7 @@ import org.apache.inlong.manager.dao.mapper.StreamSourceEntityMapper;
 import org.apache.inlong.manager.dao.mapper.StreamSourceFieldEntityMapper;
 import org.apache.inlong.manager.pojo.common.OrderFieldEnum;
 import org.apache.inlong.manager.pojo.common.OrderTypeEnum;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.source.SourcePageRequest;
 import org.apache.inlong.manager.pojo.source.SourceRequest;
@@ -166,7 +166,7 @@ public class StreamSourceServiceImpl implements StreamSourceService {
     }
 
     @Override
-    public PageInfo<? extends StreamSource> listByCondition(SourcePageRequest request) {
+    public PageResult<? extends StreamSource> listByCondition(SourcePageRequest request) {
         Preconditions.checkNotNull(request.getInlongGroupId(), ErrorCodeEnum.GROUP_ID_IS_EMPTY.getMessage());
 
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
@@ -182,15 +182,16 @@ public class StreamSourceServiceImpl implements StreamSourceService {
         List<StreamSource> responseList = Lists.newArrayList();
         for (Map.Entry<String, Page<StreamSourceEntity>> entry : sourceMap.entrySet()) {
             StreamSourceOperator sourceOperator = operatorFactory.getInstance(entry.getKey());
-            PageInfo<? extends StreamSource> pageInfo = sourceOperator.getPageInfo(entry.getValue());
+            PageResult<? extends StreamSource> pageInfo = sourceOperator.getPageInfo(entry.getValue());
             if (null != pageInfo && CollectionUtils.isNotEmpty(pageInfo.getList())) {
                 responseList.addAll(pageInfo.getList());
             }
         }
-        PageInfo<? extends StreamSource> pageInfo = PageInfo.of(responseList);
 
-        LOGGER.debug("success to list source page, result size {}", pageInfo.getSize());
-        return pageInfo;
+        PageResult<? extends StreamSource> pageResult = new PageResult<>(responseList);
+
+        LOGGER.debug("success to list source page, result size {}", pageResult.getList().size());
+        return pageResult;
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
index 1d148c2ac..bdbdef4d4 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.stream;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.stream.InlongStreamApproveRequest;
 import org.apache.inlong.manager.pojo.stream.InlongStreamBriefInfo;
 import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
@@ -75,7 +75,7 @@ public interface InlongStreamService {
      * @param request query request
      * @return inlong stream brief list
      */
-    PageInfo<InlongStreamBriefInfo> listBrief(InlongStreamPageRequest request);
+    PageResult<InlongStreamBriefInfo> listBrief(InlongStreamPageRequest request);
 
     /**
      * Paging query inlong stream full info list, and get all related sources and sinks
@@ -83,7 +83,7 @@ public interface InlongStreamService {
      * @param request query request
      * @return inlong stream info list
      */
-    PageInfo<InlongStreamInfo> listAll(InlongStreamPageRequest request);
+    PageResult<InlongStreamInfo> listAll(InlongStreamPageRequest request);
 
     /**
      * Get the inlong stream brief list and related sink brief list.
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 2d8a7e5ec..1ea31b562 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.stream;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.inlong.manager.common.consts.InlongConstants;
@@ -39,6 +38,7 @@ import org.apache.inlong.manager.dao.mapper.InlongStreamExtEntityMapper;
 import org.apache.inlong.manager.dao.mapper.InlongStreamFieldEntityMapper;
 import org.apache.inlong.manager.pojo.common.OrderFieldEnum;
 import org.apache.inlong.manager.pojo.common.OrderTypeEnum;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.sink.SinkBriefInfo;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
 import org.apache.inlong.manager.pojo.source.StreamSource;
@@ -199,7 +199,7 @@ public class InlongStreamServiceImpl implements InlongStreamService {
     }
 
     @Override
-    public PageInfo<InlongStreamBriefInfo> listBrief(InlongStreamPageRequest request) {
+    public PageResult<InlongStreamBriefInfo> listBrief(InlongStreamPageRequest request) {
         LOGGER.debug("begin to list inlong stream page by {}", request);
 
         PageHelper.startPage(request.getPageNum(), request.getPageSize());
@@ -209,15 +209,15 @@ public class InlongStreamServiceImpl implements InlongStreamService {
         List<InlongStreamBriefInfo> streamList = CommonBeanUtils.copyListProperties(entityPage,
                 InlongStreamBriefInfo::new);
 
-        PageInfo<InlongStreamBriefInfo> page = new PageInfo<>(streamList);
-        page.setTotal(streamList.size());
+        PageResult<InlongStreamBriefInfo> pageResult = new PageResult<>(streamList,
+                entityPage.getTotal(), entityPage.getPageNum(), entityPage.getPageSize());
 
         LOGGER.debug("success to list inlong stream info for groupId={}", request.getInlongGroupId());
-        return page;
+        return pageResult;
     }
 
     @Override
-    public PageInfo<InlongStreamInfo> listAll(InlongStreamPageRequest request) {
+    public PageResult<InlongStreamInfo> listAll(InlongStreamPageRequest request) {
         LOGGER.debug("begin to list full inlong stream page by {}", request);
         Preconditions.checkNotNull(request, "request is empty");
         String groupId = request.getInlongGroupId();
@@ -250,11 +250,11 @@ public class InlongStreamServiceImpl implements InlongStreamService {
             streamInfo.setSinkList(sinkList);
         }
 
-        PageInfo<InlongStreamInfo> pageInfo = new PageInfo<>(streamInfoList);
-        pageInfo.setTotal(pageInfo.getTotal());
+        PageResult<InlongStreamInfo> pageResult = new PageResult<>(streamInfoList, page.getTotal(),
+                page.getPageNum(), page.getPageSize());
 
         LOGGER.debug("success to list full inlong stream info by {}", request);
-        return pageInfo;
+        return pageResult;
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserService.java
index 0932d7c30..a4baeb95e 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserService.java
@@ -17,9 +17,9 @@
 
 package org.apache.inlong.manager.service.user;
 
-import com.github.pagehelper.PageInfo;
-import org.apache.inlong.manager.pojo.user.UserRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.UserInfo;
+import org.apache.inlong.manager.pojo.user.UserRequest;
 
 /**
  * User service interface
@@ -56,7 +56,7 @@ public interface UserService {
      * @param request request
      * @return user info list
      */
-    PageInfo<UserInfo> list(UserRequest request);
+    PageResult<UserInfo> list(UserRequest request);
 
     /**
      * Update user info
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 7f8198de8..83917f495 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
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.user;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.inlong.manager.common.consts.InlongConstants;
@@ -34,6 +33,7 @@ import org.apache.inlong.manager.common.util.RSAUtils;
 import org.apache.inlong.manager.common.util.SHAUtils;
 import org.apache.inlong.manager.dao.entity.UserEntity;
 import org.apache.inlong.manager.dao.mapper.UserEntityMapper;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRequest;
 import org.slf4j.Logger;
@@ -148,18 +148,19 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
-    public PageInfo<UserInfo> list(UserRequest request) {
+    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);
 
         // Check whether the user account has expired
         userList.forEach(entity -> entity.setStatus(entity.getDueDate().after(new Date()) ? "valid" : "invalid"));
-        PageInfo<UserInfo> page = new PageInfo<>(userList);
-        page.setTotal(entityPage.getTotal());
 
-        LOGGER.debug("success to list users for request={}, result size={}", request, page.getTotal());
-        return page;
+        PageResult<UserInfo> pageResult = new PageResult<>(userList, entityPage.getTotal(),
+                entityPage.getPageNum(), entityPage.getPageSize());
+
+        LOGGER.debug("success to list users for request={}, result size={}", request, pageResult.getTotal());
+        return pageResult;
     }
 
     @Override
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowService.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowService.java
index a37c5138a..cb56b72e0 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowService.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/workflow/WorkflowService.java
@@ -17,18 +17,18 @@
 
 package org.apache.inlong.manager.service.workflow;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.common.enums.ProcessName;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.workflow.ProcessCountRequest;
+import org.apache.inlong.manager.pojo.workflow.ProcessCountResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessDetailResponse;
 import org.apache.inlong.manager.pojo.workflow.ProcessRequest;
 import org.apache.inlong.manager.pojo.workflow.ProcessResponse;
-import org.apache.inlong.manager.pojo.workflow.ProcessCountRequest;
-import org.apache.inlong.manager.pojo.workflow.ProcessCountResponse;
 import org.apache.inlong.manager.pojo.workflow.TaskCountRequest;
+import org.apache.inlong.manager.pojo.workflow.TaskCountResponse;
 import org.apache.inlong.manager.pojo.workflow.TaskLogRequest;
 import org.apache.inlong.manager.pojo.workflow.TaskRequest;
 import org.apache.inlong.manager.pojo.workflow.TaskResponse;
-import org.apache.inlong.manager.pojo.workflow.TaskCountResponse;
 import org.apache.inlong.manager.pojo.workflow.WorkflowExecuteLog;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
 import org.apache.inlong.manager.pojo.workflow.form.process.ProcessForm;
@@ -127,7 +127,7 @@ public interface WorkflowService {
      * @param query Query conditions.
      * @return Process list.
      */
-    PageInfo<ProcessResponse> listProcess(ProcessRequest query);
+    PageResult<ProcessResponse> listProcess(ProcessRequest query);
 
     /**
      * Get task list
@@ -135,7 +135,7 @@ public interface WorkflowService {
      * @param query Query conditions
      * @return List
      */
-    PageInfo<TaskResponse> listTask(TaskRequest query);
+    PageResult<TaskResponse> listTask(TaskRequest query);
 
     /**
      * Get process statistics
@@ -159,6 +159,6 @@ public interface WorkflowService {
      * @param query Query conditions
      * @return Execution log
      */
-    PageInfo<WorkflowExecuteLog> listTaskLogs(TaskLogRequest query);
+    PageResult<WorkflowExecuteLog> listTaskLogs(TaskLogRequest query);
 
 }
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 ec20712dd..d3d6bac9a 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
@@ -27,6 +27,7 @@ import org.apache.inlong.manager.common.enums.TaskStatus;
 import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.dao.entity.WorkflowProcessEntity;
 import org.apache.inlong.manager.dao.entity.WorkflowTaskEntity;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.EventLogRequest;
 import org.apache.inlong.manager.pojo.workflow.ListenerExecuteLog;
 import org.apache.inlong.manager.pojo.workflow.ProcessCountRequest;
@@ -131,7 +132,7 @@ public class WorkflowServiceImpl implements WorkflowService {
     }
 
     @Override
-    public PageInfo<ProcessResponse> listProcess(ProcessRequest query) {
+    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 -> {
@@ -142,7 +143,8 @@ public class WorkflowServiceImpl implements WorkflowService {
             return response;
         });
 
-        pageInfo.setTotal(result.getTotal());
+        PageResult<ProcessResponse> pageResult = new PageResult<>(pageInfo.getList(),
+                pageInfo.getTotal(), pageInfo.getPageNum(), pageInfo.getPageSize());
 
         if (query.getIncludeCurrentTask()) {
             TaskRequest taskQuery = TaskRequest.builder()
@@ -150,20 +152,20 @@ public class WorkflowServiceImpl implements WorkflowService {
                     .statusSet(Collections.singleton(TaskStatus.PENDING))
                     .build();
             PageHelper.startPage(0, 100);
-            pageInfo.getList().forEach(this.addCurrentTask(taskQuery));
+            pageResult.getList().forEach(this.addCurrentTask(taskQuery));
         }
-        return pageInfo;
+        return pageResult;
     }
 
     @Override
-    public PageInfo<TaskResponse> listTask(TaskRequest query) {
+    public PageResult<TaskResponse> listTask(TaskRequest query) {
         PageHelper.startPage(query.getPageNum(), query.getPageSize());
         Page<WorkflowTaskEntity> result = (Page<WorkflowTaskEntity>) queryService.listTaskEntity(query);
+
         PageInfo<TaskResponse> pageInfo = result.toPageInfo(WorkflowUtils::getTaskResponse);
         addShowInListForEachTask(pageInfo.getList());
-        pageInfo.setTotal(result.getTotal());
 
-        return pageInfo;
+        return new PageResult<>(pageInfo.getList(), pageInfo.getTotal(), pageInfo.getPageNum(), pageInfo.getPageSize());
     }
 
     @Override
@@ -177,7 +179,7 @@ public class WorkflowServiceImpl implements WorkflowService {
     }
 
     @Override
-    public PageInfo<WorkflowExecuteLog> listTaskLogs(TaskLogRequest query) {
+    public PageResult<WorkflowExecuteLog> listTaskLogs(TaskLogRequest query) {
         Preconditions.checkNotNull(query, "task execute log query params cannot be null");
 
         String groupId = query.getInlongGroupId();
@@ -229,8 +231,9 @@ public class WorkflowServiceImpl implements WorkflowService {
         }
 
         LOGGER.info("success to page list task execute logs for " + query);
-        pageInfo.setTotal(entityPage.getTotal());
-        return pageInfo;
+
+        return new PageResult<>(pageInfo.getList(), pageInfo.getTotal(), pageInfo.getPageNum(),
+                pageInfo.getPageSize());
     }
 
     private Consumer<ProcessResponse> addCurrentTask(TaskRequest query) {
diff --git a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceTest.java b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceTest.java
index 4d3e9bbdf..a7249e866 100644
--- a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceTest.java
+++ b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceTest.java
@@ -17,11 +17,10 @@
 
 package org.apache.inlong.manager.service.cluster;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.common.pojo.dataproxy.DataProxyNodeInfo;
 import org.apache.inlong.common.pojo.dataproxy.DataProxyNodeResponse;
-import org.apache.inlong.manager.common.enums.ClusterType;
 import org.apache.inlong.manager.common.consts.MQType;
+import org.apache.inlong.manager.common.enums.ClusterType;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeResponse;
@@ -29,6 +28,7 @@ import org.apache.inlong.manager.pojo.cluster.ClusterPageRequest;
 import org.apache.inlong.manager.pojo.cluster.dataproxy.DataProxyClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.pulsar.PulsarClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.pulsar.PulsarClusterRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.service.ServiceBaseTest;
 import org.junit.jupiter.api.Assertions;
@@ -75,7 +75,7 @@ public class InlongClusterServiceTest extends ServiceBaseTest {
     /**
      * List clusters by page.
      */
-    public PageInfo<ClusterInfo> listCluster(String type, String clusterTag) {
+    public PageResult<ClusterInfo> listCluster(String type, String clusterTag) {
         ClusterPageRequest request = new ClusterPageRequest();
         request.setType(type);
         request.setClusterTag(clusterTag);
@@ -118,7 +118,7 @@ public class InlongClusterServiceTest extends ServiceBaseTest {
     /**
      * List cluster nodes by page.
      */
-    public PageInfo<ClusterNodeResponse> listClusterNode(String type, String keyword, Integer parentId) {
+    public PageResult<ClusterNodeResponse> listClusterNode(String type, String keyword, Integer parentId) {
         ClusterPageRequest request = new ClusterPageRequest();
         request.setType(type);
         request.setKeyword(keyword);
@@ -159,7 +159,7 @@ public class InlongClusterServiceTest extends ServiceBaseTest {
         Assertions.assertNotNull(id);
 
         // list cluster
-        PageInfo<ClusterInfo> listCluster = this.listCluster(ClusterType.PULSAR, clusterTag);
+        PageResult<ClusterInfo> listCluster = this.listCluster(ClusterType.PULSAR, clusterTag);
         Assertions.assertTrue(listCluster.getList().size() > 0);
         ClusterInfo clusterInfo = listCluster.getList().get(0);
         PulsarClusterInfo pulsarCluster = (PulsarClusterInfo) clusterInfo;
@@ -181,7 +181,7 @@ public class InlongClusterServiceTest extends ServiceBaseTest {
         Assertions.assertNotNull(nodeId);
 
         // list cluster node
-        PageInfo<ClusterNodeResponse> listNode = this.listClusterNode(ClusterType.PULSAR, ip, id);
+        PageResult<ClusterNodeResponse> listNode = this.listClusterNode(ClusterType.PULSAR, ip, id);
         Assertions.assertEquals(listNode.getTotal(), 1);
 
         // update cluster node
diff --git a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/impl/DataNodeServiceTest.java b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/impl/DataNodeServiceTest.java
index 41936336b..428dd4f63 100644
--- a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/impl/DataNodeServiceTest.java
+++ b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/impl/DataNodeServiceTest.java
@@ -17,8 +17,8 @@
 
 package org.apache.inlong.manager.service.core.impl;
 
-import com.github.pagehelper.PageInfo;
 import org.apache.inlong.manager.common.consts.DataNodeType;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.node.DataNodeInfo;
 import org.apache.inlong.manager.pojo.node.DataNodePageRequest;
 import org.apache.inlong.manager.pojo.node.hive.HiveDataNodeRequest;
@@ -56,7 +56,7 @@ public class DataNodeServiceTest extends ServiceBaseTest {
     /**
      * Get data node list info.
      */
-    public PageInfo<DataNodeInfo> listOpt(String type, String name) {
+    public PageResult<DataNodeInfo> listOpt(String type, String name) {
         DataNodePageRequest request = new DataNodePageRequest();
         request.setType(type);
         request.setName(name);
@@ -104,7 +104,7 @@ public class DataNodeServiceTest extends ServiceBaseTest {
         Assertions.assertEquals(type, dataNodeInfo.getType());
 
         // test get data node list
-        PageInfo<DataNodeInfo> listDataNode = this.listOpt(type, nodeName);
+        PageResult<DataNodeInfo> listDataNode = this.listOpt(type, nodeName);
         Assertions.assertEquals(listDataNode.getTotal(), 1);
 
         // test update data node
diff --git a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/workflow/WorkflowApproverServiceImplTest.java b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/workflow/WorkflowApproverServiceImplTest.java
index 59e762f00..1bbc4cd26 100644
--- a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/workflow/WorkflowApproverServiceImplTest.java
+++ b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/workflow/WorkflowApproverServiceImplTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.inlong.manager.service.workflow;
 
-import com.github.pagehelper.PageInfo;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.workflow.ApproverPageRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverResponse;
 import org.apache.inlong.manager.service.ServiceBaseTest;
@@ -37,9 +37,9 @@ public class WorkflowApproverServiceImplTest extends ServiceBaseTest {
     @Test
     public void testListAndGet() {
         // The workflow approvers was init by SQL file.
-        PageInfo<ApproverResponse> approverList = workflowApproverService.listByCondition(
+        PageResult<ApproverResponse> approverList = workflowApproverService.listByCondition(
                 ApproverPageRequest.builder().build());
-        Assertions.assertTrue(approverList.getSize() > 0);
+        Assertions.assertTrue(approverList.getList().size() > 0);
 
         Integer id = approverList.getList().get(0).getId();
         ApproverResponse approverResponse = workflowApproverService.get(id);
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/ConsumptionController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/ConsumptionController.java
index 56c3660c7..7207ce726 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/ConsumptionController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/ConsumptionController.java
@@ -17,11 +17,11 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 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.consumption.ConsumptionInfo;
 import org.apache.inlong.manager.pojo.consumption.ConsumptionListVo;
@@ -64,7 +64,7 @@ public class ConsumptionController {
 
     @GetMapping("/consumption/list")
     @ApiOperation(value = "List data consumptions")
-    public Response<PageInfo<ConsumptionListVo>> list(ConsumptionQuery query) {
+    public Response<PageResult<ConsumptionListVo>> list(ConsumptionQuery query) {
         query.setUsername(LoginUserUtils.getLoginUser().getName());
         return Response.success(consumptionService.list(query));
     }
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/DataNodeController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/DataNodeController.java
index 802181c00..bd2d81933 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/DataNodeController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/DataNodeController.java
@@ -17,12 +17,12 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.common.enums.OperationType;
 import org.apache.inlong.manager.common.validation.UpdateValidation;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.node.DataNodeInfo;
 import org.apache.inlong.manager.pojo.node.DataNodePageRequest;
@@ -71,7 +71,7 @@ public class DataNodeController {
 
     @PostMapping(value = "/node/list")
     @ApiOperation(value = "List data node")
-    public Response<PageInfo<DataNodeInfo>> list(@RequestBody DataNodePageRequest request) {
+    public Response<PageResult<DataNodeInfo>> list(@RequestBody DataNodePageRequest request) {
         return Response.success(dataNodeService.list(request));
     }
 
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/HeartbeatController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/HeartbeatController.java
index cf420ebf9..e39be0181 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/HeartbeatController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/HeartbeatController.java
@@ -17,9 +17,9 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.heartbeat.ComponentHeartbeatResponse;
 import org.apache.inlong.manager.pojo.heartbeat.GroupHeartbeatResponse;
@@ -64,21 +64,21 @@ public class HeartbeatController {
 
     @RequestMapping(value = "/heartbeat/component/list", method = RequestMethod.POST)
     @ApiOperation(value = "List component heartbeats")
-    public Response<PageInfo<ComponentHeartbeatResponse>> listComponentHeartbeat(
+    public Response<PageResult<ComponentHeartbeatResponse>> listComponentHeartbeat(
             @RequestBody HeartbeatPageRequest request) {
         return Response.success(heartbeatService.listComponentHeartbeat(request));
     }
 
     @RequestMapping(value = "/heartbeat/group/list", method = RequestMethod.POST)
     @ApiOperation(value = "List group heartbeats")
-    public Response<PageInfo<GroupHeartbeatResponse>> listGroupHeartbeat(@RequestBody HeartbeatPageRequest request) {
+    public Response<PageResult<GroupHeartbeatResponse>> listGroupHeartbeat(@RequestBody HeartbeatPageRequest request) {
         return Response.success(heartbeatService.listGroupHeartbeat(request));
     }
 
     @RequestMapping(value = "/heartbeat/stream/list", method = RequestMethod.POST)
     @ApiOperation(value = "List stream heartbeats")
-    public Response<PageInfo<StreamHeartbeatResponse>> listStreamHeartbeat(@RequestBody HeartbeatPageRequest request) {
-        return Response.success(heartbeatService.listStreamHeartbeat(request));
+    public Response<PageResult<StreamHeartbeatResponse>> listStreamHeartbeat(@RequestBody HeartbeatPageRequest req) {
+        return Response.success(heartbeatService.listStreamHeartbeat(req));
     }
 
 }
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongClusterController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongClusterController.java
index 35d3f3313..99a529593 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongClusterController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongClusterController.java
@@ -17,11 +17,11 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.common.enums.OperationType;
+import org.apache.inlong.manager.common.validation.UpdateValidation;
 import org.apache.inlong.manager.pojo.cluster.BindTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterNodeRequest;
@@ -31,8 +31,8 @@ import org.apache.inlong.manager.pojo.cluster.ClusterRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagPageRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagRequest;
 import org.apache.inlong.manager.pojo.cluster.ClusterTagResponse;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
-import org.apache.inlong.manager.common.validation.UpdateValidation;
 import org.apache.inlong.manager.pojo.user.UserRoleCode;
 import org.apache.inlong.manager.service.cluster.InlongClusterService;
 import org.apache.inlong.manager.service.operationlog.OperationLog;
@@ -79,7 +79,7 @@ public class InlongClusterController {
 
     @PostMapping(value = "/cluster/tag/list")
     @ApiOperation(value = "List cluster tags")
-    public Response<PageInfo<ClusterTagResponse>> listTag(@RequestBody ClusterTagPageRequest request) {
+    public Response<PageResult<ClusterTagResponse>> listTag(@RequestBody ClusterTagPageRequest request) {
         request.setCurrentUser(LoginUserUtils.getLoginUser().getName());
         return Response.success(clusterService.listTag(request));
     }
@@ -120,7 +120,7 @@ public class InlongClusterController {
 
     @PostMapping(value = "/cluster/list")
     @ApiOperation(value = "List clusters")
-    public Response<PageInfo<ClusterInfo>> list(@RequestBody ClusterPageRequest request) {
+    public Response<PageResult<ClusterInfo>> list(@RequestBody ClusterPageRequest request) {
         return Response.success(clusterService.list(request));
     }
 
@@ -167,7 +167,7 @@ public class InlongClusterController {
 
     @PostMapping(value = "/cluster/node/list")
     @ApiOperation(value = "List cluster nodes")
-    public Response<PageInfo<ClusterNodeResponse>> listNode(@RequestBody ClusterPageRequest request) {
+    public Response<PageResult<ClusterNodeResponse>> listNode(@RequestBody ClusterPageRequest request) {
         String currentUser = LoginUserUtils.getLoginUser().getName();
         return Response.success(clusterService.listNode(request, currentUser));
     }
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
index 078ab48ff..057dc8623 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
@@ -17,14 +17,14 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.common.enums.OperationType;
 import org.apache.inlong.manager.common.enums.UserTypeEnum;
-import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.common.validation.UpdateValidation;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupCountResponse;
 import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
@@ -76,7 +76,7 @@ public class InlongGroupController {
 
     @RequestMapping(value = "/group/list", method = RequestMethod.POST)
     @ApiOperation(value = "Get inlong group list by paginating")
-    public Response<PageInfo<InlongGroupBriefInfo>> listBrief(@RequestBody InlongGroupPageRequest request) {
+    public Response<PageResult<InlongGroupBriefInfo>> listBrief(@RequestBody InlongGroupPageRequest request) {
         request.setCurrentUser(LoginUserUtils.getLoginUser().getName());
         request.setIsAdminRole(LoginUserUtils.getLoginUser().getRoles().contains(UserTypeEnum.ADMIN.name()));
         return Response.success(groupService.listBrief(request));
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
index df57e3a6c..cff3a1f46 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
@@ -17,12 +17,12 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 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.stream.InlongStreamBriefInfo;
 import org.apache.inlong.manager.pojo.stream.InlongStreamInfo;
@@ -85,7 +85,7 @@ public class InlongStreamController {
 
     @RequestMapping(value = "/stream/list", method = RequestMethod.POST)
     @ApiOperation(value = "Get inlong stream brief info by paginating")
-    public Response<PageInfo<InlongStreamBriefInfo>> listByCondition(@RequestBody InlongStreamPageRequest request) {
+    public Response<PageResult<InlongStreamBriefInfo>> listByCondition(@RequestBody InlongStreamPageRequest request) {
         request.setCurrentUser(LoginUserUtils.getLoginUser().getName());
         request.setIsAdminRole(LoginUserUtils.getLoginUser().getRoles().contains(UserRoleCode.ADMIN));
         return Response.success(streamService.listBrief(request));
@@ -93,7 +93,7 @@ public class InlongStreamController {
 
     @RequestMapping(value = "/stream/listAll", method = RequestMethod.POST)
     @ApiOperation(value = "Get inlong stream with all sources and sinks by paginating")
-    public Response<PageInfo<InlongStreamInfo>> listAllWithGroupId(@RequestBody InlongStreamPageRequest request) {
+    public Response<PageResult<InlongStreamInfo>> listAllWithGroupId(@RequestBody InlongStreamPageRequest request) {
         request.setCurrentUser(LoginUserUtils.getLoginUser().getName());
         request.setIsAdminRole(LoginUserUtils.getLoginUser().getRoles().contains(UserRoleCode.ADMIN));
         return Response.success(streamService.listAll(request));
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSinkController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSinkController.java
index de2291aaa..3ed3b94ee 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSinkController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSinkController.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.common.enums.OperationType;
-import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.common.validation.UpdateValidation;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.sink.SinkPageRequest;
 import org.apache.inlong.manager.pojo.sink.SinkRequest;
 import org.apache.inlong.manager.pojo.sink.StreamSink;
@@ -65,7 +65,7 @@ public class StreamSinkController {
 
     @RequestMapping(value = "/sink/list", method = RequestMethod.GET)
     @ApiOperation(value = "Get stream sink list by paginating")
-    public Response<PageInfo<? extends StreamSink>> listByCondition(SinkPageRequest request) {
+    public Response<PageResult<? extends StreamSink>> listByCondition(SinkPageRequest request) {
         return Response.success(sinkService.listByCondition(request));
     }
 
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSourceController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSourceController.java
index 99bae8524..1a297fd71 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSourceController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/StreamSourceController.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.common.enums.OperationType;
-import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.common.validation.UpdateValidation;
+import org.apache.inlong.manager.pojo.common.PageResult;
+import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.source.SourcePageRequest;
 import org.apache.inlong.manager.pojo.source.SourceRequest;
 import org.apache.inlong.manager.pojo.source.StreamSource;
@@ -65,7 +65,7 @@ public class StreamSourceController {
 
     @RequestMapping(value = "/source/list", method = RequestMethod.GET)
     @ApiOperation(value = "Get stream source list by paginating")
-    public Response<PageInfo<? extends StreamSource>> listByCondition(SourcePageRequest request) {
+    public Response<PageResult<? extends StreamSource>> listByCondition(SourcePageRequest request) {
         return Response.success(sourceService.listByCondition(request));
     }
 
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/UserController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/UserController.java
index cc54953ae..1aacb11f5 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/UserController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/UserController.java
@@ -17,9 +17,9 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.user.UserInfo;
 import org.apache.inlong.manager.pojo.user.UserRequest;
@@ -73,7 +73,7 @@ public class UserController {
 
     @PostMapping("/user/listAll")
     @ApiOperation(value = "List all users")
-    public Response<PageInfo<UserInfo>> list(@RequestBody UserRequest request) {
+    public Response<PageResult<UserInfo>> list(@RequestBody UserRequest request) {
         return Response.success(userService.list(request));
     }
 
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowApproverController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowApproverController.java
index 05d739af8..6b0ddb3f4 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowApproverController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowApproverController.java
@@ -17,12 +17,12 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.common.enums.OperationType;
 import org.apache.inlong.manager.common.enums.UserTypeEnum;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.pojo.workflow.ApproverPageRequest;
 import org.apache.inlong.manager.pojo.workflow.ApproverRequest;
@@ -66,7 +66,7 @@ public class WorkflowApproverController {
 
     @GetMapping("/workflow/approver/list")
     @ApiOperation(value = "List workflow approvers")
-    public Response<PageInfo<ApproverResponse>> listByCondition(ApproverPageRequest request) {
+    public Response<PageResult<ApproverResponse>> listByCondition(ApproverPageRequest request) {
         request.setCurrentUser(LoginUserUtils.getLoginUser().getName());
         request.setIsAdminRole(LoginUserUtils.getLoginUser().getRoles().contains(UserTypeEnum.ADMIN.name()));
         return Response.success(workflowApproverService.listByCondition(request));
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowController.java
index 10648f771..38cef3733 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowController.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 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.workflow.ProcessCountRequest;
 import org.apache.inlong.manager.pojo.workflow.ProcessCountResponse;
@@ -36,11 +36,11 @@ import org.apache.inlong.manager.pojo.workflow.TaskLogRequest;
 import org.apache.inlong.manager.pojo.workflow.TaskRequest;
 import org.apache.inlong.manager.pojo.workflow.TaskResponse;
 import org.apache.inlong.manager.pojo.workflow.WorkflowApprovalRequest;
+import org.apache.inlong.manager.pojo.workflow.WorkflowExecuteLog;
+import org.apache.inlong.manager.pojo.workflow.WorkflowOperationRequest;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
 import org.apache.inlong.manager.service.operationlog.OperationLog;
 import org.apache.inlong.manager.service.user.LoginUserUtils;
-import org.apache.inlong.manager.pojo.workflow.WorkflowExecuteLog;
-import org.apache.inlong.manager.pojo.workflow.WorkflowOperationRequest;
 import org.apache.inlong.manager.service.workflow.WorkflowService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -141,14 +141,14 @@ public class WorkflowController {
 
     @GetMapping("/workflow/listProcess")
     @ApiOperation(value = "Get process list by paginating")
-    public Response<PageInfo<ProcessResponse>> listProcess(ProcessRequest query) {
+    public Response<PageResult<ProcessResponse>> listProcess(ProcessRequest query) {
         query.setApplicant(LoginUserUtils.getLoginUser().getName());
         return Response.success(workflowService.listProcess(query));
     }
 
     @GetMapping("/workflow/listTask")
     @ApiOperation(value = "Get task list by paginating")
-    public Response<PageInfo<TaskResponse>> listTask(TaskRequest query) {
+    public Response<PageResult<TaskResponse>> listTask(TaskRequest query) {
         query.setApprover(LoginUserUtils.getLoginUser().getName());
         return Response.success(workflowService.listTask(query));
     }
@@ -169,7 +169,7 @@ public class WorkflowController {
 
     @GetMapping("/workflow/listTaskLogs")
     @ApiOperation(value = "Get task execution logs")
-    public Response<PageInfo<WorkflowExecuteLog>> listTaskLogs(TaskLogRequest query) {
+    public Response<PageResult<WorkflowExecuteLog>> listTaskLogs(TaskLogRequest query) {
         return Response.success(workflowService.listTaskLogs(query));
     }
 
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowEventController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowEventController.java
index 31c59e628..5d1d513d9 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowEventController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/WorkflowEventController.java
@@ -17,13 +17,13 @@
 
 package org.apache.inlong.manager.web.controller;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 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.workflow.EventLogRequest;
 import org.apache.inlong.manager.pojo.workflow.EventLogResponse;
@@ -59,7 +59,7 @@ public class WorkflowEventController {
 
     @GetMapping("/workflow/event/list")
     @ApiOperation(value = "Get event list by paginating")
-    public Response<PageInfo<EventLogResponse>> list(EventLogRequest query) {
+    public Response<PageResult<EventLogResponse>> list(EventLogRequest query) {
         return Response.success(workflowEventService.list(query));
     }
 
diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenClusterController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenClusterController.java
index 71688eef9..8bee04869 100644
--- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenClusterController.java
+++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenClusterController.java
@@ -17,12 +17,12 @@
 
 package org.apache.inlong.manager.web.controller.openapi;
 
-import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.inlong.manager.pojo.cluster.ClusterInfo;
 import org.apache.inlong.manager.pojo.cluster.ClusterPageRequest;
+import org.apache.inlong.manager.pojo.common.PageResult;
 import org.apache.inlong.manager.pojo.common.Response;
 import org.apache.inlong.manager.service.cluster.InlongClusterService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +53,7 @@ public class OpenClusterController {
 
     @PostMapping(value = "/cluster/list")
     @ApiOperation(value = "Get clusters by paginating")
-    public Response<PageInfo<ClusterInfo>> list(@RequestBody ClusterPageRequest request) {
+    public Response<PageResult<ClusterInfo>> list(@RequestBody ClusterPageRequest request) {
         return Response.success(clusterService.list(request));
     }