fix(zentao): fix GetTotalPages (#3799)

diff --git a/plugins/zentao/tasks/api_client.go b/plugins/zentao/tasks/api_client.go
index aff7b4d..07cac64 100644
--- a/plugins/zentao/tasks/api_client.go
+++ b/plugins/zentao/tasks/api_client.go
@@ -91,5 +91,6 @@
 }
 
 type ZentaoPagination struct {
-	Page int `json:"page"`
+	Total int `json:"total"`
+	Limit int `json:"limit"`
 }
diff --git a/plugins/zentao/tasks/execution_collector.go b/plugins/zentao/tasks/execution_collector.go
index 8f6d2c6..6092b79 100644
--- a/plugins/zentao/tasks/execution_collector.go
+++ b/plugins/zentao/tasks/execution_collector.go
@@ -46,8 +46,6 @@
 			Table: RAW_EXECUTION_TABLE,
 		},
 		ApiClient: data.ApiClient,
-
-		PageSize: 100,
 		// TODO write which api would you want request
 		UrlTemplate: "executions/{{ .Params.ExecutionId }}",
 		Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
@@ -56,7 +54,6 @@
 			query.Set("limit", fmt.Sprintf("%v", reqData.Pager.Size))
 			return query, nil
 		},
-		GetTotalPages: GetTotalPagesFromResponse,
 		ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
 			body, err := io.ReadAll(res.Body)
 			if err != nil {
diff --git a/plugins/zentao/tasks/product_collector.go b/plugins/zentao/tasks/product_collector.go
index cc1e9d8..68956cc 100644
--- a/plugins/zentao/tasks/product_collector.go
+++ b/plugins/zentao/tasks/product_collector.go
@@ -46,7 +46,6 @@
 			Table: RAW_PRODUCT_TABLE,
 		},
 		ApiClient: data.ApiClient,
-		PageSize:  100,
 		// TODO write which api would you want request
 		UrlTemplate: "products/{{ .Params.ProductId }}",
 		Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
@@ -55,7 +54,6 @@
 			query.Set("limit", fmt.Sprintf("%v", reqData.Pager.Size))
 			return query, nil
 		},
-		GetTotalPages: GetTotalPagesFromResponse,
 		ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
 			body, err := io.ReadAll(res.Body)
 			if err != nil {
diff --git a/plugins/zentao/tasks/project_collector.go b/plugins/zentao/tasks/project_collector.go
index 6d737a0..6b895b8 100644
--- a/plugins/zentao/tasks/project_collector.go
+++ b/plugins/zentao/tasks/project_collector.go
@@ -45,8 +45,6 @@
 			Table: RAW_PROJECT_TABLE,
 		},
 		ApiClient: data.ApiClient,
-
-		PageSize: 100,
 		// TODO write which api would you want request
 		UrlTemplate: "projects",
 		Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
@@ -55,7 +53,6 @@
 			query.Set("limit", fmt.Sprintf("%v", reqData.Pager.Size))
 			return query, nil
 		},
-		GetTotalPages: GetTotalPagesFromResponse,
 		ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
 			var data struct {
 				Projects []json.RawMessage `json:"projects"`
diff --git a/plugins/zentao/tasks/shared.go b/plugins/zentao/tasks/shared.go
index 39fc863..8c60991 100644
--- a/plugins/zentao/tasks/shared.go
+++ b/plugins/zentao/tasks/shared.go
@@ -31,8 +31,11 @@
 	if err != nil {
 		return 0, err
 	}
-	return body.Page, nil
-
+	pages := body.Total / args.PageSize
+	if body.Total%args.PageSize > 0 {
+		pages++
+	}
+	return pages, nil
 }
 
 func getAccountId(account *models.ZentaoAccount) int64 {
diff --git a/plugins/zentao/tasks/task_collector.go b/plugins/zentao/tasks/task_collector.go
index 8094870..89b0aad 100644
--- a/plugins/zentao/tasks/task_collector.go
+++ b/plugins/zentao/tasks/task_collector.go
@@ -45,8 +45,7 @@
 			Table: RAW_TASK_TABLE,
 		},
 		ApiClient: data.ApiClient,
-
-		PageSize: 100,
+		PageSize:  100,
 		// TODO write which api would you want request
 		UrlTemplate: "/executions/{{ .Params.ExecutionId }}/tasks",
 		Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {