| | |
| | | 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
|
| | | }
|
| | |
|
| | |
| | |
|
| | | err := db.Preload("Client").Find(&records).Error
|
| | | return records, total, err
|
| | | }
|
| | |
|
| | | func (slf *ServiceFeeManageSearch) SetKeyword(keyword string) *ServiceFeeManageSearch {
|
| | | slf.Keyword = keyword
|
| | | return slf
|
| | | }
|
| | |
|
| | | func (slf *ServiceFeeManageSearch) SetPage(page, size int) *ServiceFeeManageSearch {
|