From a53591167bf111ffc0eb2cb129aa7ff8b4cb470d Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期二, 15 八月 2023 19:34:22 +0800
Subject: [PATCH] add

---
 api/v1/index.go                     |    2 
 service/contactInformation.go       |   17 ++
 pkg/ecode/code.go                   |    2 
 docs/swagger.yaml                   |   31 +++++
 docs/docs.go                        |   53 ++++++++
 docs/swagger.json                   |   53 ++++++++
 model/response/response.go          |    4 
 api/v1/contactInformation.go        |   34 +++++
 service/index.go                    |    1 
 model/index.go                      |    1 
 router/contactInformation.go        |   20 +++
 router/index.go                     |    2 
 model/contactInformation.go         |   80 +++++++++++++
 model/request/contactInformation.go |    6 +
 14 files changed, 306 insertions(+), 0 deletions(-)

diff --git a/api/v1/contactInformation.go b/api/v1/contactInformation.go
new file mode 100644
index 0000000..72c7354
--- /dev/null
+++ b/api/v1/contactInformation.go
@@ -0,0 +1,34 @@
+package v1
+
+import (
+	"aps_crm/model/response"
+	"aps_crm/pkg/contextx"
+	"aps_crm/pkg/ecode"
+	"github.com/gin-gonic/gin"
+)
+
+type ContactInformationApi struct{}
+
+// List
+//
+//	@Tags		ContactInformation
+//	@Summary	鑱旂郴鏂瑰紡鍒楄〃
+//	@Produce	application/json
+//	@Success	200	{object}	contextx.Response{data=response.ContactInformationResponse}
+//	@Router		/api/contactInformation/list [get]
+func (con *ContactInformationApi) List(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	contactInformations, errCode := contactInformationService.GetContactInformationList()
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.ContactInformationResponse{
+		List: contactInformations,
+	})
+}
diff --git a/api/v1/index.go b/api/v1/index.go
index b1d7c1e..b7d9326 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -66,6 +66,7 @@
 	SatisfactionApi
 	AssignApi
 	CollectionProjectionApi
+	ContactInformationApi
 }
 
 var ApiGroup = new(Group)
@@ -132,4 +133,5 @@
 	currencyService              = service.ServiceGroup.CurrencyService
 	assignService                = service.ServiceGroup.AssignService
 	collectionProjectionService  = service.ServiceGroup.CollectionProjectionService
+	contactInformationService    = service.ServiceGroup.ContactInformationService
 )
diff --git a/docs/docs.go b/docs/docs.go
index d451ef2..6282947 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1525,6 +1525,37 @@
                 }
             }
         },
+        "/api/contactInformation/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "ContactInformation"
+                ],
+                "summary": "鑱旂郴鏂瑰紡鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.ContactInformationResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "/api/contract/add": {
             "post": {
                 "produces": [
@@ -10940,6 +10971,17 @@
                 }
             }
         },
+        "model.ContactInformation": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
         "model.Contract": {
             "type": "object",
             "properties": {
@@ -17872,6 +17914,17 @@
                 }
             }
         },
+        "response.ContactInformationResponse": {
+            "type": "object",
+            "properties": {
+                "list": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.ContactInformation"
+                    }
+                }
+            }
+        },
         "response.ContactResponse": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 67ea090..68d2743 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1513,6 +1513,37 @@
                 }
             }
         },
+        "/api/contactInformation/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "ContactInformation"
+                ],
+                "summary": "鑱旂郴鏂瑰紡鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.ContactInformationResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "/api/contract/add": {
             "post": {
                 "produces": [
@@ -10928,6 +10959,17 @@
                 }
             }
         },
+        "model.ContactInformation": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
         "model.Contract": {
             "type": "object",
             "properties": {
@@ -17860,6 +17902,17 @@
                 }
             }
         },
+        "response.ContactInformationResponse": {
+            "type": "object",
+            "properties": {
+                "list": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.ContactInformation"
+                    }
+                }
+            }
+        },
         "response.ContactResponse": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 9952676..cafe058 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -679,6 +679,13 @@
       wechat:
         type: string
     type: object
