package copydata import ( dao "cid/dao/copydata" dto "cid/model/dto/copydata" "context" "errors" "gitea.com/red-future/common/beans" ) type creativeReportSumService struct{} // CreativeReportSum 广告效果指标表服务 var CreativeReportSum = new(creativeReportSumService) // Create 创建广告效果指标表 func (s *creativeReportSumService) Create(ctx context.Context, req *dto.CreativeReportSumItem) (res *dto.CreateCreativeReportSumRes, err error) { // 验证必要字段 if req.ReportDateStr == "" { return nil, errors.New("报告日期不能为空") } // 插入数据库 id, err := dao.CreativeReportSum.Insert(ctx, req) if err != nil { return nil, err } res = &dto.CreateCreativeReportSumRes{ Id: id, } return } // BatchCreate 批量创建广告效果指标表 func (s *creativeReportSumService) BatchCreate(ctx context.Context, req *dto.BatchCreateCreativeReportSumReq) (res *dto.BatchCreateCreativeReportSumRes, 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.CreativeReportSum.BatchInsert(ctx, req.Items) if err != nil { return nil, err } res = &dto.BatchCreateCreativeReportSumRes{ SuccessCount: successCount, FailCount: failCount, FailedItems: failedIndexes, } return } func (s *creativeReportSumService) CreateDetail(ctx context.Context, req *dto.CreativeReportDetailItem) (res *dto.CreateCreativeReportDetailRes, err error) { if req.ReportDateStr == "" { return nil, errors.New("报告日期不能为空") } id, err := dao.CreativeReportDetail.Insert(ctx, req) if err != nil { return nil, err } res = &dto.CreateCreativeReportDetailRes{ Id: id, } return } func (s *creativeReportSumService) BatchCreateDetail(ctx context.Context, req *dto.BatchCreateCreativeReportDetailReq) (res *dto.BatchCreateCreativeReportDetailRes, 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.CreativeReportDetail.BatchInsert(ctx, req.Items) if err != nil { return nil, err } res = &dto.BatchCreateCreativeReportDetailRes{ SuccessCount: successCount, FailCount: failCount, FailedItems: failedIndexes, } return }