Files
data-engine/service/copydata/api_account_report_service.go
2026-04-07 09:51:32 +08:00

114 lines
3.2 KiB
Go

package copydata
import (
dao "cid/dao/copydata"
dto "cid/model/dto/copydata"
"context"
"errors"
"gitea.com/red-future/common/beans"
)
type cidAccountReportDetailService struct{}
// CidAccountReportDetail 广告数据报表详情服务
var CidAccountReportDetail = new(cidAccountReportDetailService)
// Create 创建广告数据报表详情
func (s *cidAccountReportDetailService) Create(ctx context.Context, req *dto.CidAccountReportDetailItem) (res *dto.CreateCidAccountReportDetailRes, err error) {
// 验证必要字段
if req.DataType == "" {
return nil, errors.New("数据类型不能为空")
}
if req.ReportDateStr == "" {
return nil, errors.New("报告日期不能为空")
}
// 插入数据库
id, err := dao.CidAccountReportDetail.Insert(ctx, req)
if err != nil {
return nil, err
}
res = &dto.CreateCidAccountReportDetailRes{
Id: id,
}
return
}
// BatchCreate 批量创建广告数据报表详情
func (s *cidAccountReportDetailService) BatchCreate(ctx context.Context, req *dto.BatchCreateCidAccountReportDetailReq) (res *dto.BatchCreateCidAccountReportDetailRes, err error) {
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"})
// 验证数据
if len(req.Items) == 0 {
return nil, errors.New("批量创建数据不能为空")
}
//// 验证每条数据
//for i, item := range req.Items {
// if item.DataType == "" {
// return nil, errors.New("第" + string(rune(i+1)) + "条数据的数据类型不能为空")
// }
// if item.ReportDateStr == "" {
// return nil, errors.New("第" + string(rune(i+1)) + "条数据的报告日期不能为空")
// }
//}
// 批量插入数据库
successCount, failCount, failedIndexes, err := dao.CidAccountReportDetail.BatchInsert(ctx, req.Items)
if err != nil {
return nil, err
}
res = &dto.BatchCreateCidAccountReportDetailRes{
SuccessCount: successCount,
FailCount: failCount,
FailedItems: failedIndexes,
}
return
}
// CreateSum Create 创建广告数据报表汇总
func (s *cidAccountReportDetailService) CreateSum(ctx context.Context, req *dto.CidAccountReportSumItem) (res *dto.CreateCidAccountReportSumRes, err error) {
// 验证必要字段
if req.DataType == "" {
return nil, errors.New("数据类型不能为空")
}
if req.ReportDateStr == "" {
return nil, errors.New("报告日期不能为空")
}
// 插入数据库
id, err := dao.CidAccountReportSum.Insert(ctx, req)
if err != nil {
return nil, err
}
res = &dto.CreateCidAccountReportSumRes{
Id: id,
}
return
}
// BatchCreateSum 批量创建广告数据报表汇总
func (s *cidAccountReportDetailService) BatchCreateSum(ctx context.Context, req *dto.BatchCreateCidAccountReportSumReq) (res *dto.BatchCreateCidAccountReportSumRes, err error) {
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"})
// 验证数据
if len(req.Items) == 0 {
return nil, errors.New("批量创建数据不能为空")
}
// 批量插入数据库
successCount, failCount, failedIndexes, err := dao.CidAccountReportSum.BatchInsert(ctx, req.Items)
if err != nil {
return nil, err
}
res = &dto.BatchCreateCidAccountReportSumRes{
SuccessCount: successCount,
FailCount: failCount,
FailedItems: failedIndexes,
}
return
}