|
|
@@ -25,21 +25,35 @@ func (r *ShiftRepository) GetActive(operatorID uint) (*dao.ShiftRecord, error) {
|
|
|
}
|
|
|
|
|
|
type ShiftListQuery struct {
|
|
|
- Page int `form:"page"`
|
|
|
- PageSize int `form:"page_size"`
|
|
|
+ Page int `form:"page"`
|
|
|
+ PageSize int `form:"page_size"`
|
|
|
+ ShowAll bool `form:"show_all"`
|
|
|
}
|
|
|
|
|
|
-func (r *ShiftRepository) List(q ShiftListQuery, operatorID uint) ([]dao.ShiftRecord, int64, error) {
|
|
|
- db := global.GVA_DB.Model(&dao.ShiftRecord{}).Where("operator_id = ?", operatorID)
|
|
|
+type ShiftListItem struct {
|
|
|
+ dao.ShiftRecord
|
|
|
+ OperatorName string `json:"operator_name"`
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ShiftRepository) List(q ShiftListQuery, operatorID uint) ([]ShiftListItem, int64, error) {
|
|
|
+ db := global.GVA_DB.Table("shift_record sr").
|
|
|
+ Select("sr.*, su.nick_name as operator_name").
|
|
|
+ Joins("LEFT JOIN sys_users su ON su.id = sr.operator_id")
|
|
|
+
|
|
|
+ if !q.ShowAll {
|
|
|
+ db = db.Where("sr.operator_id = ?", operatorID)
|
|
|
+ }
|
|
|
+
|
|
|
var total int64
|
|
|
db.Count(&total)
|
|
|
+
|
|
|
if q.Page <= 0 {
|
|
|
q.Page = 1
|
|
|
}
|
|
|
if q.PageSize <= 0 {
|
|
|
- q.PageSize = 10
|
|
|
+ q.PageSize = 20
|
|
|
}
|
|
|
- var list []dao.ShiftRecord
|
|
|
- err := db.Order("id DESC").Offset((q.Page - 1) * q.PageSize).Limit(q.PageSize).Find(&list).Error
|
|
|
+ var list []ShiftListItem
|
|
|
+ err := db.Order("sr.id DESC").Offset((q.Page - 1) * q.PageSize).Limit(q.PageSize).Scan(&list).Error
|
|
|
return list, total, err
|
|
|
}
|