| | |
| | | "silkserver/extend/util" |
| | | "silkserver/middleware" |
| | | "silkserver/models" |
| | | "silkserver/utils" |
| | | ) |
| | | |
| | | type WorkerPositionController struct { |
| | |
| | | } |
| | | |
| | | //查询是否重复 |
| | | old, err := models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).First() |
| | | _, err = models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).SetOverlappingDate(params.StartDate, params.EndDate).First() |
| | | if err == nil { |
| | | if utils.IsOverlap(params.StartDate, params.EndDate, old.StartDate, old.EndDate) { |
| | | util.ResponseFormat(c, code.RequestParamError, "请勿重复添加") |
| | | return |
| | | } |
| | | util.ResponseFormat(c, code.RequestParamError, "时间范围和该工人以往添加记录有重复,请检查") |
| | | return |
| | | } |
| | | |
| | | record := &models.WorkerPosition{ |
| | |
| | | return |
| | | } |
| | | |
| | | //查询是否重复 |
| | | old, err := models.NewWorkerPositionSearch().SetWorkerID(params.WorkerId).First() |
| | | if err == nil { |
| | | if old.ID != params.Id { |
| | | util.ResponseFormat(c, code.RequestParamError, "时间范围和该工人以往添加记录有重复,请检查") |
| | | return |
| | | } |
| | | } |
| | | |
| | | record := &models.WorkerPosition{ |
| | | StartDate: params.StartDate, |
| | | EndDate: params.EndDate, |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误") |
| | | return |
| | | } |
| | | WorkerPositions, total, err := models.NewWorkerPositionSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetPreload().Find() |
| | | WorkerPositions, total, err := models.NewWorkerPositionSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetPreload().SetOrder("id desc").Find() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查询失败") |
| | | return |
| | |
| | | } |
| | | 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 |
| | | } |
| | | ) |
| | | |
| | |
| | | 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()) |
| | | |
| | |
| | | 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 |
| | | } |
| | | |
| | |
| | | if startTime1.After(endTime2) || endTime1.Before(startTime2) { |
| | | return false |
| | | } |
| | | |
| | | return true |
| | | } |