wangpengfei
2023-08-07 9c2489c0c360c8dda36d3cbe1dba79222096b2dd
model/serviceFeeManage.go
@@ -1,6 +1,7 @@
package model
import (
   "aps_crm/constvar"
   "aps_crm/pkg/mysqlx"
   "gorm.io/gorm"
   "time"
@@ -20,13 +21,13 @@
   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
   }
)
@@ -46,14 +47,54 @@
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
@@ -76,6 +117,21 @@
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
}
@@ -103,11 +159,6 @@
   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 {