| | |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | "gorm.io/gorm/clause" |
| | | ) |
| | | |
| | | type ( |
| | |
| | | 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"` |
| | | SeverityId int `gorm:"severity_id" json:"severity"` // 严重程度id |
| | | Severity Severity `gorm:"foreignKey:SeverityId"` |
| | | Status int `gorm:"status" json:"status"` // 处理状态 |
| | | ExpectTime string `gorm:"expect_time" json:"expectTime"` // 希望处理时间 |
| | | RealTime string `gorm:"real_time" json:"realTime"` // 实际处理时间 |
| | | CarFare float64 `gorm:"car_fare" json:"carFare"` // 交通费 |
| | | ChargeAmount float64 `gorm:"charge_amount" json:"chargeAmount"` // 收费金额 |
| | | TimeSpentId int `gorm:"time_spent_id" json:"timeSpentId"` // 花费时间 |
| | | TimeSpent TimeSpent `gorm:"foreignKey:TimeSpentId"` |
| | | FaqId int `gorm:"problem_id" json:"faqId"` // 常见问题id |
| | | Faq Faq `gorm:"foreignKey:FaqId"` |
| | | ProblemDesc string `gorm:"problem_desc" json:"problemDesc"` // 问题描述 |
| | | Solution string `gorm:"solution" json:"solution"` // 解决方法 |
| | | SolutionRemark string `gorm:"solution_remark" json:"solutionRemark"` // 内部备注 |
| | | Remark string `gorm:"remark" json:"remark"` // 备注 |
| | | SaleChance SaleChance `gorm:"foreignKey:SaleChanceId"` |
| | | FaultTypeId int `gorm:"severity_id" json:"faultTypeId"` // 故障类别id |
| | | FaultType FaultType `gorm:"foreignKey:FaultTypeId"` |
| | | SeverityId int `gorm:"severity_id" json:"severity"` // 严重程度id |
| | | Severity Severity `gorm:"foreignKey:SeverityId"` |
| | | Status int `gorm:"status" json:"status"` // 处理状态 |
| | | ExpectTime string `gorm:"expect_time" json:"expectTime"` // 希望处理时间 |
| | | RealTime string `gorm:"real_time" json:"realTime"` // 实际处理时间 |
| | | CarFare float64 `gorm:"car_fare" json:"carFare"` // 交通费 |
| | | ChargeAmount float64 `gorm:"charge_amount" json:"chargeAmount"` // 收费金额 |
| | | TimeSpentId int `gorm:"time_spent_id" json:"timeSpentId"` // 花费时间 |
| | | TimeSpent TimeSpent `gorm:"foreignKey:TimeSpentId"` |
| | | FaqId int `gorm:"problem_id" json:"faqId"` // 常见问题id |
| | | Faq Faq `gorm:"foreignKey:FaqId"` |
| | | ProblemDesc string `gorm:"problem_desc" json:"problemDesc"` // 问题描述 |
| | | Solution string `gorm:"solution" json:"solution"` // 解决方法 |
| | | SolutionRemark string `gorm:"solution_remark" json:"solutionRemark"` // 内部备注 |
| | | Remark string `gorm:"remark" json:"remark"` // 备注 |
| | | } |
| | | |
| | | // ServiceOrderSearch 服务单搜索条件 |
| | |
| | | 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 |
| | | } |
| | |
| | | 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 |