2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 19:37:18 +08:00
Files
panel/internal/data/monitor.go
2024-09-18 19:08:45 +08:00

68 lines
1.5 KiB
Go

package data
import (
"errors"
"github.com/golang-module/carbon/v2"
"github.com/spf13/cast"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
)
type monitorRepo struct {
settingRepo biz.SettingRepo
}
func NewMonitorRepo() biz.MonitorRepo {
return &monitorRepo{
settingRepo: NewSettingRepo(),
}
}
func (r monitorRepo) GetSetting() (*request.MonitorSetting, error) {
monitor, err := r.settingRepo.Get(biz.SettingKeyMonitor)
if err != nil {
return nil, err
}
monitorDays, err := r.settingRepo.Get(biz.SettingKeyMonitorDays)
if err != nil {
return nil, err
}
setting := new(request.MonitorSetting)
setting.Enabled = cast.ToBool(monitor)
setting.Days = cast.ToInt(monitorDays)
return setting, nil
}
func (r monitorRepo) UpdateSetting(setting *request.MonitorSetting) error {
if err := r.settingRepo.Set(biz.SettingKeyMonitor, cast.ToString(setting.Enabled)); err != nil {
return err
}
if err := r.settingRepo.Set(biz.SettingKeyMonitorDays, cast.ToString(setting.Days)); err != nil {
return err
}
return nil
}
func (r monitorRepo) Clear() error {
return panel.Orm.Delete(&biz.Monitor{}).Error
}
func (r monitorRepo) List(start, end carbon.Carbon) ([]*biz.Monitor, error) {
var monitors []*biz.Monitor
if err := panel.Orm.Where("created_at BETWEEN ? AND ?", start, end).Find(&monitors).Error; err != nil {
return nil, err
}
if len(monitors) == 0 {
return nil, errors.New("没有找到数据")
}
return monitors, nil
}