| | |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | Preload bool |
| | | StartTimeMin int64 |
| | | StartTimeMax int64 |
| | | EndTimeMin int64 |
| | | EndTimeMax int64 |
| | | StatusNot ProcedureStatus |
| | | ProcedureIds []string |
| | | Channels []int32 |
| | | Offset int |
| | | Limit int |
| | | } |
| | | ) |
| | | |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetOffset(offset, limit int) *ProceduresSearch { |
| | | slf.Offset, slf.Limit = offset, limit |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetOrder(order string) *ProceduresSearch { |
| | | slf.Order = order |
| | | return slf |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetStartTimeMin(ts int64) *ProceduresSearch { |
| | | slf.StartTimeMin = ts |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetStartTimeMax(ts int64) *ProceduresSearch { |
| | | slf.StartTimeMax = ts |
| | | return slf |
| | |
| | | |
| | | func (slf *ProceduresSearch) SetEndTimeMin(ts int64) *ProceduresSearch { |
| | | slf.EndTimeMin = ts |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetEndTimeMax(ts int64) *ProceduresSearch { |
| | | slf.EndTimeMax = ts |
| | | return slf |
| | | } |
| | | |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetChannel(channel int32) *ProceduresSearch { |
| | | slf.Channel = channel |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&Procedures{}) |
| | | |
| | |
| | | db = db.Where("start_time <= ?", slf.StartTimeMax) |
| | | } |
| | | |
| | | if slf.StartTimeMin != 0 { |
| | | db = db.Where("start_time >= ?", slf.EndTimeMin) |
| | | } |
| | | |
| | | if slf.EndTimeMin != 0 { |
| | | db = db.Where("end_time > ?", slf.EndTimeMin) |
| | | } |
| | | |
| | | if slf.EndTimeMax != 0 { |
| | | db = db.Where("end_time < ?", slf.StartTimeMax) |
| | | } |
| | | |
| | | if slf.Status != 0 { |
| | |
| | | if slf.PageNum*slf.PageSize > 0 { |
| | | db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) |
| | | } |
| | | |
| | | if slf.Offset*slf.Limit > 0 { |
| | | db = db.Offset(slf.Offset).Limit(slf.Limit) |
| | | } |
| | | |
| | | if err := db.Find(&records).Error; err != nil { |
| | | return records, total, fmt.Errorf("find records err: %v", err) |
| | | } |