Files
customer-server/controller/data_statistics_controller.go

63 lines
2.2 KiB
Go
Raw Normal View History

2026-03-14 10:02:49 +08:00
// 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
}