From 7d06c6472f1acea6b2e49e7b8837bf555e94e219 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 07 五月 2024 16:21:06 +0800 Subject: [PATCH] fox --- models/attendance_manage.go | 84 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 74 insertions(+), 10 deletions(-) diff --git a/models/attendance_manage.go b/models/attendance_manage.go index dac4b23..412bf42 100644 --- a/models/attendance_manage.go +++ b/models/attendance_manage.go @@ -2,7 +2,9 @@ import ( "fmt" + "github.com/shopspring/decimal" "gorm.io/gorm" + "silkserver/constvar" "silkserver/pkg/mysqlx" ) @@ -10,22 +12,31 @@ //AttendanceManage 鑰冨嫟绠$悊琛� AttendanceManage struct { gorm.Model - Date string `json:"date" gorm:"type:varchar(255);comment:鑰冨嫟鏃堕棿"` - WorkerId string `json:"workerId" gorm:"type:varchar(255);comment:浜哄憳id"` - WorkerName string `json:"workerName" gorm:"type:varchar(255);comment:浜哄憳濮撳悕"` - StartWorkTime string `json:"startWorkTime" gorm:"type:varchar(255);comment:涓婄彮鎵撳崱鏃堕棿"` - EndWorkTime string `json:"endWorkTime" gorm:"type:varchar(255);comment:涓嬬彮鎵撳崱鏃堕棿"` - Classes string `json:"classes" gorm:"type:varchar(255);comment:鐝"` - ClassesStartTime string `json:"classesStartTime" gorm:"type:varchar(255);comment:鐝寮�濮嬫椂闂�"` - ClassesEndTime string `json:"classesEndTime" gorm:"type:varchar(255);comment:鐝涓嬬彮鏃堕棿"` - CreateTime string `json:"createTime" gorm:"type:varchar(255);comment:娣诲姞鏃堕棿"` - AddPeople string `json:"addPeople" gorm:"type:varchar(255);comment:娣诲姞浜�"` + Date string `json:"date" gorm:"type:varchar(255);comment:鑰冨嫟鏃堕棿"` + WorkerId string `json:"workerId" gorm:"type:varchar(255);comment:浜哄憳id"` + WorkerName string `json:"workerName" gorm:"type:varchar(255);comment:浜哄憳濮撳悕"` + StartWorkTime string `json:"startWorkTime" gorm:"type:varchar(255);comment:涓婄彮鎵撳崱鏃堕棿"` + EndWorkTime string `json:"endWorkTime" gorm:"type:varchar(255);comment:涓嬬彮鎵撳崱鏃堕棿"` + Classes string `json:"classes" gorm:"type:varchar(255);comment:鐝"` + ClassesStartTime string `json:"classesStartTime" gorm:"type:varchar(255);comment:鐝寮�濮嬫椂闂�"` + ClassesEndTime string `json:"classesEndTime" gorm:"type:varchar(255);comment:鐝涓嬬彮鏃堕棿"` + CreateTime string `json:"createTime" gorm:"type:varchar(255);comment:娣诲姞鏃堕棿"` + AddPeople string `json:"addPeople" gorm:"type:varchar(255);comment:娣诲姞浜�"` + WorkTypeId uint `json:"workTypeId" gorm:"type:int(11);comment:宸ョid"` + WorkType WorkTypeManage `json:"workType" gorm:"foreignKey:WorkTypeId"` + Status constvar.AttendanceStatus `json:"status" gorm:"type:int(11);comment:鐘舵��"` + OverTimeDuration decimal.Decimal `json:"overTimeDuration" gorm:"type:decimal(20,2);comment:鍔犵彮鏃堕暱"` + PhoneNum string `gorm:"type:varchar(191);comment:鎵嬫満鍙�" json:"phoneNum"` } AttendanceManageSearch struct { AttendanceManage PageNum int PageSize int + Preload bool Ids []uint + Month string + Keyword string + Order string Orm *gorm.DB } ) @@ -53,6 +64,36 @@ return slf } +func (slf *AttendanceManageSearch) SetPreload(preload bool) *AttendanceManageSearch { + slf.Preload = preload + return slf +} + +func (slf *AttendanceManageSearch) SetMonth(month string) *AttendanceManageSearch { + slf.Month = month + return slf +} + +func (slf *AttendanceManageSearch) SetDate(date string) *AttendanceManageSearch { + slf.Date = date + return slf +} + +func (slf *AttendanceManageSearch) SetWorkerId(workerId string) *AttendanceManageSearch { + slf.WorkerId = workerId + return slf +} + +func (slf *AttendanceManageSearch) SetKeyword(keyword string) *AttendanceManageSearch { + slf.Keyword = keyword + return slf +} + +func (slf *AttendanceManageSearch) SetOrder(order string) *AttendanceManageSearch { + slf.Order = order + return slf +} + func (slf *AttendanceManageSearch) build() *gorm.DB { var db = slf.Orm.Table(slf.TableName()) @@ -60,6 +101,29 @@ db = db.Where("id in (?)", slf.Ids) } + if slf.Preload { + db = db.Model(&AttendanceManage{}).Preload("WorkType") + } + + if slf.Month != "" { + db = db.Where("date like ?", slf.Month+"%") + } + + if slf.Date != "" { + db = db.Where("date = ?", slf.Date) + } + + if slf.WorkerId != "" { + db = db.Where("worker_id = ?", slf.WorkerId) + } + + if slf.Keyword != "" { + db = db.Where("worker_name like ? or worker_id like ?", "%"+slf.Keyword+"%", "%"+slf.Keyword+"%") + } + if slf.Order != "" { + db = db.Order(slf.Order) + } + return db } -- Gitblit v1.8.0