zhangqian
2023-08-10 f67698f7abf35689f24fdb17827249de79034a95
model/serviceOrder.go
@@ -6,6 +6,7 @@
   "errors"
   "fmt"
   "gorm.io/gorm"
   "gorm.io/gorm/clause"
)
type (
@@ -32,7 +33,6 @@
      PriorityLevel   PriorityLevel `gorm:"foreignKey:PriorityLevelId"`
      AppointmentTime string        `gorm:"appointment_time" json:"appointmentTime"` // 预约上门时间
      SaleChanceId    int           `gorm:"sale_leads" json:"saleChanceId"`          // 销售机会id
      SaleChance     SaleChance `gorm:"foreignKey:SaleChanceId"`
      FaultTypeId    int        `gorm:"severity_id" json:"faultTypeId"` // 故障类别id
      FaultType      FaultType  `gorm:"foreignKey:FaultTypeId"`
@@ -94,6 +94,22 @@
         Preload("Severity").
         Preload("Faq")
   }
   switch slf.KeywordType {
   case constvar.ServiceOrderKeywordClientName:
      db = db.Joins("Client", clause.LeftJoin).Where("Client.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   case constvar.ServiceOrderKeywordOrderNumber:
      db = db.Where("service_number = ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   case constvar.ServiceOrderKeywordSubject:
      db = db.Where("subject = ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   case constvar.ServiceOrderKeywordRealProcessTime:
      db = db.Where("real_time = ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   case constvar.ServiceOrderKeywordServiceMan:
      db = db.Joins("left join user on user.id = service_order.service_man_id").Where("user.username like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   case constvar.ServiceOrderKeywordServiceType:
      db = db.Joins("ServiceType", clause.LeftJoin).Where("ServiceType.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   case constvar.ServiceOrderKeywordFaultType:
      db = db.Joins("FaultType", clause.LeftJoin).Where("FaultType.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
   }
   return db
}
@@ -125,6 +141,26 @@
   return slf
}
func (slf *ServiceOrderSearch) SetPage(page, size int) *ServiceOrderSearch {
   slf.PageNum, slf.PageSize = page, size
   return slf
}
func (slf *ServiceOrderSearch) SetKeywordType(keyword constvar.ServiceOrderKeywordType) *ServiceOrderSearch {
   slf.KeywordType = keyword
   return slf
}
func (slf *ServiceOrderSearch) SetQueryClass(queryClass constvar.ServiceOrderQueryClass) *ServiceOrderSearch {
   slf.QueryClass = queryClass
   return slf
}
func (slf *ServiceOrderSearch) SetKeyword(keyword string) *ServiceOrderSearch {
   slf.Keyword = keyword
   return slf
}
func (slf *ServiceOrderSearch) SetPreload(preload bool) *ServiceOrderSearch {
   slf.Preload = preload
   return slf