From 869d20008718d26fcf6d85f4bfe9f7fdbe9db3c5 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期二, 25 七月 2023 19:39:52 +0800
Subject: [PATCH] fix

---
 model/request/salesLeads.go |    5 +
 api/v1/salesLeads.go        |   50 ++++++-----
 model/salesLeads.go         |   26 ++++++
 service/salesLeads.go       |   19 ++--
 docs/swagger.yaml           |   22 +++++
 docs/docs.go                |   32 +++++++
 docs/swagger.json           |   32 +++++++
 model/response/response.go  |    3 
 router/salesLeads.go        |    4 
 9 files changed, 153 insertions(+), 40 deletions(-)

diff --git a/api/v1/salesLeads.go b/api/v1/salesLeads.go
index a71d127..4fc0acb 100644
--- a/api/v1/salesLeads.go
+++ b/api/v1/salesLeads.go
@@ -99,29 +99,6 @@
 	ctx.Ok()
 }
 
-// List
-//
-//	@Tags		SalesLeads
-//	@Summary	鑾峰彇閿�鍞嚎绱㈠垪琛�
-//	@Produce	application/json
-//	@Success	200	{object}	contextx.Response{data=response.SalesLeadsResponse}
-//	@Router		/api/salesLeads/list [post]
-func (s *SalesLeadsApi) List(c *gin.Context) {
-	ctx, ok := contextx.NewContext(c, nil)
-	if !ok {
-		return
-	}
-
-	errCode, salesLeadsList := salesLeadsService.GetSalesLeadsList()
-	if errCode != ecode.OK {
-		ctx.Fail(errCode)
-		return
-	}
-
-	ctx.OkWithDetailed(response.SalesLeadsResponse{
-		List: salesLeadsList,
-	})
-}
 
 func checkSalesLeadsParams(params request.SalesLeads) (errCode int, salesLeads model.SalesLeads) {
 	//if params.Name == "" {
@@ -160,3 +137,30 @@
 
 	return ecode.OK, salesLeads
 }
+
+// List
+//
+//	@Tags		SalesLeads
+//	@Summary	閿�鍞嚎绱㈠垪琛�
+//	@Produce	application/json
+//	@Param		object	body		request.GetSalesLeadsList	true	"鍙傛暟"
+//	@Success	200		{object}	contextx.Response{data=response.SalesLeadsResponse}
+//	@Router		/api/salesLeads/list [post]
+func (con *SalesLeadsApi) List(c *gin.Context) {
+	var params request.GetSalesLeadsList
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	salesLeadss, errCode := salesLeadsService.GetSalesLeadsList(params.Page, params.PageSize, params.Keyword)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.SalesLeadsResponse{
+		List: salesLeadss,
+		Count: len(salesLeadss),
+	})
+}
diff --git a/docs/docs.go b/docs/docs.go
index ec37d32..bc4cbff 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -4834,7 +4834,18 @@
                 "tags": [
                     "SalesLeads"
                 ],
-                "summary": "鑾峰彇閿�鍞嚎绱㈠垪琛�",
+                "summary": "閿�鍞嚎绱㈠垪琛�",
+                "parameters": [
+                    {
+                        "description": "鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetSalesLeadsList"
+                        }
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "OK",
@@ -9730,6 +9741,22 @@
                 }
             }
         },
