From fe3906038b25efaf0983a7cf5fede29e26d35093 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期四, 03 八月 2023 15:40:27 +0800
Subject: [PATCH] add

---
 constvar/const.go       |   13 ++--
 api/v1/client.go        |    4 -
 service/client.go       |   26 +++++++-
 model/salesLeads.go     |    8 ++
 service/salesLeads.go   |   12 ++--
 model/request/client.go |    1 
 docs/swagger.yaml       |   17 +++++
 docs/docs.go            |   23 ++++++-
 docs/swagger.json       |   23 ++++++-
 9 files changed, 97 insertions(+), 30 deletions(-)

diff --git a/api/v1/client.go b/api/v1/client.go
index 278374b..6b565b3 100644
--- a/api/v1/client.go
+++ b/api/v1/client.go
@@ -32,9 +32,7 @@
 		return
 	}
 
-	// check member exist
-
-	errCode = clientService.AddClient(client)
+	errCode = clientService.AddClient(client, params.SalesLeadsId)
 	if errCode != ecode.OK {
 		ctx.Fail(errCode)
 		return
diff --git a/constvar/const.go b/constvar/const.go
index dbb8fbb..88e7daa 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -35,13 +35,12 @@
 type SalesStatus int
 
 const (
-	SalesStatusNew                           SalesStatus = iota + 1
-	SalesStatusIng                                       // 杩涜涓�
-	SalesStatusSuccess                                   // 鎴愬姛
-	SalesStatusFail                                      // 澶辫触
-	SalesStatusLevelUptoClient                           // 鍗囩骇涓哄鎴�
-	SalesStatusLevelUptoClientAndSalesChance             // 鍗囩骇涓哄鎴峰苟涓旀湁閿�鍞満浼�
-
+	SalesStatusFail                          SalesStatus = -1   // 澶辫触
+	SalesStatusNew                           SalesStatus = iota // 鏂板缓
+	SalesStatusIng                                              // 杩涜涓�
+	SalesStatusSuccess                                          // 鎴愬姛
+	SalesStatusLevelUptoClient                                  // 鍗囩骇涓哄鎴�
+	SalesStatusLevelUptoClientAndSalesChance                    // 鍗囩骇涓哄鎴峰苟涓旀湁閿�鍞満浼�
 )
 
 type CurrencyType int
diff --git a/docs/docs.go b/docs/docs.go
index 9d0da4f..25722ed 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -7093,25 +7093,26 @@
         "constvar.SalesStatus": {
             "type": "integer",
             "enum": [
+                -1,
                 1,
                 2,
                 3,
                 4,
-                5,
-                6
+                5
             ],
             "x-enum-comments": {
                 "SalesStatusFail": "澶辫触",
                 "SalesStatusIng": "杩涜涓�",
                 "SalesStatusLevelUptoClient": "鍗囩骇涓哄鎴�",
                 "SalesStatusLevelUptoClientAndSalesChance": "鍗囩骇涓哄鎴峰苟涓旀湁閿�鍞満浼�",
+                "SalesStatusNew": "鏂板缓",
                 "SalesStatusSuccess": "鎴愬姛"
             },
             "x-enum-varnames": [
+                "SalesStatusFail",
                 "SalesStatusNew",
                 "SalesStatusIng",
                 "SalesStatusSuccess",
-                "SalesStatusFail",
                 "SalesStatusLevelUptoClient",
                 "SalesStatusLevelUptoClientAndSalesChance"
             ]
@@ -8815,6 +8816,10 @@
                     "description": "娉曚汉浠h〃",
                     "type": "string"
                 },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
+                },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
                     "type": "integer"
@@ -9666,6 +9671,10 @@
                 "representative": {
                     "description": "娉曚汉浠h〃",
                     "type": "string"
+                },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
                 },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
@@ -10814,6 +10823,10 @@
                 "representative": {
                     "description": "娉曚汉浠h〃",
                     "type": "string"
+                },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
                 },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
@@ -12213,6 +12226,10 @@
                     "description": "娉曚汉浠h〃",
                     "type": "string"
                 },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
+                },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
                     "type": "integer"