+  model.ContactInformation:
+    properties:
+      id:
+        type: integer
+      name:
+        type: string
+    type: object
   model.Contract:
     properties:
       _:
@@ -5375,6 +5382,13 @@
           $ref: '#/definitions/model.ClientType'
         type: array
     type: object
+  response.ContactInformationResponse:
+    properties:
+      list:
+        items:
+          $ref: '#/definitions/model.ContactInformation'
+        type: array
+    type: object
   response.ContactResponse:
     properties:
       count:
@@ -6850,6 +6864,23 @@
       summary: 鏇存柊鑱旂郴浜�
       tags:
       - Contact
+  /api/contactInformation/list:
+    get:
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            allOf:
+            - $ref: '#/definitions/contextx.Response'
+            - properties:
+                data:
+                  $ref: '#/definitions/response.ContactInformationResponse'
+              type: object
+      summary: 鑱旂郴鏂瑰紡鍒楄〃
+      tags:
+      - ContactInformation
   /api/contract/add:
     post:
       parameters:
diff --git a/model/contactInformation.go b/model/contactInformation.go
new file mode 100644
index 0000000..1ae901d
--- /dev/null
+++ b/model/contactInformation.go
@@ -0,0 +1,80 @@
+package model
+
+import (
+	"aps_crm/pkg/mysqlx"
+	"gorm.io/gorm"
+)
+
+type (
+	ContactInformation struct {
+		Id   int    `json:"id" gorm:"column:id;primaryKey;autoIncrement;not null"`
+		Name string `json:"name" gorm:"column:name;type:varchar(255);comment:鍚嶇О"`
+	}
+
+	ContactInformationSearch struct {
+		ContactInformation
+		Orm *gorm.DB
+	}
+)
+
+func (ContactInformation) TableName() string {
+	return "contact_information"
+}
+
+func NewContactInformationSearch() *ContactInformationSearch {
+	return &ContactInformationSearch{
+		Orm: mysqlx.GetDB(),
+	}
+}
+
+func (slf *ContactInformationSearch) build() *gorm.DB {
+	var db = slf.Orm.Model(&ContactInformation{})
+	if slf.Id != 0 {
+		db = db.Where("id = ?", slf.Id)
+	}
+	if slf.Name != "" {
+		db = db.Where("name = ?", slf.Name)
+	}
+
+	return db
+}
+
+// Create 鍒涘缓
+func (slf *ContactInformationSearch) Create(record []*ContactInformation) error {
+	var db = slf.build()
+	return db.Create(record).Error
+}
+
+func (slf *ContactInformationSearch) Delete() error {
+	var db = slf.build()
+	return db.Delete(&ContactInformation{}).Error
+}
+
+func (slf *ContactInformationSearch) Update(record *ContactInformation) error {
+	var db = slf.build()
+	return db.Updates(record).Error
+}
+
+func (slf *ContactInformationSearch) Find() ([]*ContactInformation, error) {
+	var db = slf.build()
+	var result []*ContactInformation
+	err := db.Find(&result).Error
+	return result, err
+}
+
+func (slf *ContactInformationSearch) FindOne() (*ContactInformation, error) {
+	var db = slf.build()
+	var result ContactInformation
+	err := db.First(&result).Error
+	return &result, err
+}
+
+func (slf *ContactInformationSearch) SetId(id int) *ContactInformationSearch {
+	slf.Id = id
+	return slf
+}
+
+func (slf *ContactInformationSearch) SetName(name string) *ContactInformationSearch {
+	slf.Name = name
+	return slf
+}
diff --git a/model/index.go b/model/index.go
index 0da8fa8..340ce2b 100644
--- a/model/index.go
+++ b/model/index.go
@@ -84,6 +84,7 @@
 		QuotationStatus{},
 		Currency{},
 		CollectionProjection{},
+		ContactInformation{},
 	)
 	return err
 }