+        "request.GetSalesLeadsList": {
+            "type": "object",
+            "properties": {
+                "keyword": {
+                    "type": "string"
+                },
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                }
+            }
+        },
         "request.GetUserList": {
             "type": "object",
             "properties": {
@@ -12430,6 +12457,9 @@
         "response.SalesLeadsResponse": {
             "type": "object",
             "properties": {
+                "count": {
+                    "type": "integer"
+                },
                 "list": {
                     "type": "array",
                     "items": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 90fdfc8..1500782 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -4822,7 +4822,18 @@
                 "tags": [
                     "SalesLeads"
                 ],
-                "summary": "鑾峰彇閿�鍞嚎绱㈠垪琛�",
+                "summary": "閿�鍞嚎绱㈠垪琛�",
+                "parameters": [
+                    {
+                        "description": "鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetSalesLeadsList"
+                        }
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "OK",
@@ -9718,6 +9729,22 @@
                 }
             }
         },
+        "request.GetSalesLeadsList": {
+            "type": "object",
+            "properties": {
+                "keyword": {
+                    "type": "string"
+                },
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                }
+            }
+        },
         "request.GetUserList": {
             "type": "object",
             "properties": {
@@ -12418,6 +12445,9 @@
         "response.SalesLeadsResponse": {
             "type": "object",
             "properties": {
+                "count": {
+                    "type": "integer"
+                },
                 "list": {
                     "type": "array",
                     "items": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index eb954b6..4dbfe02 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -1918,6 +1918,17 @@
         description: 姣忛〉澶у皬
         type: integer
     type: object
+  request.GetSalesLeadsList:
+    properties:
+      keyword:
+        type: string
+      page:
+        description: 椤电爜
+        type: integer
+      pageSize:
+        description: 姣忛〉澶у皬
+        type: integer
+    type: object
   request.GetUserList:
     properties:
       keyword:
@@ -3724,6 +3735,8 @@
     type: object
   response.SalesLeadsResponse:
     properties:
+      count:
+        type: integer
       list:
         items:
           $ref: '#/definitions/model.SalesLeads'
@@ -6781,6 +6794,13 @@
       - SalesLeads
   /api/salesLeads/list:
     post:
+      parameters:
+      - description: 鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.GetSalesLeadsList'
       produces:
       - application/json
       responses:
@@ -6793,7 +6813,7 @@
                 data:
                   $ref: '#/definitions/response.SalesLeadsResponse'
               type: object
-      summary: 鑾峰彇閿�鍞嚎绱㈠垪琛�
+      summary: 閿�鍞嚎绱㈠垪琛�
       tags:
       - SalesLeads
   /api/salesLeads/update:
diff --git a/model/request/salesLeads.go b/model/request/salesLeads.go
index 88cae6b..578feb7 100644
--- a/model/request/salesLeads.go
+++ b/model/request/salesLeads.go
@@ -20,3 +20,8 @@
 	Id int `json:"id"`
 	SalesLeads
 }
+
+type GetSalesLeadsList struct {
+	PageInfo
+	Keyword string `json:"keyword"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index 895fe96..3a75735 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -88,7 +88,8 @@
 	}
 
 	SalesLeadsResponse struct {
-		List []*model.SalesLeads `json:"list"`
+		List  []*model.SalesLeads `json:"list"`
+		Count int                 `json:"count"`
 	}
 
 	SalesSourceResponse struct {
diff --git a/model/salesLeads.go b/model/salesLeads.go
index 8ff718f..4c1bad7 100644
--- a/model/salesLeads.go
+++ b/model/salesLeads.go
@@ -25,7 +25,13 @@
 
 	SalesLeadsSearch struct {
 		SalesLeads
-		Orm *gorm.DB
+
+				Orm      *gorm.DB
+		Keyword  string
+		OrderBy  string
+		PageNum  int
+		PageSize int
+
 	}
 )
 
@@ -41,6 +47,9 @@
 
 func (slf *SalesLeadsSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&SalesLeads{})
+	if slf.Keyword != "" {
+		db = db.Where("name LIKE ?", "%"+slf.Keyword+"%")
+	}
 	if slf.Id != 0 {
 		db = db.Where("id = ?", slf.Id)
 	}
@@ -123,3 +132,18 @@
 	err = db.First(&result).Error
 	return
 }
+
+func (slf *SalesLeadsSearch) SetKeyword(keyword string) *SalesLeadsSearch {
+	slf.Keyword = keyword
+	return slf
+}
+
+func (slf *SalesLeadsSearch) SetPage(page, size int) *SalesLeadsSearch {
+	slf.PageNum, slf.PageSize = page, size
+	return slf
+}
+
+func (slf *SalesLeadsSearch) SetOrder(order string) *SalesLeadsSearch {
+	slf.OrderBy = order
+	return slf
+}
diff --git a/router/salesLeads.go b/router/salesLeads.go
index 810e5fc..9e810ef 100644
--- a/router/salesLeads.go
+++ b/router/salesLeads.go
@@ -14,6 +14,6 @@
 		salesLeadsRouter.POST("add", salesLeadsApi.Add)             // 娣诲姞閿�鍞嚎绱�
 		salesLeadsRouter.DELETE("delete/:id", salesLeadsApi.Delete) // 鍒犻櫎閿�鍞嚎绱�
 		salesLeadsRouter.PUT("update", salesLeadsApi.Update)        // 鏇存柊閿�鍞嚎绱�
-		salesLeadsRouter.GET("list", salesLeadsApi.List)            // 鑾峰彇閿�鍞嚎绱㈠垪琛�
+		salesLeadsRouter.POST("list", salesLeadsApi.List)            // 鑾峰彇閿�鍞嚎绱㈠垪琛�
 	}
-}
+}
\ No newline at end of file
diff --git a/service/salesLeads.go b/service/salesLeads.go
index 3c6caa1..23a8ee5 100644
--- a/service/salesLeads.go
+++ b/service/salesLeads.go
@@ -30,16 +30,6 @@
 	return ecode.OK
 }
 
-func (SalesLeadsService) GetSalesLeadsList() (int, []*model.SalesLeads) {
-	// get salesLeads list
-	salesLeadss, err := model.NewSalesLeadsSearch().FindAll()
-	if err != nil {
-		return ecode.SalesLeadsListErr, nil
-	}
-
-	return ecode.OK, salesLeadss
-}
-
 func (SalesLeadsService) UpdateSalesLeads(salesLeads *model.SalesLeads) int {
 	// update salesLeads
 	err := model.NewSalesLeadsSearch().SetId(salesLeads.Id).Update(salesLeads)
@@ -63,3 +53,12 @@
 
 	return ecode.OK
 }
+
+func (SalesLeadsService) GetSalesLeadsList(page, pageSize int, keyword string) ([]*model.SalesLeads, int) {
+	// get contact list
+	contacts, err := model.NewSalesLeadsSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll()
+	if err != nil {
+		return nil, ecode.SalesLeadsListErr
+	}
+	return contacts, ecode.OK
+}

--
Gitblit v1.8.0