| | |
| | | package model |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "time" |
| | |
| | | |
| | | ServiceFeeManageSearch struct { |
| | | ServiceFeeManage |
| | | |
| | | Orm *gorm.DB |
| | | Keyword string |
| | | OrderBy string |
| | | PageNum int |
| | | PageSize int |
| | | |
| | | Orm *gorm.DB |
| | | QueryClass constvar.ServiceFeeQueryClass |
| | | KeywordType constvar.ServiceFeeKeywordType |
| | | Keyword string |
| | | OrderBy string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | |
| | | |
| | | func (slf *ServiceFeeManageSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&ServiceFeeManage{}) |
| | | if slf.Keyword != "" { |
| | | db = db.Where("name LIKE ?", "%"+slf.Keyword+"%") |
| | | } |
| | | if slf.Id != 0 { |
| | | db.Where("id = ?", slf.Id) |
| | | } |
| | | if slf.ClientId != 0 { |
| | | db.Where("client_id = ?", slf.ClientId) |
| | | } |
| | | switch slf.QueryClass { |
| | | case constvar.ServiceFeeQueryClassExpireLessThen60Days: |
| | | db = db.Where("latest_date > ? and latest_date < ?", time.Now(), time.Now().AddDate(0, 0, 60)) |
| | | case constvar.ServiceFeeQueryClassExpireLessThen30Days: |
| | | db = db.Where("latest_date > ? and latest_date < ?", time.Now(), time.Now().AddDate(0, 0, 30)) |
| | | case constvar.ServiceFeeQueryClassExpireAboutTo60Day: |
| | | db = db.Where("latest_date = ?", time.Now().AddDate(0, 0, -60)) |
| | | case constvar.ServiceFeeQueryClassExpireAboutTo30Day: |
| | | db = db.Where("latest_date = ?", time.Now().AddDate(0, 0, -30)) |
| | | case constvar.ServiceFeeQueryClassExpired: |
| | | db = db.Where("latest_date < ?", time.Now()) |
| | | case constvar.ServiceFeeQueryClassNoService: |
| | | db = db.Where("latest_date < ?", time.Now().AddDate(0, 0, -60)) |
| | | |
| | | } |
| | | |
| | | switch slf.KeywordType { |
| | | case constvar.ServiceFeeKeywordCustomerName: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.name = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordCustomerType: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.client_type_id = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordSalesPrincipal: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.member_id = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordCustomerScale: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.enterprise_scale_id = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordClientLevel: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.client_level_id = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordCustomerNo: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.number = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordCustomerStatus: |
| | | db.Joins("left join clients on clients.id = service_fee_manage.client_id") |
| | | db = db.Where("clients.client_status_id = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordServiceEndDate: |
| | | db = db.Where("latest_date = ?", slf.Keyword) |
| | | case constvar.ServiceFeeKeywordProductName: |
| | | //todo |
| | | } |
| | | |
| | | return db |
| | |
| | | |
| | | func (slf *ServiceFeeManageSearch) SetId(id int) *ServiceFeeManageSearch { |
| | | slf.Id = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ServiceFeeManageSearch) SetKeywordType(keyword constvar.ServiceFeeKeywordType) *ServiceFeeManageSearch { |
| | | slf.KeywordType = keyword |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ServiceFeeManageSearch) SetQueryClass(queryClass constvar.ServiceFeeQueryClass) *ServiceFeeManageSearch { |
| | | slf.QueryClass = queryClass |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ServiceFeeManageSearch) SetKeyword(keyword string) *ServiceFeeManageSearch { |
| | | slf.Keyword = keyword |
| | | return slf |
| | | } |
| | | |
| | |
| | | return records, total, err |
| | | } |
| | | |
| | | func (slf *ServiceFeeManageSearch) SetKeyword(keyword string) *ServiceFeeManageSearch { |
| | | slf.Keyword = keyword |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ServiceFeeManageSearch) SetPage(page, size int) *ServiceFeeManageSearch { |
| | | slf.PageNum, slf.PageSize = page, size |
| | | return slf |
| | |
| | | func (slf *ServiceFeeManageSearch) SetOrder(order string) *ServiceFeeManageSearch { |
| | | slf.OrderBy = order |
| | | return slf |
| | | } |
| | | } |