实现service层
This commit is contained in:
@@ -24,6 +24,7 @@ type MonitorService interface {
|
|||||||
ListPigSickLogs(opts repository.PigSickLogListOptions, page, pageSize int) ([]models.PigSickLog, int64, error)
|
ListPigSickLogs(opts repository.PigSickLogListOptions, page, pageSize int) ([]models.PigSickLog, int64, error)
|
||||||
ListPigPurchases(opts repository.PigPurchaseListOptions, page, pageSize int) ([]models.PigPurchase, int64, error)
|
ListPigPurchases(opts repository.PigPurchaseListOptions, page, pageSize int) ([]models.PigPurchase, int64, error)
|
||||||
ListPigSales(opts repository.PigSaleListOptions, page, pageSize int) ([]models.PigSale, int64, error)
|
ListPigSales(opts repository.PigSaleListOptions, page, pageSize int) ([]models.PigSale, int64, error)
|
||||||
|
ListNotifications(opts repository.NotificationListOptions, page, pageSize int) ([]models.Notification, int64, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// monitorService 是 MonitorService 接口的具体实现
|
// monitorService 是 MonitorService 接口的具体实现
|
||||||
@@ -40,6 +41,7 @@ type monitorService struct {
|
|||||||
pigTransferLogRepo repository.PigTransferLogRepository
|
pigTransferLogRepo repository.PigTransferLogRepository
|
||||||
pigSickLogRepo repository.PigSickLogRepository
|
pigSickLogRepo repository.PigSickLogRepository
|
||||||
pigTradeRepo repository.PigTradeRepository
|
pigTradeRepo repository.PigTradeRepository
|
||||||
|
notificationRepo repository.NotificationRepository
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewMonitorService 创建一个新的 MonitorService 实例
|
// NewMonitorService 创建一个新的 MonitorService 实例
|
||||||
@@ -56,6 +58,7 @@ func NewMonitorService(
|
|||||||
pigTransferLogRepo repository.PigTransferLogRepository,
|
pigTransferLogRepo repository.PigTransferLogRepository,
|
||||||
pigSickLogRepo repository.PigSickLogRepository,
|
pigSickLogRepo repository.PigSickLogRepository,
|
||||||
pigTradeRepo repository.PigTradeRepository,
|
pigTradeRepo repository.PigTradeRepository,
|
||||||
|
notificationRepo repository.NotificationRepository,
|
||||||
) MonitorService {
|
) MonitorService {
|
||||||
return &monitorService{
|
return &monitorService{
|
||||||
sensorDataRepo: sensorDataRepo,
|
sensorDataRepo: sensorDataRepo,
|
||||||
@@ -70,6 +73,7 @@ func NewMonitorService(
|
|||||||
pigTransferLogRepo: pigTransferLogRepo,
|
pigTransferLogRepo: pigTransferLogRepo,
|
||||||
pigSickLogRepo: pigSickLogRepo,
|
pigSickLogRepo: pigSickLogRepo,
|
||||||
pigTradeRepo: pigTradeRepo,
|
pigTradeRepo: pigTradeRepo,
|
||||||
|
notificationRepo: notificationRepo,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,3 +161,8 @@ func (s *monitorService) ListPigPurchases(opts repository.PigPurchaseListOptions
|
|||||||
func (s *monitorService) ListPigSales(opts repository.PigSaleListOptions, page, pageSize int) ([]models.PigSale, int64, error) {
|
func (s *monitorService) ListPigSales(opts repository.PigSaleListOptions, page, pageSize int) ([]models.PigSale, int64, error) {
|
||||||
return s.pigTradeRepo.ListPigSales(opts, page, pageSize)
|
return s.pigTradeRepo.ListPigSales(opts, page, pageSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListNotifications 负责处理查询通知列表的业务逻辑
|
||||||
|
func (s *monitorService) ListNotifications(opts repository.NotificationListOptions, page, pageSize int) ([]models.Notification, int64, error) {
|
||||||
|
return s.notificationRepo.List(opts, page, pageSize)
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
|
|
||||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/notify"
|
"git.huangwc.com/pig/pig-farm-controller/internal/infra/notify"
|
||||||
|
"go.uber.org/zap/zapcore"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -13,6 +14,7 @@ type NotificationListOptions struct {
|
|||||||
UserID *uint // 按用户ID过滤
|
UserID *uint // 按用户ID过滤
|
||||||
NotifierType *notify.NotifierType // 按通知器类型过滤
|
NotifierType *notify.NotifierType // 按通知器类型过滤
|
||||||
Status *string // 按通知状态过滤 (例如:"success", "failed", "pending")
|
Status *string // 按通知状态过滤 (例如:"success", "failed", "pending")
|
||||||
|
Level *zapcore.Level // 按通知等级过滤 (例如:"info", "warning", "error")
|
||||||
StartTime *time.Time // 通知内容生成时间范围 - 开始时间 (对应 AlarmTimestamp)
|
StartTime *time.Time // 通知内容生成时间范围 - 开始时间 (对应 AlarmTimestamp)
|
||||||
EndTime *time.Time // 通知内容生成时间范围 - 结束时间 (对应 AlarmTimestamp)
|
EndTime *time.Time // 通知内容生成时间范围 - 结束时间 (对应 AlarmTimestamp)
|
||||||
OrderBy string // 排序字段,例如 "alarm_timestamp DESC"
|
OrderBy string // 排序字段,例如 "alarm_timestamp DESC"
|
||||||
@@ -79,6 +81,9 @@ func (r *gormNotificationRepository) List(opts NotificationListOptions, page, pa
|
|||||||
if opts.Status != nil {
|
if opts.Status != nil {
|
||||||
query = query.Where("status = ?", *opts.Status)
|
query = query.Where("status = ?", *opts.Status)
|
||||||
}
|
}
|
||||||
|
if opts.Level != nil {
|
||||||
|
query = query.Where("level = ?", opts.Level.String())
|
||||||
|
}
|
||||||
if opts.StartTime != nil {
|
if opts.StartTime != nil {
|
||||||
query = query.Where("alarm_timestamp >= ?", *opts.StartTime)
|
query = query.Where("alarm_timestamp >= ?", *opts.StartTime)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user