repo.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package repository
  2. import (
  3. "wails-app/internal/dao"
  4. "wails-app/internal/global"
  5. )
  6. type ShiftRepository struct{}
  7. func (r *ShiftRepository) Create(record *dao.ShiftRecord) error {
  8. return global.GVA_DB.Create(record).Error
  9. }
  10. func (r *ShiftRepository) Update(record *dao.ShiftRecord) error {
  11. return global.GVA_DB.Save(record).Error
  12. }
  13. func (r *ShiftRepository) GetActive(operatorID uint) (*dao.ShiftRecord, error) {
  14. var s dao.ShiftRecord
  15. err := global.GVA_DB.Where("operator_id = ? AND status = ?", operatorID, "active").First(&s).Error
  16. if err != nil {
  17. return nil, err
  18. }
  19. return &s, nil
  20. }
  21. type ShiftListQuery struct {
  22. Page int `form:"page"`
  23. PageSize int `form:"page_size"`
  24. }
  25. func (r *ShiftRepository) List(q ShiftListQuery, operatorID uint) ([]dao.ShiftRecord, int64, error) {
  26. db := global.GVA_DB.Model(&dao.ShiftRecord{}).Where("operator_id = ?", operatorID)
  27. var total int64
  28. db.Count(&total)
  29. if q.Page <= 0 {
  30. q.Page = 1
  31. }
  32. if q.PageSize <= 0 {
  33. q.PageSize = 10
  34. }
  35. var list []dao.ShiftRecord
  36. err := db.Order("id DESC").Offset((q.Page - 1) * q.PageSize).Limit(q.PageSize).Find(&list).Error
  37. return list, total, err
  38. }