work_time.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package service
  2. import (
  3. "dy-admin/internal/pcmserver/bus/model"
  4. "dy-admin/internal/pcmserver/common"
  5. "dy-admin/internal/pcmserver/global"
  6. "dy-admin/internal/pcmserver/pkg/code"
  7. "dy-admin/internal/pcmserver/utils"
  8. "dy-admin/pkg/rescode"
  9. )
  10. type WorkTimeService struct {
  11. }
  12. func (s *WorkTimeService) CreateWorkTime(workTime model.WorkTime) (err error) {
  13. startTime, err := utils.ParseTime(workTime.StartTimeStr)
  14. if err != nil {
  15. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode])
  16. }
  17. endTime, err := utils.ParseTime(workTime.EndTimeStr)
  18. if err != nil {
  19. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode])
  20. }
  21. if startTime.After(*endTime) {
  22. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeStartGTEndCode])
  23. }
  24. workTime.StartTime = startTime
  25. workTime.EndTime = endTime
  26. err = global.DB.Create(&workTime).Error
  27. if err != nil {
  28. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  29. }
  30. return
  31. }
  32. func (s *WorkTimeService) UpdateWorkTime(workTime model.WorkTime) (err error) {
  33. if workTime.StartTimeStr != "" {
  34. startTime, err := utils.ParseTime(workTime.StartTimeStr)
  35. if err != nil {
  36. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode])
  37. }
  38. workTime.StartTime = startTime
  39. }
  40. if workTime.EndTimeStr != "" {
  41. endTime, err := utils.ParseTime(workTime.EndTimeStr)
  42. if err != nil {
  43. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode])
  44. }
  45. workTime.EndTime = endTime
  46. }
  47. if workTime.StartTime.After(*workTime.EndTime) {
  48. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeStartGTEndCode])
  49. }
  50. err = global.DB.Updates(workTime).Error
  51. if err != nil {
  52. return
  53. }
  54. return
  55. }
  56. func (s *WorkTimeService) UpdateWorkTimeStatus(id int, status string) (err error) {
  57. err = global.DB.Model(&model.WorkTime{}).Where("id = ?", id).Update("work_day", status).Error
  58. if err != nil {
  59. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  60. }
  61. return
  62. }
  63. func (s *WorkTimeService) DeleteWorkTime(id int) (err error) {
  64. err = global.DB.Delete(&model.WorkTime{Model: common.Model{ID: id}}).Error
  65. if err != nil {
  66. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  67. }
  68. return
  69. }
  70. func (s *WorkTimeService) GetWorkTimeList() (list []model.WorkTime, err error) {
  71. if err = global.DB.Order("sort asc").Find(&list).Error; err != nil {
  72. return list, rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  73. }
  74. return
  75. }