From 10465790b3b82cbc10883c5ab16fb982406f8e0c Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期三, 26 七月 2023 20:12:56 +0800
Subject: [PATCH] fix

---
 model/salesReturn.go             |    2 
 model/plan.go                    |    2 
 model/salesLeads.go              |    2 
 model/contract.go                |    6 +
 model/saleChance.go              |    2 
 model/quotation.go               |    2 
 docs/swagger.yaml                |   24 +++++
 docs/docs.go                     |   34 ++++++++
 docs/swagger.json                |   34 ++++++++
 model/masterOrder.go             |    6 +
 model/response/response.go       |    5 
 model/orderManage.go             |    2 
 model/serviceFollowup.go         |    6 +
 router/serviceContract.go        |    4 
 model/serviceContract.go         |   10 ++
 model/salesDetails.go            |    6 +
 model/serviceFeeManage.go        |    6 +
 api/v1/serviceContract.go        |   51 ++++++------
 model/request/serviceContract.go |    5 +
 model/salesRefund.go             |    6 +
 model/subOrder.go                |    2 
 service/serviceContract.go       |   18 ++--
 22 files changed, 179 insertions(+), 56 deletions(-)

diff --git a/api/v1/serviceContract.go b/api/v1/serviceContract.go
index b04b77d..47a2e06 100644
--- a/api/v1/serviceContract.go
+++ b/api/v1/serviceContract.go
@@ -98,30 +98,6 @@
 	ctx.Ok()
 }
 
-// List
-//
-//	@Tags		ServiceContract
-//	@Summary	鏈嶅姟鍚堝悓鍒楄〃
-//	@Produce	application/json
-//	@Success	200	{object}	contextx.Response{data=response.ServiceContractsResponse}
-//	@Router		/api/serviceContract/list [get]
-func (s *ServiceContractApi) List(c *gin.Context) {
-	ctx, ok := contextx.NewContext(c, nil)
-	if !ok {
-		return
-	}
-
-	serviceContracts, errCode := serviceContractService.GetServiceContractList()
-	if errCode != ecode.OK {
-		ctx.Fail(errCode)
-		return
-	}
-
-	ctx.OkWithDetailed(response.ServiceContractsResponse{
-		List: serviceContracts,
-	})
-}
-
 // check params
 func checkServiceContractParams(serviceContract request.ServiceContract) (errCode int, result model.ServiceContract) {
 	//if serviceContract.SignTime == "" {
@@ -172,3 +148,30 @@
 
 	return ecode.OK, result
 }