diff --git a/docs/swagger.json b/docs/swagger.json
index 8107b58..662bcfb 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -7081,25 +7081,26 @@
         "constvar.SalesStatus": {
             "type": "integer",
             "enum": [
+                -1,
                 1,
                 2,
                 3,
                 4,
-                5,
-                6
+                5
             ],
             "x-enum-comments": {
                 "SalesStatusFail": "澶辫触",
                 "SalesStatusIng": "杩涜涓�",
                 "SalesStatusLevelUptoClient": "鍗囩骇涓哄鎴�",
                 "SalesStatusLevelUptoClientAndSalesChance": "鍗囩骇涓哄鎴峰苟涓旀湁閿�鍞満浼�",
+                "SalesStatusNew": "鏂板缓",
                 "SalesStatusSuccess": "鎴愬姛"
             },
             "x-enum-varnames": [
+                "SalesStatusFail",
                 "SalesStatusNew",
                 "SalesStatusIng",
                 "SalesStatusSuccess",
-                "SalesStatusFail",
                 "SalesStatusLevelUptoClient",
                 "SalesStatusLevelUptoClientAndSalesChance"
             ]
@@ -8803,6 +8804,10 @@
                     "description": "娉曚汉浠h〃",
                     "type": "string"
                 },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
+                },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
                     "type": "integer"
@@ -9654,6 +9659,10 @@
                 "representative": {
                     "description": "娉曚汉浠h〃",
                     "type": "string"
+                },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
                 },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
@@ -10802,6 +10811,10 @@
                 "representative": {
                     "description": "娉曚汉浠h〃",
                     "type": "string"
+                },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
                 },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
@@ -12201,6 +12214,10 @@
                     "description": "娉曚汉浠h〃",
                     "type": "string"
                 },
+                "sales_leads_id": {
+                    "description": "閿�鍞嚎绱D",
+                    "type": "integer"
+                },
                 "service_member_id": {
                     "description": "鏈嶅姟璐熻矗浜篒D",
                     "type": "integer"
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index f050aae..b768f08 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -1,24 +1,25 @@
 definitions:
   constvar.SalesStatus:
     enum:
+    - -1
     - 1
     - 2
     - 3
     - 4
     - 5
-    - 6
     type: integer
     x-enum-comments:
       SalesStatusFail: 澶辫触
       SalesStatusIng: 杩涜涓�
       SalesStatusLevelUptoClient: 鍗囩骇涓哄鎴�
       SalesStatusLevelUptoClientAndSalesChance: 鍗囩骇涓哄鎴峰苟涓旀湁閿�鍞満浼�
+      SalesStatusNew: 鏂板缓
       SalesStatusSuccess: 鎴愬姛
     x-enum-varnames:
+    - SalesStatusFail
     - SalesStatusNew
     - SalesStatusIng
     - SalesStatusSuccess
-    - SalesStatusFail
     - SalesStatusLevelUptoClient
     - SalesStatusLevelUptoClientAndSalesChance
   constvar.UserType:
@@ -1144,6 +1145,9 @@
       representative:
         description: 娉曚汉浠h〃
         type: string
+      sales_leads_id:
+        description: 閿�鍞嚎绱D
+        type: integer
       service_member_id:
         description: 鏈嶅姟璐熻矗浜篒D
         type: integer
@@ -1713,6 +1717,9 @@
       representative:
         description: 娉曚汉浠h〃
         type: string
+      sales_leads_id:
+        description: 閿�鍞嚎绱D
+        type: integer
       service_member_id:
         description: 鏈嶅姟璐熻矗浜篒D
         type: integer
@@ -2495,6 +2502,9 @@
       representative:
         description: 娉曚汉浠h〃
         type: string
+      sales_leads_id:
+        description: 閿�鍞嚎绱D
+        type: integer
       service_member_id:
         description: 鏈嶅姟璐熻矗浜篒D
         type: integer
@@ -3428,6 +3438,9 @@
       representative:
         description: 娉曚汉浠h〃
         type: string
+      sales_leads_id:
+        description: 閿�鍞嚎绱D
+        type: integer
       service_member_id:
         description: 鏈嶅姟璐熻矗浜篒D
         type: integer
diff --git a/model/request/client.go b/model/request/client.go
index 7ebbf6c..b647db4 100644
--- a/model/request/client.go
+++ b/model/request/client.go
@@ -18,6 +18,7 @@
 	NextVisitTime     string  `json:"next_visit_time"`     // 涓嬫鍥炶鏃堕棿
 	LatestServiceTime string  `json:"latest_service_time"` // 鏈�鏅氭湇鍔℃椂闂�
 	Contact           Contact `json:"contact"`
+	SalesLeadsId      int     `json:"sales_leads_id"` // 閿�鍞嚎绱D
 	Address
 	Business
 }
diff --git a/model/salesLeads.go b/model/salesLeads.go
index fa5951e..4bf986a 100644
--- a/model/salesLeads.go
+++ b/model/salesLeads.go
@@ -38,9 +38,13 @@
 	return "sales_leads"
 }
 
