device_log.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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/global"
  6. "dy-admin/internal/pcmserver/pkg/code"
  7. "dy-admin/internal/pcmserver/utils"
  8. "dy-admin/pkg/rescode"
  9. "time"
  10. )
  11. type DeviceLogService struct {
  12. }
  13. func (s *DeviceLogService) CreateDeviceLog(log model.DeviceLog) (err error) {
  14. err = global.DB.Create(&log).Error
  15. if err != nil {
  16. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  17. }
  18. return
  19. }
  20. func (s *DeviceLogService) DeleteDeviceLog(info request.DeleteDeviceLogReq) (err error) {
  21. var (
  22. startTime, endTime *time.Time
  23. )
  24. if info.StartTimeStr != "" {
  25. startTime, err = utils.ParseSecondTime(info.StartTimeStr)
  26. if err != nil {
  27. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
  28. }
  29. }
  30. if info.EndTimeStr != "" {
  31. endTime, err = utils.ParseSecondTime(info.EndTimeStr)
  32. if err != nil {
  33. return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
  34. }
  35. }
  36. db := global.DB.Model(&model.DeviceLog{})
  37. if startTime != nil && endTime == nil {
  38. db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", time.Now())
  39. }
  40. if endTime != nil && startTime == nil {
  41. db = db.Where("created_at >= ?", time.Now()).Where("created_at <= ?", endTime)
  42. }
  43. if startTime != nil && endTime != nil {
  44. db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", endTime)
  45. }
  46. if err = db.Delete(&[]model.DeviceLog{}).Error; err != nil {
  47. return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  48. }
  49. return
  50. }
  51. func (s *DeviceLogService) GetDeviceLogList(info request.DeviceLogSearch) (list []model.DeviceLog, total int64, err error) {
  52. var limit, offset int
  53. if info.Page == 0 || info.PageSize == 0 {
  54. limit = -1
  55. offset = -1
  56. } else {
  57. limit = info.PageSize
  58. offset = info.PageSize * (info.Page - 1)
  59. }
  60. var (
  61. startTime, endTime *time.Time
  62. )
  63. if info.StartTimeStr != "" {
  64. startTime, err = utils.ParseSecondTime(info.StartTimeStr)
  65. if err != nil {
  66. return list, total, rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
  67. }
  68. }
  69. if info.EndTimeStr != "" {
  70. endTime, err = utils.ParseSecondTime(info.EndTimeStr)
  71. if err != nil {
  72. return list, total, rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
  73. }
  74. }
  75. var logModel model.DeviceLog
  76. db := global.DB.Model(&logModel)
  77. if info.MsgName != "" {
  78. db = db.Where("msg_name LIKE ?", "%"+info.MsgName+"%")
  79. }
  80. if info.MsgType != 0 {
  81. db = db.Where("msg_type = ?", info.MsgType)
  82. }
  83. if info.CabinetID != 0 {
  84. db = db.Where("cabinet_id = ?", info.CabinetID)
  85. }
  86. if startTime != nil && endTime == nil {
  87. db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", time.Now())
  88. }
  89. if endTime != nil && startTime == nil {
  90. db = db.Where("created_at >= ?", time.Now()).Where("created_at <= ?", endTime)
  91. }
  92. if startTime != nil && endTime != nil {
  93. db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", endTime)
  94. }
  95. err = db.Count(&total).Error
  96. if err != nil {
  97. return
  98. }
  99. if err = db.Order("id desc").Limit(limit).Offset(offset).Find(&list).Error; err != nil {
  100. return list, total, rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
  101. }
  102. return
  103. }