new
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"tyapi-server/internal/domains/statistics/entities"
|
||||
)
|
||||
|
||||
// StatisticsRepository 统计指标仓储接口
|
||||
type StatisticsRepository interface {
|
||||
// 基础CRUD操作
|
||||
Save(ctx context.Context, metric *entities.StatisticsMetric) error
|
||||
FindByID(ctx context.Context, id string) (*entities.StatisticsMetric, error)
|
||||
FindByType(ctx context.Context, metricType string, limit, offset int) ([]*entities.StatisticsMetric, error)
|
||||
Update(ctx context.Context, metric *entities.StatisticsMetric) error
|
||||
Delete(ctx context.Context, id string) error
|
||||
|
||||
// 按类型和日期范围查询
|
||||
FindByTypeAndDateRange(ctx context.Context, metricType string, startDate, endDate time.Time) ([]*entities.StatisticsMetric, error)
|
||||
FindByTypeDimensionAndDateRange(ctx context.Context, metricType, dimension string, startDate, endDate time.Time) ([]*entities.StatisticsMetric, error)
|
||||
FindByTypeNameAndDateRange(ctx context.Context, metricType, metricName string, startDate, endDate time.Time) ([]*entities.StatisticsMetric, error)
|
||||
|
||||
// 聚合查询
|
||||
GetAggregatedMetrics(ctx context.Context, metricType, dimension string, startDate, endDate time.Time) (map[string]float64, error)
|
||||
GetMetricsByDimension(ctx context.Context, dimension string, startDate, endDate time.Time) ([]*entities.StatisticsMetric, error)
|
||||
|
||||
// 统计查询
|
||||
CountByType(ctx context.Context, metricType string) (int64, error)
|
||||
CountByTypeAndDateRange(ctx context.Context, metricType string, startDate, endDate time.Time) (int64, error)
|
||||
|
||||
// 批量操作
|
||||
BatchSave(ctx context.Context, metrics []*entities.StatisticsMetric) error
|
||||
BatchDelete(ctx context.Context, ids []string) error
|
||||
|
||||
// 清理操作
|
||||
DeleteByDateRange(ctx context.Context, startDate, endDate time.Time) error
|
||||
DeleteByTypeAndDateRange(ctx context.Context, metricType string, startDate, endDate time.Time) error
|
||||
}
|
||||
|
||||
// StatisticsReportRepository 统计报告仓储接口
|
||||
type StatisticsReportRepository interface {
|
||||
// 基础CRUD操作
|
||||
Save(ctx context.Context, report *entities.StatisticsReport) error
|
||||
FindByID(ctx context.Context, id string) (*entities.StatisticsReport, error)
|
||||
FindByUser(ctx context.Context, userID string, limit, offset int) ([]*entities.StatisticsReport, error)
|
||||
FindByStatus(ctx context.Context, status string) ([]*entities.StatisticsReport, error)
|
||||
Update(ctx context.Context, report *entities.StatisticsReport) error
|
||||
Delete(ctx context.Context, id string) error
|
||||
|
||||
// 按类型查询
|
||||
FindByType(ctx context.Context, reportType string, limit, offset int) ([]*entities.StatisticsReport, error)
|
||||
FindByTypeAndPeriod(ctx context.Context, reportType, period string, limit, offset int) ([]*entities.StatisticsReport, error)
|
||||
|
||||
// 按日期范围查询
|
||||
FindByDateRange(ctx context.Context, startDate, endDate time.Time, limit, offset int) ([]*entities.StatisticsReport, error)
|
||||
FindByUserAndDateRange(ctx context.Context, userID string, startDate, endDate time.Time, limit, offset int) ([]*entities.StatisticsReport, error)
|
||||
|
||||
// 统计查询
|
||||
CountByUser(ctx context.Context, userID string) (int64, error)
|
||||
CountByType(ctx context.Context, reportType string) (int64, error)
|
||||
CountByStatus(ctx context.Context, status string) (int64, error)
|
||||
|
||||
// 批量操作
|
||||
BatchSave(ctx context.Context, reports []*entities.StatisticsReport) error
|
||||
BatchDelete(ctx context.Context, ids []string) error
|
||||
|
||||
// 清理操作
|
||||
DeleteExpiredReports(ctx context.Context, expiredBefore time.Time) error
|
||||
DeleteByStatus(ctx context.Context, status string) error
|
||||
}
|
||||
|
||||
// StatisticsDashboardRepository 统计仪表板仓储接口
|
||||
type StatisticsDashboardRepository interface {
|
||||
// 基础CRUD操作
|
||||
Save(ctx context.Context, dashboard *entities.StatisticsDashboard) error
|
||||
FindByID(ctx context.Context, id string) (*entities.StatisticsDashboard, error)
|
||||
FindByUser(ctx context.Context, userID string, limit, offset int) ([]*entities.StatisticsDashboard, error)
|
||||
FindByUserRole(ctx context.Context, userRole string, limit, offset int) ([]*entities.StatisticsDashboard, error)
|
||||
Update(ctx context.Context, dashboard *entities.StatisticsDashboard) error
|
||||
Delete(ctx context.Context, id string) error
|
||||
|
||||
// 按角色查询
|
||||
FindByRole(ctx context.Context, userRole string, limit, offset int) ([]*entities.StatisticsDashboard, error)
|
||||
FindDefaultByRole(ctx context.Context, userRole string) (*entities.StatisticsDashboard, error)
|
||||
FindActiveByRole(ctx context.Context, userRole string, limit, offset int) ([]*entities.StatisticsDashboard, error)
|
||||
|
||||
// 按状态查询
|
||||
FindByStatus(ctx context.Context, isActive bool, limit, offset int) ([]*entities.StatisticsDashboard, error)
|
||||
FindByAccessLevel(ctx context.Context, accessLevel string, limit, offset int) ([]*entities.StatisticsDashboard, error)
|
||||
|
||||
// 统计查询
|
||||
CountByUser(ctx context.Context, userID string) (int64, error)
|
||||
CountByRole(ctx context.Context, userRole string) (int64, error)
|
||||
CountByStatus(ctx context.Context, isActive bool) (int64, error)
|
||||
|
||||
// 批量操作
|
||||
BatchSave(ctx context.Context, dashboards []*entities.StatisticsDashboard) error
|
||||
BatchDelete(ctx context.Context, ids []string) error
|
||||
|
||||
// 特殊操作
|
||||
SetDefaultDashboard(ctx context.Context, dashboardID string) error
|
||||
RemoveDefaultDashboard(ctx context.Context, userRole string) error
|
||||
ActivateDashboard(ctx context.Context, dashboardID string) error
|
||||
DeactivateDashboard(ctx context.Context, dashboardID string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user