package copydata import ( dao "cid/dao/copydata" dto "cid/model/dto/copydata" entity "cid/model/entity/copydata" "context" "errors" "gitea.com/red-future/common/beans" ) type materialReportService struct{} // MaterialReport 素材报表数据服务 var MaterialReport = new(materialReportService) // Create 创建素材报表数据 func (s *materialReportService) Create(ctx context.Context, req *dto.MaterialReportItem) (res *dto.CreateMaterialReportRes, err error) { if req.ReportDateStr == "" { return nil, errors.New("报告日期不能为空") } id, err := dao.MaterialReport.Insert(ctx, req) if err != nil { return nil, err } res = &dto.CreateMaterialReportRes{ Id: id, } return } // BatchCreate 批量创建素材报表数据 func (s *materialReportService) BatchCreate(ctx context.Context, req *dto.BatchCreateMaterialReportReq) (res *dto.BatchCreateMaterialReportRes, 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.MaterialReport.BatchInsert(ctx, req.Items) if err != nil { return nil, err } res = &dto.BatchCreateMaterialReportRes{ SuccessCount: successCount, FailCount: failCount, FailedItems: failedIndexes, } return } // List 获取素材报表数据列表 func (s *materialReportService) List(ctx context.Context, req *dto.ListMaterialReportReq) (res *dto.ListMaterialReportRes, err error) { list, total, err := dao.MaterialReport.List(ctx, req) if err != nil { return nil, err } items := make([]*dto.MaterialReportItem, len(list)) for i, item := range list { items[i] = convertMaterialEntityToDTO(item) } res = &dto.ListMaterialReportRes{ List: items, Total: total, } return } // convertEntityToDTO 将实体转换为 DTO func convertMaterialEntityToDTO(entity *entity.MaterialReport) *dto.MaterialReportItem { return &dto.MaterialReportItem{ CreatedBy: entity.CreatedBy, UpdatedBy: entity.UpdatedBy, T0OrderPaymentAmt: entity.T0OrderPaymentAmt, CreativeMaterialType: entity.CreativeMaterialType, LiveName: entity.LiveName, AuthorId: entity.AuthorId, PicUrl: entity.PicUrl, PicName: entity.PicName, PicId: entity.PicId, CoverUrl: entity.CoverUrl, CoverId: entity.CoverId, ItemOrderConversionRatio: entity.ItemOrderConversionRatio, ItemCardClickRatio: entity.ItemCardClickRatio, ItemCardClkCnt: entity.ItemCardClkCnt, LivePlayCntCost: entity.LivePlayCntCost, AdMerchantFollowCost: entity.AdMerchantFollowCost, AdMerchantFollow: entity.AdMerchantFollow, NetT0OrderCnt: entity.NetT0OrderCnt, NetT0Roi: entity.NetT0Roi, NetT0Gmv: entity.NetT0Gmv, PhotoName: entity.PhotoName, PhotoIdStr: entity.PhotoIdStr, PhotoId: entity.PhotoId, ModPriceSegment: entity.ModPriceSegment, AgeSegment: entity.AgeSegment, Province: entity.Province, Gender: entity.Gender, AdPhotoPlayedFiveRatio: entity.AdPhotoPlayedFiveRatio, AdPhotoPlayedThreeRatio: entity.AdPhotoPlayedThreeRatio, OrderSubmitRoi: entity.OrderSubmitRoi, OrderSubmitAmt: entity.OrderSubmitAmt, EventOrderSubmitCost: entity.EventOrderSubmitCost, EventOrderSubmit: entity.EventOrderSubmit, EventOrderPaidRoi: entity.EventOrderPaidRoi, EventAppInvoked: entity.EventAppInvoked, EventAddShoppingCart: entity.EventAddShoppingCart, ConversionNumCost: entity.ConversionNumCost, AdEffectivePlayNum: entity.AdEffectivePlayNum, AdItemClick: entity.AdItemClick, MerchantProductId: entity.MerchantProductId, CostTotal: entity.CostTotal, AdShow: entity.AdShow, AdShow1kCost: entity.AdShow1kCost, Impression: entity.Impression, PhotoClick: entity.PhotoClick, PhotoClickRatio: entity.PhotoClickRatio, Click: entity.Click, ActionbarClick: entity.ActionbarClick, ActionbarClickCost: entity.ActionbarClickCost, EspClickRatio: entity.EspClickRatio, ActionRatio: entity.ActionRatio, AdItemCount: entity.AdItemCount, EspLivePlayedSeconds: entity.EspLivePlayedSeconds, PlayedThreeSeconds: entity.PlayedThreeSeconds, Play3sRatio: entity.Play3sRatio, PlayedFiveSeconds: entity.PlayedFiveSeconds, Play5sRatio: entity.Play5sRatio, PlayedEnd: entity.PlayedEnd, PlayEndRatio: entity.PlayEndRatio, Share: entity.Share, Comment: entity.Comment, Likes: entity.Likes, Report: entity.Report, Block: entity.Block, ItemNegative: entity.ItemNegative, LiveShare: entity.LiveShare, LiveComment: entity.LiveComment, LiveReward: entity.LiveReward, EffectivePlayCount: entity.EffectivePlayCount, EffectivePlayRatio: entity.EffectivePlayRatio, ConversionNum: entity.ConversionNum, ConversionCostEsp: entity.ConversionCostEsp, Roi: entity.Roi, Gmv: entity.Gmv, T0Gmv: entity.T0Gmv, T1Gmv: entity.T1Gmv, T7Gmv: entity.T7Gmv, T15Gmv: entity.T15Gmv, T30Gmv: entity.T30Gmv, T0Roi: entity.T0Roi, T1Roi: entity.T1Roi, T7Roi: entity.T7Roi, T15Roi: entity.T15Roi, T30Roi: entity.T30Roi, PaiedOrder: entity.PaiedOrder, OrderRatio: entity.OrderRatio, T0OrderCnt: entity.T0OrderCnt, T0OrderCntCost: entity.T0OrderCntCost, T0OrderCntRatio: entity.T0OrderCntRatio, T1OrderCnt: entity.T1OrderCnt, T7OrderCnt: entity.T7OrderCnt, T15OrderCnt: entity.T15OrderCnt, T30OrderCnt: entity.T30OrderCnt, MerchantRecoFans: entity.MerchantRecoFans, T1Retention: entity.T1Retention, T7Retention: entity.T7Retention, T15Retention: entity.T15Retention, T30Retention: entity.T30Retention, T1RetentionRatio: entity.T1RetentionRatio, T7RetentionRatio: entity.T7RetentionRatio, T15RetentionRatio: entity.T15RetentionRatio, T30RetentionRatio: entity.T30RetentionRatio, ReservationSuccess: entity.ReservationSuccess, ReservationCost: entity.ReservationCost, StandardLivePlayedStarted: entity.StandardLivePlayedStarted, AdLivePlayCnt: entity.AdLivePlayCnt, AdLivePlayCntCost: entity.AdLivePlayCntCost, LiveAudienceCost: entity.LiveAudienceCost, LiveEventGoodsView: entity.LiveEventGoodsView, GoodsClickRatio: entity.GoodsClickRatio, DirectAttrPlatNewBuyerCnt: entity.DirectAttrPlatNewBuyerCnt, T30AttrPlatTotalBuyerCnt: entity.T30AttrPlatTotalBuyerCnt, DirectAttrSellerNewBuyerCnt: entity.DirectAttrSellerNewBuyerCnt, T30AttrSellerTotalBuyerCnt: entity.T30AttrSellerTotalBuyerCnt, T3Gmv: entity.T3Gmv, T3OrderCnt: entity.T3OrderCnt, T3Roi: entity.T3Roi, T7IndirectOrderAmt: entity.T7IndirectOrderAmt, T7IndirectOrderCnt: entity.T7IndirectOrderCnt, FansT0GmvPerFans: entity.FansT0GmvPerFans, FansT3GmvPerFans: entity.FansT3GmvPerFans, FansT7GmvPerFans: entity.FansT7GmvPerFans, FansT15GmvPerFans: entity.FansT15GmvPerFans, FansT30GmvPerFans: entity.FansT30GmvPerFans, RecoFansCost: entity.RecoFansCost, QcpxWhiteboxDirectOrderPaymentAmt: entity.QcpxWhiteboxDirectOrderPaymentAmt, QcpxWhiteboxDirectOrderCnt: entity.QcpxWhiteboxDirectOrderCnt, FansT0Gmv: entity.FansT0Gmv, FansT1Gmv: entity.FansT1Gmv, FansT7Gmv: entity.FansT7Gmv, FansT15Gmv: entity.FansT15Gmv, FansT30Gmv: entity.FansT30Gmv, FansT0Roi: entity.FansT0Roi, FansT1Roi: entity.FansT1Roi, FansT7Roi: entity.FansT7Roi, FansT15Roi: entity.FansT15Roi, FansT30Roi: entity.FansT30Roi, T0ShopNewBuyerOrderPaymentAmt: entity.T0ShopNewBuyerOrderPaymentAmt, T1ShopNewBuyerOrderPaymentAmt: entity.T1ShopNewBuyerOrderPaymentAmt, T3ShopNewBuyerOrderPaymentAmt: entity.T3ShopNewBuyerOrderPaymentAmt, T7ShopNewBuyerOrderPaymentAmt: entity.T7ShopNewBuyerOrderPaymentAmt, T15ShopNewBuyerOrderPaymentAmt: entity.T15ShopNewBuyerOrderPaymentAmt, T30ShopNewBuyerOrderPaymentAmt: entity.T30ShopNewBuyerOrderPaymentAmt, T0ShopNewBuyerOrderCnt: entity.T0ShopNewBuyerOrderCnt, T1ShopNewBuyerOrderCnt: entity.T1ShopNewBuyerOrderCnt, T3ShopNewBuyerOrderCnt: entity.T3ShopNewBuyerOrderCnt, T7ShopNewBuyerOrderCnt: entity.T7ShopNewBuyerOrderCnt, T15ShopNewBuyerOrderCnt: entity.T15ShopNewBuyerOrderCnt, T30ShopNewBuyerOrderCnt: entity.T30ShopNewBuyerOrderCnt, T1NewBuyerRepurchaseRatio: entity.T1NewBuyerRepurchaseRatio, T3NewBuyerRepurchaseRatio: entity.T3NewBuyerRepurchaseRatio, T7NewBuyerRepurchaseRatio: entity.T7NewBuyerRepurchaseRatio, T15NewBuyerRepurchaseRatio: entity.T15NewBuyerRepurchaseRatio, T30NewBuyerRepurchaseRatio: entity.T30NewBuyerRepurchaseRatio, T0ShopNewBuyerRoi: entity.T0ShopNewBuyerRoi, T1ShopNewBuyerRoi: entity.T1ShopNewBuyerRoi, T3ShopNewBuyerRoi: entity.T3ShopNewBuyerRoi, T7ShopNewBuyerRoi: entity.T7ShopNewBuyerRoi, T15ShopNewBuyerRoi: entity.T15ShopNewBuyerRoi, T30ShopNewBuyerRoi: entity.T30ShopNewBuyerRoi, CreateCardOrderCnt: entity.CreateCardOrderCnt, ForwardTsCreateCardOrderCnt: entity.ForwardTsCreateCardOrderCnt, CreateCardOrderCost: entity.CreateCardOrderCost, ForwardTsCreateCardOrderCost: entity.ForwardTsCreateCardOrderCost, ActivateCardOrderCnt: entity.ActivateCardOrderCnt, ForwardTsActivateCardOrderCnt: entity.ForwardTsActivateCardOrderCnt, ActivateCardOrderCost: entity.ActivateCardOrderCost, ForwardTsActivateCardOrderCost: entity.ForwardTsActivateCardOrderCost, CreateCardOrderRatio: entity.CreateCardOrderRatio, ForwardTsCreateCardOrderRatio: entity.ForwardTsCreateCardOrderRatio, ActivateCardOrderCntRatio: entity.ActivateCardOrderCntRatio, ForwardTsActivateCardOrderRatio: entity.ForwardTsActivateCardOrderRatio, LivePlayCnt: entity.LivePlayCnt, ItemEntranceClkCnt: entity.ItemEntranceClkCnt, ShowCnt: entity.ShowCnt, ReportDateStr: entity.ReportDateStr, CampaignId: entity.CampaignId, CampaignName: entity.CampaignName, UnitId: entity.UnitId, UnitName: entity.UnitName, CreativeId: entity.CreativeId, CreativeName: entity.CreativeName, } }