new
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
package statistics
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
)
|
||||
|
||||
// StatisticsApplicationService 统计应用服务接口
|
||||
// 负责统计功能的业务逻辑编排和协调
|
||||
type StatisticsApplicationService interface {
|
||||
// ================ 指标管理 ================
|
||||
|
||||
// CreateMetric 创建统计指标
|
||||
CreateMetric(ctx context.Context, cmd *CreateMetricCommand) (*CommandResponse, error)
|
||||
|
||||
// UpdateMetric 更新统计指标
|
||||
UpdateMetric(ctx context.Context, cmd *UpdateMetricCommand) (*CommandResponse, error)
|
||||
|
||||
// DeleteMetric 删除统计指标
|
||||
DeleteMetric(ctx context.Context, cmd *DeleteMetricCommand) (*CommandResponse, error)
|
||||
|
||||
// GetMetric 获取单个指标
|
||||
GetMetric(ctx context.Context, query *GetMetricQuery) (*QueryResponse, error)
|
||||
|
||||
// GetMetrics 获取指标列表
|
||||
GetMetrics(ctx context.Context, query *GetMetricsQuery) (*ListResponse, error)
|
||||
|
||||
// ================ 实时统计 ================
|
||||
|
||||
// GetRealtimeMetrics 获取实时指标
|
||||
GetRealtimeMetrics(ctx context.Context, query *GetRealtimeMetricsQuery) (*QueryResponse, error)
|
||||
|
||||
// UpdateRealtimeMetric 更新实时指标
|
||||
UpdateRealtimeMetric(ctx context.Context, metricType, metricName string, value float64) error
|
||||
|
||||
// ================ 历史统计 ================
|
||||
|
||||
// GetHistoricalMetrics 获取历史指标
|
||||
GetHistoricalMetrics(ctx context.Context, query *GetHistoricalMetricsQuery) (*QueryResponse, error)
|
||||
|
||||
// AggregateMetrics 聚合指标
|
||||
AggregateMetrics(ctx context.Context, metricType, dimension string, startDate, endDate time.Time) error
|
||||
|
||||
// ================ 仪表板管理 ================
|
||||
|
||||
// CreateDashboard 创建仪表板
|
||||
CreateDashboard(ctx context.Context, cmd *CreateDashboardCommand) (*CommandResponse, error)
|
||||
|
||||
// UpdateDashboard 更新仪表板
|
||||
UpdateDashboard(ctx context.Context, cmd *UpdateDashboardCommand) (*CommandResponse, error)
|
||||
|
||||
// DeleteDashboard 删除仪表板
|
||||
DeleteDashboard(ctx context.Context, cmd *DeleteDashboardCommand) (*CommandResponse, error)
|
||||
|
||||
// GetDashboard 获取单个仪表板
|
||||
GetDashboard(ctx context.Context, query *GetDashboardQuery) (*QueryResponse, error)
|
||||
|
||||
// GetDashboards 获取仪表板列表
|
||||
GetDashboards(ctx context.Context, query *GetDashboardsQuery) (*ListResponse, error)
|
||||
|
||||
// SetDefaultDashboard 设置默认仪表板
|
||||
SetDefaultDashboard(ctx context.Context, cmd *SetDefaultDashboardCommand) (*CommandResponse, error)
|
||||
|
||||
// ActivateDashboard 激活仪表板
|
||||
ActivateDashboard(ctx context.Context, cmd *ActivateDashboardCommand) (*CommandResponse, error)
|
||||
|
||||
// DeactivateDashboard 停用仪表板
|
||||
DeactivateDashboard(ctx context.Context, cmd *DeactivateDashboardCommand) (*CommandResponse, error)
|
||||
|
||||
// GetDashboardData 获取仪表板数据
|
||||
GetDashboardData(ctx context.Context, query *GetDashboardDataQuery) (*QueryResponse, error)
|
||||
|
||||
// ================ 报告管理 ================
|
||||
|
||||
// GenerateReport 生成报告
|
||||
GenerateReport(ctx context.Context, cmd *GenerateReportCommand) (*CommandResponse, error)
|
||||
|
||||
// GetReport 获取单个报告
|
||||
GetReport(ctx context.Context, query *GetReportQuery) (*QueryResponse, error)
|
||||
|
||||
// GetReports 获取报告列表
|
||||
GetReports(ctx context.Context, query *GetReportsQuery) (*ListResponse, error)
|
||||
|
||||
// DeleteReport 删除报告
|
||||
DeleteReport(ctx context.Context, reportID string) (*CommandResponse, error)
|
||||
|
||||
// ================ 统计分析 ================
|
||||
|
||||
// CalculateGrowthRate 计算增长率
|
||||
CalculateGrowthRate(ctx context.Context, query *CalculateGrowthRateQuery) (*QueryResponse, error)
|
||||
|
||||
// CalculateTrend 计算趋势
|
||||
CalculateTrend(ctx context.Context, query *CalculateTrendQuery) (*QueryResponse, error)
|
||||
|
||||
// CalculateCorrelation 计算相关性
|
||||
CalculateCorrelation(ctx context.Context, query *CalculateCorrelationQuery) (*QueryResponse, error)
|
||||
|
||||
// CalculateMovingAverage 计算移动平均
|
||||
CalculateMovingAverage(ctx context.Context, query *CalculateMovingAverageQuery) (*QueryResponse, error)
|
||||
|
||||
// CalculateSeasonality 计算季节性
|
||||
CalculateSeasonality(ctx context.Context, query *CalculateSeasonalityQuery) (*QueryResponse, error)
|
||||
|
||||
// ================ 数据导出 ================
|
||||
|
||||
// ExportData 导出数据
|
||||
ExportData(ctx context.Context, cmd *ExportDataCommand) (*CommandResponse, error)
|
||||
|
||||
// ================ 定时任务 ================
|
||||
|
||||
// ProcessHourlyAggregation 处理小时级聚合
|
||||
ProcessHourlyAggregation(ctx context.Context, date time.Time) error
|
||||
|
||||
// ProcessDailyAggregation 处理日级聚合
|
||||
ProcessDailyAggregation(ctx context.Context, date time.Time) error
|
||||
|
||||
// ProcessWeeklyAggregation 处理周级聚合
|
||||
ProcessWeeklyAggregation(ctx context.Context, date time.Time) error
|
||||
|
||||
// ProcessMonthlyAggregation 处理月级聚合
|
||||
ProcessMonthlyAggregation(ctx context.Context, date time.Time) error
|
||||
|
||||
// CleanupExpiredData 清理过期数据
|
||||
CleanupExpiredData(ctx context.Context) error
|
||||
|
||||
// ================ 管理员专用方法 ================
|
||||
|
||||
// AdminGetSystemStatistics 管理员获取系统统计
|
||||
AdminGetSystemStatistics(ctx context.Context, period, startDate, endDate string) (*QueryResponse, error)
|
||||
|
||||
// AdminTriggerAggregation 管理员触发数据聚合
|
||||
AdminTriggerAggregation(ctx context.Context, cmd *TriggerAggregationCommand) (*CommandResponse, error)
|
||||
|
||||
// AdminGetUserStatistics 管理员获取单个用户统计
|
||||
AdminGetUserStatistics(ctx context.Context, userID string) (*QueryResponse, error)
|
||||
|
||||
// ================ 管理员独立域统计接口 ================
|
||||
|
||||
// AdminGetUserDomainStatistics 管理员获取用户域统计
|
||||
AdminGetUserDomainStatistics(ctx context.Context, period, startDate, endDate string) (*QueryResponse, error)
|
||||
|
||||
// AdminGetApiDomainStatistics 管理员获取API域统计
|
||||
AdminGetApiDomainStatistics(ctx context.Context, period, startDate, endDate string) (*QueryResponse, error)
|
||||
|
||||
// AdminGetConsumptionDomainStatistics 管理员获取消费域统计
|
||||
AdminGetConsumptionDomainStatistics(ctx context.Context, period, startDate, endDate string) (*QueryResponse, error)
|
||||
|
||||
// AdminGetRechargeDomainStatistics 管理员获取充值域统计
|
||||
AdminGetRechargeDomainStatistics(ctx context.Context, period, startDate, endDate string) (*QueryResponse, error)
|
||||
|
||||
// ================ 公开和用户统计方法 ================
|
||||
|
||||
// GetPublicStatistics 获取公开统计信息
|
||||
GetPublicStatistics(ctx context.Context) (*QueryResponse, error)
|
||||
|
||||
// GetUserStatistics 获取用户统计信息
|
||||
GetUserStatistics(ctx context.Context, userID string) (*QueryResponse, error)
|
||||
|
||||
// ================ 独立统计接口 ================
|
||||
|
||||
// GetApiCallsStatistics 获取API调用统计
|
||||
GetApiCallsStatistics(ctx context.Context, userID string, startDate, endDate time.Time, unit string) (*QueryResponse, error)
|
||||
|
||||
// GetConsumptionStatistics 获取消费统计
|
||||
GetConsumptionStatistics(ctx context.Context, userID string, startDate, endDate time.Time, unit string) (*QueryResponse, error)
|
||||
|
||||
// GetRechargeStatistics 获取充值统计
|
||||
GetRechargeStatistics(ctx context.Context, userID string, startDate, endDate time.Time, unit string) (*QueryResponse, error)
|
||||
|
||||
// GetLatestProducts 获取最新产品推荐
|
||||
GetLatestProducts(ctx context.Context, limit int) (*QueryResponse, error)
|
||||
|
||||
// ================ 管理员排行榜接口 ================
|
||||
|
||||
// AdminGetUserCallRanking 获取用户调用排行榜
|
||||
AdminGetUserCallRanking(ctx context.Context, rankingType, period string, limit int) (*QueryResponse, error)
|
||||
|
||||
// AdminGetRechargeRanking 获取充值排行榜
|
||||
AdminGetRechargeRanking(ctx context.Context, period string, limit int) (*QueryResponse, error)
|
||||
|
||||
// AdminGetApiPopularityRanking 获取API受欢迎程度排行榜
|
||||
AdminGetApiPopularityRanking(ctx context.Context, period string, limit int) (*QueryResponse, error)
|
||||
|
||||
// AdminGetTodayCertifiedEnterprises 获取今日认证企业列表
|
||||
AdminGetTodayCertifiedEnterprises(ctx context.Context, limit int) (*QueryResponse, error)
|
||||
}
|
||||
Reference in New Issue
Block a user