yinbentan
2024-07-25 1bd58eb901da8ca32d15c121effa7e22cc89e1bd
models/worker_position.go
@@ -23,12 +23,15 @@
   }
   WorkerPositionSearch struct {
      WorkerPosition
      Order    string
      PageNum  int
      PageSize int
      Orm      *gorm.DB
      Preload  bool
      Keyword  string
      Order                string
      PageNum              int
      PageSize             int
      Orm                  *gorm.DB
      Preload              bool
      Keyword              string
      OverlappingDateStart string
      OverlappingDateEnd   string
      WorkerDate           string
   }
)
@@ -85,6 +88,12 @@
   return slf
}
func (slf *WorkerPositionSearch) SetOverlappingDate(startDate string, endDate string) *WorkerPositionSearch {
   slf.OverlappingDateStart = startDate
   slf.OverlappingDateEnd = endDate
   return slf
}
func (slf *WorkerPositionSearch) build() *gorm.DB {
   var db = slf.Orm.Table(slf.TableName())
@@ -98,7 +107,7 @@
   if slf.Keyword != "" {
      kw := "%" + slf.Keyword + "%"
      db = db.Joins("Worker").Where("silk_mentor.worker_id LIKE ? or Worker.name LIKE ?", kw, kw)
      db = db.Joins("Worker").Where("silk_worker_position.worker_id LIKE ? or Worker.name LIKE ? or silk_worker_position.workshop like ? or silk_worker_position.workshop_name like ?", kw, kw, kw, kw)
   }
   if slf.Workshop != "" {
@@ -117,6 +126,10 @@
      db = db.Model(&WorkerPosition{}).Preload("Worker")
   }
   if slf.OverlappingDateStart != "" && slf.OverlappingDateEnd != "" {
      db = db.Where("start_date <=  ? and end_date >= ?", slf.OverlappingDateEnd, slf.OverlappingDateStart)
   }
   return db
}