From 74f698acff298c45e436824e15c0da3c93b7926e Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期二, 25 七月 2023 20:15:19 +0800
Subject: [PATCH] add

---
 api/v1/salesLeads.go          |    5 
 router/followRecord.go        |    4 
 service/followRecord.go       |   19 ++--
 api/v1/followRecord.go        |   50 ++++++-----
 model/request/followRecord.go |    5 +
 docs/swagger.yaml             |   24 +++++
 docs/docs.go                  |   34 ++++++++
 docs/swagger.json             |   34 ++++++++
 model/response/response.go    |    3 
 model/followRecord.go         |   25 ++++++
 10 files changed, 157 insertions(+), 46 deletions(-)

diff --git a/api/v1/followRecord.go b/api/v1/followRecord.go
index 852cb90..cc09505 100644
--- a/api/v1/followRecord.go
+++ b/api/v1/followRecord.go
@@ -43,29 +43,6 @@
 	ctx.Ok()
 }
 
-// List
-//
-//	@Tags		FollowRecord
-//	@Summary	鑾峰彇璺熻繘璁板綍鍒楄〃
-//	@Produce	application/json
-//	@Success	200	{object}	contextx.Response{data=response.FollowRecordResponse}
-//	@Router		/api/followRecord/list [get]
-func (fr *FollowRecordApi) List(c *gin.Context) {
-	ctx, ok := contextx.NewContext(c, nil)
-	if !ok {
-		return
-	}
-
-	errCode, followRecordList := followRecordService.GetFollowRecordList()
-	if errCode != ecode.OK {
-		ctx.Fail(errCode)
-		return
-	}
-
-	ctx.OkWithDetailed(response.FollowRecordResponse{
-		List: followRecordList,
-	})
-}
 
 // Delete
 //
@@ -219,3 +196,30 @@
 
 	return time.Time{}, err
 }
+
+// List
+//
+//	@Tags		FollowRecord
+//	@Summary	璺熻繘璁板綍鍒楄〃
+//	@Produce	application/json
+//	@Param		object	body		request.GetFollowRecordList	true	"鍙傛暟"
+//	@Success	200		{object}	contextx.Response{data=response.FollowRecordResponse}
+//	@Router		/api/followRecord/list [post]
+func (con *FollowRecordApi) List(c *gin.Context) {
+	var params request.GetFollowRecordList
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	followRecords, errCode := followRecordService.GetFollowRecordList(params.Page, params.PageSize, params.Keyword)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.FollowRecordResponse{
+		List: followRecords,
+		Count: len(followRecords),
+	})
+}
diff --git a/api/v1/salesLeads.go b/api/v1/salesLeads.go
index 4fc0acb..7c37437 100644
--- a/api/v1/salesLeads.go
+++ b/api/v1/salesLeads.go
@@ -99,7 +99,6 @@
 	ctx.Ok()
 }
 