+
+// List
+//
+//	@Tags		ServiceContract
+//	@Summary	鐢熸垚璁″垝鍒楄〃
+//	@Produce	application/json
+//	@Param		object	body		request.GetServiceContractList					true	"鍙傛暟"
+//	@Success	200	{object}	contextx.Response{data=response.ServiceContractsResponse}
+//	@Router		/api/serviceContract/list [post]
+func (con *ServiceContractApi) List(c *gin.Context) {
+	var params request.GetServiceContractList
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	serviceContracts, errCode := serviceContractService.GetServiceContractList(params.Page, params.PageSize, params.Keyword)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.ServiceContractsResponse{
+		List:  serviceContracts,
+		Count: len(serviceContracts),
+	})
+}
diff --git a/docs/docs.go b/docs/docs.go
index 73dae90..2630dba 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -5685,14 +5685,25 @@
             }
         },
         "/api/serviceContract/list": {
-            "get": {
+            "post": {
                 "produces": [
                     "application/json"
                 ],
                 "tags": [
                     "ServiceContract"
                 ],
-                "summary": "鏈嶅姟鍚堝悓鍒楄〃",
+                "summary": "鐢熸垚璁″垝鍒楄〃",
+                "parameters": [
+                    {
+                        "description": "鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetServiceContractList"
+                        }
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "OK",
@@ -10137,6 +10148,22 @@
                 }
             }
         },
+        "request.GetServiceContractList": {
+            "type": "object",
+            "properties": {
+                "keyword": {
+                    "type": "string"
+                },
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                }
+            }
+        },
         "request.GetServiceFeeManageList": {
             "type": "object",
             "properties": {
@@ -13020,6 +13047,9 @@
         "response.ServiceContractsResponse": {
             "type": "object",
             "properties": {
+                "count": {
+                    "type": "integer"
+                },
                 "list": {
                     "type": "array",
                     "items": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 8e80ce1..51dfff1 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -5673,14 +5673,25 @@
             }
         },
         "/api/serviceContract/list": {
-            "get": {
+            "post": {
                 "produces": [
                     "application/json"
                 ],
                 "tags": [
                     "ServiceContract"
                 ],
-                "summary": "鏈嶅姟鍚堝悓鍒楄〃",
+                "summary": "鐢熸垚璁″垝鍒楄〃",
+                "parameters": [
+                    {
+                        "description": "鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetServiceContractList"
+                        }
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "OK",
@@ -10125,6 +10136,22 @@
                 }
             }
         },
+        "request.GetServiceContractList": {
+            "type": "object",
+            "properties": {
+                "keyword": {
+                    "type": "string"
+                },
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                }
+            }
+        },
         "request.GetServiceFeeManageList": {
             "type": "object",
             "properties": {
@@ -13008,6 +13035,9 @@
         "response.ServiceContractsResponse": {
             "type": "object",
             "properties": {
+                "count": {
+                    "type": "integer"
+                },
                 "list": {
                     "type": "array",
                     "items": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 5561384..ddcb2a1 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -2075,6 +2075,17 @@
         description: 姣忛〉澶у皬
         type: integer
     type: object
+  request.GetServiceContractList:
+    properties:
+      keyword:
+        type: string
+      page:
+        description: 椤电爜
+        type: integer
+      pageSize:
+        description: 姣忛〉澶у皬
+        type: integer
+    type: object
   request.GetServiceFeeManageList:
     properties:
       keyword:
@@ -4001,6 +4012,8 @@
     type: object
   response.ServiceContractsResponse:
     properties:
+      count:
+        type: integer
       list:
         items:
           $ref: '#/definitions/model.ServiceContract'
@@ -7534,7 +7547,14 @@
       tags:
       - ServiceContract
   /api/serviceContract/list:
-    get:
+    post:
+      parameters:
+      - description: 鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.GetServiceContractList'
       produces:
       - application/json
       responses:
@@ -7547,7 +7567,7 @@
                 data:
                   $ref: '#/definitions/response.ServiceContractsResponse'
               type: object
-      summary: 鏈嶅姟鍚堝悓鍒楄〃
+      summary: 鐢熸垚璁″垝鍒楄〃
       tags:
       - ServiceContract
   /api/serviceContract/update:
diff --git a/model/contract.go b/model/contract.go
index 4ba79f6..70886c9 100644
--- a/model/contract.go
+++ b/model/contract.go
@@ -77,6 +77,10 @@
 func (slf *ContractSearch) FindAll() ([]*Contract, error) {
 	var db = slf.build()
 	var records = make([]*Contract, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("Quotation").Find(&records).Error
 	return records, err
 }
@@ -99,4 +103,4 @@
 func (slf *ContractSearch) SetOrder(order string) *ContractSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/masterOrder.go b/model/masterOrder.go
index 2167555..c82e6ce 100644
--- a/model/masterOrder.go
+++ b/model/masterOrder.go
@@ -80,6 +80,10 @@
 func (slf *MasterOrderSearch) FindAll() ([]*MasterOrder, error) {
 	var db = slf.build()
 	var records = make([]*MasterOrder, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("Client").Find(&records).Error
 	return records, err
 }
@@ -102,4 +106,4 @@
 func (slf *MasterOrderSearch) SetOrder(order string) *MasterOrderSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/orderManage.go b/model/orderManage.go
index 9d8cfaa..34b9477 100644
--- a/model/orderManage.go
+++ b/model/orderManage.go
@@ -102,4 +102,4 @@
 func (slf *OrderManageSearch) SetOrder(order string) *OrderManageSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/plan.go b/model/plan.go
index acfe041..e3aee66 100644
--- a/model/plan.go
+++ b/model/plan.go
@@ -104,4 +104,4 @@
 func (slf *PlanSearch) SetOrder(order string) *PlanSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/quotation.go b/model/quotation.go
index d14bc36..69d1a17 100644
--- a/model/quotation.go
+++ b/model/quotation.go
@@ -112,4 +112,4 @@
 func (slf *QuotationSearch) SetOrder(order string) *QuotationSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/request/serviceContract.go b/model/request/serviceContract.go
index 2334df5..40b6049 100644
--- a/model/request/serviceContract.go
+++ b/model/request/serviceContract.go
@@ -31,3 +31,8 @@
 	Id int `json:"id"`
 	ServiceContract
 }
+
+type GetServiceContractList struct {
+	PageInfo
+	Keyword string `json:"keyword"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index 9a77e30..46774ab 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -168,7 +168,8 @@
 	}
 
 	ServiceContractsResponse struct {
-		List []*model.ServiceContract `json:"list"`
+		List  []*model.ServiceContract `json:"list"`
+		Count int                      `json:"count"`
 	}
 
 	OrderManageResponse struct {
@@ -343,4 +344,4 @@
 	CurrencyResponse struct {
 		List []*model.Currency `json:"list"`
 	}
-)
\ No newline at end of file
+)
diff --git a/model/saleChance.go b/model/saleChance.go
index 060a15c..38222ba 100644
--- a/model/saleChance.go
+++ b/model/saleChance.go
@@ -132,4 +132,4 @@
 func (slf *SaleChanceSearch) SetOrder(order string) *SaleChanceSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/salesDetails.go b/model/salesDetails.go
index da9422d..f0af3f9 100644
--- a/model/salesDetails.go
+++ b/model/salesDetails.go
@@ -94,6 +94,10 @@
 func (slf *SalesDetailsSearch) FindAll() ([]*SalesDetails, error) {
 	var db = slf.build()
 	var records = make([]*SalesDetails, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("Products").Preload("Client").Find(&records).Error
 	return records, err
 }
@@ -111,4 +115,4 @@
 func (slf *SalesDetailsSearch) SetOrder(order string) *SalesDetailsSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/salesLeads.go b/model/salesLeads.go
index 2cbf6f5..75647b6 100644
--- a/model/salesLeads.go
+++ b/model/salesLeads.go
@@ -148,4 +148,4 @@
 func (slf *SalesLeadsSearch) SetOrder(order string) *SalesLeadsSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/salesRefund.go b/model/salesRefund.go
index 83d2b5a..0bf5095 100644
--- a/model/salesRefund.go
+++ b/model/salesRefund.go
@@ -80,6 +80,10 @@
 func (slf *SalesRefundSearch) FindAll() ([]*SalesRefund, error) {
 	var db = slf.build()
 	var records = make([]*SalesRefund, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("Products").Find(&records).Error
 	return records, err
 }
@@ -102,4 +106,4 @@
 func (slf *SalesRefundSearch) SetOrder(order string) *SalesRefundSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/salesReturn.go b/model/salesReturn.go
index d99df06..bb07ce5 100644
--- a/model/salesReturn.go
+++ b/model/salesReturn.go
@@ -100,4 +100,4 @@
 func (slf *SalesReturnSearch) SetOrder(order string) *SalesReturnSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/serverContract.go b/model/serviceContract.go
similarity index 93%
rename from model/serverContract.go
rename to model/serviceContract.go
index 109fe4a..ad1dc9f 100644
--- a/model/serverContract.go
+++ b/model/serviceContract.go
@@ -51,6 +51,12 @@
 
 func (slf *ServiceContractSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&ServiceContract{})
+	if slf.Keyword != "" {
+		db = db.Where("name LIKE ?", "%"+slf.Keyword+"%")
+	}
+	if slf.Keyword != "" {
+		db = db.Where("name LIKE ?", "%"+slf.Keyword+"%")
+	}
 	if slf.Id != 0 {
 		db = db.Where("id = ?", slf.Id)
 	}
@@ -83,6 +89,10 @@
 func (slf *ServiceContractSearch) FindAll() ([]*ServiceContract, error) {
 	var db = slf.build()
 	var records = make([]*ServiceContract, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("Products").Find(&records).Error
 	return records, err
 }
diff --git a/model/serviceFeeManage.go b/model/serviceFeeManage.go
index e7709da..03d342c 100644
--- a/model/serviceFeeManage.go
+++ b/model/serviceFeeManage.go
@@ -89,6 +89,10 @@
 func (slf *ServiceFeeManageSearch) FindAll() ([]*ServiceFeeManage, error) {
 	var db = slf.build()
 	var records = make([]*ServiceFeeManage, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("Client").Find(&records).Error
 	return records, err
 }
@@ -106,4 +110,4 @@
 func (slf *ServiceFeeManageSearch) SetOrder(order string) *ServiceFeeManageSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/serviceFollowup.go b/model/serviceFollowup.go
index fab5cf9..9466178 100644
--- a/model/serviceFollowup.go
+++ b/model/serviceFollowup.go
@@ -85,6 +85,10 @@
 func (slf *ServiceFollowupSearch) FindAll() ([]*ServiceFollowup, error) {
 	var db = slf.build()
 	var records = make([]*ServiceFollowup, 0)
+	if slf.PageNum > 0 && slf.PageSize > 0 {
+		db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
+	}
+
 	err := db.Preload("CustomerServiceSheet").Find(&records).Error
 	return records, err
 }
@@ -109,4 +113,4 @@
 func (slf *ServiceFollowupSearch) SetOrder(order string) *ServiceFollowupSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/model/subOrder.go b/model/subOrder.go
index f383d9d..2163d75 100644
--- a/model/subOrder.go
+++ b/model/subOrder.go
@@ -96,4 +96,4 @@
 func (slf *SubOrderSearch) SetOrder(order string) *SubOrderSearch {
 	slf.OrderBy = order
 	return slf
-}
+}
\ No newline at end of file
diff --git a/router/serviceContract.go b/router/serviceContract.go
index 51f4030..0c2d756 100644
--- a/router/serviceContract.go
+++ b/router/serviceContract.go
@@ -14,6 +14,6 @@
 		serviceContractRouter.POST("add", serviceContractApi.Add)             // 娣诲姞鏈嶅姟鍚堝悓
 		serviceContractRouter.DELETE("delete/:id", serviceContractApi.Delete) // 鍒犻櫎鏈嶅姟鍚堝悓
 		serviceContractRouter.PUT("update", serviceContractApi.Update)        // 鏇存柊鏈嶅姟鍚堝悓
-		serviceContractRouter.GET("list", serviceContractApi.List)            // 鑾峰彇鏈嶅姟鍚堝悓鍒楄〃
+		serviceContractRouter.POST("list", serviceContractApi.List)           // 鑾峰彇鏈嶅姟鍚堝悓鍒楄〃
 	}
-}
+}
\ No newline at end of file
diff --git a/service/serviceContracts.go b/service/serviceContract.go
similarity index 83%
rename from service/serviceContracts.go
rename to service/serviceContract.go
index 81a4456..ed0fd26 100644
--- a/service/serviceContracts.go
+++ b/service/serviceContract.go
@@ -29,15 +29,6 @@
 	return ecode.OK
 }
 
-func (SContractService) GetServiceContractList() ([]*model.ServiceContract, int) {
-	list, err := model.NewServiceContractSearch().FindAll()
-	if err != nil {
-		return nil, ecode.SContractListErr
-	}
-
-	return list, ecode.OK
-}
-
 func (SContractService) UpdateServiceContract(serviceContract *model.ServiceContract) int {
 	// check serviceContract exist
 	_, err := model.NewServiceContractSearch().SetId(serviceContract.Id).Find()
@@ -61,3 +52,12 @@
 
 	return list, ecode.OK
 }
+
+func (SContractService) GetServiceContractList(page, pageSize int, keyword string) ([]*model.ServiceContract, int) {
+	// get contact list
+	contacts, err := model.NewServiceContractSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll()
+	if err != nil {
+		return nil, ecode.SContractListErr
+	}
+	return contacts, ecode.OK
+}

--
Gitblit v1.8.0