| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package repository
- import (
- "wails-app/internal/dao"
- "wails-app/internal/global"
- )
- type ShiftRepository struct{}
- func (r *ShiftRepository) Create(record *dao.ShiftRecord) error {
- return global.GVA_DB.Create(record).Error
- }
- func (r *ShiftRepository) Update(record *dao.ShiftRecord) error {
- return global.GVA_DB.Save(record).Error
- }
- func (r *ShiftRepository) GetActive(operatorID uint) (*dao.ShiftRecord, error) {
- var s dao.ShiftRecord
- err := global.GVA_DB.Where("operator_id = ? AND status = ?", operatorID, "active").First(&s).Error
- if err != nil {
- return nil, err
- }
- return &s, nil
- }
- type ShiftListQuery struct {
- Page int `form:"page"`
- PageSize int `form:"page_size"`
- ShowAll bool `form:"show_all"`
- }
- 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 = 20
- }
- 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
- }
|