// Package controller - 数据统计控制器 // 功能:对话数据的统计分析、报表导出 package controller import ( "context" "customer-server/model/dto" "customer-server/service" "gitea.com/red-future/common/beans" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/util/gconv" ) var DataStatistics = new(dataStatistics) type dataStatistics struct{} // Add 添加数据统计 // 参数: req - 添加数据统计请求,包含日期和统计数据 // 返回: res - 添加成功后的统计ID等信息 // 功能: 创建新的数据统计记录 func (c *dataStatistics) Add(ctx context.Context, req *dto.AddDataStatisticsReq) (res *dto.AddDataStatisticsRes, err error) { res, err = service.DataStatistics.Add(ctx, req) return } // Update 更新数据统计 // 参数: req - 更新数据统计请求,包含统计ID和待更新字段 // 返回: res - 空响应(成功则err为nil) // 功能: 更新数据统计记录内容 func (c *dataStatistics) Update(ctx context.Context, req *dto.UpdateDataStatisticsReq) (res *beans.ResponseEmpty, err error) { err = service.DataStatistics.Update(ctx, req) return } // List 获取数据统计列表 // 参数: req - 列表查询请求,支持分页、日期范围筛选 // 返回: res - 数据统计列表及分页信息 // 功能: 分页查询数据统计记录,支持按日期范围筛选 func (c *dataStatistics) List(ctx context.Context, req *dto.ListDataStatisticsReq) (res *dto.ListDataStatisticsRes, err error) { res, err = service.DataStatistics.List(ctx, req) return } // Export 导出数据统计 // 参数: req - 导出请求,包含筛选条件 // 返回: res - 空响应(直接写入Response流) // 功能: 将数据统计导出为ZIP文件,包含Excel文件 func (c *dataStatistics) Export(ctx context.Context, req *dto.ExportDataStatisticsReq) (res *beans.ResponseEmpty, err error) { zipData, filename, err := service.DataStatistics.Export(ctx, req) if err != nil { return } r := g.RequestFromCtx(ctx) r.Response.Header().Set("Content-Type", "application/zip") r.Response.Header().Set("Content-Disposition", "attachment; filename=\""+filename+"\"") r.Response.Header().Set("Content-Length", gconv.String(len(zipData))) r.Response.Write(zipData) return }