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 }