package service import ( "dy-admin/internal/pcmserver/bus/model" "dy-admin/internal/pcmserver/common" "dy-admin/internal/pcmserver/global" "dy-admin/internal/pcmserver/pkg/code" "dy-admin/internal/pcmserver/utils" "dy-admin/pkg/rescode" ) type WorkTimeService struct { } func (s *WorkTimeService) CreateWorkTime(workTime model.WorkTime) (err error) { startTime, err := utils.ParseTime(workTime.StartTimeStr) if err != nil { return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode]) } endTime, err := utils.ParseTime(workTime.EndTimeStr) if err != nil { return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode]) } if startTime.After(*endTime) { return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeStartGTEndCode]) } workTime.StartTime = startTime workTime.EndTime = endTime err = global.DB.Create(&workTime).Error if err != nil { return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode]) } return } func (s *WorkTimeService) UpdateWorkTime(workTime model.WorkTime) (err error) { if workTime.StartTimeStr != "" { startTime, err := utils.ParseTime(workTime.StartTimeStr) if err != nil { return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode]) } workTime.StartTime = startTime } if workTime.EndTimeStr != "" { endTime, err := utils.ParseTime(workTime.EndTimeStr) if err != nil { return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeParseTimeCode]) } workTime.EndTime = endTime } if workTime.StartTime.After(*workTime.EndTime) { return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrWorkTimeStartGTEndCode]) } err = global.DB.Updates(workTime).Error if err != nil { return } return } func (s *WorkTimeService) UpdateWorkTimeStatus(id int, status string) (err error) { err = global.DB.Model(&model.WorkTime{}).Where("id = ?", id).Update("work_day", status).Error if err != nil { return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode]) } return } func (s *WorkTimeService) DeleteWorkTime(id int) (err error) { err = global.DB.Delete(&model.WorkTime{Model: common.Model{ID: id}}).Error if err != nil { return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode]) } return } func (s *WorkTimeService) GetWorkTimeList() (list []model.WorkTime, err error) { if err = global.DB.Order("sort asc").Find(&list).Error; err != nil { return list, rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode]) } return }