gomod引用

This commit is contained in:
2025-12-19 09:42:39 +08:00
parent 0814c6c819
commit ed0e384907
33 changed files with 723 additions and 3123 deletions

View File

@@ -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
}

View File

@@ -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
}