From c5a0eb549cba2cd358a2d0496c44f3a289f15d9c Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期一, 28 八月 2023 14:22:06 +0800 Subject: [PATCH] fix --- model/quotation.go | 27 +++++++++++++++++---------- 1 files changed, 17 insertions(+), 10 deletions(-) diff --git a/model/quotation.go b/model/quotation.go index 6aa4c50..091c34b 100644 --- a/model/quotation.go +++ b/model/quotation.go @@ -43,9 +43,12 @@ return "quotation" } -func NewQuotationSearch() *QuotationSearch { +func NewQuotationSearch(db *gorm.DB) *QuotationSearch { + if db == nil { + db = mysqlx.GetDB() + } return &QuotationSearch{ - Orm: mysqlx.GetDB(), + Orm: db, } } @@ -59,20 +62,20 @@ for key, value := range slf.SearchMap { switch v := value.(type) { case string: - if key == "validity_date" || key == "number" { - db = db.Where(key+" = ?", v) + if key == "number" || key == "validity_date" { + db = db.Where(key+" LIKE ?", "%"+v+"%") } if key == "client_name" { - db = db.Joins("Client").Where("client.name = ?", v) + db = db.Joins("Client").Where("Client.name LIKE ?", "%"+v+"%") } if key == "contact_name" { - db = db.Joins("Contact").Where("contact.name = ?", v) + db = db.Joins("Contact").Where("Contact.name LIKE ?", "%"+v+"%") } - if key == "validity_date" { - db = db.Where(key+" = ?", v) + if key == "member_name" { + db = db.Joins("Member").Where("Member.username LIKE ?", "%"+v+"%") } case int: @@ -104,7 +107,7 @@ func (slf *QuotationSearch) Find() (*Quotation, error) { var db = slf.build() var record Quotation - err := db.Preload("Client").Preload("Contact").Preload("SaleChance").First(&record).Error + err := db.Preload("Products").Preload("Client").Preload("Contact").Preload("SaleChance").First(&record).Error return &record, err } @@ -119,7 +122,7 @@ db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) } - err := db.Preload("Member").Preload("QuotationStatus").Preload("Client").Preload("Contact").Order("id desc").Find(&records).Error + err := db.Preload("Products").Preload("Member").Preload("QuotationStatus").Preload("Client").Preload("Contact").Order("id desc").Find(&records).Error return records, total, err } @@ -147,3 +150,7 @@ slf.SearchMap = searchMap return slf } +func (slf *QuotationSearch) SetIds(ids []int) *QuotationSearch { + slf.Orm = slf.Orm.Where("id in (?)", ids) + return slf +} -- Gitblit v1.8.0