gomod引用
This commit is contained in:
@@ -1,34 +0,0 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"cid/model/dto"
|
||||
"cid/service"
|
||||
)
|
||||
|
||||
type adStatistics struct{}
|
||||
|
||||
var AdStatistics = new(adStatistics)
|
||||
|
||||
// GetStatistics 获取统计数据
|
||||
func (c *adStatistics) GetStatistics(ctx context.Context, req *dto.GetAdStatisticsReq) (res *dto.GetAdStatisticsRes, err error) {
|
||||
return service.AdStatistics.GetStatistics(ctx, req)
|
||||
}
|
||||
|
||||
// GetDashboard 获取仪表盘数据
|
||||
func (c *adStatistics) GetDashboard(ctx context.Context, req *dto.GetDashboardReq) (res *dto.GetDashboardRes, err error) {
|
||||
return service.AdStatistics.GetDashboard(ctx, req)
|
||||
}
|
||||
|
||||
// GenerateDailyStatistics 生成每日统计数据
|
||||
func (c *adStatistics) GenerateDailyStatistics(ctx context.Context, req *dto.GenerateDailyStatisticsReq) (res *dto.GenerateDailyStatisticsRes, err error) {
|
||||
err = service.AdStatistics.GenerateDailyStatistics(ctx, req.Date)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &dto.GenerateDailyStatisticsRes{
|
||||
Success: true,
|
||||
}, nil
|
||||
}
|
||||
@@ -1,148 +0,0 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"cid/model/dto"
|
||||
"cid/service"
|
||||
)
|
||||
|
||||
var StatReport = new(statReport)
|
||||
|
||||
type statReport struct{}
|
||||
|
||||
// GenerateReport 生成报表
|
||||
func (c *statReport) GenerateReport(ctx context.Context, req *dto.ReportGenerateReq) (res *dto.ReportGenerateRes, err error) {
|
||||
var resp *dto.ReportGenerateResp
|
||||
|
||||
switch req.ReportType {
|
||||
case "daily":
|
||||
resp, err = service.StatReport.GenerateDailyReport(ctx, req)
|
||||
case "weekly":
|
||||
resp, err = service.StatReport.GenerateWeeklyReport(ctx, req)
|
||||
case "monthly":
|
||||
resp, err = service.StatReport.GenerateMonthlyReport(ctx, req)
|
||||
case "quarterly":
|
||||
resp, err = service.StatReport.GenerateQuarterlyReport(ctx, req)
|
||||
case "yearly":
|
||||
resp, err = service.StatReport.GenerateYearlyReport(ctx, req)
|
||||
default:
|
||||
return nil, fmt.Errorf("不支持的报表类型: %s", req.ReportType)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &dto.ReportGenerateRes{
|
||||
Data: resp,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// GetReportList 获取报表列表
|
||||
func (c *statReport) GetReportList(ctx context.Context, req *dto.ReportListReq) (res *dto.ReportListRes, err error) {
|
||||
resp, err := service.StatReport.GetReportList(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &dto.ReportListRes{
|
||||
Data: resp,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// GetReportDetail 获取报表详情
|
||||
func (c *statReport) GetReportDetail(ctx context.Context, req *dto.ReportDetailReq) (res *dto.ReportDetailRes, err error) {
|
||||
resp, err := service.StatReport.GetReportDetail(ctx, req.ReportID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &dto.ReportDetailRes{
|
||||
Data: resp,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// QueryStats 统计查询
|
||||
func (c *statReport) QueryStats(ctx context.Context, req *dto.StatQueryReq) (res *dto.StatQueryRes, err error) {
|
||||
// 这里调用统计查询服务
|
||||
// resp, err := service.StatReport.QueryStats(ctx, req)
|
||||
// 暂时返回示例数据
|
||||
resp := &dto.StatQueryResp{
|
||||
Data: []*dto.StatDataPoint{
|
||||
{
|
||||
Date: "2024-01-01",
|
||||
Impressions: 1000,
|
||||
Clicks: 50,
|
||||
Revenue: 500.0,
|
||||
CTR: 5.0,
|
||||
AvgDuration: 30.5,
|
||||
},
|
||||
},
|
||||
Summary: &dto.StatSummary{
|
||||
TotalImpressions: 1000,
|
||||
TotalClicks: 50,
|
||||
TotalRevenue: 500.0,
|
||||
AvgCTR: 5.0,
|
||||
AvgDuration: 30.5,
|
||||
GrowthRate: &dto.GrowthRate{
|
||||
Impressions: 10.5,
|
||||
Clicks: 8.2,
|
||||
Revenue: 12.3,
|
||||
CTR: -1.2,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return &dto.StatQueryRes{
|
||||
Data: resp,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// RealTimeStats 实时统计
|
||||
func (c *statReport) RealTimeStats(ctx context.Context, req *dto.RealTimeStatReq) (res *dto.RealTimeStatRes, err error) {
|
||||
// 这里调用实时统计服务
|
||||
// resp, err := service.StatReport.GetRealTimeStats(ctx, req)
|
||||
// 暂时返回示例数据
|
||||
resp := &dto.RealTimeStatResp{
|
||||
CurrentHour: &dto.HourlyStat{
|
||||
Hour: "14:00",
|
||||
Impressions: 120,
|
||||
Clicks: 6,
|
||||
Revenue: 60.0,
|
||||
},
|
||||
Last24Hours: []*dto.HourlyStat{
|
||||
{
|
||||
Hour: "13:00",
|
||||
Impressions: 110,
|
||||
Clicks: 5,
|
||||
Revenue: 55.0,
|
||||
},
|
||||
{
|
||||
Hour: "12:00",
|
||||
Impressions: 100,
|
||||
Clicks: 4,
|
||||
Revenue: 50.0,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return &dto.RealTimeStatRes{
|
||||
Data: resp,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// ExportReport 导出报表
|
||||
func (c *statReport) ExportReport(ctx context.Context, req *dto.ExportReportReq) (res *dto.ExportReportRes, err error) {
|
||||
// 获取报表详情
|
||||
resp, err := service.StatReport.GetReportDetail(ctx, req.ReportID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 返回导出数据,由上层处理HTTP响应
|
||||
return &dto.ExportReportRes{
|
||||
ReportData: resp,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user