From 5fa1de02759b9646e8987312736699755990e960 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期五, 13 十月 2023 15:30:22 +0800
Subject: [PATCH] bug修改
---
service/contact.go | 4
service/salesDetails.go | 11 ++-
model/salesReturn.go | 9 +++
model/contract.go | 1
model/request/salesDetails.go | 1
model/saleChance.go | 19 +++++
api/v1/contact.go | 2
model/quotation.go | 2
docs/swagger.yaml | 17 +++++
docs/docs.go | 23 +++++++
docs/swagger.json | 23 +++++++
model/followRecord.go | 2
model/request/contract.go | 17 +++--
api/v1/saleChance.go | 11 +++
model/salesDetails.go | 9 +++
model/request/salesReturn.go | 1
api/v1/salesDetails.go | 2
model/subOrder.go | 5 +
service/salesReturn.go | 1
model/request/contact.go | 1
20 files changed, 138 insertions(+), 23 deletions(-)
diff --git a/api/v1/contact.go b/api/v1/contact.go
index 0766523..a67cfb2 100644
--- a/api/v1/contact.go
+++ b/api/v1/contact.go
@@ -167,7 +167,7 @@
return
}
- contacts, total, errCode := contactService.GetContactList(params.Page, params.PageSize, params.SearchMap)
+ contacts, total, errCode := contactService.GetContactList(params.Page, params.PageSize, params.SearchMap, params.ClientId)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
diff --git a/api/v1/saleChance.go b/api/v1/saleChance.go
index b7bedb5..69b9b6c 100644
--- a/api/v1/saleChance.go
+++ b/api/v1/saleChance.go
@@ -31,6 +31,17 @@
ctx.Fail(errCode)
return
}
+ if params.CodeRule.Method != 1 {
+ count, err := model.NewSaleChanceSearch().SetNumber(saleChance.Number).Count()
+ if err != nil {
+ ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触")
+ return
+ }
+ if count > 0 {
+ ctx.FailWithMsg(ecode.UnknownErr, "閿�鍞満浼氱紪鐮佸凡瀛樺湪")
+ return
+ }
+ }
errCode = saleChanceService.AddSaleChance(&saleChance)
if errCode != ecode.OK {
diff --git a/api/v1/salesDetails.go b/api/v1/salesDetails.go
index 22a0744..4ce0f39 100644
--- a/api/v1/salesDetails.go
+++ b/api/v1/salesDetails.go
@@ -166,7 +166,7 @@
return
}
- salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params.Page, params.PageSize, params.KeywordType, params.Keyword, params.SaleChanceId)
+ salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
diff --git a/docs/docs.go b/docs/docs.go
index c8d39d3..795c9c9 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -11281,6 +11281,9 @@
"codeStandID": {
"type": "string"
},
+ "contractName": {
+ "type": "string"
+ },
"created_at": {
"description": "The date when the item was created\nexample: 2023-08-10 15:48:25",
"type": "string"
@@ -13672,6 +13675,10 @@
"description": "缂栫爜id",
"type": "string"
},
+ "contractName": {
+ "description": "鍚堝悓鍚嶇О",
+ "type": "string"
+ },
"file": {
"type": "string"
},
@@ -15526,6 +15533,10 @@
"request.GetContactList": {
"type": "object",
"properties": {
+ "clientId": {
+ "description": "瀹㈡埛id",
+ "type": "integer"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -15712,6 +15723,10 @@
"request.GetSalesDetailsList": {
"type": "object",
"properties": {
+ "clientId": {
+ "description": "瀹㈡埛id",
+ "type": "integer"
+ },
"keyword": {
"type": "string"
},
@@ -15775,6 +15790,10 @@
"request.GetSalesReturnList": {
"type": "object",
"properties": {
+ "clientId": {
+ "description": "瀹㈡埛id",
+ "type": "integer"
+ },
"keyword": {
"type": "string"
},
@@ -16737,6 +16756,10 @@
"description": "缂栫爜id",
"type": "string"
},
+ "contractName": {
+ "description": "鍚堝悓鍚嶇О",
+ "type": "string"
+ },
"file": {
"type": "string"
},
diff --git a/docs/swagger.json b/docs/swagger.json
index 17934c8..2bc0387 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -11269,6 +11269,9 @@
"codeStandID": {
"type": "string"
},
+ "contractName": {
+ "type": "string"
+ },
"created_at": {
"description": "The date when the item was created\nexample: 2023-08-10 15:48:25",
"type": "string"
@@ -13660,6 +13663,10 @@
"description": "缂栫爜id",
"type": "string"
},
+ "contractName": {
+ "description": "鍚堝悓鍚嶇О",
+ "type": "string"
+ },
"file": {
"type": "string"
},
@@ -15514,6 +15521,10 @@
"request.GetContactList": {
"type": "object",
"properties": {
+ "clientId": {
+ "description": "瀹㈡埛id",
+ "type": "integer"
+ },
"page": {
"description": "椤电爜",
"type": "integer"
@@ -15700,6 +15711,10 @@
"request.GetSalesDetailsList": {
"type": "object",
"properties": {
+ "clientId": {
+ "description": "瀹㈡埛id",
+ "type": "integer"
+ },
"keyword": {
"type": "string"
},
@@ -15763,6 +15778,10 @@
"request.GetSalesReturnList": {
"type": "object",
"properties": {
+ "clientId": {
+ "description": "瀹㈡埛id",
+ "type": "integer"
+ },
"keyword": {
"type": "string"
},
@@ -16725,6 +16744,10 @@
"description": "缂栫爜id",
"type": "string"
},
+ "contractName": {
+ "description": "鍚堝悓鍚嶇О",
+ "type": "string"
+ },
"file": {
"type": "string"
},
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index ad410bd..00f968f 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -738,6 +738,8 @@
type: integer
codeStandID:
type: string
+ contractName:
+ type: string
created_at:
description: |-
The date when the item was created
@@ -2348,6 +2350,9 @@
codeStandID:
description: 缂栫爜id
type: string
+ contractName:
+ description: 鍚堝悓鍚嶇О
+ type: string
file:
type: string
member_id:
@@ -3601,6 +3606,9 @@
type: object
request.GetContactList:
properties:
+ clientId:
+ description: 瀹㈡埛id
+ type: integer
page:
description: 椤电爜
type: integer
@@ -3745,6 +3753,9 @@
type: object
request.GetSalesDetailsList:
properties:
+ clientId:
+ description: 瀹㈡埛id
+ type: integer
keyword:
type: string
keywordType:
@@ -3791,6 +3802,9 @@
type: object
request.GetSalesReturnList:
properties:
+ clientId:
+ description: 瀹㈡埛id
+ type: integer
keyword:
type: string
keywordType:
@@ -4450,6 +4464,9 @@
codeStandID:
description: 缂栫爜id
type: string
+ contractName:
+ description: 鍚堝悓鍚嶇О
+ type: string
file:
type: string
id:
diff --git a/model/contract.go b/model/contract.go
index 35a23a7..a22bacb 100644
--- a/model/contract.go
+++ b/model/contract.go
@@ -8,6 +8,7 @@
type (
Contract struct {
Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+ ContractName string `json:"contractName" gorm:"column:contract_name;type:varchar(255);comment:鍚堝悓鍚嶇О"`
ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
Client Client `json:"client" gorm:"foreignKey:ClientId"`
MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"`
diff --git a/model/followRecord.go b/model/followRecord.go
index 6188d70..dc51c46 100644
--- a/model/followRecord.go
+++ b/model/followRecord.go
@@ -71,7 +71,7 @@
db = db.Where(key+" LIKE ?", "%"+v+"%")
}
- if key == "name" {
+ if key == "client_name" {
db = db.Joins("Client").Where("Client.name LIKE ?", "%"+v+"%")
}
diff --git a/model/quotation.go b/model/quotation.go
index 24257f4..8049eca 100644
--- a/model/quotation.go
+++ b/model/quotation.go
@@ -79,7 +79,7 @@
db = db.Joins("Member").Where("Member.username LIKE ?", "%"+v+"%")
}
- case int:
+ case float64:
if key == "client_id" || key == "sale_chance_id" {
db = db.Where(key+" = ?", v)
}
diff --git a/model/request/contact.go b/model/request/contact.go
index 2a788d5..84dd141 100644
--- a/model/request/contact.go
+++ b/model/request/contact.go
@@ -34,6 +34,7 @@
type GetContactList struct {
PageInfo
SearchMap map[string]interface{} `json:"search_map"` // 鎼滅储鏉′欢: map[string]interface{}{"name": "xxx"}; {"name": "瀹㈡埛鍚嶇О", "phone": "鎵嬫満鍙风爜", "detail_address":"璇︾粏鍦板潃", "next_visit_time":"涓嬪洖鍥炶鏃ユ湡", "member_name": "閿�鍞礋璐d汉", "client_status": "瀹㈡埛鐘舵��", "client_level": "閲嶈绾у埆", "is_first": "鏄惁鏄瑕佽仈绯讳汉", "client_id": "clientId 鐢ㄤ簬杩斿洖棣栬鑱旂郴浜�"}
+ ClientId int `json:"clientId"` //瀹㈡埛id
}
type DeleteContact struct {
diff --git a/model/request/contract.go b/model/request/contract.go
index e9e9c43..8285425 100644
--- a/model/request/contract.go
+++ b/model/request/contract.go
@@ -7,14 +7,15 @@
}
type Contract struct {
- ClientId int `json:"client_id"`
- MemberId int `json:"member_id"`
- Number string `json:"number"`
- QuotationId int `json:"quotation_id"`
- StatusId int `json:"status_id"`
- File string `json:"file"`
- CodeStandID string `json:"codeStandID"` //缂栫爜id
- CodeRule code.CodeStandard `json:"codeRule"`
+ ContractName string `json:"contractName"` //鍚堝悓鍚嶇О
+ ClientId int `json:"client_id"`
+ MemberId int `json:"member_id"`
+ Number string `json:"number"`
+ QuotationId int `json:"quotation_id"`
+ StatusId int `json:"status_id"`
+ File string `json:"file"`
+ CodeStandID string `json:"codeStandID"` //缂栫爜id
+ CodeRule code.CodeStandard `json:"codeRule"`
}
type UpdateContract struct {
diff --git a/model/request/salesDetails.go b/model/request/salesDetails.go
index 4f43d65..d06e99d 100644
--- a/model/request/salesDetails.go
+++ b/model/request/salesDetails.go
@@ -42,4 +42,5 @@
KeywordType constvar.SalesDetailsKeywordType `json:"keywordType"`
Keyword string `json:"keyword"`
SaleChanceId int `json:"saleChanceId"` //閿�鍞満浼歩d
+ ClientId int `json:"clientId"` //瀹㈡埛id
}
diff --git a/model/request/salesReturn.go b/model/request/salesReturn.go
index eac712d..3c85395 100644
--- a/model/request/salesReturn.go
+++ b/model/request/salesReturn.go
@@ -38,4 +38,5 @@
KeywordType constvar.SalesReturnKeywordType
SourceType constvar.SalesReturnSourceType `json:"sourceType"` // 婧愬崟绫诲瀷锛�1閿�鍞槑缁嗭級
SourceId int `json:"sourceId"` // 婧愬崟id
+ ClientId int `json:"clientId"` //瀹㈡埛id
}
diff --git a/model/saleChance.go b/model/saleChance.go
index bc5ef40..37f9b93 100644
--- a/model/saleChance.go
+++ b/model/saleChance.go
@@ -78,6 +78,9 @@
if slf.Name != "" {
db = db.Where("name = ?", slf.Name)
}
+ if slf.Number != "" {
+ db = db.Where("number = ?", slf.Number)
+ }
if len(slf.SearchMap) > 0 {
for key, value := range slf.SearchMap {
@@ -113,7 +116,7 @@
case int:
case float64:
- if key == "member_id" || key == "budget" || key == "projected_amount" {
+ if key == "member_id" || key == "budget" || key == "projected_amount" || key == "client_id" {
db = db.Where(key+" = ?", v)
}
}
@@ -158,8 +161,15 @@
db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
}
- err := db.Preload("SaleType").Preload("RegularCustomers").Preload("SalesSources").Preload("Member").Preload("SaleStage").Preload("Possibility").Preload("CollectionProjections").Preload("Client").Preload("Contact.Province").Preload("Contact.City").Order("id desc").Find(&records).Error
+ err := db.Preload("SaleType").Preload("RegularCustomers").Preload("SalesSources").Preload("Member").Preload("SaleStage").Preload("Possibility").Preload("CollectionProjections").Preload("Client").Preload("Province").Preload("City").Order("id desc").Find(&records).Error
return records, total, err
+}
+
+func (slf *SaleChanceSearch) Count() (int64, error) {
+ var db = slf.build()
+ var total int64
+ err := db.Count(&total).Error
+ return total, err
}
func (slf *SaleChanceSearch) SetId(id int) *SaleChanceSearch {
@@ -182,6 +192,11 @@
return slf
}
+func (slf *SaleChanceSearch) SetNumber(number string) *SaleChanceSearch {
+ slf.Number = number
+ return slf
+}
+
func (slf *SaleChanceSearch) SetSearchMap(searchMap map[string]interface{}) *SaleChanceSearch {
slf.SearchMap = searchMap
return slf
diff --git a/model/salesDetails.go b/model/salesDetails.go
index b0e58b3..781cf34 100644
--- a/model/salesDetails.go
+++ b/model/salesDetails.go
@@ -75,6 +75,10 @@
db = db.Where("sale_chance_id = ?", slf.SaleChanceId)
}
+ if slf.ClientId != 0 {
+ db = db.Where("client_id = ?", slf.ClientId)
+ }
+
switch slf.KeywordType {
case constvar.SalesDetailsKeywordTypeCustomerName:
db = db.Joins("Client", clause.LeftJoin).Where("Client.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
@@ -125,6 +129,11 @@
return slf
}
+func (slf *SalesDetailsSearch) SetClientId(clientId int) *SalesDetailsSearch {
+ slf.ClientId = clientId
+ return slf
+}
+
func (slf *SalesDetailsSearch) SetSaleChanceId(saleChanceId int) *SalesDetailsSearch {
slf.SaleChanceId = saleChanceId
return slf
diff --git a/model/salesReturn.go b/model/salesReturn.go
index 3f1d335..b23612f 100644
--- a/model/salesReturn.go
+++ b/model/salesReturn.go
@@ -77,6 +77,9 @@
if slf.SourceId != 0 {
db = db.Where("source_id = ?", slf.SourceId)
}
+ if slf.ClientId != 0 {
+ db = db.Where("client_id = ?", slf.ClientId)
+ }
if slf.Preload {
db = db.Preload("Client").
Preload("Member").
@@ -198,11 +201,17 @@
slf.SourceType = sourceType
return slf
}
+
func (slf *SalesReturnSearch) SetSourceId(sourceId int) *SalesReturnSearch {
slf.SourceId = sourceId
return slf
}
+func (slf *SalesReturnSearch) SetClientId(clientId int) *SalesReturnSearch {
+ slf.ClientId = clientId
+ return slf
+}
+
func (slf *SalesReturnSearch) UpdateByMap(data map[string]interface{}) error {
var db = slf.build()
return db.Updates(data).Error
diff --git a/model/subOrder.go b/model/subOrder.go
index b7d5869..9f1761f 100644
--- a/model/subOrder.go
+++ b/model/subOrder.go
@@ -71,8 +71,9 @@
db = db.Joins("Member").Where("User.username LIKE ?", "%"+v+"%")
}
case int:
- if key == "master_order_id" {
- db = db.Where("master_order_id = ?", v)
+ case float64:
+ if key == "client_id" || key == "master_order_id" {
+ db = db.Where(key+" = ?", v)
}
}
}
diff --git a/service/contact.go b/service/contact.go
index daab40e..08b1503 100644
--- a/service/contact.go
+++ b/service/contact.go
@@ -102,9 +102,9 @@
return ecode.OK
}
-func (ContactService) GetContactList(page, pageSize int, data map[string]interface{}) ([]*model.ContactDetail, int64, int) {
+func (ContactService) GetContactList(page, pageSize int, data map[string]interface{}, clientId int) ([]*model.ContactDetail, int64, int) {
// get contact list
- contacts, total, err := model.NewContactSearch(nil).SetPage(page, pageSize).SetSearchMap(data).FindAll()
+ contacts, total, err := model.NewContactSearch(nil).SetPage(page, pageSize).SetSearchMap(data).SetClientId(clientId).FindAll()
if err != nil {
return nil, 0, ecode.ContactListErr
}
diff --git a/service/salesDetails.go b/service/salesDetails.go
index 1e15798..5a239d4 100644
--- a/service/salesDetails.go
+++ b/service/salesDetails.go
@@ -1,8 +1,8 @@
package service
import (
- "aps_crm/constvar"
"aps_crm/model"
+ "aps_crm/model/request"
"aps_crm/pkg/ecode"
"github.com/shopspring/decimal"
"gorm.io/gorm"
@@ -114,13 +114,14 @@
return ecode.OK
}
-func (SalesDetailsService) GetSalesDetailsList(page, pageSize int, keywordType constvar.SalesDetailsKeywordType, keyword string, saleChanceId int) ([]*model.SalesDetails, int64, int) {
+func (SalesDetailsService) GetSalesDetailsList(params request.GetSalesDetailsList) ([]*model.SalesDetails, int64, int) {
// get contact list
contacts, total, err := model.NewSalesDetailsSearch().
SetPreload(true).
- SetKeywordType(keywordType).
- SetSaleChanceId(saleChanceId).
- SetKeyword(keyword).SetPage(page, pageSize).FindAll()
+ SetKeywordType(params.KeywordType).
+ SetSaleChanceId(params.SaleChanceId).
+ SetClientId(params.ClientId).
+ SetKeyword(params.Keyword).SetPage(params.Page, params.PageSize).FindAll()
if err != nil {
return nil, 0, ecode.SalesDetailsListErr
}
diff --git a/service/salesReturn.go b/service/salesReturn.go
index 4363b78..3ce3474 100644
--- a/service/salesReturn.go
+++ b/service/salesReturn.go
@@ -132,6 +132,7 @@
SetPage(params.Page, params.PageSize).
SetSourceId(params.SourceId).
SetSourceType(params.SourceType).
+ SetClientId(params.ClientId).
SetPreload(true).
FindAll()
if err != nil {
--
Gitblit v1.8.0