-
 func checkSalesLeadsParams(params request.SalesLeads) (errCode int, salesLeads model.SalesLeads) {
 	//if params.Name == "" {
 	//	return ecode.InvalidParams, salesLeads
@@ -146,7 +145,7 @@
 //	@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) {
+func (s *SalesLeadsApi) List(c *gin.Context) {
 	var params request.GetSalesLeadsList
 	ctx, ok := contextx.NewContext(c, &params)
 	if !ok {
@@ -160,7 +159,7 @@
 	}
 
 	ctx.OkWithDetailed(response.SalesLeadsResponse{
-		List: salesLeadss,
+		List:  salesLeadss,
 		Count: len(salesLeadss),
 	})
 }
diff --git a/docs/docs.go b/docs/docs.go
index 717105a..cabc262 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -2090,14 +2090,25 @@
             }
         },
         "/api/followRecord/list": {
-            "get": {
+            "post": {
                 "produces": [
                     "application/json"
                 ],
                 "tags": [
                     "FollowRecord"
                 ],
-                "summary": "鑾峰彇璺熻繘璁板綍鍒楄〃",
+                "summary": "璺熻繘璁板綍鍒楄〃",
+                "parameters": [
+                    {
+                        "description": "鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetFollowRecordList"
+                        }
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "OK",
@@ -9768,6 +9779,22 @@
                 }
             }
         },
+        "request.GetFollowRecordList": {
+            "type": "object",
+            "properties": {
+                "keyword": {
+                    "type": "string"
+                },
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                }
+            }
+        },
         "request.GetSalesLeadsList": {
             "type": "object",
             "properties": {
@@ -12227,6 +12254,9 @@
         "response.FollowRecordResponse": {
             "type": "object",
             "properties": {
+                "count": {
+                    "type": "integer"
+                },
                 "list": {
                     "type": "array",
                     "items": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 43f1388..f25cf9d 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -2078,14 +2078,25 @@
             }
         },
         "/api/followRecord/list": {
-            "get": {
+            "post": {
                 "produces": [
                     "application/json"
                 ],
                 "tags": [
                     "FollowRecord"
                 ],
-                "summary": "鑾峰彇璺熻繘璁板綍鍒楄〃",
+                "summary": "璺熻繘璁板綍鍒楄〃",
+                "parameters": [
+                    {
+                        "description": "鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetFollowRecordList"
+                        }
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "OK",
@@ -9756,6 +9767,22 @@
                 }
             }
         },
+        "request.GetFollowRecordList": {
+            "type": "object",
+            "properties": {
+                "keyword": {
+                    "type": "string"
+                },
+                "page": {
+                    "description": "椤电爜",
+                    "type": "integer"
+                },
+                "pageSize": {
+                    "description": "姣忛〉澶у皬",
+                    "type": "integer"
+                }
+            }
+        },
         "request.GetSalesLeadsList": {
             "type": "object",
             "properties": {
@@ -12215,6 +12242,9 @@
         "response.FollowRecordResponse": {
             "type": "object",
             "properties": {
+                "count": {
+                    "type": "integer"
+                },
                 "list": {
                     "type": "array",
                     "items": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 260e944..46bc994 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -1929,6 +1929,17 @@
         description: 姣忛〉澶у皬
         type: integer
     type: object
+  request.GetFollowRecordList:
+    properties:
+      keyword:
+        type: string
+      page:
+        description: 椤电爜
+        type: integer
+      pageSize:
+        description: 姣忛〉澶у皬
+        type: integer
+    type: object
   request.GetSalesLeadsList:
     properties:
       keyword:
@@ -3582,6 +3593,8 @@
     type: object
   response.FollowRecordResponse:
     properties:
+      count:
+        type: integer
       list:
         items:
           $ref: '#/definitions/model.FollowRecord'
@@ -5125,7 +5138,14 @@
       tags:
       - FollowRecord
   /api/followRecord/list:
-    get:
+    post:
+      parameters:
+      - description: 鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.GetFollowRecordList'
       produces:
       - application/json
       responses:
@@ -5138,7 +5158,7 @@
                 data:
                   $ref: '#/definitions/response.FollowRecordResponse'
               type: object
-      summary: 鑾峰彇璺熻繘璁板綍鍒楄〃
+      summary: 璺熻繘璁板綍鍒楄〃
       tags:
       - FollowRecord
   /api/followRecord/update:
diff --git a/model/followRecord.go b/model/followRecord.go
index 29123cd..c8205b5 100644
--- a/model/followRecord.go
+++ b/model/followRecord.go
@@ -30,7 +30,12 @@
 
 	FollowRecordSearch struct {
 		FollowRecord
-		Orm *gorm.DB
+
+		Orm      *gorm.DB
+		Keyword  string
+		OrderBy  string
+		PageNum  int
+		PageSize int
 	}
 )
 
@@ -46,6 +51,9 @@
 
 func (slf *FollowRecordSearch) build() *gorm.DB {
 	var db = slf.Orm.Model(&FollowRecord{})
+	if slf.Keyword != "" {
+		db = db.Where("topic LIKE ?", "%"+slf.Keyword+"%")
+	}
 	if slf.Id != 0 {
 		db = db.Where("id = ?", slf.Id)
 	}
@@ -148,3 +156,18 @@
 	slf.ClientId = clientId
 	return slf
 }
+
+func (slf *FollowRecordSearch) SetKeyword(keyword string) *FollowRecordSearch {
+	slf.Keyword = keyword
+	return slf
+}
+
+func (slf *FollowRecordSearch) SetPage(page, size int) *FollowRecordSearch {
+	slf.PageNum, slf.PageSize = page, size
+	return slf
+}
+
+func (slf *FollowRecordSearch) SetOrder(order string) *FollowRecordSearch {
+	slf.OrderBy = order
+	return slf
+}
diff --git a/model/request/followRecord.go b/model/request/followRecord.go
index 2ddffad..fb0d790 100644
--- a/model/request/followRecord.go
+++ b/model/request/followRecord.go
@@ -25,3 +25,8 @@
 	Id           int          `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
 	FollowRecord FollowRecord `json:"follow_record" binding:"required"`
 }
+
+type GetFollowRecordList struct {
+	PageInfo
+	Keyword string `json:"keyword"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index bb66ace..3b371a2 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -98,7 +98,8 @@
 	}
 
 	FollowRecordResponse struct {
-		List []*model.FollowRecord `json:"list"`
+		List  []*model.FollowRecord `json:"list"`
+		Count int                   `json:"count"`
 	}
 
 	SaleChanceResponse struct {
diff --git a/router/followRecord.go b/router/followRecord.go
index a04d06f..0dbe91c 100644
--- a/router/followRecord.go
+++ b/router/followRecord.go
@@ -14,6 +14,6 @@
 		followRecordRouter.POST("add", followRecordApi.Add)             // 娣诲姞璺熻繘璁板綍
 		followRecordRouter.DELETE("delete/:id", followRecordApi.Delete) // 鍒犻櫎璺熻繘璁板綍
 		followRecordRouter.PUT("update", followRecordApi.Update)        // 鏇存柊璺熻繘璁板綍
-		followRecordRouter.GET("list", followRecordApi.List)            // 鑾峰彇璺熻繘璁板綍鍒楄〃
+		followRecordRouter.POST("list", followRecordApi.List)            // 鑾峰彇璺熻繘璁板綍鍒楄〃
 	}
-}
+}
\ No newline at end of file
diff --git a/service/followRecord.go b/service/followRecord.go
index 701488d..fd29b08 100644
--- a/service/followRecord.go
+++ b/service/followRecord.go
@@ -30,16 +30,6 @@
 	return ecode.OK
 }
 
-func (FollowRecordService) GetFollowRecordList() (int, []*model.FollowRecord) {
-	// get followRecord list
-	followRecords, err := model.NewFollowRecordSearch().Find()
-	if err != nil {
-		return ecode.FollowRecordListErr, nil
-	}
-
-	return ecode.OK, followRecords
-}
-
 // check followRecord exist
 func checkFollowRecordExist(id int) int {
 	_, err := model.NewFollowRecordSearch().SetId(id).First()
@@ -64,3 +54,12 @@
 	}
 	return ecode.OK
 }
+
+func (FollowRecordService) GetFollowRecordList(page, pageSize int, keyword string) ([]*model.FollowRecord, int) {
+	// get contact list
+	contacts, err := model.NewFollowRecordSearch().SetKeyword(keyword).SetPage(page, pageSize).Find()
+	if err != nil {
+		return nil, ecode.FollowRecordListErr
+	}
+	return contacts, ecode.OK
+}

--
Gitblit v1.8.0