diff --git a/model/request/contactInformation.go b/model/request/contactInformation.go
new file mode 100644
index 0000000..159a513
--- /dev/null
+++ b/model/request/contactInformation.go
@@ -0,0 +1,6 @@
+package request
+
+type GetContactInformationList struct {
+	PageInfo
+	Keyword string `json:"keyword"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index cc15773..0c6991f 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -349,4 +349,8 @@
 		List  []*model.CollectionProjection `json:"list"`
 		Count int                           `json:"count"`
 	}
+
+	ContactInformationResponse struct {
+		List []*model.ContactInformation `json:"list"`
+	}
 )
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index efc2052..3ef1e48 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -400,4 +400,6 @@
 	CollectionProjectionListErr   = 5800003 // 鑾峰彇鏀舵棰勬祴鍒楄〃澶辫触
 	CollectionProjectionSetErr    = 5800004 // 璁剧疆鏀舵棰勬祴澶辫触
 	CollectionProjectionUpdateErr = 5800005 // 鏇存柊鏀舵棰勬祴澶辫触
+
+	ContactInformationListErr = 5900001 // 鑾峰彇鑱旂郴淇℃伅鍒楄〃澶辫触
 )
diff --git a/router/contactInformation.go b/router/contactInformation.go
new file mode 100644
index 0000000..264ac8e
--- /dev/null
+++ b/router/contactInformation.go
@@ -0,0 +1,20 @@
+package router
+
+import (
+	v1 "aps_crm/api/v1"
+	"github.com/gin-gonic/gin"
+)
+
+type ContactInformationRouter struct{}
+
+func (c *ContactInformationRouter) InitContactInformationRouter(router *gin.RouterGroup) {
+	contactInformationRouter := router.Group("contactInformation")
+	contactInformationApi := v1.ApiGroup.ContactInformationApi
+	{
+		//contactInformationRouter.POST("add", contactInformationApi.Add)             // 娣诲姞鑱旂郴鏂瑰紡
+		//contactInformationRouter.DELETE("delete/:id", contactInformationApi.Delete) // 鍒犻櫎鑱旂郴鏂瑰紡
+		//contactInformationRouter.PUT("update", contactInformationApi.Update)        // 鏇存柊鑱旂郴鏂瑰紡
+		contactInformationRouter.GET("list", contactInformationApi.List) // 鑾峰彇鑱旂郴鏂瑰紡鍒楄〃
+		//contactInformationRouter.PUT("set", contactInformationApi.Set)              // 璁剧疆鑱旂郴鏂瑰紡
+	}
+}
diff --git a/router/index.go b/router/index.go
index 8f21017..a85ca58 100644
--- a/router/index.go
+++ b/router/index.go
@@ -71,6 +71,7 @@
 	SatisfactionRouter
 	AssignRouter
 	CollectionProjectionRouter
+	ContactInformationRouter
 }
 
 func InitRouter() *gin.Engine {
@@ -178,6 +179,7 @@
 		InitCourierCompanyRouter(PrivateGroup)
 		InitProductRouter(PrivateGroup)
 		routerGroup.InitCollectionProjectionRouter(PrivateGroup)
+		routerGroup.InitContactInformationRouter(PrivateGroup)
 	}
 	return Router
 }
diff --git a/service/contactInformation.go b/service/contactInformation.go
new file mode 100644
index 0000000..398434e
--- /dev/null
+++ b/service/contactInformation.go
@@ -0,0 +1,17 @@
+package service
+
+import (
+	"aps_crm/model"
+	"aps_crm/pkg/ecode"
+)
+
+type ContactInformationService struct{}
+
+func (ContactInformationService) GetContactInformationList() ([]*model.ContactInformation, int) {
+	// get contact list
+	contacts, err := model.NewContactInformationSearch().Find()
+	if err != nil {
+		return nil, ecode.ContactInformationListErr
+	}
+	return contacts, ecode.OK
+}
diff --git a/service/index.go b/service/index.go
index e76998e..4fed338 100644
--- a/service/index.go
+++ b/service/index.go
@@ -62,6 +62,7 @@
 	CurrencyService
 	AssignService
 	CollectionProjectionService
+	ContactInformationService
 }
 
 var ServiceGroup = new(Group)

--
Gitblit v1.8.0