259 lines
12 KiB
Go
259 lines
12 KiB
Go
|
|
package statistics
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
// StatisticsMetricDTO 统计指标DTO
|
||
|
|
type StatisticsMetricDTO struct {
|
||
|
|
ID string `json:"id" comment:"统计指标唯一标识"`
|
||
|
|
MetricType string `json:"metric_type" comment:"指标类型"`
|
||
|
|
MetricName string `json:"metric_name" comment:"指标名称"`
|
||
|
|
Dimension string `json:"dimension" comment:"统计维度"`
|
||
|
|
Value float64 `json:"value" comment:"指标值"`
|
||
|
|
Metadata string `json:"metadata" comment:"额外维度信息"`
|
||
|
|
Date time.Time `json:"date" comment:"统计日期"`
|
||
|
|
CreatedAt time.Time `json:"created_at" comment:"创建时间"`
|
||
|
|
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// StatisticsReportDTO 统计报告DTO
|
||
|
|
type StatisticsReportDTO struct {
|
||
|
|
ID string `json:"id" comment:"报告唯一标识"`
|
||
|
|
ReportType string `json:"report_type" comment:"报告类型"`
|
||
|
|
Title string `json:"title" comment:"报告标题"`
|
||
|
|
Content string `json:"content" comment:"报告内容"`
|
||
|
|
Period string `json:"period" comment:"统计周期"`
|
||
|
|
UserRole string `json:"user_role" comment:"用户角色"`
|
||
|
|
Status string `json:"status" comment:"报告状态"`
|
||
|
|
GeneratedBy string `json:"generated_by" comment:"生成者ID"`
|
||
|
|
GeneratedAt *time.Time `json:"generated_at" comment:"生成时间"`
|
||
|
|
ExpiresAt *time.Time `json:"expires_at" comment:"过期时间"`
|
||
|
|
CreatedAt time.Time `json:"created_at" comment:"创建时间"`
|
||
|
|
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// StatisticsDashboardDTO 统计仪表板DTO
|
||
|
|
type StatisticsDashboardDTO struct {
|
||
|
|
ID string `json:"id" comment:"仪表板唯一标识"`
|
||
|
|
Name string `json:"name" comment:"仪表板名称"`
|
||
|
|
Description string `json:"description" comment:"仪表板描述"`
|
||
|
|
UserRole string `json:"user_role" comment:"用户角色"`
|
||
|
|
IsDefault bool `json:"is_default" comment:"是否为默认仪表板"`
|
||
|
|
IsActive bool `json:"is_active" comment:"是否激活"`
|
||
|
|
Layout string `json:"layout" comment:"布局配置"`
|
||
|
|
Widgets string `json:"widgets" comment:"组件配置"`
|
||
|
|
Settings string `json:"settings" comment:"设置配置"`
|
||
|
|
RefreshInterval int `json:"refresh_interval" comment:"刷新间隔(秒)"`
|
||
|
|
CreatedBy string `json:"created_by" comment:"创建者ID"`
|
||
|
|
AccessLevel string `json:"access_level" comment:"访问级别"`
|
||
|
|
CreatedAt time.Time `json:"created_at" comment:"创建时间"`
|
||
|
|
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// DashboardDataDTO 仪表板数据DTO
|
||
|
|
type DashboardDataDTO struct {
|
||
|
|
// API调用统计
|
||
|
|
APICalls struct {
|
||
|
|
TotalCount int64 `json:"total_count" comment:"总调用次数"`
|
||
|
|
SuccessCount int64 `json:"success_count" comment:"成功调用次数"`
|
||
|
|
FailedCount int64 `json:"failed_count" comment:"失败调用次数"`
|
||
|
|
SuccessRate float64 `json:"success_rate" comment:"成功率"`
|
||
|
|
AvgResponseTime float64 `json:"avg_response_time" comment:"平均响应时间"`
|
||
|
|
} `json:"api_calls"`
|
||
|
|
|
||
|
|
// 用户统计
|
||
|
|
Users struct {
|
||
|
|
TotalCount int64 `json:"total_count" comment:"总用户数"`
|
||
|
|
CertifiedCount int64 `json:"certified_count" comment:"认证用户数"`
|
||
|
|
ActiveCount int64 `json:"active_count" comment:"活跃用户数"`
|
||
|
|
CertificationRate float64 `json:"certification_rate" comment:"认证完成率"`
|
||
|
|
RetentionRate float64 `json:"retention_rate" comment:"留存率"`
|
||
|
|
} `json:"users"`
|
||
|
|
|
||
|
|
// 财务统计
|
||
|
|
Finance struct {
|
||
|
|
TotalAmount float64 `json:"total_amount" comment:"总金额"`
|
||
|
|
RechargeAmount float64 `json:"recharge_amount" comment:"充值金额"`
|
||
|
|
DeductAmount float64 `json:"deduct_amount" comment:"扣款金额"`
|
||
|
|
NetAmount float64 `json:"net_amount" comment:"净金额"`
|
||
|
|
} `json:"finance"`
|
||
|
|
|
||
|
|
// 产品统计
|
||
|
|
Products struct {
|
||
|
|
TotalProducts int64 `json:"total_products" comment:"总产品数"`
|
||
|
|
ActiveProducts int64 `json:"active_products" comment:"活跃产品数"`
|
||
|
|
TotalSubscriptions int64 `json:"total_subscriptions" comment:"总订阅数"`
|
||
|
|
ActiveSubscriptions int64 `json:"active_subscriptions" comment:"活跃订阅数"`
|
||
|
|
} `json:"products"`
|
||
|
|
|
||
|
|
// 认证统计
|
||
|
|
Certification struct {
|
||
|
|
TotalCertifications int64 `json:"total_certifications" comment:"总认证数"`
|
||
|
|
CompletedCertifications int64 `json:"completed_certifications" comment:"完成认证数"`
|
||
|
|
PendingCertifications int64 `json:"pending_certifications" comment:"待处理认证数"`
|
||
|
|
FailedCertifications int64 `json:"failed_certifications" comment:"失败认证数"`
|
||
|
|
CompletionRate float64 `json:"completion_rate" comment:"完成率"`
|
||
|
|
} `json:"certification"`
|
||
|
|
|
||
|
|
// 时间信息
|
||
|
|
Period struct {
|
||
|
|
StartDate string `json:"start_date" comment:"开始日期"`
|
||
|
|
EndDate string `json:"end_date" comment:"结束日期"`
|
||
|
|
Period string `json:"period" comment:"统计周期"`
|
||
|
|
} `json:"period"`
|
||
|
|
|
||
|
|
// 元数据
|
||
|
|
Metadata struct {
|
||
|
|
GeneratedAt string `json:"generated_at" comment:"生成时间"`
|
||
|
|
UserRole string `json:"user_role" comment:"用户角色"`
|
||
|
|
DataVersion string `json:"data_version" comment:"数据版本"`
|
||
|
|
} `json:"metadata"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// RealtimeMetricsDTO 实时指标DTO
|
||
|
|
type RealtimeMetricsDTO struct {
|
||
|
|
MetricType string `json:"metric_type" comment:"指标类型"`
|
||
|
|
Metrics map[string]float64 `json:"metrics" comment:"指标数据"`
|
||
|
|
Timestamp time.Time `json:"timestamp" comment:"时间戳"`
|
||
|
|
Metadata map[string]interface{} `json:"metadata" comment:"元数据"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// HistoricalMetricsDTO 历史指标DTO
|
||
|
|
type HistoricalMetricsDTO struct {
|
||
|
|
MetricType string `json:"metric_type" comment:"指标类型"`
|
||
|
|
MetricName string `json:"metric_name" comment:"指标名称"`
|
||
|
|
Dimension string `json:"dimension" comment:"统计维度"`
|
||
|
|
DataPoints []DataPointDTO `json:"data_points" comment:"数据点"`
|
||
|
|
Summary MetricsSummaryDTO `json:"summary" comment:"汇总信息"`
|
||
|
|
Metadata map[string]interface{} `json:"metadata" comment:"元数据"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// DataPointDTO 数据点DTO
|
||
|
|
type DataPointDTO struct {
|
||
|
|
Date time.Time `json:"date" comment:"日期"`
|
||
|
|
Value float64 `json:"value" comment:"值"`
|
||
|
|
Label string `json:"label" comment:"标签"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// MetricsSummaryDTO 指标汇总DTO
|
||
|
|
type MetricsSummaryDTO struct {
|
||
|
|
Total float64 `json:"total" comment:"总值"`
|
||
|
|
Average float64 `json:"average" comment:"平均值"`
|
||
|
|
Max float64 `json:"max" comment:"最大值"`
|
||
|
|
Min float64 `json:"min" comment:"最小值"`
|
||
|
|
Count int64 `json:"count" comment:"数据点数量"`
|
||
|
|
GrowthRate float64 `json:"growth_rate" comment:"增长率"`
|
||
|
|
Trend string `json:"trend" comment:"趋势"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ReportContentDTO 报告内容DTO
|
||
|
|
type ReportContentDTO struct {
|
||
|
|
ReportType string `json:"report_type" comment:"报告类型"`
|
||
|
|
Title string `json:"title" comment:"报告标题"`
|
||
|
|
Summary map[string]interface{} `json:"summary" comment:"汇总信息"`
|
||
|
|
Details map[string]interface{} `json:"details" comment:"详细信息"`
|
||
|
|
Charts []ChartDTO `json:"charts" comment:"图表数据"`
|
||
|
|
Tables []TableDTO `json:"tables" comment:"表格数据"`
|
||
|
|
Metadata map[string]interface{} `json:"metadata" comment:"元数据"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ChartDTO 图表DTO
|
||
|
|
type ChartDTO struct {
|
||
|
|
Type string `json:"type" comment:"图表类型"`
|
||
|
|
Title string `json:"title" comment:"图表标题"`
|
||
|
|
Data map[string]interface{} `json:"data" comment:"图表数据"`
|
||
|
|
Options map[string]interface{} `json:"options" comment:"图表选项"`
|
||
|
|
Description string `json:"description" comment:"图表描述"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// TableDTO 表格DTO
|
||
|
|
type TableDTO struct {
|
||
|
|
Title string `json:"title" comment:"表格标题"`
|
||
|
|
Headers []string `json:"headers" comment:"表头"`
|
||
|
|
Rows [][]interface{} `json:"rows" comment:"表格行数据"`
|
||
|
|
Summary map[string]interface{} `json:"summary" comment:"汇总信息"`
|
||
|
|
Description string `json:"description" comment:"表格描述"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ExportDataDTO 导出数据DTO
|
||
|
|
type ExportDataDTO struct {
|
||
|
|
Format string `json:"format" comment:"导出格式"`
|
||
|
|
FileName string `json:"file_name" comment:"文件名"`
|
||
|
|
Data []map[string]interface{} `json:"data" comment:"导出数据"`
|
||
|
|
Headers []string `json:"headers" comment:"表头"`
|
||
|
|
Metadata map[string]interface{} `json:"metadata" comment:"元数据"`
|
||
|
|
DownloadURL string `json:"download_url" comment:"下载链接"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// StatisticsQueryDTO 统计查询DTO
|
||
|
|
type StatisticsQueryDTO struct {
|
||
|
|
MetricType string `json:"metric_type" form:"metric_type" comment:"指标类型"`
|
||
|
|
MetricName string `json:"metric_name" form:"metric_name" comment:"指标名称"`
|
||
|
|
Dimension string `json:"dimension" form:"dimension" comment:"统计维度"`
|
||
|
|
StartDate time.Time `json:"start_date" form:"start_date" comment:"开始日期"`
|
||
|
|
EndDate time.Time `json:"end_date" form:"end_date" comment:"结束日期"`
|
||
|
|
Period string `json:"period" form:"period" comment:"统计周期"`
|
||
|
|
UserRole string `json:"user_role" form:"user_role" comment:"用户角色"`
|
||
|
|
Limit int `json:"limit" form:"limit" comment:"限制数量"`
|
||
|
|
Offset int `json:"offset" form:"offset" comment:"偏移量"`
|
||
|
|
SortBy string `json:"sort_by" form:"sort_by" comment:"排序字段"`
|
||
|
|
SortOrder string `json:"sort_order" form:"sort_order" comment:"排序顺序"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ReportGenerationDTO 报告生成DTO
|
||
|
|
type ReportGenerationDTO struct {
|
||
|
|
ReportType string `json:"report_type" comment:"报告类型"`
|
||
|
|
Title string `json:"title" comment:"报告标题"`
|
||
|
|
Period string `json:"period" comment:"统计周期"`
|
||
|
|
UserRole string `json:"user_role" comment:"用户角色"`
|
||
|
|
StartDate time.Time `json:"start_date" comment:"开始日期"`
|
||
|
|
EndDate time.Time `json:"end_date" comment:"结束日期"`
|
||
|
|
Filters map[string]interface{} `json:"filters" comment:"过滤条件"`
|
||
|
|
Format string `json:"format" comment:"输出格式"`
|
||
|
|
GeneratedBy string `json:"generated_by" comment:"生成者ID"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// DashboardConfigDTO 仪表板配置DTO
|
||
|
|
type DashboardConfigDTO struct {
|
||
|
|
Name string `json:"name" comment:"仪表板名称"`
|
||
|
|
Description string `json:"description" comment:"仪表板描述"`
|
||
|
|
UserRole string `json:"user_role" comment:"用户角色"`
|
||
|
|
Layout string `json:"layout" comment:"布局配置"`
|
||
|
|
Widgets string `json:"widgets" comment:"组件配置"`
|
||
|
|
Settings string `json:"settings" comment:"设置配置"`
|
||
|
|
RefreshInterval int `json:"refresh_interval" comment:"刷新间隔(秒)"`
|
||
|
|
AccessLevel string `json:"access_level" comment:"访问级别"`
|
||
|
|
CreatedBy string `json:"created_by" comment:"创建者ID"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// StatisticsResponseDTO 统计响应DTO
|
||
|
|
type StatisticsResponseDTO struct {
|
||
|
|
Success bool `json:"success" comment:"是否成功"`
|
||
|
|
Message string `json:"message" comment:"响应消息"`
|
||
|
|
Data interface{} `json:"data" comment:"响应数据"`
|
||
|
|
Meta map[string]interface{} `json:"meta" comment:"元数据"`
|
||
|
|
Error string `json:"error,omitempty" comment:"错误信息"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// PaginationDTO 分页DTO
|
||
|
|
type PaginationDTO struct {
|
||
|
|
Page int `json:"page" comment:"当前页"`
|
||
|
|
PageSize int `json:"page_size" comment:"每页大小"`
|
||
|
|
Total int64 `json:"total" comment:"总数量"`
|
||
|
|
Pages int `json:"pages" comment:"总页数"`
|
||
|
|
HasNext bool `json:"has_next" comment:"是否有下一页"`
|
||
|
|
HasPrev bool `json:"has_prev" comment:"是否有上一页"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// StatisticsListResponseDTO 统计列表响应DTO
|
||
|
|
type StatisticsListResponseDTO struct {
|
||
|
|
Success bool `json:"success" comment:"是否成功"`
|
||
|
|
Message string `json:"message" comment:"响应消息"`
|
||
|
|
Data []interface{} `json:"data" comment:"数据列表"`
|
||
|
|
Pagination PaginationDTO `json:"pagination" comment:"分页信息"`
|
||
|
|
Meta map[string]interface{} `json:"meta" comment:"元数据"`
|
||
|
|
Error string `json:"error,omitempty" comment:"错误信息"`
|
||
|
|
}
|
||
|
|
|