-func NewSalesLeadsSearch() *SalesLeadsSearch {
+func NewSalesLeadsSearch(db *gorm.DB) *SalesLeadsSearch {
+	if db == nil {
+		db = mysqlx.GetDB()
+	}
+
 	return &SalesLeadsSearch{
-		Orm: mysqlx.GetDB(),
+		Orm: db,
 	}
 }
 
diff --git a/service/client.go b/service/client.go
index 5243a3c..8743ee3 100644
--- a/service/client.go
+++ b/service/client.go
@@ -3,15 +3,33 @@
 import (
 	"aps_crm/model"
 	"aps_crm/pkg/ecode"
+	"aps_crm/pkg/mysqlx"
 )
 
 type ClientService struct{}
 
-func (ClientService) AddClient(client *model.Client) int {
-	err := model.NewClientSearch(nil).Create(client)
-	if err != nil {
-		return ecode.ClientExist
+func (ClientService) AddClient(client *model.Client, sId int) int {
+	if sId == 0 {
+		err := model.NewClientSearch(nil).Create(client)
+		if err != nil {
+			return ecode.ClientExist
+		}
+	} else {
+		tx := mysqlx.GetDB().Begin()
+		err := model.NewClientSearch(tx).Create(client)
+		if err != nil {
+			tx.Rollback()
+			return ecode.ClientExist
+		}
+
+		err = model.NewSalesLeadsSearch(tx).SetId(sId).Delete()
+		if err != nil {
+			tx.Rollback()
+			return ecode.ClientExist
+		}
+		tx.Commit()
 	}
+
 	return ecode.OK
 }
 
diff --git a/service/salesLeads.go b/service/salesLeads.go
index 0239207..114c089 100644
--- a/service/salesLeads.go
+++ b/service/salesLeads.go
@@ -8,7 +8,7 @@
 type SalesLeadsService struct{}
 
 func (SalesLeadsService) AddSalesLeads(salesLeads *model.SalesLeads) int {
-	err := model.NewSalesLeadsSearch().Create(salesLeads)
+	err := model.NewSalesLeadsSearch(nil).Create(salesLeads)
 	if err != nil {
 		return ecode.SalesLeadsExist
 	}
@@ -17,7 +17,7 @@
 
 func (SalesLeadsService) UpdateSalesLeads(salesLeads *model.SalesLeads) int {
 	// update salesLeads
-	err := model.NewSalesLeadsSearch().SetId(salesLeads.Id).Update(salesLeads)
+	err := model.NewSalesLeadsSearch(nil).SetId(salesLeads.Id).Update(salesLeads)
 	if err != nil {
 		return ecode.SalesLeadsUpdateErr
 	}
@@ -27,7 +27,7 @@
 
 // CheckSalesLeadsExist check salesLeads exist
 func CheckSalesLeadsExist(id int) int {
-	tmp, err := model.NewSalesLeadsSearch().SetId(id).Find()
+	tmp, err := model.NewSalesLeadsSearch(nil).SetId(id).Find()
 	if err != nil {
 		return ecode.SalesLeadsNotExist
 	}
@@ -41,7 +41,7 @@
 
 func (SalesLeadsService) GetSalesLeadsList(page, pageSize int, keyword string) ([]*model.SalesLeads, int64, int) {
 	// get contact list
-	contacts, total, err := model.NewSalesLeadsSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll()
+	contacts, total, err := model.NewSalesLeadsSearch(nil).SetKeyword(keyword).SetPage(page, pageSize).FindAll()
 	if err != nil {
 		return nil, 0, ecode.SalesLeadsListErr
 	}
@@ -56,7 +56,7 @@
 	//}
 
 	// update salesLeads
-	err := model.NewSalesLeadsSearch().SetIds(ids).UpdateMap(map[string]interface{}{
+	err := model.NewSalesLeadsSearch(nil).SetIds(ids).UpdateMap(map[string]interface{}{
 		"member_id": memberId,
 	})
 	if err != nil {
@@ -68,7 +68,7 @@
 
 func (SalesLeadsService) DeleteSalesLeads(ids []int) int {
 	// delete client
-	err := model.NewSalesLeadsSearch().SetIds(ids).Delete()
+	err := model.NewSalesLeadsSearch(nil).SetIds(ids).Delete()
 	if err != nil {
 		return ecode.SalesLeadsDeleteErr
 	}

--
Gitblit v1.8.0