123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package service
- import (
- "dy-admin/internal/pcmserver/bus/model"
- "dy-admin/internal/pcmserver/bus/model/request"
- "dy-admin/internal/pcmserver/global"
- "dy-admin/internal/pcmserver/pkg/code"
- "dy-admin/internal/pcmserver/utils"
- "dy-admin/pkg/rescode"
- "time"
- )
- type DeviceLogService struct {
- }
- func (s *DeviceLogService) CreateDeviceLog(log model.DeviceLog) (err error) {
- err = global.DB.Create(&log).Error
- if err != nil {
- return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
- }
- return
- }
- func (s *DeviceLogService) DeleteDeviceLog(info request.DeleteDeviceLogReq) (err error) {
- var (
- startTime, endTime *time.Time
- )
- if info.StartTimeStr != "" {
- startTime, err = utils.ParseSecondTime(info.StartTimeStr)
- if err != nil {
- return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
- }
- }
- if info.EndTimeStr != "" {
- endTime, err = utils.ParseSecondTime(info.EndTimeStr)
- if err != nil {
- return rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
- }
- }
- db := global.DB.Model(&model.DeviceLog{})
- if startTime != nil && endTime == nil {
- db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", time.Now())
- }
- if endTime != nil && startTime == nil {
- db = db.Where("created_at >= ?", time.Now()).Where("created_at <= ?", endTime)
- }
- if startTime != nil && endTime != nil {
- db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", endTime)
- }
- if err = db.Delete(&[]model.DeviceLog{}).Error; err != nil {
- return rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
- }
- return
- }
- func (s *DeviceLogService) GetDeviceLogList(info request.DeviceLogSearch) (list []model.DeviceLog, total int64, err error) {
- var limit, offset int
- if info.Page == 0 || info.PageSize == 0 {
- limit = -1
- offset = -1
- } else {
- limit = info.PageSize
- offset = info.PageSize * (info.Page - 1)
- }
- var (
- startTime, endTime *time.Time
- )
- if info.StartTimeStr != "" {
- startTime, err = utils.ParseSecondTime(info.StartTimeStr)
- if err != nil {
- return list, total, rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
- }
- }
- if info.EndTimeStr != "" {
- endTime, err = utils.ParseSecondTime(info.EndTimeStr)
- if err != nil {
- return list, total, rescode.RegisterErrorWithCause(nil, code.ErrCodeMap[code.ErrLeaveParseTimeCode])
- }
- }
- var logModel model.DeviceLog
- db := global.DB.Model(&logModel)
- if info.MsgName != "" {
- db = db.Where("msg_name LIKE ?", "%"+info.MsgName+"%")
- }
- if info.MsgType != 0 {
- db = db.Where("msg_type = ?", info.MsgType)
- }
- if info.CabinetID != 0 {
- db = db.Where("cabinet_id = ?", info.CabinetID)
- }
- if startTime != nil && endTime == nil {
- db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", time.Now())
- }
- if endTime != nil && startTime == nil {
- db = db.Where("created_at >= ?", time.Now()).Where("created_at <= ?", endTime)
- }
- if startTime != nil && endTime != nil {
- db = db.Where("created_at >= ?", startTime).Where("created_at <= ?", endTime)
- }
- err = db.Count(&total).Error
- if err != nil {
- return
- }
- if err = db.Order("id desc").Limit(limit).Offset(offset).Find(&list).Error; err != nil {
- return list, total, rescode.RegisterErrorWithCause(err, code.ErrCodeMap[code.ErrDatabaseCode])
- }
- return
- }
|