From d557ed582308257aaefcbcfe2bada1e195d83a91 Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期二, 08 八月 2023 19:24:30 +0800 Subject: [PATCH] fix --- model/salesLeads.go | 70 ++++++++++++++++++---------------- 1 files changed, 37 insertions(+), 33 deletions(-) diff --git a/model/salesLeads.go b/model/salesLeads.go index 6e9f65e..b854d46 100644 --- a/model/salesLeads.go +++ b/model/salesLeads.go @@ -15,7 +15,9 @@ ContactPhone string `json:"contact_phone" gorm:"column:contact_phone;type:varchar(255);comment:鑱旂郴浜虹數璇�"` ContactPosition string `json:"contact_position" gorm:"column:contact_position;type:varchar(255);comment:鑱旂郴浜鸿亴浣�"` SalesSourcesId int `json:"sales_sources_id" gorm:"column:sales_sources_id;type:int(11);comment:鍟嗘満鏉ユ簮ID"` + SalesSources SalesSources `json:"-" gorm:"foreignKey:SalesSourcesId"` MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:閿�鍞礋璐d汉ID"` + Member User `json:"-" gorm:"foreignKey:MemberId"` SalesStatus constvar.SalesStatus `json:"sales_status" gorm:"column:sales_status;type:int(11);comment:閿�鍞姸鎬�"` Desc string `json:"desc" gorm:"column:desc;type:varchar(255);comment:澶囨敞"` Reason string `json:"reason" gorm:"column:reason;type:text;comment:澶辫触鍘熷洜"` @@ -27,11 +29,11 @@ SalesLeadsSearch struct { SalesLeads - Orm *gorm.DB - Keyword string - OrderBy string - PageNum int - PageSize int + Orm *gorm.DB + SearchMap map[string]interface{} + OrderBy string + PageNum int + PageSize int } ) @@ -51,12 +53,6 @@ func (slf *SalesLeadsSearch) build() *gorm.DB { var db = slf.Orm.Model(&SalesLeads{}) - if slf.Keyword != "" { - db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") - } - if slf.Keyword != "" { - db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") - } if slf.Id != 0 { db = db.Where("id = ?", slf.Id) } @@ -64,28 +60,36 @@ 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 { + switch v := value.(type) { + case string: + if key == "number" || key == "contact_name" || key == "contact_phone" || key == "name" { + db = db.Where(key+" LIKE ?", "%"+v+"%") + } - if slf.ContactName != "" { - db = db.Where("contact_name = ?", slf.ContactName) - } + if key == "city" { + db = db.Joins("City").Where("City.name LIKE ?", "%"+v+"%") + } - if slf.ContactPhone != "" { - db = db.Where("contact_phone = ?", slf.ContactPhone) - } + if key == "province" { + db = db.Joins("Province").Where("Province.name LIKE ?", "%"+v+"%") + } - if slf.ContactPosition != "" { - db = db.Where("contact_position = ?", slf.ContactPosition) - } + if key == "sales_sources" { + db = db.Joins("SalesSources").Where("SalesSources.name LIKE ?", "%"+v+"%") + } - if slf.SalesSourcesId != 0 { - db = db.Where("sales_sources_id = ?", slf.SalesSourcesId) - } + if key == "member_name" { + db = db.Joins("Member").Where("Member.username LIKE ?", "%"+v+"%") + } - if slf.MemberId != 0 { - db = db.Where("member_id = ?", slf.MemberId) + case int: + if key == "member_id" { + db = db.Where("member_id = ?", v) + } + } + } } return db @@ -149,11 +153,6 @@ 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 @@ -172,3 +171,8 @@ slf.Orm = slf.Orm.Where("id in (?)", ids) return slf } + +func (slf *SalesLeadsSearch) SetSearchMap(data map[string]interface{}) *SalesLeadsSearch { + slf.SearchMap = data + return slf +} -- Gitblit v1.8.0