special_time.go 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package service
  2. import (
  3. "dy-admin/internal/pcmserver/bus/model"
  4. "dy-admin/internal/pcmserver/bus/model/request"
  5. "dy-admin/internal/pcmserver/common"
  6. "dy-admin/internal/pcmserver/global"
  7. "dy-admin/internal/pcmserver/pkg/code"
  8. "dy-admin/internal/pcmserver/utils"
  9. "dy-admin/pkg/rescode"
  10. )
  11. type SpecialTimeService struct {
  12. }
  13. func (s *SpecialTimeService) CreateSpecialTime(specTime model.SpecialTime) (err error) {
  14. startDate, err := utils.ParseMinuteTime(specTime.StartTimeStr)
  15. if err != nil {
  16. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrSpecTimeParseTimeCode])
  17. }
  18. endDate, err := utils.ParseMinuteTime(specTime.EndTimeStr)
  19. if err != nil {
  20. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrSpecTimeParseTimeCode])
  21. }
  22. if startDate.After(*endDate) {
  23. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrSpecTimeParseTimeCode])
  24. }
  25. specTime.StartTime = startDate
  26. specTime.EndTime = endDate
  27. err = global.DB.Create(&specTime).Error
  28. if err != nil {
  29. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  30. }
  31. return
  32. }
  33. func (s *SpecialTimeService) UpdateSpecialTime(specTime model.SpecialTime) (err error) {
  34. startDate, err := utils.ParseMinuteTime(specTime.StartTimeStr)
  35. if err != nil {
  36. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrSpecTimeParseTimeCode])
  37. }
  38. endDate, err := utils.ParseMinuteTime(specTime.EndTimeStr)
  39. if err != nil {
  40. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrSpecTimeParseTimeCode])
  41. }
  42. if startDate.After(*endDate) {
  43. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrSpecTimeParseTimeCode])
  44. }
  45. specTime.StartTime = startDate
  46. specTime.EndTime = endDate
  47. err = global.DB.Updates(&specTime).Error
  48. if err != nil {
  49. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  50. }
  51. return
  52. }
  53. func (s *SpecialTimeService) UpdateSpecialTimeStatus(id int, status string) (err error) {
  54. err = global.DB.Model(&model.SpecialTime{}).Where("id = ?", id).Update("work_day", status).Error
  55. if err != nil {
  56. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  57. }
  58. return
  59. }
  60. func (s *SpecialTimeService) DeleteSpecialTime(id int) (err error) {
  61. err = global.DB.Delete(&model.SpecialTime{Model: common.Model{ID: id}}).Error
  62. if err != nil {
  63. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  64. }
  65. return
  66. }
  67. func (s *SpecialTimeService) GetSpecialTimeList(info request.SpecialTimeSearch) (list []model.SpecialTime, total int64, err error) {
  68. limit := info.PageSize
  69. offset := info.PageSize * (info.Page - 1)
  70. db := global.DB.Model(&model.SpecialTime{})
  71. if info.Name != "" {
  72. db = db.Where("name LIKE ?", "%"+info.Name+"%")
  73. }
  74. if info.WorkDay != "" {
  75. db = db.Where("work_day = ?", "%"+info.WorkDay+"%")
  76. }
  77. err = db.Count(&total).Error
  78. if err != nil {
  79. return
  80. }
  81. if err = db.Order("id desc").Limit(limit).Offset(offset).Find(&list).Error; err != nil {
  82. return list, total, rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  83. }
  84. return
  85. }