diff --git a/consts/public/collections.go b/consts/public/collections.go index cdf1acd..699e804 100644 --- a/consts/public/collections.go +++ b/consts/public/collections.go @@ -14,6 +14,8 @@ const ( StorewideReportDetailTable = "storewide_report_detail" // 全站数据detail表 CreativeReportSumTable = "creative_report_sum" // 广告创意数据sum表 CreativeReportDetailTable = "creative_report_detail" // 广告创意数据detail表 - UnitReportSumTable = "unit_report_sum" // 广告创意数据detail表 - UnitReportDetailTable = "unit_report_detail" // 广告创意数据detail表 + UnitReportSumTable = "unit_report_sum" // 广告单元数据detail表 + UnitReportDetailTable = "unit_report_detail" // 广告单元数据detail表 + CampaignReportSumTable = "campaign_report_sum" // 广告计划数据detail表 + CampaignReportDetailTable = "campaign_report_detail" // 广告计划数据detail表 ) diff --git a/controller/copydata/campaign_report_controller.go b/controller/copydata/campaign_report_controller.go new file mode 100644 index 0000000..3fde1fd --- /dev/null +++ b/controller/copydata/campaign_report_controller.go @@ -0,0 +1,35 @@ +package copydata + +import ( + dto "cid/model/dto/copydata" + service "cid/service/copydata" + "context" + + "gitea.com/red-future/common/beans" +) + +type campaignReport struct{} + +var CampaignReport = new(campaignReport) + +// CreateCampaignReportSum 创建广告计划效果指标表 +func (c *campaignReport) CreateCampaignReportSum(ctx context.Context, req *dto.CreateCampaignReportSumReq) (res *dto.CreateCampaignReportSumRes, err error) { + ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) + return service.CampaignReportSum.Create(ctx, req.CampaignReportSumItem) +} + +// BatchCreateCampaignReportSum 批量创建广告计划效果指标表 +func (c *campaignReport) BatchCreateCampaignReportSum(ctx context.Context, req *dto.BatchCreateCampaignReportSumReq) (res *dto.BatchCreateCampaignReportSumRes, err error) { + return service.CampaignReportSum.BatchCreate(ctx, req) +} + +// CreateCampaignReportDetail 创建广告效果指标表 +func (c *campaignReport) CreateCampaignReportDetail(ctx context.Context, req *dto.CreateCampaignReportDetailReq) (res *dto.CreateCampaignReportDetailRes, err error) { + ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) + return service.CampaignReportSum.CreateDetail(ctx, req.CampaignReportDetailItem) +} + +// BatchCreateCampaignReportDetail 批量创建广告效果指标表 +func (c *campaignReport) BatchCreateCampaignReportDetail(ctx context.Context, req *dto.BatchCreateCampaignReportDetailReq) (res *dto.BatchCreateCampaignReportDetailRes, err error) { + return service.CampaignReportSum.BatchCreateDetail(ctx, req) +} diff --git a/dao/copydata/campaign_report_detail_dao.go b/dao/copydata/campaign_report_detail_dao.go new file mode 100644 index 0000000..9212913 --- /dev/null +++ b/dao/copydata/campaign_report_detail_dao.go @@ -0,0 +1,81 @@ +package copydata + +import ( + consts "cid/consts/public" + dto "cid/model/dto/copydata" + entity "cid/model/entity/copydata" + "context" + "errors" + + "gitea.com/red-future/common/db/gfdb" + "github.com/gogf/gf/v2/util/gconv" +) + +var CampaignReportDetail = new(CampaignReportDetailDao) + +type CampaignReportDetailDao struct{} + +func (d *CampaignReportDetailDao) Insert(ctx context.Context, req *dto.CampaignReportDetailItem) (id int64, err error) { + var entityData *entity.CampaignReportDetail + if err = gconv.Struct(req, &entityData); err != nil { + return + } + + r, err := gfdb.DB(ctx).Model(ctx, consts.CampaignReportDetailTable).Data(&entityData).Insert() + if err != nil { + return + } + return r.LastInsertId() +} + +func (d *CampaignReportDetailDao) BatchInsert(ctx context.Context, reqs []*dto.CampaignReportDetailItem) (successCount int64, failCount int64, failedIndexes []int64, err error) { + if len(reqs) == 0 { + return 0, 0, nil, errors.New("批量插入数据不能为空") + } + + batchSize := 100 + successCount = 0 + failCount = 0 + failedIndexes = make([]int64, 0) + + for i := 0; i < len(reqs); i += batchSize { + end := i + batchSize + if end > len(reqs) { + end = len(reqs) + } + + batch := reqs[i:end] + entityList := make([]*entity.CampaignReportDetail, len(batch)) + + for j, req := range batch { + var entityData entity.CampaignReportDetail + if err = gconv.Struct(req, &entityData); err != nil { + failCount++ + failedIndexes = append(failedIndexes, int64(i+j)) + continue + } + entityList[j] = &entityData + } + + if len(entityList) == 0 { + continue + } + + _, err = gfdb.DB(ctx).Model(ctx, consts.CampaignReportDetailTable).Data(entityList).Insert() + if err != nil { + for k := range batch { + _, singleErr := d.Insert(ctx, batch[k]) + if singleErr != nil { + failCount++ + failedIndexes = append(failedIndexes, int64(i+k)) + } else { + successCount++ + } + } + } else { + successCount += int64(len(entityList)) + } + } + + return successCount, failCount, failedIndexes, nil +} diff --git a/dao/copydata/campaign_report_sum_dao.go b/dao/copydata/campaign_report_sum_dao.go new file mode 100644 index 0000000..8178d78 --- /dev/null +++ b/dao/copydata/campaign_report_sum_dao.go @@ -0,0 +1,86 @@ +package copydata + +import ( + consts "cid/consts/public" + dto "cid/model/dto/copydata" + entity "cid/model/entity/copydata" + "context" + "errors" + + "gitea.com/red-future/common/db/gfdb" + "github.com/gogf/gf/v2/util/gconv" +) + +var CampaignReportSum = new(CampaignReportSumDao) + +type CampaignReportSumDao struct{} + +// Insert 插入广告计划效果指标表 +func (d *CampaignReportSumDao) Insert(ctx context.Context, req *dto.CampaignReportSumItem) (id int64, err error) { + var entityData *entity.CampaignReportSum + if err = gconv.Struct(req, &entityData); err != nil { + return + } + + r, err := gfdb.DB(ctx).Model(ctx, consts.CampaignReportSumTable).Data(&entityData).Insert() + if err != nil { + return + } + return r.LastInsertId() +} + +// BatchInsert 批量插入广告计划效果指标表 +func (d *CampaignReportSumDao) BatchInsert(ctx context.Context, reqs []*dto.CampaignReportSumItem) (successCount int64, failCount int64, failedIndexes []int64, err error) { + if len(reqs) == 0 { + return 0, 0, nil, errors.New("批量插入数据不能为空") + } + + // 分批处理,每批 100 条 + batchSize := 100 + successCount = 0 + failCount = 0 + failedIndexes = make([]int64, 0) + + for i := 0; i < len(reqs); i += batchSize { + end := i + batchSize + if end > len(reqs) { + end = len(reqs) + } + + batch := reqs[i:end] + entityList := make([]*entity.CampaignReportSum, len(batch)) + + for j, req := range batch { + var entityData entity.CampaignReportSum + if err = gconv.Struct(req, &entityData); err != nil { + failCount++ + failedIndexes = append(failedIndexes, int64(i+j)) + continue + } + entityList[j] = &entityData + } + + if len(entityList) == 0 { + continue + } + + // 执行批量插入 + _, err = gfdb.DB(ctx).Model(ctx, consts.CampaignReportSumTable).Data(entityList).Insert() + if err != nil { + // 批量插入失败,尝试逐条插入 + for k := range batch { + _, singleErr := d.Insert(ctx, batch[k]) + if singleErr != nil { + failCount++ + failedIndexes = append(failedIndexes, int64(i+k)) + } else { + successCount++ + } + } + } else { + successCount += int64(len(entityList)) + } + } + + return successCount, failCount, failedIndexes, nil +} diff --git a/main.go b/main.go index 75d2ffb..a48afae 100644 --- a/main.go +++ b/main.go @@ -28,6 +28,7 @@ func main() { copydata.StorewideReport, copydata.CreativeReport, copydata.UnitReport, + copydata.CampaignReport, }) select {} } diff --git a/model/dto/copydata/campaign_report_detail_dto.go b/model/dto/copydata/campaign_report_detail_dto.go new file mode 100644 index 0000000..60fa187 --- /dev/null +++ b/model/dto/copydata/campaign_report_detail_dto.go @@ -0,0 +1,230 @@ +package copydata + +import ( + "gitea.com/red-future/common/beans" + "github.com/gogf/gf/v2/frame/g" +) + +type CreateCampaignReportDetailReq struct { + g.Meta `path:"/createCampaignReportDetail" method:"post" tags:"广告效果明细报表" summary:"创建广告效果指标明细表" dc:"创建新的广告效果指标明细表"` + *CampaignReportDetailItem +} + +type CreateCampaignReportDetailRes struct { + Id int64 `json:"id" dc:"广告效果明细 ID"` +} + +type BatchCreateCampaignReportDetailReq struct { + g.Meta `path:"/batchCreateCampaignReportDetail" method:"post" tags:"广告效果明细报表" summary:"批量创建广告效果指标明细表" dc:"批量创建广告效果指标明细表"` + Items []*CampaignReportDetailItem `json:"items" v:"required" dc:"广告效果明细列表"` +} + +type BatchCreateCampaignReportDetailRes struct { + SuccessCount int64 `json:"successCount" dc:"成功数量"` + FailCount int64 `json:"failCount" dc:"失败数量"` + FailedItems []int64 `json:"failedItems" dc:"失败项索引"` +} + +type CampaignReportDetailItem struct { + T0OrderPaymentAmt *float64 `json:"t0OrderPaymentAmt" dc:"当日总成交订单金额"` + CreativeMaterialType string `json:"creativeMaterialType" dc:"视频素材类型"` + LiveName string `json:"liveName" dc:"直播间名称"` + AuthorId string `json:"authorId" dc:"直播用户快手 Id"` + PicUrl string `json:"picUrl" dc:"图片 URL"` + PicName string `json:"picName" dc:"图片名称"` + PicId string `json:"picId" dc:"图片 Id"` + CoverUrl string `json:"coverUrl" dc:"封面 URL"` + CoverId *int64 `json:"coverId" dc:"封面 Id"` + ItemOrderConversionRatio *float64 `json:"itemOrderConversionRatio" dc:"转化率"` + ItemCardClickRatio *float64 `json:"itemCardClickRatio" dc:"点击率"` + ItemCardClkCnt *int64 `json:"itemCardClkCnt" dc:"商品卡点击数"` + LivePlayCntCost *float64 `json:"livePlayCntCost" dc:"直播间观看成本"` + AdMerchantFollowCost *float64 `json:"adMerchantFollowCost" dc:"涨粉成本"` + AdMerchantFollow *int64 `json:"adMerchantFollow" dc:"涨粉数"` + NetT0OrderCnt *int64 `json:"netT0OrderCnt" dc:"当日累计净成交订单数"` + NetT0Roi *float64 `json:"netT0Roi" dc:"净成交 ROI"` + NetT0Gmv *float64 `json:"netT0Gmv" dc:"净成交 GMV"` + PhotoName string `json:"photoName" dc:"视频名称"` + PhotoIdStr string `json:"photoIdStr" dc:"视频 id"` + PhotoId string `json:"photoId" dc:"视频 id"` + ModPriceSegment string `json:"modPriceSegment" dc:"设备价格区间"` + AgeSegment string `json:"ageSegment" dc:"年龄段"` + Province string `json:"province" dc:"省份名称"` + Gender string `json:"gender" dc:"性别"` + AdPhotoPlayedFiveRatio *float64 `json:"adPhotoPlayedFiveRatio" dc:"作品 5 秒播放率"` + AdPhotoPlayedThreeRatio *float64 `json:"adPhotoPlayedThreeRatio" dc:"作品 3 秒播放率"` + OrderSubmitRoi *float64 `json:"orderSubmitRoi" dc:"订单提交 ROI"` + OrderSubmitAmt *int64 `json:"orderSubmitAmt" dc:"外部订单金额"` + EventOrderSubmitCost *float64 `json:"eventOrderSubmitCost" dc:"订单提交成本"` + EventOrderSubmit *int64 `json:"eventOrderSubmit" dc:"订单提交数"` + EventOrderPaidRoi *float64 `json:"eventOrderPaidRoi" dc:"订单支付率"` + EventAppInvoked *int64 `json:"eventAppInvoked" dc:"唤起应用数"` + EventAddShoppingCart *int64 `json:"eventAddShoppingCart" dc:"添加购物车次数"` + ConversionNumCost *float64 `json:"conversionNumCost" dc:"转化成本(回传时间)"` + AdEffectivePlayNum *int64 `json:"adEffectivePlayNum" dc:"有效播放数"` + AdItemClick *int64 `json:"adItemClick" dc:"行为数"` + MerchantProductId string `json:"merchantProductId" dc:"商品 ID"` + CostTotal *float64 `json:"costTotal" dc:"花费"` + AdShow *int64 `json:"adShow" dc:"曝光数"` + AdShow1kCost *float64 `json:"adShow1kCost" dc:"平均千次广告曝光花费"` + Impression *int64 `json:"impression" dc:"封面曝光数"` + PhotoClick *int64 `json:"photoClick" dc:"封面点击数"` + PhotoClickRatio *float64 `json:"photoClickRatio" dc:"封面点击率"` + Click *int64 `json:"click" dc:"素材曝光数"` + ActionbarClick *int64 `json:"actionbarClick" dc:"行为数"` + ActionbarClickCost *float64 `json:"actionbarClickCost" dc:"行为成本"` + EspClickRatio *float64 `json:"espClickRatio" dc:"行为率"` + ActionRatio *float64 `json:"actionRatio" dc:"素材点击率"` + AdItemClickCount *int64 `json:"adItemClickCount" dc:"预约组件点击数"` + EspLivePlayedSeconds *int64 `json:"espLivePlayedSeconds" dc:"直播平均观看时长"` + PlayedThreeSeconds *int64 `json:"playedThreeSeconds" dc:"作品 3 秒播放数"` + Play3sRatio *float64 `json:"play3sRatio" dc:"作品 3 秒播放率"` + PlayedFiveSeconds *int64 `json:"playedFiveSeconds" dc:"作品 5 秒播放数"` + Play5sRatio *float64 `json:"play5sRatio" dc:"作品 5 秒播放率"` + PlayedEnd *int64 `json:"playedEnd" dc:"作品完播数"` + PlayEndRatio *float64 `json:"playEndRatio" dc:"作品完播率"` + Share *int64 `json:"share" dc:"作品分享数"` + Comment *int64 `json:"comment" dc:"作品评论数"` + Likes *int64 `json:"likes" dc:"作品点赞数"` + Report *int64 `json:"report" dc:"作品举报数"` + Block *int64 `json:"block" dc:"作品拉黑数"` + ItemNegative *int64 `json:"itemNegative" dc:"详情页减少此类作品数"` + LiveShare *int64 `json:"liveShare" dc:"直播送礼数"` + LiveComment *int64 `json:"liveComment" dc:"直播评论数"` + LiveReward *int64 `json:"liveReward" dc:"直播送礼数"` + EffectivePlayCount *int64 `json:"effectivePlayCount" dc:"有效播放数"` + EffectivePlayRatio *float64 `json:"effectivePlayRatio" dc:"有效播放率"` + ConversionNum *int64 `json:"conversionNum" dc:"转化数"` + ConversionCostEsp *float64 `json:"conversionCostEsp" dc:"转化成本"` + Roi *float64 `json:"roi" dc:"直接 ROI"` + Gmv *float64 `json:"gmv" dc:"直接 GMV"` + T0Gmv *float64 `json:"t0Gmv" dc:"当日累计 GMV"` + T1Gmv *float64 `json:"t1Gmv" dc:"次日累计 GMV"` + T7Gmv *float64 `json:"t7Gmv" dc:"7 日累计 GMV"` + T15Gmv *float64 `json:"t15Gmv" dc:"15 日累计 GMV"` + T30Gmv *float64 `json:"t30Gmv" dc:"30 日累计 GMV"` + T0Roi *float64 `json:"t0Roi" dc:"当日累计 ROI"` + T1Roi *float64 `json:"t1Roi" dc:"次日累计 ROI"` + T7Roi *float64 `json:"t7Roi" dc:"7 日累计 ROI"` + T15Roi *float64 `json:"t15Roi" dc:"15 日累计 ROI"` + T30Roi *float64 `json:"t30Roi" dc:"30 日累计 ROI"` + PaiedOrder *int64 `json:"paiedOrder" dc:"直接订单数"` + OrderRatio *float64 `json:"orderRatio" dc:"直接下单率"` + T0OrderCnt *int64 `json:"t0OrderCnt" dc:"当日累计订单数"` + T0OrderCntCost *float64 `json:"t0OrderCntCost" dc:"当日累计订单成本"` + T0OrderCntRatio *float64 `json:"t0OrderCntRatio" dc:"累计订单下单率"` + T1OrderCnt *int64 `json:"t1OrderCnt" dc:"次日累计订单数"` + T7OrderCnt *int64 `json:"t7OrderCnt" dc:"7 日累计订单数"` + T15OrderCnt *int64 `json:"t15OrderCnt" dc:"15 日累计订单数"` + T30OrderCnt *int64 `json:"t30OrderCnt" dc:"30 日累计订单数"` + MerchantRecoFans *int64 `json:"merchantRecoFans" dc:"涨粉数"` + T1Retention *float64 `json:"t1Retention" dc:"次日涨粉留存数"` + T7Retention *float64 `json:"t7Retention" dc:"7 日涨粉留存数"` + T15Retention *float64 `json:"t15Retention" dc:"15 日涨粉留存数"` + T30Retention *float64 `json:"t30Retention" dc:"30 日涨粉留存数"` + T1RetentionRatio *float64 `json:"t1RetentionRatio" dc:"次日涨粉留存率"` + T7RetentionRatio *float64 `json:"t7RetentionRatio" dc:"7 日涨粉留存率"` + T15RetentionRatio *float64 `json:"t15RetentionRatio" dc:"15 日涨粉留存率"` + T30RetentionRatio *float64 `json:"t30RetentionRatio" dc:"30 日涨粉留存率"` + ReservationSuccess *int64 `json:"reservationSuccess" dc:"直播预约成功数"` + ReservationCost *float64 `json:"reservationCost" dc:"直播预约成功成本"` + StandardLivePlayedStarted *int64 `json:"standardLivePlayedStarted" dc:"直播观看数"` + AdLivePlayCnt *int64 `json:"adLivePlayCnt" dc:"直播间人气数"` + AdLivePlayCntCost *float64 `json:"adLivePlayCntCost" dc:"直播间人气成本"` + LiveAudienceCost *float64 `json:"liveAudienceCost" dc:"直播观看成本"` + LiveEventGoodsView *int64 `json:"liveEventGoodsView" dc:"直播间商品点击数"` + GoodsClickRatio *float64 `json:"goodsClickRatio" dc:"直播间商品点击率"` + DirectAttrPlatNewBuyerCnt *int64 `json:"directAttrPlatNewBuyerCnt" dc:"直接平台新客"` + T30AttrPlatTotalBuyerCnt *int64 `json:"t30AttrPlatTotalBuyerCnt" dc:"30 日累计平台新客"` + DirectAttrSellerNewBuyerCnt *int64 `json:"directAttrSellerNewBuyerCnt" dc:"直接店铺新客"` + T30AttrSellerTotalBuyerCnt *int64 `json:"t30AttrSellerTotalBuyerCnt" dc:"30 日累计店铺新客"` + T3Gmv *float64 `json:"t3Gmv" dc:"3 日累计 GMV"` + T3OrderCnt *int64 `json:"t3OrderCnt" dc:"3 日累计订单数"` + T3Roi *float64 `json:"t3Roi" dc:"3 日累计 ROI"` + T7IndirectOrderAmt *float64 `json:"t7IndirectOrderAmt" dc:"7 日间接订单金额"` + T7IndirectOrderCnt *int64 `json:"t7IndirectOrderCnt" dc:"7 日间接订单数"` + FansT0GmvPerFans *float64 `json:"fansT0GmvPerFans" dc:"新增粉丝人均销售额"` + FansT3GmvPerFans *float64 `json:"fansT3GmvPerFans" dc:"3 日新增粉丝人均销售额"` + FansT7GmvPerFans *float64 `json:"fansT7GmvPerFans" dc:"7 日新增粉丝人均销售额"` + FansT15GmvPerFans *float64 `json:"fansT15GmvPerFans" dc:"15 日新增粉丝人均销售额"` + FansT30GmvPerFans *float64 `json:"fansT30GmvPerFans" dc:"30 日新增粉丝人均销售额"` + RecoFansCost *float64 `json:"recoFansCost" dc:"涨粉成本"` + QcpxWhiteboxDirectOrderPaymentAmt *float64 `json:"qcpxWhiteboxDirectOrderPaymentAmt" dc:"智能优惠券订单 GMV"` + QcpxWhiteboxDirectOrderCnt *int64 `json:"qcpxWhiteboxDirectOrderCnt" dc:"智能优惠券订单数"` + FansT0Gmv *float64 `json:"fansT0Gmv" dc:"涨粉当日 GMV"` + FansT1Gmv *float64 `json:"fansT1Gmv" dc:"涨粉次日 GMV"` + FansT7Gmv *float64 `json:"fansT7Gmv" dc:"涨粉 7 日 GMV"` + FansT15Gmv *float64 `json:"fansT15Gmv" dc:"涨粉 15 日 GMV"` + FansT30Gmv *float64 `json:"fansT30Gmv" dc:"涨粉 30 日 GMV"` + FansT0Roi *float64 `json:"fansT0Roi" dc:"涨粉当日 ROI"` + FansT1Roi *float64 `json:"fansT1Roi" dc:"涨粉次日 ROI"` + FansT7Roi *float64 `json:"fansT7Roi" dc:"涨粉 7 日 ROI"` + FansT15Roi *float64 `json:"fansT15Roi" dc:"涨粉 15 日 ROI"` + FansT30Roi *float64 `json:"fansT30Roi" dc:"涨粉 30 日 ROI"` + T0ShopNewBuyerOrderPaymentAmt *float64 `json:"t0ShopNewBuyerOrderPaymentAmt" dc:"当日新客 GMV"` + T1ShopNewBuyerOrderPaymentAmt *float64 `json:"t1ShopNewBuyerOrderPaymentAmt" dc:"投后 1 日新客 GMV"` + T3ShopNewBuyerOrderPaymentAmt *float64 `json:"t3ShopNewBuyerOrderPaymentAmt" dc:"投后 3 日新客 GMV"` + T7ShopNewBuyerOrderPaymentAmt *float64 `json:"t7ShopNewBuyerOrderPaymentAmt" dc:"投后 7 日新客 GMV"` + T15ShopNewBuyerOrderPaymentAmt *float64 `json:"t15ShopNewBuyerOrderPaymentAmt" dc:"投后 15 日新客 GMV"` + T30ShopNewBuyerOrderPaymentAmt *float64 `json:"t30ShopNewBuyerOrderPaymentAmt" dc:"投后 30 日新客 GMV"` + T0ShopNewBuyerOrderCnt *int64 `json:"t0ShopNewBuyerOrderCnt" dc:"当日新客成交订单量"` + T1ShopNewBuyerOrderCnt *int64 `json:"t1ShopNewBuyerOrderCnt" dc:"投后 1 日新客成交订单量"` + T3ShopNewBuyerOrderCnt *int64 `json:"t3ShopNewBuyerOrderCnt" dc:"投后 3 日新客成交订单量"` + T7ShopNewBuyerOrderCnt *int64 `json:"t7ShopNewBuyerOrderCnt" dc:"投后 7 日新客成交订单量"` + T15ShopNewBuyerOrderCnt *int64 `json:"t15ShopNewBuyerOrderCnt" dc:"投后 15 日新客成交订单量"` + T30ShopNewBuyerOrderCnt *int64 `json:"t30ShopNewBuyerOrderCnt" dc:"投后 30 日新客成交订单量"` + T1NewBuyerRepurchaseRatio *float64 `json:"t1NewBuyerRepurchaseRatio" dc:"投后 1 日新客复购率"` + T3NewBuyerRepurchaseRatio *float64 `json:"t3NewBuyerRepurchaseRatio" dc:"投后 3 日新客复购率"` + T7NewBuyerRepurchaseRatio *float64 `json:"t7NewBuyerRepurchaseRatio" dc:"投后 7 日新客复购率"` + T15NewBuyerRepurchaseRatio *float64 `json:"t15NewBuyerRepurchaseRatio" dc:"投后 15 日新客复购率"` + T30NewBuyerRepurchaseRatio *float64 `json:"t30NewBuyerRepurchaseRatio" dc:"投后 30 日新客复购率"` + T0ShopNewBuyerRoi *float64 `json:"t0ShopNewBuyerRoi" dc:"投后当日新客 ROI"` + T1ShopNewBuyerRoi *float64 `json:"t1ShopNewBuyerRoi" dc:"投后 1 日新客 ROI"` + T3ShopNewBuyerRoi *float64 `json:"t3ShopNewBuyerRoi" dc:"投后 3 日新客 ROI"` + T7ShopNewBuyerRoi *float64 `json:"t7ShopNewBuyerRoi" dc:"投后 7 日新客 ROI"` + T15ShopNewBuyerRoi *float64 `json:"t15ShopNewBuyerRoi" dc:"投后 15 日新客 ROI"` + T30ShopNewBuyerRoi *float64 `json:"t30ShopNewBuyerRoi" dc:"投后 30 日新客 ROI"` + CreateCardOrderCnt *int64 `json:"createCardOrderCnt" dc:"有效制卡订单数(回传时间)"` + ForwardTsCreateCardOrderCnt *int64 `json:"forwardTsCreateCardOrderCnt" dc:"有效制卡订单数(计费时间)"` + CreateCardOrderCost *float64 `json:"createCardOrderCost" dc:"有效制卡订单成本(回传时间)"` + ForwardTsCreateCardOrderCost *float64 `json:"forwardTsCreateCardOrderCost" dc:"有效制卡订单成本(计费时间)"` + ActivateCardOrderCnt *int64 `json:"activateCardOrderCnt" dc:"电话卡激活订单数(回传时间)"` + ForwardTsActivateCardOrderCnt *int64 `json:"forwardTsActivateCardOrderCnt" dc:"电话卡激活订单数(计费时间)"` + ActivateCardOrderCost *float64 `json:"activateCardOrderCost" dc:"电话卡激活订单成本(回传时间)"` + ForwardTsActivateCardOrderCost *float64 `json:"forwardTsActivateCardOrderCost" dc:"电话卡激活订单成本(计费时间)"` + CreateCardOrderRatio *float64 `json:"createCardOrderRatio" dc:"有效制卡订单率(回传时间)"` + ForwardTsCreateCardOrderRatio *float64 `json:"forwardTsCreateCardOrderRatio" dc:"有效制卡订单率(计费时间)"` + ActivateCardOrderCntRatio *float64 `json:"activateCardOrderCntRatio" dc:"电话卡激活率(回传时间)"` + ForwardTsActivateCardOrderRatio *float64 `json:"forwardTsActivateCardOrderRatio" dc:"电话卡激活率(计费时间)"` + LivePlayCnt *int64 `json:"livePlayCnt" dc:"全站直播观看数"` + ItemEntranceClkCnt *int64 `json:"itemEntranceClkCnt" dc:"小黄车点击数"` + ShowCnt *int64 `json:"showCnt" dc:"全站曝光"` + ReportDateStr string `json:"reportDateStr" v:"required" dc:"时间"` + CampaignId *int64 `json:"campaignId" dc:"计划 ID"` + CampaignName string `json:"campaignName" dc:"计划名称"` + UnitId *int64 `json:"unitId" dc:"单元 ID"` + UnitName string `json:"unitName" dc:"单元名称"` + CreativeId *int64 `json:"creativeId" dc:"创意 ID"` + CreativeName string `json:"creativeName" dc:"创意名称"` + CidActualRoiAfterSubsidy *float64 `json:"cidActualRoiAfterSubsidy" dc:"补贴后实际 ROI"` + CidCouponAmount *int64 `json:"cidCouponAmount" dc:"核销券金额"` + CidCouponCallbackPaidRefundAmount *int64 `json:"cidCouponCallbackPaidRefundAmount" dc:"退单有回传_核销券金额"` + CidVoucherCost *float64 `json:"cidVoucherCost" dc:"券成本"` +} + +type ListCampaignReportDetailReq struct { + g.Meta `path:"/listCampaignReportDetail" method:"get" tags:"广告效果明细报表" summary:"获取广告效果指标明细表列表" dc:"分页查询广告效果指标明细表列表"` + *beans.Page + ReportDateStr string `json:"reportDateStr" dc:"时间"` + CampaignId *int64 `json:"campaignId" dc:"计划 ID"` + UnitId *int64 `json:"unitId" dc:"单元 ID"` + CreativeId *int64 `json:"creativeId" dc:"创意 ID"` + AuthorId string `json:"authorId" dc:"直播用户快手 Id"` + MerchantProductId string `json:"merchantProductId" dc:"商品 ID"` + Keyword string `json:"keyword" dc:"关键字"` +} + +type ListCampaignReportDetailRes struct { + List []*CampaignReportDetailItem `json:"list" dc:"广告效果明细列表"` + Total int `json:"total" dc:"总数"` +} diff --git a/model/dto/copydata/campaign_report_sum_dto.go b/model/dto/copydata/campaign_report_sum_dto.go new file mode 100644 index 0000000..df4896a --- /dev/null +++ b/model/dto/copydata/campaign_report_sum_dto.go @@ -0,0 +1,237 @@ +package copydata + +import ( + "gitea.com/red-future/common/beans" + "github.com/gogf/gf/v2/frame/g" +) + +// CreateCampaignReportSumReq 创建广告计划效果指标表请求 +type CreateCampaignReportSumReq struct { + g.Meta `path:"/createCampaignReportSum" method:"post" tags:"广告计划报表" summary:"创建广告计划效果指标表" dc:"创建新的广告计划效果指标表"` + *CampaignReportSumItem +} + +// CreateCampaignReportSumRes 创建广告计划效果指标表响应 +type CreateCampaignReportSumRes struct { + Id int64 `json:"id" dc:"广告计划效果 ID"` +} + +// BatchCreateCampaignReportSumReq 批量创建广告计划效果指标表请求 +type BatchCreateCampaignReportSumReq struct { + g.Meta `path:"/batchCreateCampaignReportSum" method:"post" tags:"广告计划报表" summary:"批量创建广告计划效果指标表" dc:"批量创建广告计划效果指标表"` + Items []*CampaignReportSumItem `json:"items" v:"required" dc:"广告计划效果列表"` +} + +// BatchCreateCampaignReportSumRes 批量创建广告计划效果指标表响应 +type BatchCreateCampaignReportSumRes struct { + SuccessCount int64 `json:"successCount" dc:"成功数量"` + FailCount int64 `json:"failCount" dc:"失败数量"` + FailedItems []int64 `json:"failedItems" dc:"失败项索引"` +} + +// CampaignReportSumItem 广告计划效果指标表项 +type CampaignReportSumItem struct { + T0OrderPaymentAmt *float64 `json:"t0OrderPaymentAmt" dc:"当日总成交订单金额"` + CreativeMaterialType string `json:"creativeMaterialType" dc:"视频素材类型(视频:HORIZONTAL_SCREEN, VERTICAL_SCREEN, UNKNOWN_TYPE;图集:ATLAS;长图:ATLAS_VERTICAL)"` + LiveName string `json:"liveName" dc:"直播间名称"` + AuthorId string `json:"authorId" dc:"直播用户快手 Id"` + PicUrl string `json:"picUrl" dc:"图片 URL"` + PicName string `json:"picName" dc:"图片名称"` + PicId string `json:"picId" dc:"图片 Id"` + CoverUrl string `json:"coverUrl" dc:"封面 URL"` + CoverId *int64 `json:"coverId" dc:"封面 Id"` + ItemOrderConversionRatio *float64 `json:"itemOrderConversionRatio" dc:"转化率"` + ItemCardClickRatio *float64 `json:"itemCardClickRatio" dc:"点击率"` + ItemCardClkCnt *int64 `json:"itemCardClkCnt" dc:"商品卡点击数"` + LivePlayCntCost *float64 `json:"livePlayCntCost" dc:"直播间观看成本"` + AdMerchantFollowCost *float64 `json:"adMerchantFollowCost" dc:"涨粉成本"` + AdMerchantFollow *int64 `json:"adMerchantFollow" dc:"涨粉数"` + NetT0OrderCnt *int64 `json:"netT0OrderCnt" dc:"当日累计净成交订单数"` + NetT0Roi *float64 `json:"netT0Roi" dc:"净成交 ROI"` + NetT0Gmv *float64 `json:"netT0Gmv" dc:"净成交 GMV"` + PhotoName string `json:"photoName" dc:"视频名称"` + PhotoIdStr string `json:"photoIdStr" dc:"视频 id"` + PhotoId string `json:"photoId" dc:"视频 id"` + ModPriceSegment string `json:"modPriceSegment" dc:"设备价格区间"` + AgeSegment string `json:"ageSegment" dc:"年龄段"` + Province string `json:"province" dc:"省份名称"` + Gender string `json:"gender" dc:"性别"` + AdPhotoPlayedFiveRatio *float64 `json:"adPhotoPlayedFiveRatio" dc:"作品 5 秒播放率"` + AdPhotoPlayedThreeRatio *float64 `json:"adPhotoPlayedThreeRatio" dc:"作品 3 秒播放率"` + OrderSubmitRoi *float64 `json:"orderSubmitRoi" dc:"订单提交 ROI"` + OrderSubmitAmt *int64 `json:"orderSubmitAmt" dc:"外部订单金额"` + EventOrderSubmitCost *float64 `json:"eventOrderSubmitCost" dc:"订单提交成本"` + EventOrderSubmit *int64 `json:"eventOrderSubmit" dc:"订单提交数"` + EventOrderPaidRoi *float64 `json:"eventOrderPaidRoi" dc:"订单支付率"` + EventAppInvoked *int64 `json:"eventAppInvoked" dc:"唤起应用数"` + EventAddShoppingCart *int64 `json:"eventAddShoppingCart" dc:"添加购物车次数"` + ConversionNumCost *float64 `json:"conversionNumCost" dc:"转化成本(回传时间)"` + AdEffectivePlayNum *int64 `json:"adEffectivePlayNum" dc:"有效播放数"` + AdItemClick *int64 `json:"adItemClick" dc:"行为数"` + MerchantProductId string `json:"merchantProductId" dc:"商品 ID"` + CostTotal *float64 `json:"costTotal" dc:"花费"` + AdShow *int64 `json:"adShow" dc:"曝光数"` + AdShow1kCost *float64 `json:"adShow1kCost" dc:"平均千次广告曝光花费"` + Impression *int64 `json:"impression" dc:"封面曝光数"` + PhotoClick *int64 `json:"photoClick" dc:"封面点击数"` + PhotoClickRatio *float64 `json:"photoClickRatio" dc:"封面点击率"` + Click *int64 `json:"click" dc:"素材曝光数"` + ActionbarClick *int64 `json:"actionbarClick" dc:"行为数"` + ActionbarClickCost *float64 `json:"actionbarClickCost" dc:"行为成本"` + EspClickRatio *float64 `json:"espClickRatio" dc:"行为率"` + ActionRatio *float64 `json:"actionRatio" dc:"素材点击率"` + AdItemClickCount *int64 `json:"adItemClickCount" dc:"预约组件点击数"` + EspLivePlayedSeconds *int64 `json:"espLivePlayedSeconds" dc:"直播平均观看时长"` + PlayedThreeSeconds *int64 `json:"playedThreeSeconds" dc:"作品 3 秒播放数"` + Play3sRatio *float64 `json:"play3sRatio" dc:"作品 3 秒播放率"` + PlayedFiveSeconds *int64 `json:"playedFiveSeconds" dc:"作品 5 秒播放数"` + Play5sRatio *float64 `json:"play5sRatio" dc:"作品 5 秒播放率"` + PlayedEnd *int64 `json:"playedEnd" dc:"作品完播数"` + PlayEndRatio *float64 `json:"playEndRatio" dc:"作品完播率"` + Share *int64 `json:"share" dc:"作品分享数"` + Comment *int64 `json:"comment" dc:"作品评论数"` + Likes *int64 `json:"likes" dc:"作品点赞数"` + Report *int64 `json:"report" dc:"作品举报数"` + Block *int64 `json:"block" dc:"作品拉黑数"` + ItemNegative *int64 `json:"itemNegative" dc:"详情页减少此类作品数"` + LiveShare *int64 `json:"liveShare" dc:"直播送礼数"` + LiveComment *int64 `json:"liveComment" dc:"直播评论数"` + LiveReward *int64 `json:"liveReward" dc:"直播送礼数"` + EffectivePlayCount *int64 `json:"effectivePlayCount" dc:"有效播放数"` + EffectivePlayRatio *float64 `json:"effectivePlayRatio" dc:"有效播放率"` + ConversionNum *int64 `json:"conversionNum" dc:"转化数"` + ConversionCostEsp *float64 `json:"conversionCostEsp" dc:"转化成本"` + Roi *float64 `json:"roi" dc:"直接 ROI"` + Gmv *float64 `json:"gmv" dc:"直接 GMV"` + T0Gmv *float64 `json:"t0Gmv" dc:"当日累计 GMV"` + T1Gmv *float64 `json:"t1Gmv" dc:"次日累计 GMV"` + T7Gmv *float64 `json:"t7Gmv" dc:"7 日累计 GMV"` + T15Gmv *float64 `json:"t15Gmv" dc:"15 日累计 GMV"` + T30Gmv *float64 `json:"t30Gmv" dc:"30 日累计 GMV"` + T0Roi *float64 `json:"t0Roi" dc:"当日累计 ROI"` + T1Roi *float64 `json:"t1Roi" dc:"次日累计 ROI"` + T7Roi *float64 `json:"t7Roi" dc:"7 日累计 ROI"` + T15Roi *float64 `json:"t15Roi" dc:"15 日累计 ROI"` + T30Roi *float64 `json:"t30Roi" dc:"30 日累计 ROI"` + PaiedOrder *int64 `json:"paiedOrder" dc:"直接订单数"` + OrderRatio *float64 `json:"orderRatio" dc:"直接下单率"` + T0OrderCnt *int64 `json:"t0OrderCnt" dc:"当日累计订单数"` + T0OrderCntCost *float64 `json:"t0OrderCntCost" dc:"当日累计订单成本"` + T0OrderCntRatio *float64 `json:"t0OrderCntRatio" dc:"累计订单下单率"` + T1OrderCnt *int64 `json:"t1OrderCnt" dc:"次日累计订单数"` + T7OrderCnt *int64 `json:"t7OrderCnt" dc:"7 日累计订单数"` + T15OrderCnt *int64 `json:"t15OrderCnt" dc:"15 日累计订单数"` + T30OrderCnt *int64 `json:"t30OrderCnt" dc:"30 日累计订单数"` + MerchantRecoFans *int64 `json:"merchantRecoFans" dc:"涨粉数"` + T1Retention *float64 `json:"t1Retention" dc:"次日涨粉留存数"` + T7Retention *float64 `json:"t7Retention" dc:"7 日涨粉留存数"` + T15Retention *float64 `json:"t15Retention" dc:"15 日涨粉留存数"` + T30Retention *float64 `json:"t30Retention" dc:"30 日涨粉留存数"` + T1RetentionRatio *float64 `json:"t1RetentionRatio" dc:"次日涨粉留存率"` + T7RetentionRatio *float64 `json:"t7RetentionRatio" dc:"7 日涨粉留存率"` + T15RetentionRatio *float64 `json:"t15RetentionRatio" dc:"15 日涨粉留存率"` + T30RetentionRatio *float64 `json:"t30RetentionRatio" dc:"30 日涨粉留存率"` + ReservationSuccess *int64 `json:"reservationSuccess" dc:"直播预约成功数"` + ReservationCost *float64 `json:"reservationCost" dc:"直播预约成功成本"` + StandardLivePlayedStarted *int64 `json:"standardLivePlayedStarted" dc:"直播观看数"` + AdLivePlayCnt *int64 `json:"adLivePlayCnt" dc:"直播间人气数"` + AdLivePlayCntCost *float64 `json:"adLivePlayCntCost" dc:"直播间人气成本"` + LiveAudienceCost *float64 `json:"liveAudienceCost" dc:"直播观看成本"` + LiveEventGoodsView *int64 `json:"liveEventGoodsView" dc:"直播间商品点击数"` + GoodsClickRatio *float64 `json:"goodsClickRatio" dc:"直播间商品点击率"` + DirectAttrPlatNewBuyerCnt *int64 `json:"directAttrPlatNewBuyerCnt" dc:"直接平台新客"` + T30AttrPlatTotalBuyerCnt *int64 `json:"t30AttrPlatTotalBuyerCnt" dc:"30 日累计平台新客"` + DirectAttrSellerNewBuyerCnt *int64 `json:"directAttrSellerNewBuyerCnt" dc:"直接店铺新客"` + T30AttrSellerTotalBuyerCnt *int64 `json:"t30AttrSellerTotalBuyerCnt" dc:"30 日累计店铺新客"` + T3Gmv *float64 `json:"t3Gmv" dc:"3 日累计 GMV"` + T3OrderCnt *int64 `json:"t3OrderCnt" dc:"3 日累计订单数"` + T3Roi *float64 `json:"t3Roi" dc:"3 日累计 ROI"` + T7IndirectOrderAmt *float64 `json:"t7IndirectOrderAmt" dc:"7 日间接订单金额"` + T7IndirectOrderCnt *int64 `json:"t7IndirectOrderCnt" dc:"7 日间接订单数"` + FansT0GmvPerFans *float64 `json:"fansT0GmvPerFans" dc:"新增粉丝人均销售额"` + FansT3GmvPerFans *float64 `json:"fansT3GmvPerFans" dc:"3 日新增粉丝人均销售额"` + FansT7GmvPerFans *float64 `json:"fansT7GmvPerFans" dc:"7 日新增粉丝人均销售额"` + FansT15GmvPerFans *float64 `json:"fansT15GmvPerFans" dc:"15 日新增粉丝人均销售额"` + FansT30GmvPerFans *float64 `json:"fansT30GmvPerFans" dc:"30 日新增粉丝人均销售额"` + RecoFansCost *float64 `json:"recoFansCost" dc:"涨粉成本"` + QcpxWhiteboxDirectOrderPaymentAmt *float64 `json:"qcpxWhiteboxDirectOrderPaymentAmt" dc:"智能优惠券订单 GMV"` + QcpxWhiteboxDirectOrderCnt *int64 `json:"qcpxWhiteboxDirectOrderCnt" dc:"智能优惠券订单数"` + FansT0Gmv *float64 `json:"fansT0Gmv" dc:"涨粉当日 GMV"` + FansT1Gmv *float64 `json:"fansT1Gmv" dc:"涨粉次日 GMV"` + FansT7Gmv *float64 `json:"fansT7Gmv" dc:"涨粉 7 日 GMV"` + FansT15Gmv *float64 `json:"fansT15Gmv" dc:"涨粉 15 日 GMV"` + FansT30Gmv *float64 `json:"fansT30Gmv" dc:"涨粉 30 日 GMV"` + FansT0Roi *float64 `json:"fansT0Roi" dc:"涨粉当日 ROI"` + FansT1Roi *float64 `json:"fansT1Roi" dc:"涨粉次日 ROI"` + FansT7Roi *float64 `json:"fansT7Roi" dc:"涨粉 7 日 ROI"` + FansT15Roi *float64 `json:"fansT15Roi" dc:"涨粉 15 日 ROI"` + FansT30Roi *float64 `json:"fansT30Roi" dc:"涨粉 30 日 ROI"` + T0ShopNewBuyerOrderPaymentAmt *float64 `json:"t0ShopNewBuyerOrderPaymentAmt" dc:"当日新客 GMV"` + T1ShopNewBuyerOrderPaymentAmt *float64 `json:"t1ShopNewBuyerOrderPaymentAmt" dc:"投后 1 日新客 GMV"` + T3ShopNewBuyerOrderPaymentAmt *float64 `json:"t3ShopNewBuyerOrderPaymentAmt" dc:"投后 3 日新客 GMV"` + T7ShopNewBuyerOrderPaymentAmt *float64 `json:"t7ShopNewBuyerOrderPaymentAmt" dc:"投后 7 日新客 GMV"` + T15ShopNewBuyerOrderPaymentAmt *float64 `json:"t15ShopNewBuyerOrderPaymentAmt" dc:"投后 15 日新客 GMV"` + T30ShopNewBuyerOrderPaymentAmt *float64 `json:"t30ShopNewBuyerOrderPaymentAmt" dc:"投后 30 日新客 GMV"` + T0ShopNewBuyerOrderCnt *int64 `json:"t0ShopNewBuyerOrderCnt" dc:"当日新客成交订单量"` + T1ShopNewBuyerOrderCnt *int64 `json:"t1ShopNewBuyerOrderCnt" dc:"投后 1 日新客成交订单量"` + T3ShopNewBuyerOrderCnt *int64 `json:"t3ShopNewBuyerOrderCnt" dc:"投后 3 日新客成交订单量"` + T7ShopNewBuyerOrderCnt *int64 `json:"t7ShopNewBuyerOrderCnt" dc:"投后 7 日新客成交订单量"` + T15ShopNewBuyerOrderCnt *int64 `json:"t15ShopNewBuyerOrderCnt" dc:"投后 15 日新客成交订单量"` + T30ShopNewBuyerOrderCnt *int64 `json:"t30ShopNewBuyerOrderCnt" dc:"投后 30 日新客成交订单量"` + T1NewBuyerRepurchaseRatio *float64 `json:"t1NewBuyerRepurchaseRatio" dc:"投后 1 日新客复购率"` + T3NewBuyerRepurchaseRatio *float64 `json:"t3NewBuyerRepurchaseRatio" dc:"投后 3 日新客复购率"` + T7NewBuyerRepurchaseRatio *float64 `json:"t7NewBuyerRepurchaseRatio" dc:"投后 7 日新客复购率"` + T15NewBuyerRepurchaseRatio *float64 `json:"t15NewBuyerRepurchaseRatio" dc:"投后 15 日新客复购率"` + T30NewBuyerRepurchaseRatio *float64 `json:"t30NewBuyerRepurchaseRatio" dc:"投后 30 日新客复购率"` + T0ShopNewBuyerRoi *float64 `json:"t0ShopNewBuyerRoi" dc:"投后当日新客 ROI"` + T1ShopNewBuyerRoi *float64 `json:"t1ShopNewBuyerRoi" dc:"投后 1 日新客 ROI"` + T3ShopNewBuyerRoi *float64 `json:"t3ShopNewBuyerRoi" dc:"投后 3 日新客 ROI"` + T7ShopNewBuyerRoi *float64 `json:"t7ShopNewBuyerRoi" dc:"投后 7 日新客 ROI"` + T15ShopNewBuyerRoi *float64 `json:"t15ShopNewBuyerRoi" dc:"投后 15 日新客 ROI"` + T30ShopNewBuyerRoi *float64 `json:"t30ShopNewBuyerRoi" dc:"投后 30 日新客 ROI"` + CreateCardOrderCnt *int64 `json:"createCardOrderCnt" dc:"有效制卡订单数(回传时间)"` + ForwardTsCreateCardOrderCnt *int64 `json:"forwardTsCreateCardOrderCnt" dc:"有效制卡订单数(计费时间)"` + CreateCardOrderCost *float64 `json:"createCardOrderCost" dc:"有效制卡订单成本(回传时间)"` + ForwardTsCreateCardOrderCost *float64 `json:"forwardTsCreateCardOrderCost" dc:"有效制卡订单成本(计费时间)"` + ActivateCardOrderCnt *int64 `json:"activateCardOrderCnt" dc:"电话卡激活订单数(回传时间)"` + ForwardTsActivateCardOrderCnt *int64 `json:"forwardTsActivateCardOrderCnt" dc:"电话卡激活订单数(计费时间)"` + ActivateCardOrderCost *float64 `json:"activateCardOrderCost" dc:"电话卡激活订单成本(回传时间)"` + ForwardTsActivateCardOrderCost *float64 `json:"forwardTsActivateCardOrderCost" dc:"电话卡激活订单成本(计费时间)"` + CreateCardOrderRatio *float64 `json:"createCardOrderRatio" dc:"有效制卡订单率(回传时间)"` + ForwardTsCreateCardOrderRatio *float64 `json:"forwardTsCreateCardOrderRatio" dc:"有效制卡订单率(计费时间)"` + ActivateCardOrderCntRatio *float64 `json:"activateCardOrderCntRatio" dc:"电话卡激活率(回传时间)"` + ForwardTsActivateCardOrderRatio *float64 `json:"forwardTsActivateCardOrderRatio" dc:"电话卡激活率(计费时间)"` + LivePlayCnt *int64 `json:"livePlayCnt" dc:"全站直播观看数"` + ItemEntranceClkCnt *int64 `json:"itemEntranceClkCnt" dc:"小黄车点击数"` + ShowCnt *int64 `json:"showCnt" dc:"全站曝光"` + ReportDateStr string `json:"reportDateStr" v:"required" dc:"时间"` + CampaignId *int64 `json:"campaignId" dc:"计划 ID"` + CampaignName string `json:"campaignName" dc:"计划名称"` + UnitId *int64 `json:"unitId" dc:"单元 ID"` + UnitName string `json:"unitName" dc:"单元名称"` + CreativeId *int64 `json:"creativeId" dc:"创意 ID"` + CreativeName string `json:"creativeName" dc:"创意名称"` + CidActualRoiAfterSubsidy *float64 `json:"cidActualRoiAfterSubsidy" dc:"补贴后实际 ROI"` + CidCouponAmount *int64 `json:"cidCouponAmount" dc:"核销券金额"` + CidCouponCallbackPaidRefundAmount *int64 `json:"cidCouponCallbackPaidRefundAmount" dc:"退单有回传_核销券金额"` + CidVoucherCost *float64 `json:"cidVoucherCost" dc:"券成本"` +} + +// ListCampaignReportSumReq 获取广告计划效果指标表列表请求 +type ListCampaignReportSumReq struct { + g.Meta `path:"/listCampaignReportSum" method:"get" tags:"广告计划报表" summary:"获取广告计划效果指标表列表" dc:"分页查询广告计划效果指标表列表"` + *beans.Page + ReportDateStr string `json:"reportDateStr" dc:"时间"` + CampaignId *int64 `json:"campaignId" dc:"计划 ID"` + UnitId *int64 `json:"unitId" dc:"单元 ID"` + CreativeId *int64 `json:"creativeId" dc:"创意 ID"` + AuthorId string `json:"authorId" dc:"直播用户快手 Id"` + MerchantProductId string `json:"merchantProductId" dc:"商品 ID"` + Keyword string `json:"keyword" dc:"关键字(搜索直播间名称、视频名称等)"` +} + +// ListCampaignReportSumRes 获取广告计划效果指标表列表响应 +type ListCampaignReportSumRes struct { + List []*CampaignReportSumItem `json:"list" dc:"广告计划效果列表"` + Total int `json:"total" dc:"总数"` +} diff --git a/model/entity/copydata/campaign_report_detail.go b/model/entity/copydata/campaign_report_detail.go new file mode 100644 index 0000000..aed3089 --- /dev/null +++ b/model/entity/copydata/campaign_report_detail.go @@ -0,0 +1,582 @@ +package copydata + +import "gitea.com/red-future/common/beans" + +// CampaignReportDetail 广告效果指标明细表实体 +type CampaignReportDetail struct { + beans.SQLBaseDO `orm:",inherit"` + + T0OrderPaymentAmt *float64 `orm:"t0_order_payment_amt" json:"t0OrderPaymentAmt" description:"当日总成交订单金额"` + CreativeMaterialType string `orm:"creative_material_type" json:"creativeMaterialType" description:"视频素材类型"` + LiveName string `orm:"live_name" json:"liveName" description:"直播间名称"` + AuthorId string `orm:"author_id" json:"authorId" description:"直播用户快手 Id"` + PicUrl string `orm:"pic_url" json:"picUrl" description:"图片 URL"` + PicName string `orm:"pic_name" json:"picName" description:"图片名称"` + PicId string `orm:"pic_id" json:"picId" description:"图片 Id"` + CoverUrl string `orm:"cover_url" json:"coverUrl" description:"封面 URL"` + CoverId *int64 `orm:"cover_id" json:"coverId" description:"封面 Id"` + ItemOrderConversionRatio *float64 `orm:"item_order_conversion_ratio" json:"itemOrderConversionRatio" description:"转化率"` + ItemCardClickRatio *float64 `orm:"item_card_click_ratio" json:"itemCardClickRatio" description:"点击率"` + ItemCardClkCnt *int64 `orm:"item_card_clk_cnt" json:"itemCardClkCnt" description:"商品卡点击数"` + LivePlayCntCost *float64 `orm:"live_play_cnt_cost" json:"livePlayCntCost" description:"直播间观看成本"` + AdMerchantFollowCost *float64 `orm:"ad_merchant_follow_cost" json:"adMerchantFollowCost" description:"涨粉成本"` + AdMerchantFollow *int64 `orm:"ad_merchant_follow" json:"adMerchantFollow" description:"涨粉数"` + NetT0OrderCnt *int64 `orm:"net_t0_order_cnt" json:"netT0OrderCnt" description:"当日累计净成交订单数"` + NetT0Roi *float64 `orm:"net_t0_roi" json:"netT0Roi" description:"净成交 ROI"` + NetT0Gmv *float64 `orm:"net_t0_gmv" json:"netT0Gmv" description:"净成交 GMV"` + PhotoName string `orm:"photo_name" json:"photoName" description:"视频名称"` + PhotoIdStr string `orm:"photo_id_str" json:"photoIdStr" description:"视频 id"` + PhotoId string `orm:"photo_id" json:"photoId" description:"视频 id"` + ModPriceSegment string `orm:"mod_price_segment" json:"modPriceSegment" description:"设备价格区间"` + AgeSegment string `orm:"age_segment" json:"ageSegment" description:"年龄段"` + Province string `orm:"province" json:"province" description:"省份名称"` + Gender string `orm:"gender" json:"gender" description:"性别"` + AdPhotoPlayedFiveRatio *float64 `orm:"ad_photo_played_five_ratio" json:"adPhotoPlayedFiveRatio" description:"作品 5 秒播放率"` + AdPhotoPlayedThreeRatio *float64 `orm:"ad_photo_played_three_ratio" json:"adPhotoPlayedThreeRatio" description:"作品 3 秒播放率"` + OrderSubmitRoi *float64 `orm:"order_submit_roi" json:"orderSubmitRoi" description:"订单提交 ROI"` + OrderSubmitAmt *int64 `orm:"order_submit_amt" json:"orderSubmitAmt" description:"外部订单金额"` + EventOrderSubmitCost *float64 `orm:"event_order_submit_cost" json:"eventOrderSubmitCost" description:"订单提交成本"` + EventOrderSubmit *int64 `orm:"event_order_submit" json:"eventOrderSubmit" description:"订单提交数"` + EventOrderPaidRoi *float64 `orm:"event_order_paid_roi" json:"eventOrderPaidRoi" description:"订单支付率"` + EventAppInvoked *int64 `orm:"event_app_invoked" json:"eventAppInvoked" description:"唤起应用数"` + EventAddShoppingCart *int64 `orm:"event_add_shopping_cart" json:"eventAddShoppingCart" description:"添加购物车次数"` + ConversionNumCost *float64 `orm:"conversion_num_cost" json:"conversionNumCost" description:"转化成本(回传时间)"` + AdEffectivePlayNum *int64 `orm:"ad_effective_play_num" json:"adEffectivePlayNum" description:"有效播放数"` + AdItemClick *int64 `orm:"ad_item_click" json:"adItemClick" description:"行为数"` + MerchantProductId string `orm:"merchant_product_id" json:"merchantProductId" description:"商品 ID"` + CostTotal *float64 `orm:"cost_total" json:"costTotal" description:"花费"` + AdShow *int64 `orm:"ad_show" json:"adShow" description:"曝光数"` + AdShow1kCost *float64 `orm:"ad_show1k_cost" json:"adShow1kCost" description:"平均千次广告曝光花费"` + Impression *int64 `orm:"impression" json:"impression" description:"封面曝光数"` + PhotoClick *int64 `orm:"photo_click" json:"photoClick" description:"封面点击数"` + PhotoClickRatio *float64 `orm:"photo_click_ratio" json:"photoClickRatio" description:"封面点击率"` + Click *int64 `orm:"click" json:"click" description:"素材曝光数"` + ActionbarClick *int64 `orm:"actionbar_click" json:"actionbarClick" description:"行为数"` + ActionbarClickCost *float64 `orm:"actionbar_click_cost" json:"actionbarClickCost" description:"行为成本"` + EspClickRatio *float64 `orm:"esp_click_ratio" json:"espClickRatio" description:"行为率"` + ActionRatio *float64 `orm:"action_ratio" json:"actionRatio" description:"素材点击率"` + AdItemClickCount *int64 `orm:"ad_item_click_count" json:"adItemClickCount" description:"预约组件点击数"` + EspLivePlayedSeconds *int64 `orm:"esp_live_played_seconds" json:"espLivePlayedSeconds" description:"直播平均观看时长"` + PlayedThreeSeconds *int64 `orm:"played_three_seconds" json:"playedThreeSeconds" description:"作品 3 秒播放数"` + Play3sRatio *float64 `orm:"play3s_ratio" json:"play3sRatio" description:"作品 3 秒播放率"` + PlayedFiveSeconds *int64 `orm:"played_five_seconds" json:"playedFiveSeconds" description:"作品 5 秒播放数"` + Play5sRatio *float64 `orm:"play5s_ratio" json:"play5sRatio" description:"作品 5 秒播放率"` + PlayedEnd *int64 `orm:"played_end" json:"playedEnd" description:"作品完播数"` + PlayEndRatio *float64 `orm:"play_end_ratio" json:"playEndRatio" description:"作品完播率"` + Share *int64 `orm:"share" json:"share" description:"作品分享数"` + Comment *int64 `orm:"comment" json:"comment" description:"作品评论数"` + Likes *int64 `orm:"likes" json:"likes" description:"作品点赞数"` + Report *int64 `orm:"report" json:"report" description:"作品举报数"` + Block *int64 `orm:"block" json:"block" description:"作品拉黑数"` + ItemNegative *int64 `orm:"item_negative" json:"itemNegative" description:"详情页减少此类作品数"` + LiveShare *int64 `orm:"live_share" json:"liveShare" description:"直播送礼数"` + LiveComment *int64 `orm:"live_comment" json:"liveComment" description:"直播评论数"` + LiveReward *int64 `orm:"live_reward" json:"liveReward" description:"直播送礼数"` + EffectivePlayCount *int64 `orm:"effective_play_count" json:"effectivePlayCount" description:"有效播放数"` + EffectivePlayRatio *float64 `orm:"effective_play_ratio" json:"effectivePlayRatio" description:"有效播放率"` + ConversionNum *int64 `orm:"conversion_num" json:"conversionNum" description:"转化数"` + ConversionCostEsp *float64 `orm:"conversion_cost_esp" json:"conversionCostEsp" description:"转化成本"` + Roi *float64 `orm:"roi" json:"roi" description:"直接 ROI"` + Gmv *float64 `orm:"gmv" json:"gmv" description:"直接 GMV"` + T0Gmv *float64 `orm:"t0_gmv" json:"t0Gmv" description:"当日累计 GMV"` + T1Gmv *float64 `orm:"t1_gmv" json:"t1Gmv" description:"次日累计 GMV"` + T7Gmv *float64 `orm:"t7_gmv" json:"t7Gmv" description:"7 日累计 GMV"` + T15Gmv *float64 `orm:"t15_gmv" json:"t15Gmv" description:"15 日累计 GMV"` + T30Gmv *float64 `orm:"t30_gmv" json:"t30Gmv" description:"30 日累计 GMV"` + T0Roi *float64 `orm:"t0_roi" json:"t0Roi" description:"当日累计 ROI"` + T1Roi *float64 `orm:"t1_roi" json:"t1Roi" description:"次日累计 ROI"` + T7Roi *float64 `orm:"t7_roi" json:"t7Roi" description:"7 日累计 ROI"` + T15Roi *float64 `orm:"t15_roi" json:"t15Roi" description:"15 日累计 ROI"` + T30Roi *float64 `orm:"t30_roi" json:"t30Roi" description:"30 日累计 ROI"` + PaiedOrder *int64 `orm:"paied_order" json:"paiedOrder" description:"直接订单数"` + OrderRatio *float64 `orm:"order_ratio" json:"orderRatio" description:"直接下单率"` + T0OrderCnt *int64 `orm:"t0_order_cnt" json:"t0OrderCnt" description:"当日累计订单数"` + T0OrderCntCost *float64 `orm:"t0_order_cnt_cost" json:"t0OrderCntCost" description:"当日累计订单成本"` + T0OrderCntRatio *float64 `orm:"t0_order_cnt_ratio" json:"t0OrderCntRatio" description:"累计订单下单率"` + T1OrderCnt *int64 `orm:"t1_order_cnt" json:"t1OrderCnt" description:"次日累计订单数"` + T7OrderCnt *int64 `orm:"t7_order_cnt" json:"t7OrderCnt" description:"7 日累计订单数"` + T15OrderCnt *int64 `orm:"t15_order_cnt" json:"t15OrderCnt" description:"15 日累计订单数"` + T30OrderCnt *int64 `orm:"t30_order_cnt" json:"t30OrderCnt" description:"30 日累计订单数"` + MerchantRecoFans *int64 `orm:"merchant_reco_fans" json:"merchantRecoFans" description:"涨粉数"` + T1Retention *float64 `orm:"t1_retention" json:"t1Retention" description:"次日涨粉留存数"` + T7Retention *float64 `orm:"t7_retention" json:"t7Retention" description:"7 日涨粉留存数"` + T15Retention *float64 `orm:"t15_retention" json:"t15Retention" description:"15 日涨粉留存数"` + T30Retention *float64 `orm:"t30_retention" json:"t30Retention" description:"30 日涨粉留存数"` + T1RetentionRatio *float64 `orm:"t1_retention_ratio" json:"t1RetentionRatio" description:"次日涨粉留存率"` + T7RetentionRatio *float64 `orm:"t7_retention_ratio" json:"t7RetentionRatio" description:"7 日涨粉留存率"` + T15RetentionRatio *float64 `orm:"t15_retention_ratio" json:"t15RetentionRatio" description:"15 日涨粉留存率"` + T30RetentionRatio *float64 `orm:"t30_retention_ratio" json:"t30RetentionRatio" description:"30 日涨粉留存率"` + ReservationSuccess *int64 `orm:"reservation_success" json:"reservationSuccess" description:"直播预约成功数"` + ReservationCost *float64 `orm:"reservation_cost" json:"reservationCost" description:"直播预约成功成本"` + StandardLivePlayedStarted *int64 `orm:"standard_live_played_started" json:"standardLivePlayedStarted" description:"直播观看数"` + AdLivePlayCnt *int64 `orm:"ad_live_play_cnt" json:"adLivePlayCnt" description:"直播间人气数"` + AdLivePlayCntCost *float64 `orm:"ad_live_play_cnt_cost" json:"adLivePlayCntCost" description:"直播间人气成本"` + LiveAudienceCost *float64 `orm:"live_audience_cost" json:"liveAudienceCost" description:"直播观看成本"` + LiveEventGoodsView *int64 `orm:"live_event_goods_view" json:"liveEventGoodsView" description:"直播间商品点击数"` + GoodsClickRatio *float64 `orm:"goods_click_ratio" json:"goodsClickRatio" description:"直播间商品点击率"` + DirectAttrPlatNewBuyerCnt *int64 `orm:"direct_attr_plat_new_buyer_cnt" json:"directAttrPlatNewBuyerCnt" description:"直接平台新客"` + T30AttrPlatTotalBuyerCnt *int64 `orm:"t30_attr_plat_total_buyer_cnt" json:"t30AttrPlatTotalBuyerCnt" description:"30 日累计平台新客"` + DirectAttrSellerNewBuyerCnt *int64 `orm:"direct_attr_seller_new_buyer_cnt" json:"directAttrSellerNewBuyerCnt" description:"直接店铺新客"` + T30AttrSellerTotalBuyerCnt *int64 `orm:"t30_attr_seller_total_buyer_cnt" json:"t30AttrSellerTotalBuyerCnt" description:"30 日累计店铺新客"` + T3Gmv *float64 `orm:"t3_gmv" json:"t3Gmv" description:"3 日累计 GMV"` + T3OrderCnt *int64 `orm:"t3_order_cnt" json:"t3OrderCnt" description:"3 日累计订单数"` + T3Roi *float64 `orm:"t3_roi" json:"t3Roi" description:"3 日累计 ROI"` + T7IndirectOrderAmt *float64 `orm:"t7_indirect_order_amt" json:"t7IndirectOrderAmt" description:"7 日间接订单金额"` + T7IndirectOrderCnt *int64 `orm:"t7_indirect_order_cnt" json:"t7IndirectOrderCnt" description:"7 日间接订单数"` + FansT0GmvPerFans *float64 `orm:"fans_t0_gmv_per_fans" json:"fansT0GmvPerFans" description:"新增粉丝人均销售额"` + FansT3GmvPerFans *float64 `orm:"fans_t3_gmv_per_fans" json:"fansT3GmvPerFans" description:"3 日新增粉丝人均销售额"` + FansT7GmvPerFans *float64 `orm:"fans_t7_gmv_per_fans" json:"fansT7GmvPerFans" description:"7 日新增粉丝人均销售额"` + FansT15GmvPerFans *float64 `orm:"fans_t15_gmv_per_fans" json:"fansT15GmvPerFans" description:"15 日新增粉丝人均销售额"` + FansT30GmvPerFans *float64 `orm:"fans_t30_gmv_per_fans" json:"fansT30GmvPerFans" description:"30 日新增粉丝人均销售额"` + RecoFansCost *float64 `orm:"reco_fans_cost" json:"recoFansCost" description:"涨粉成本"` + QcpxWhiteboxDirectOrderPaymentAmt *float64 `orm:"qcpx_whitebox_direct_order_payment_amt" json:"qcpxWhiteboxDirectOrderPaymentAmt" description:"智能优惠券订单 GMV"` + QcpxWhiteboxDirectOrderCnt *int64 `orm:"qcpx_whitebox_direct_order_cnt" json:"qcpxWhiteboxDirectOrderCnt" description:"智能优惠券订单数"` + FansT0Gmv *float64 `orm:"fans_t0_gmv" json:"fansT0Gmv" description:"涨粉当日 GMV"` + FansT1Gmv *float64 `orm:"fans_t1_gmv" json:"fansT1Gmv" description:"涨粉次日 GMV"` + FansT7Gmv *float64 `orm:"fans_t7_gmv" json:"fansT7Gmv" description:"涨粉 7 日 GMV"` + FansT15Gmv *float64 `orm:"fans_t15_gmv" json:"fansT15Gmv" description:"涨粉 15 日 GMV"` + FansT30Gmv *float64 `orm:"fans_t30_gmv" json:"fansT30Gmv" description:"涨粉 30 日 GMV"` + FansT0Roi *float64 `orm:"fans_t0_roi" json:"fansT0Roi" description:"涨粉当日 ROI"` + FansT1Roi *float64 `orm:"fans_t1_roi" json:"fansT1Roi" description:"涨粉次日 ROI"` + FansT7Roi *float64 `orm:"fans_t7_roi" json:"fansT7Roi" description:"涨粉 7 日 ROI"` + FansT15Roi *float64 `orm:"fans_t15_roi" json:"fansT15Roi" description:"涨粉 15 日 ROI"` + FansT30Roi *float64 `orm:"fans_t30_roi" json:"fansT30Roi" description:"涨粉 30 日 ROI"` + T0ShopNewBuyerOrderPaymentAmt *float64 `orm:"t0_shop_new_buyer_order_payment_amt" json:"t0ShopNewBuyerOrderPaymentAmt" description:"当日新客 GMV"` + T1ShopNewBuyerOrderPaymentAmt *float64 `orm:"t1_shop_new_buyer_order_payment_amt" json:"t1ShopNewBuyerOrderPaymentAmt" description:"投后 1 日新客 GMV"` + T3ShopNewBuyerOrderPaymentAmt *float64 `orm:"t3_shop_new_buyer_order_payment_amt" json:"t3ShopNewBuyerOrderPaymentAmt" description:"投后 3 日新客 GMV"` + T7ShopNewBuyerOrderPaymentAmt *float64 `orm:"t7_shop_new_buyer_order_payment_amt" json:"t7ShopNewBuyerOrderPaymentAmt" description:"投后 7 日新客 GMV"` + T15ShopNewBuyerOrderPaymentAmt *float64 `orm:"t15_shop_new_buyer_order_payment_amt" json:"t15ShopNewBuyerOrderPaymentAmt" description:"投后 15 日新客 GMV"` + T30ShopNewBuyerOrderPaymentAmt *float64 `orm:"t30_shop_new_buyer_order_payment_amt" json:"t30ShopNewBuyerOrderPaymentAmt" description:"投后 30 日新客 GMV"` + T0ShopNewBuyerOrderCnt *int64 `orm:"t0_shop_new_buyer_order_cnt" json:"t0ShopNewBuyerOrderCnt" description:"当日新客成交订单量"` + T1ShopNewBuyerOrderCnt *int64 `orm:"t1_shop_new_buyer_order_cnt" json:"t1ShopNewBuyerOrderCnt" description:"投后 1 日新客成交订单量"` + T3ShopNewBuyerOrderCnt *int64 `orm:"t3_shop_new_buyer_order_cnt" json:"t3ShopNewBuyerOrderCnt" description:"投后 3 日新客成交订单量"` + T7ShopNewBuyerOrderCnt *int64 `orm:"t7_shop_new_buyer_order_cnt" json:"t7ShopNewBuyerOrderCnt" description:"投后 7 日新客成交订单量"` + T15ShopNewBuyerOrderCnt *int64 `orm:"t15_shop_new_buyer_order_cnt" json:"t15ShopNewBuyerOrderCnt" description:"投后 15 日新客成交订单量"` + T30ShopNewBuyerOrderCnt *int64 `orm:"t30_shop_new_buyer_order_cnt" json:"t30ShopNewBuyerOrderCnt" description:"投后 30 日新客成交订单量"` + T1NewBuyerRepurchaseRatio *float64 `orm:"t1_new_buyer_repurchase_ratio" json:"t1NewBuyerRepurchaseRatio" description:"投后 1 日新客复购率"` + T3NewBuyerRepurchaseRatio *float64 `orm:"t3_new_buyer_repurchase_ratio" json:"t3NewBuyerRepurchaseRatio" description:"投后 3 日新客复购率"` + T7NewBuyerRepurchaseRatio *float64 `orm:"t7_new_buyer_repurchase_ratio" json:"t7NewBuyerRepurchaseRatio" description:"投后 7 日新客复购率"` + T15NewBuyerRepurchaseRatio *float64 `orm:"t15_new_buyer_repurchase_ratio" json:"t15NewBuyerRepurchaseRatio" description:"投后 15 日新客复购率"` + T30NewBuyerRepurchaseRatio *float64 `orm:"t30_new_buyer_repurchase_ratio" json:"t30NewBuyerRepurchaseRatio" description:"投后 30 日新客复购率"` + T0ShopNewBuyerRoi *float64 `orm:"t0_shop_new_buyer_roi" json:"t0ShopNewBuyerRoi" description:"投后当日新客 ROI"` + T1ShopNewBuyerRoi *float64 `orm:"t1_shop_new_buyer_roi" json:"t1ShopNewBuyerRoi" description:"投后 1 日新客 ROI"` + T3ShopNewBuyerRoi *float64 `orm:"t3_shop_new_buyer_roi" json:"t3ShopNewBuyerRoi" description:"投后 3 日新客 ROI"` + T7ShopNewBuyerRoi *float64 `orm:"t7_shop_new_buyer_roi" json:"t7ShopNewBuyerRoi" description:"投后 7 日新客 ROI"` + T15ShopNewBuyerRoi *float64 `orm:"t15_shop_new_buyer_roi" json:"t15ShopNewBuyerRoi" description:"投后 15 日新客 ROI"` + T30ShopNewBuyerRoi *float64 `orm:"t30_shop_new_buyer_roi" json:"t30ShopNewBuyerRoi" description:"投后 30 日新客 ROI"` + CreateCardOrderCnt *int64 `orm:"create_card_order_cnt" json:"createCardOrderCnt" description:"有效制卡订单数(回传时间)"` + ForwardTsCreateCardOrderCnt *int64 `orm:"forward_ts_create_card_order_cnt" json:"forwardTsCreateCardOrderCnt" description:"有效制卡订单数(计费时间)"` + CreateCardOrderCost *float64 `orm:"create_card_order_cost" json:"createCardOrderCost" description:"有效制卡订单成本(回传时间)"` + ForwardTsCreateCardOrderCost *float64 `orm:"forward_ts_create_card_order_cost" json:"forwardTsCreateCardOrderCost" description:"有效制卡订单成本(计费时间)"` + ActivateCardOrderCnt *int64 `orm:"activate_card_order_cnt" json:"activateCardOrderCnt" description:"电话卡激活订单数(回传时间)"` + ForwardTsActivateCardOrderCnt *int64 `orm:"forward_ts_activate_card_order_cnt" json:"forwardTsActivateCardOrderCnt" description:"电话卡激活订单数(计费时间)"` + ActivateCardOrderCost *float64 `orm:"activate_card_order_cost" json:"activateCardOrderCost" description:"电话卡激活订单成本(回传时间)"` + ForwardTsActivateCardOrderCost *float64 `orm:"forward_ts_activate_card_order_cost" json:"forwardTsActivateCardOrderCost" description:"电话卡激活订单成本(计费时间)"` + CreateCardOrderRatio *float64 `orm:"create_card_order_ratio" json:"createCardOrderRatio" description:"有效制卡订单率(回传时间)"` + ForwardTsCreateCardOrderRatio *float64 `orm:"forward_ts_create_card_order_ratio" json:"forwardTsCreateCardOrderRatio" description:"有效制卡订单率(计费时间)"` + ActivateCardOrderCntRatio *float64 `orm:"activate_card_order_cnt_ratio" json:"activateCardOrderCntRatio" description:"电话卡激活率(回传时间)"` + ForwardTsActivateCardOrderRatio *float64 `orm:"forward_ts_activate_card_order_ratio" json:"forwardTsActivateCardOrderRatio" description:"电话卡激活率(计费时间)"` + LivePlayCnt *int64 `orm:"live_play_cnt" json:"livePlayCnt" description:"全站直播观看数"` + ItemEntranceClkCnt *int64 `orm:"item_entrance_clk_cnt" json:"itemEntranceClkCnt" description:"小黄车点击数"` + ShowCnt *int64 `orm:"show_cnt" json:"showCnt" description:"全站曝光"` + ReportDateStr string `orm:"report_date_str" json:"reportDateStr" description:"时间"` + CampaignId *int64 `orm:"campaign_id" json:"campaignId" description:"计划 ID"` + CampaignName string `orm:"campaign_name" json:"campaignName" description:"计划名称"` + UnitId *int64 `orm:"unit_id" json:"unitId" description:"单元 ID"` + UnitName string `orm:"unit_name" json:"unitName" description:"单元名称"` + CreativeId *int64 `orm:"creative_id" json:"creativeId" description:"创意 ID"` + CreativeName string `orm:"creative_name" json:"creativeName" description:"创意名称"` + CidActualRoiAfterSubsidy *float64 `orm:"cid_actual_roi_after_subsidy" json:"cidActualRoiAfterSubsidy" description:"补贴后实际 ROI"` + CidCouponAmount *int64 `orm:"cid_coupon_amount" json:"cidCouponAmount" description:"核销券金额"` + CidCouponCallbackPaidRefundAmount *int64 `orm:"cid_coupon_callback_paid_refund_amount" json:"cidCouponCallbackPaidRefundAmount" description:"退单有回传_核销券金额"` + CidVoucherCost *float64 `orm:"cid_voucher_cost" json:"cidVoucherCost" description:"券成本"` +} + +// CampaignReportDetailCol 广告效果指标明细表字段定义 +type CampaignReportDetailCol struct { + beans.SQLBaseCol + T0OrderPaymentAmt string + CreativeMaterialType string + LiveName string + AuthorId string + PicUrl string + PicName string + PicId string + CoverUrl string + CoverId string + ItemOrderConversionRatio string + ItemCardClickRatio string + ItemCardClkCnt string + LivePlayCntCost string + AdMerchantFollowCost string + AdMerchantFollow string + NetT0OrderCnt string + NetT0Roi string + NetT0Gmv string + PhotoName string + PhotoIdStr string + PhotoId string + ModPriceSegment string + AgeSegment string + Province string + Gender string + AdPhotoPlayedFiveRatio string + AdPhotoPlayedThreeRatio string + OrderSubmitRoi string + OrderSubmitAmt string + EventOrderSubmitCost string + EventOrderSubmit string + EventOrderPaidRoi string + EventAppInvoked string + EventAddShoppingCart string + ConversionNumCost string + AdEffectivePlayNum string + AdItemClick string + MerchantProductId string + CostTotal string + AdShow string + AdShow1kCost string + Impression string + PhotoClick string + PhotoClickRatio string + Click string + ActionbarClick string + ActionbarClickCost string + EspClickRatio string + ActionRatio string + AdItemClickCount string + EspLivePlayedSeconds string + PlayedThreeSeconds string + Play3sRatio string + PlayedFiveSeconds string + Play5sRatio string + PlayedEnd string + PlayEndRatio string + Share string + Comment string + Likes string + Report string + Block string + ItemNegative string + LiveShare string + LiveComment string + LiveReward string + EffectivePlayCount string + EffectivePlayRatio string + ConversionNum string + ConversionCostEsp string + Roi string + Gmv string + T0Gmv string + T1Gmv string + T7Gmv string + T15Gmv string + T30Gmv string + T0Roi string + T1Roi string + T7Roi string + T15Roi string + T30Roi string + PaiedOrder string + OrderRatio string + T0OrderCnt string + T0OrderCntCost string + T0OrderCntRatio string + T1OrderCnt string + T7OrderCnt string + T15OrderCnt string + T30OrderCnt string + MerchantRecoFans string + T1Retention string + T7Retention string + T15Retention string + T30Retention string + T1RetentionRatio string + T7RetentionRatio string + T15RetentionRatio string + T30RetentionRatio string + ReservationSuccess string + ReservationCost string + StandardLivePlayedStarted string + AdLivePlayCnt string + AdLivePlayCntCost string + LiveAudienceCost string + LiveEventGoodsView string + GoodsClickRatio string + DirectAttrPlatNewBuyerCnt string + T30AttrPlatTotalBuyerCnt string + DirectAttrSellerNewBuyerCnt string + T30AttrSellerTotalBuyerCnt string + T3Gmv string + T3OrderCnt string + T3Roi string + T7IndirectOrderAmt string + T7IndirectOrderCnt string + FansT0GmvPerFans string + FansT3GmvPerFans string + FansT7GmvPerFans string + FansT15GmvPerFans string + FansT30GmvPerFans string + RecoFansCost string + QcpxWhiteboxDirectOrderPaymentAmt string + QcpxWhiteboxDirectOrderCnt string + FansT0Gmv string + FansT1Gmv string + FansT7Gmv string + FansT15Gmv string + FansT30Gmv string + FansT0Roi string + FansT1Roi string + FansT7Roi string + FansT15Roi string + FansT30Roi string + T0ShopNewBuyerOrderPaymentAmt string + T1ShopNewBuyerOrderPaymentAmt string + T3ShopNewBuyerOrderPaymentAmt string + T7ShopNewBuyerOrderPaymentAmt string + T15ShopNewBuyerOrderPaymentAmt string + T30ShopNewBuyerOrderPaymentAmt string + T0ShopNewBuyerOrderCnt string + T1ShopNewBuyerOrderCnt string + T3ShopNewBuyerOrderCnt string + T7ShopNewBuyerOrderCnt string + T15ShopNewBuyerOrderCnt string + T30ShopNewBuyerOrderCnt string + T1NewBuyerRepurchaseRatio string + T3NewBuyerRepurchaseRatio string + T7NewBuyerRepurchaseRatio string + T15NewBuyerRepurchaseRatio string + T30NewBuyerRepurchaseRatio string + T0ShopNewBuyerRoi string + T1ShopNewBuyerRoi string + T3ShopNewBuyerRoi string + T7ShopNewBuyerRoi string + T15ShopNewBuyerRoi string + T30ShopNewBuyerRoi string + CreateCardOrderCnt string + ForwardTsCreateCardOrderCnt string + CreateCardOrderCost string + ForwardTsCreateCardOrderCost string + ActivateCardOrderCnt string + ForwardTsActivateCardOrderCnt string + ActivateCardOrderCost string + ForwardTsActivateCardOrderCost string + CreateCardOrderRatio string + ForwardTsCreateCardOrderRatio string + ActivateCardOrderCntRatio string + ForwardTsActivateCardOrderRatio string + LivePlayCnt string + ItemEntranceClkCnt string + ShowCnt string + ReportDateStr string + CampaignId string + CampaignName string + UnitId string + UnitName string + CreativeId string + CreativeName string + CidActualRoiAfterSubsidy string + CidCouponAmount string + CidCouponCallbackPaidRefundAmount string + CidVoucherCost string +} + +// TableName 返回表名 +func (e *CampaignReportDetail) TableName() string { + return "campaign_report_detail" +} + +// GetCols 获取所有字段名 +func (e *CampaignReportDetail) GetCols() *CampaignReportDetailCol { + return &CampaignReportDetailCol{ + SQLBaseCol: beans.SQLBaseCol{ + Id: "id", + CreatedAt: "created_at", + UpdatedAt: "updated_at", + }, + T0OrderPaymentAmt: "t0_order_payment_amt", + CreativeMaterialType: "creative_material_type", + LiveName: "live_name", + AuthorId: "author_id", + PicUrl: "pic_url", + PicName: "pic_name", + PicId: "pic_id", + CoverUrl: "cover_url", + CoverId: "cover_id", + ItemOrderConversionRatio: "item_order_conversion_ratio", + ItemCardClickRatio: "item_card_click_ratio", + ItemCardClkCnt: "item_card_clk_cnt", + LivePlayCntCost: "live_play_cnt_cost", + AdMerchantFollowCost: "ad_merchant_follow_cost", + AdMerchantFollow: "ad_merchant_follow", + NetT0OrderCnt: "net_t0_order_cnt", + NetT0Roi: "net_t0_roi", + NetT0Gmv: "net_t0_gmv", + PhotoName: "photo_name", + PhotoIdStr: "photo_id_str", + PhotoId: "photo_id", + ModPriceSegment: "mod_price_segment", + AgeSegment: "age_segment", + Province: "province", + Gender: "gender", + AdPhotoPlayedFiveRatio: "ad_photo_played_five_ratio", + AdPhotoPlayedThreeRatio: "ad_photo_played_three_ratio", + OrderSubmitRoi: "order_submit_roi", + OrderSubmitAmt: "order_submit_amt", + EventOrderSubmitCost: "event_order_submit_cost", + EventOrderSubmit: "event_order_submit", + EventOrderPaidRoi: "event_order_paid_roi", + EventAppInvoked: "event_app_invoked", + EventAddShoppingCart: "event_add_shopping_cart", + ConversionNumCost: "conversion_num_cost", + AdEffectivePlayNum: "ad_effective_play_num", + AdItemClick: "ad_item_click", + MerchantProductId: "merchant_product_id", + CostTotal: "cost_total", + AdShow: "ad_show", + AdShow1kCost: "ad_show1k_cost", + Impression: "impression", + PhotoClick: "photo_click", + PhotoClickRatio: "photo_click_ratio", + Click: "click", + ActionbarClick: "actionbar_click", + ActionbarClickCost: "actionbar_click_cost", + EspClickRatio: "esp_click_ratio", + ActionRatio: "action_ratio", + AdItemClickCount: "ad_item_click_count", + EspLivePlayedSeconds: "esp_live_played_seconds", + PlayedThreeSeconds: "played_three_seconds", + Play3sRatio: "play3s_ratio", + PlayedFiveSeconds: "played_five_seconds", + Play5sRatio: "play5s_ratio", + PlayedEnd: "played_end", + PlayEndRatio: "play_end_ratio", + Share: "share", + Comment: "comment", + Likes: "likes", + Report: "report", + Block: "block", + ItemNegative: "item_negative", + LiveShare: "live_share", + LiveComment: "live_comment", + LiveReward: "live_reward", + EffectivePlayCount: "effective_play_count", + EffectivePlayRatio: "effective_play_ratio", + ConversionNum: "conversion_num", + ConversionCostEsp: "conversion_cost_esp", + Roi: "roi", + Gmv: "gmv", + T0Gmv: "t0_gmv", + T1Gmv: "t1_gmv", + T7Gmv: "t7_gmv", + T15Gmv: "t15_gmv", + T30Gmv: "t30_gmv", + T0Roi: "t0_roi", + T1Roi: "t1_roi", + T7Roi: "t7_roi", + T15Roi: "t15_roi", + T30Roi: "t30_roi", + PaiedOrder: "paied_order", + OrderRatio: "order_ratio", + T0OrderCnt: "t0_order_cnt", + T0OrderCntCost: "t0_order_cnt_cost", + T0OrderCntRatio: "t0_order_cnt_ratio", + T1OrderCnt: "t1_order_cnt", + T7OrderCnt: "t7_order_cnt", + T15OrderCnt: "t15_order_cnt", + T30OrderCnt: "t30_order_cnt", + MerchantRecoFans: "merchant_reco_fans", + T1Retention: "t1_retention", + T7Retention: "t7_retention", + T15Retention: "t15_retention", + T30Retention: "t30_retention", + T1RetentionRatio: "t1_retention_ratio", + T7RetentionRatio: "t7_retention_ratio", + T15RetentionRatio: "t15_retention_ratio", + T30RetentionRatio: "t30_retention_ratio", + ReservationSuccess: "reservation_success", + ReservationCost: "reservation_cost", + StandardLivePlayedStarted: "standard_live_played_started", + AdLivePlayCnt: "ad_live_play_cnt", + AdLivePlayCntCost: "ad_live_play_cnt_cost", + LiveAudienceCost: "live_audience_cost", + LiveEventGoodsView: "live_event_goods_view", + GoodsClickRatio: "goods_click_ratio", + DirectAttrPlatNewBuyerCnt: "direct_attr_plat_new_buyer_cnt", + T30AttrPlatTotalBuyerCnt: "t30_attr_plat_total_buyer_cnt", + DirectAttrSellerNewBuyerCnt: "direct_attr_seller_new_buyer_cnt", + T30AttrSellerTotalBuyerCnt: "t30_attr_seller_total_buyer_cnt", + T3Gmv: "t3_gmv", + T3OrderCnt: "t3_order_cnt", + T3Roi: "t3_roi", + T7IndirectOrderAmt: "t7_indirect_order_amt", + T7IndirectOrderCnt: "t7_indirect_order_cnt", + FansT0GmvPerFans: "fans_t0_gmv_per_fans", + FansT3GmvPerFans: "fans_t3_gmv_per_fans", + FansT7GmvPerFans: "fans_t7_gmv_per_fans", + FansT15GmvPerFans: "fans_t15_gmv_per_fans", + FansT30GmvPerFans: "fans_t30_gmv_per_fans", + RecoFansCost: "reco_fans_cost", + QcpxWhiteboxDirectOrderPaymentAmt: "qcpx_whitebox_direct_order_payment_amt", + QcpxWhiteboxDirectOrderCnt: "qcpx_whitebox_direct_order_cnt", + FansT0Gmv: "fans_t0_gmv", + FansT1Gmv: "fans_t1_gmv", + FansT7Gmv: "fans_t7_gmv", + FansT15Gmv: "fans_t15_gmv", + FansT30Gmv: "fans_t30_gmv", + FansT0Roi: "fans_t0_roi", + FansT1Roi: "fans_t1_roi", + FansT7Roi: "fans_t7_roi", + FansT15Roi: "fans_t15_roi", + FansT30Roi: "fans_t30_roi", + T0ShopNewBuyerOrderPaymentAmt: "t0_shop_new_buyer_order_payment_amt", + T1ShopNewBuyerOrderPaymentAmt: "t1_shop_new_buyer_order_payment_amt", + T3ShopNewBuyerOrderPaymentAmt: "t3_shop_new_buyer_order_payment_amt", + T7ShopNewBuyerOrderPaymentAmt: "t7_shop_new_buyer_order_payment_amt", + T15ShopNewBuyerOrderPaymentAmt: "t15_shop_new_buyer_order_payment_amt", + T30ShopNewBuyerOrderPaymentAmt: "t30_shop_new_buyer_order_payment_amt", + T0ShopNewBuyerOrderCnt: "t0_shop_new_buyer_order_cnt", + T1ShopNewBuyerOrderCnt: "t1_shop_new_buyer_order_cnt", + T3ShopNewBuyerOrderCnt: "t3_shop_new_buyer_order_cnt", + T7ShopNewBuyerOrderCnt: "t7_shop_new_buyer_order_cnt", + T15ShopNewBuyerOrderCnt: "t15_shop_new_buyer_order_cnt", + T30ShopNewBuyerOrderCnt: "t30_shop_new_buyer_order_cnt", + T1NewBuyerRepurchaseRatio: "t1_new_buyer_repurchase_ratio", + T3NewBuyerRepurchaseRatio: "t3_new_buyer_repurchase_ratio", + T7NewBuyerRepurchaseRatio: "t7_new_buyer_repurchase_ratio", + T15NewBuyerRepurchaseRatio: "t15_new_buyer_repurchase_ratio", + T30NewBuyerRepurchaseRatio: "t30_new_buyer_repurchase_ratio", + T0ShopNewBuyerRoi: "t0_shop_new_buyer_roi", + T1ShopNewBuyerRoi: "t1_shop_new_buyer_roi", + T3ShopNewBuyerRoi: "t3_shop_new_buyer_roi", + T7ShopNewBuyerRoi: "t7_shop_new_buyer_roi", + T15ShopNewBuyerRoi: "t15_shop_new_buyer_roi", + T30ShopNewBuyerRoi: "t30_shop_new_buyer_roi", + CreateCardOrderCnt: "create_card_order_cnt", + ForwardTsCreateCardOrderCnt: "forward_ts_create_card_order_cnt", + CreateCardOrderCost: "create_card_order_cost", + ForwardTsCreateCardOrderCost: "forward_ts_create_card_order_cost", + ActivateCardOrderCnt: "activate_card_order_cnt", + ForwardTsActivateCardOrderCnt: "forward_ts_activate_card_order_cnt", + ActivateCardOrderCost: "activate_card_order_cost", + ForwardTsActivateCardOrderCost: "forward_ts_activate_card_order_cost", + CreateCardOrderRatio: "create_card_order_ratio", + ForwardTsCreateCardOrderRatio: "forward_ts_create_card_order_ratio", + ActivateCardOrderCntRatio: "activate_card_order_cnt_ratio", + ForwardTsActivateCardOrderRatio: "forward_ts_activate_card_order_ratio", + LivePlayCnt: "live_play_cnt", + ItemEntranceClkCnt: "item_entrance_clk_cnt", + ShowCnt: "show_cnt", + ReportDateStr: "report_date_str", + CampaignId: "campaign_id", + CampaignName: "campaign_name", + UnitId: "unit_id", + UnitName: "unit_name", + CreativeId: "creative_id", + CreativeName: "creative_name", + CidActualRoiAfterSubsidy: "cid_actual_roi_after_subsidy", + CidCouponAmount: "cid_coupon_amount", + CidCouponCallbackPaidRefundAmount: "cid_coupon_callback_paid_refund_amount", + CidVoucherCost: "cid_voucher_cost", + } +} diff --git a/model/entity/copydata/campaign_report_sum.go b/model/entity/copydata/campaign_report_sum.go new file mode 100644 index 0000000..d5f0d42 --- /dev/null +++ b/model/entity/copydata/campaign_report_sum.go @@ -0,0 +1,582 @@ +package copydata + +import "gitea.com/red-future/common/beans" + +// CampaignReportSum 广告计划效果指标表实体 +type CampaignReportSum struct { + beans.SQLBaseDO `orm:",inherit"` + + T0OrderPaymentAmt *float64 `orm:"t0_order_payment_amt" json:"t0OrderPaymentAmt" description:"当日总成交订单金额"` + CreativeMaterialType string `orm:"creative_material_type" json:"creativeMaterialType" description:"视频素材类型(视频:HORIZONTAL_SCREEN, VERTICAL_SCREEN, UNKNOWN_TYPE;图集:ATLAS;长图:ATLAS_VERTICAL)"` + LiveName string `orm:"live_name" json:"liveName" description:"直播间名称"` + AuthorId string `orm:"author_id" json:"authorId" description:"直播用户快手 Id"` + PicUrl string `orm:"pic_url" json:"picUrl" description:"图片 URL"` + PicName string `orm:"pic_name" json:"picName" description:"图片名称"` + PicId string `orm:"pic_id" json:"picId" description:"图片 Id"` + CoverUrl string `orm:"cover_url" json:"coverUrl" description:"封面 URL"` + CoverId *int64 `orm:"cover_id" json:"coverId" description:"封面 Id"` + ItemOrderConversionRatio *float64 `orm:"item_order_conversion_ratio" json:"itemOrderConversionRatio" description:"转化率"` + ItemCardClickRatio *float64 `orm:"item_card_click_ratio" json:"itemCardClickRatio" description:"点击率"` + ItemCardClkCnt *int64 `orm:"item_card_clk_cnt" json:"itemCardClkCnt" description:"商品卡点击数"` + LivePlayCntCost *float64 `orm:"live_play_cnt_cost" json:"livePlayCntCost" description:"直播间观看成本"` + AdMerchantFollowCost *float64 `orm:"ad_merchant_follow_cost" json:"adMerchantFollowCost" description:"涨粉成本"` + AdMerchantFollow *int64 `orm:"ad_merchant_follow" json:"adMerchantFollow" description:"涨粉数"` + NetT0OrderCnt *int64 `orm:"net_t0_order_cnt" json:"netT0OrderCnt" description:"当日累计净成交订单数"` + NetT0Roi *float64 `orm:"net_t0_roi" json:"netT0Roi" description:"净成交 ROI"` + NetT0Gmv *float64 `orm:"net_t0_gmv" json:"netT0Gmv" description:"净成交 GMV"` + PhotoName string `orm:"photo_name" json:"photoName" description:"视频名称"` + PhotoIdStr string `orm:"photo_id_str" json:"photoIdStr" description:"视频 id"` + PhotoId string `orm:"photo_id" json:"photoId" description:"视频 id"` + ModPriceSegment string `orm:"mod_price_segment" json:"modPriceSegment" description:"设备价格区间"` + AgeSegment string `orm:"age_segment" json:"ageSegment" description:"年龄段"` + Province string `orm:"province" json:"province" description:"省份名称"` + Gender string `orm:"gender" json:"gender" description:"性别"` + AdPhotoPlayedFiveRatio *float64 `orm:"ad_photo_played_five_ratio" json:"adPhotoPlayedFiveRatio" description:"作品 5 秒播放率"` + AdPhotoPlayedThreeRatio *float64 `orm:"ad_photo_played_three_ratio" json:"adPhotoPlayedThreeRatio" description:"作品 3 秒播放率"` + OrderSubmitRoi *float64 `orm:"order_submit_roi" json:"orderSubmitRoi" description:"订单提交 ROI"` + OrderSubmitAmt *int64 `orm:"order_submit_amt" json:"orderSubmitAmt" description:"外部订单金额"` + EventOrderSubmitCost *float64 `orm:"event_order_submit_cost" json:"eventOrderSubmitCost" description:"订单提交成本"` + EventOrderSubmit *int64 `orm:"event_order_submit" json:"eventOrderSubmit" description:"订单提交数"` + EventOrderPaidRoi *float64 `orm:"event_order_paid_roi" json:"eventOrderPaidRoi" description:"订单支付率"` + EventAppInvoked *int64 `orm:"event_app_invoked" json:"eventAppInvoked" description:"唤起应用数"` + EventAddShoppingCart *int64 `orm:"event_add_shopping_cart" json:"eventAddShoppingCart" description:"添加购物车次数"` + ConversionNumCost *float64 `orm:"conversion_num_cost" json:"conversionNumCost" description:"转化成本(回传时间)"` + AdEffectivePlayNum *int64 `orm:"ad_effective_play_num" json:"adEffectivePlayNum" description:"有效播放数"` + AdItemClick *int64 `orm:"ad_item_click" json:"adItemClick" description:"行为数"` + MerchantProductId string `orm:"merchant_product_id" json:"merchantProductId" description:"商品 ID"` + CostTotal *float64 `orm:"cost_total" json:"costTotal" description:"花费"` + AdShow *int64 `orm:"ad_show" json:"adShow" description:"曝光数"` + AdShow1kCost *float64 `orm:"ad_show1k_cost" json:"adShow1kCost" description:"平均千次广告曝光花费"` + Impression *int64 `orm:"impression" json:"impression" description:"封面曝光数"` + PhotoClick *int64 `orm:"photo_click" json:"photoClick" description:"封面点击数"` + PhotoClickRatio *float64 `orm:"photo_click_ratio" json:"photoClickRatio" description:"封面点击率"` + Click *int64 `orm:"click" json:"click" description:"素材曝光数"` + ActionbarClick *int64 `orm:"actionbar_click" json:"actionbarClick" description:"行为数"` + ActionbarClickCost *float64 `orm:"actionbar_click_cost" json:"actionbarClickCost" description:"行为成本"` + EspClickRatio *float64 `orm:"esp_click_ratio" json:"espClickRatio" description:"行为率"` + ActionRatio *float64 `orm:"action_ratio" json:"actionRatio" description:"素材点击率"` + AdItemClickCount *int64 `orm:"ad_item_click_count" json:"adItemClickCount" description:"预约组件点击数"` + EspLivePlayedSeconds *int64 `orm:"esp_live_played_seconds" json:"espLivePlayedSeconds" description:"直播平均观看时长"` + PlayedThreeSeconds *int64 `orm:"played_three_seconds" json:"playedThreeSeconds" description:"作品 3 秒播放数"` + Play3sRatio *float64 `orm:"play3s_ratio" json:"play3sRatio" description:"作品 3 秒播放率"` + PlayedFiveSeconds *int64 `orm:"played_five_seconds" json:"playedFiveSeconds" description:"作品 5 秒播放数"` + Play5sRatio *float64 `orm:"play5s_ratio" json:"play5sRatio" description:"作品 5 秒播放率"` + PlayedEnd *int64 `orm:"played_end" json:"playedEnd" description:"作品完播数"` + PlayEndRatio *float64 `orm:"play_end_ratio" json:"playEndRatio" description:"作品完播率"` + Share *int64 `orm:"share" json:"share" description:"作品分享数"` + Comment *int64 `orm:"comment" json:"comment" description:"作品评论数"` + Likes *int64 `orm:"likes" json:"likes" description:"作品点赞数"` + Report *int64 `orm:"report" json:"report" description:"作品举报数"` + Block *int64 `orm:"block" json:"block" description:"作品拉黑数"` + ItemNegative *int64 `orm:"item_negative" json:"itemNegative" description:"详情页减少此类作品数"` + LiveShare *int64 `orm:"live_share" json:"liveShare" description:"直播送礼数"` + LiveComment *int64 `orm:"live_comment" json:"liveComment" description:"直播评论数"` + LiveReward *int64 `orm:"live_reward" json:"liveReward" description:"直播送礼数"` + EffectivePlayCount *int64 `orm:"effective_play_count" json:"effectivePlayCount" description:"有效播放数"` + EffectivePlayRatio *float64 `orm:"effective_play_ratio" json:"effectivePlayRatio" description:"有效播放率"` + ConversionNum *int64 `orm:"conversion_num" json:"conversionNum" description:"转化数"` + ConversionCostEsp *float64 `orm:"conversion_cost_esp" json:"conversionCostEsp" description:"转化成本"` + Roi *float64 `orm:"roi" json:"roi" description:"直接 ROI"` + Gmv *float64 `orm:"gmv" json:"gmv" description:"直接 GMV"` + T0Gmv *float64 `orm:"t0_gmv" json:"t0Gmv" description:"当日累计 GMV"` + T1Gmv *float64 `orm:"t1_gmv" json:"t1Gmv" description:"次日累计 GMV"` + T7Gmv *float64 `orm:"t7_gmv" json:"t7Gmv" description:"7 日累计 GMV"` + T15Gmv *float64 `orm:"t15_gmv" json:"t15Gmv" description:"15 日累计 GMV"` + T30Gmv *float64 `orm:"t30_gmv" json:"t30Gmv" description:"30 日累计 GMV"` + T0Roi *float64 `orm:"t0_roi" json:"t0Roi" description:"当日累计 ROI"` + T1Roi *float64 `orm:"t1_roi" json:"t1Roi" description:"次日累计 ROI"` + T7Roi *float64 `orm:"t7_roi" json:"t7Roi" description:"7 日累计 ROI"` + T15Roi *float64 `orm:"t15_roi" json:"t15Roi" description:"15 日累计 ROI"` + T30Roi *float64 `orm:"t30_roi" json:"t30Roi" description:"30 日累计 ROI"` + PaiedOrder *int64 `orm:"paied_order" json:"paiedOrder" description:"直接订单数"` + OrderRatio *float64 `orm:"order_ratio" json:"orderRatio" description:"直接下单率"` + T0OrderCnt *int64 `orm:"t0_order_cnt" json:"t0OrderCnt" description:"当日累计订单数"` + T0OrderCntCost *float64 `orm:"t0_order_cnt_cost" json:"t0OrderCntCost" description:"当日累计订单成本"` + T0OrderCntRatio *float64 `orm:"t0_order_cnt_ratio" json:"t0OrderCntRatio" description:"累计订单下单率"` + T1OrderCnt *int64 `orm:"t1_order_cnt" json:"t1OrderCnt" description:"次日累计订单数"` + T7OrderCnt *int64 `orm:"t7_order_cnt" json:"t7OrderCnt" description:"7 日累计订单数"` + T15OrderCnt *int64 `orm:"t15_order_cnt" json:"t15OrderCnt" description:"15 日累计订单数"` + T30OrderCnt *int64 `orm:"t30_order_cnt" json:"t30OrderCnt" description:"30 日累计订单数"` + MerchantRecoFans *int64 `orm:"merchant_reco_fans" json:"merchantRecoFans" description:"涨粉数"` + T1Retention *float64 `orm:"t1_retention" json:"t1Retention" description:"次日涨粉留存数"` + T7Retention *float64 `orm:"t7_retention" json:"t7Retention" description:"7 日涨粉留存数"` + T15Retention *float64 `orm:"t15_retention" json:"t15Retention" description:"15 日涨粉留存数"` + T30Retention *float64 `orm:"t30_retention" json:"t30Retention" description:"30 日涨粉留存数"` + T1RetentionRatio *float64 `orm:"t1_retention_ratio" json:"t1RetentionRatio" description:"次日涨粉留存率"` + T7RetentionRatio *float64 `orm:"t7_retention_ratio" json:"t7RetentionRatio" description:"7 日涨粉留存率"` + T15RetentionRatio *float64 `orm:"t15_retention_ratio" json:"t15RetentionRatio" description:"15 日涨粉留存率"` + T30RetentionRatio *float64 `orm:"t30_retention_ratio" json:"t30RetentionRatio" description:"30 日涨粉留存率"` + ReservationSuccess *int64 `orm:"reservation_success" json:"reservationSuccess" description:"直播预约成功数"` + ReservationCost *float64 `orm:"reservation_cost" json:"reservationCost" description:"直播预约成功成本"` + StandardLivePlayedStarted *int64 `orm:"standard_live_played_started" json:"standardLivePlayedStarted" description:"直播观看数"` + AdLivePlayCnt *int64 `orm:"ad_live_play_cnt" json:"adLivePlayCnt" description:"直播间人气数"` + AdLivePlayCntCost *float64 `orm:"ad_live_play_cnt_cost" json:"adLivePlayCntCost" description:"直播间人气成本"` + LiveAudienceCost *float64 `orm:"live_audience_cost" json:"liveAudienceCost" description:"直播观看成本"` + LiveEventGoodsView *int64 `orm:"live_event_goods_view" json:"liveEventGoodsView" description:"直播间商品点击数"` + GoodsClickRatio *float64 `orm:"goods_click_ratio" json:"goodsClickRatio" description:"直播间商品点击率"` + DirectAttrPlatNewBuyerCnt *int64 `orm:"direct_attr_plat_new_buyer_cnt" json:"directAttrPlatNewBuyerCnt" description:"直接平台新客"` + T30AttrPlatTotalBuyerCnt *int64 `orm:"t30_attr_plat_total_buyer_cnt" json:"t30AttrPlatTotalBuyerCnt" description:"30 日累计平台新客"` + DirectAttrSellerNewBuyerCnt *int64 `orm:"direct_attr_seller_new_buyer_cnt" json:"directAttrSellerNewBuyerCnt" description:"直接店铺新客"` + T30AttrSellerTotalBuyerCnt *int64 `orm:"t30_attr_seller_total_buyer_cnt" json:"t30AttrSellerTotalBuyerCnt" description:"30 日累计店铺新客"` + T3Gmv *float64 `orm:"t3_gmv" json:"t3Gmv" description:"3 日累计 GMV"` + T3OrderCnt *int64 `orm:"t3_order_cnt" json:"t3OrderCnt" description:"3 日累计订单数"` + T3Roi *float64 `orm:"t3_roi" json:"t3Roi" description:"3 日累计 ROI"` + T7IndirectOrderAmt *float64 `orm:"t7_indirect_order_amt" json:"t7IndirectOrderAmt" description:"7 日间接订单金额"` + T7IndirectOrderCnt *int64 `orm:"t7_indirect_order_cnt" json:"t7IndirectOrderCnt" description:"7 日间接订单数"` + FansT0GmvPerFans *float64 `orm:"fans_t0_gmv_per_fans" json:"fansT0GmvPerFans" description:"新增粉丝人均销售额"` + FansT3GmvPerFans *float64 `orm:"fans_t3_gmv_per_fans" json:"fansT3GmvPerFans" description:"3 日新增粉丝人均销售额"` + FansT7GmvPerFans *float64 `orm:"fans_t7_gmv_per_fans" json:"fansT7GmvPerFans" description:"7 日新增粉丝人均销售额"` + FansT15GmvPerFans *float64 `orm:"fans_t15_gmv_per_fans" json:"fansT15GmvPerFans" description:"15 日新增粉丝人均销售额"` + FansT30GmvPerFans *float64 `orm:"fans_t30_gmv_per_fans" json:"fansT30GmvPerFans" description:"30 日新增粉丝人均销售额"` + RecoFansCost *float64 `orm:"reco_fans_cost" json:"recoFansCost" description:"涨粉成本"` + QcpxWhiteboxDirectOrderPaymentAmt *float64 `orm:"qcpx_whitebox_direct_order_payment_amt" json:"qcpxWhiteboxDirectOrderPaymentAmt" description:"智能优惠券订单 GMV"` + QcpxWhiteboxDirectOrderCnt *int64 `orm:"qcpx_whitebox_direct_order_cnt" json:"qcpxWhiteboxDirectOrderCnt" description:"智能优惠券订单数"` + FansT0Gmv *float64 `orm:"fans_t0_gmv" json:"fansT0Gmv" description:"涨粉当日 GMV"` + FansT1Gmv *float64 `orm:"fans_t1_gmv" json:"fansT1Gmv" description:"涨粉次日 GMV"` + FansT7Gmv *float64 `orm:"fans_t7_gmv" json:"fansT7Gmv" description:"涨粉 7 日 GMV"` + FansT15Gmv *float64 `orm:"fans_t15_gmv" json:"fansT15Gmv" description:"涨粉 15 日 GMV"` + FansT30Gmv *float64 `orm:"fans_t30_gmv" json:"fansT30Gmv" description:"涨粉 30 日 GMV"` + FansT0Roi *float64 `orm:"fans_t0_roi" json:"fansT0Roi" description:"涨粉当日 ROI"` + FansT1Roi *float64 `orm:"fans_t1_roi" json:"fansT1Roi" description:"涨粉次日 ROI"` + FansT7Roi *float64 `orm:"fans_t7_roi" json:"fansT7Roi" description:"涨粉 7 日 ROI"` + FansT15Roi *float64 `orm:"fans_t15_roi" json:"fansT15Roi" description:"涨粉 15 日 ROI"` + FansT30Roi *float64 `orm:"fans_t30_roi" json:"fansT30Roi" description:"涨粉 30 日 ROI"` + T0ShopNewBuyerOrderPaymentAmt *float64 `orm:"t0_shop_new_buyer_order_payment_amt" json:"t0ShopNewBuyerOrderPaymentAmt" description:"当日新客 GMV"` + T1ShopNewBuyerOrderPaymentAmt *float64 `orm:"t1_shop_new_buyer_order_payment_amt" json:"t1ShopNewBuyerOrderPaymentAmt" description:"投后 1 日新客 GMV"` + T3ShopNewBuyerOrderPaymentAmt *float64 `orm:"t3_shop_new_buyer_order_payment_amt" json:"t3ShopNewBuyerOrderPaymentAmt" description:"投后 3 日新客 GMV"` + T7ShopNewBuyerOrderPaymentAmt *float64 `orm:"t7_shop_new_buyer_order_payment_amt" json:"t7ShopNewBuyerOrderPaymentAmt" description:"投后 7 日新客 GMV"` + T15ShopNewBuyerOrderPaymentAmt *float64 `orm:"t15_shop_new_buyer_order_payment_amt" json:"t15ShopNewBuyerOrderPaymentAmt" description:"投后 15 日新客 GMV"` + T30ShopNewBuyerOrderPaymentAmt *float64 `orm:"t30_shop_new_buyer_order_payment_amt" json:"t30ShopNewBuyerOrderPaymentAmt" description:"投后 30 日新客 GMV"` + T0ShopNewBuyerOrderCnt *int64 `orm:"t0_shop_new_buyer_order_cnt" json:"t0ShopNewBuyerOrderCnt" description:"当日新客成交订单量"` + T1ShopNewBuyerOrderCnt *int64 `orm:"t1_shop_new_buyer_order_cnt" json:"t1ShopNewBuyerOrderCnt" description:"投后 1 日新客成交订单量"` + T3ShopNewBuyerOrderCnt *int64 `orm:"t3_shop_new_buyer_order_cnt" json:"t3ShopNewBuyerOrderCnt" description:"投后 3 日新客成交订单量"` + T7ShopNewBuyerOrderCnt *int64 `orm:"t7_shop_new_buyer_order_cnt" json:"t7ShopNewBuyerOrderCnt" description:"投后 7 日新客成交订单量"` + T15ShopNewBuyerOrderCnt *int64 `orm:"t15_shop_new_buyer_order_cnt" json:"t15ShopNewBuyerOrderCnt" description:"投后 15 日新客成交订单量"` + T30ShopNewBuyerOrderCnt *int64 `orm:"t30_shop_new_buyer_order_cnt" json:"t30ShopNewBuyerOrderCnt" description:"投后 30 日新客成交订单量"` + T1NewBuyerRepurchaseRatio *float64 `orm:"t1_new_buyer_repurchase_ratio" json:"t1NewBuyerRepurchaseRatio" description:"投后 1 日新客复购率"` + T3NewBuyerRepurchaseRatio *float64 `orm:"t3_new_buyer_repurchase_ratio" json:"t3NewBuyerRepurchaseRatio" description:"投后 3 日新客复购率"` + T7NewBuyerRepurchaseRatio *float64 `orm:"t7_new_buyer_repurchase_ratio" json:"t7NewBuyerRepurchaseRatio" description:"投后 7 日新客复购率"` + T15NewBuyerRepurchaseRatio *float64 `orm:"t15_new_buyer_repurchase_ratio" json:"t15NewBuyerRepurchaseRatio" description:"投后 15 日新客复购率"` + T30NewBuyerRepurchaseRatio *float64 `orm:"t30_new_buyer_repurchase_ratio" json:"t30NewBuyerRepurchaseRatio" description:"投后 30 日新客复购率"` + T0ShopNewBuyerRoi *float64 `orm:"t0_shop_new_buyer_roi" json:"t0ShopNewBuyerRoi" description:"投后当日新客 ROI"` + T1ShopNewBuyerRoi *float64 `orm:"t1_shop_new_buyer_roi" json:"t1ShopNewBuyerRoi" description:"投后 1 日新客 ROI"` + T3ShopNewBuyerRoi *float64 `orm:"t3_shop_new_buyer_roi" json:"t3ShopNewBuyerRoi" description:"投后 3 日新客 ROI"` + T7ShopNewBuyerRoi *float64 `orm:"t7_shop_new_buyer_roi" json:"t7ShopNewBuyerRoi" description:"投后 7 日新客 ROI"` + T15ShopNewBuyerRoi *float64 `orm:"t15_shop_new_buyer_roi" json:"t15ShopNewBuyerRoi" description:"投后 15 日新客 ROI"` + T30ShopNewBuyerRoi *float64 `orm:"t30_shop_new_buyer_roi" json:"t30ShopNewBuyerRoi" description:"投后 30 日新客 ROI"` + CreateCardOrderCnt *int64 `orm:"create_card_order_cnt" json:"createCardOrderCnt" description:"有效制卡订单数(回传时间)"` + ForwardTsCreateCardOrderCnt *int64 `orm:"forward_ts_create_card_order_cnt" json:"forwardTsCreateCardOrderCnt" description:"有效制卡订单数(计费时间)"` + CreateCardOrderCost *float64 `orm:"create_card_order_cost" json:"createCardOrderCost" description:"有效制卡订单成本(回传时间)"` + ForwardTsCreateCardOrderCost *float64 `orm:"forward_ts_create_card_order_cost" json:"forwardTsCreateCardOrderCost" description:"有效制卡订单成本(计费时间)"` + ActivateCardOrderCnt *int64 `orm:"activate_card_order_cnt" json:"activateCardOrderCnt" description:"电话卡激活订单数(回传时间)"` + ForwardTsActivateCardOrderCnt *int64 `orm:"forward_ts_activate_card_order_cnt" json:"forwardTsActivateCardOrderCnt" description:"电话卡激活订单数(计费时间)"` + ActivateCardOrderCost *float64 `orm:"activate_card_order_cost" json:"activateCardOrderCost" description:"电话卡激活订单成本(回传时间)"` + ForwardTsActivateCardOrderCost *float64 `orm:"forward_ts_activate_card_order_cost" json:"forwardTsActivateCardOrderCost" description:"电话卡激活订单成本(计费时间)"` + CreateCardOrderRatio *float64 `orm:"create_card_order_ratio" json:"createCardOrderRatio" description:"有效制卡订单率(回传时间)"` + ForwardTsCreateCardOrderRatio *float64 `orm:"forward_ts_create_card_order_ratio" json:"forwardTsCreateCardOrderRatio" description:"有效制卡订单率(计费时间)"` + ActivateCardOrderCntRatio *float64 `orm:"activate_card_order_cnt_ratio" json:"activateCardOrderCntRatio" description:"电话卡激活率(回传时间)"` + ForwardTsActivateCardOrderRatio *float64 `orm:"forward_ts_activate_card_order_ratio" json:"forwardTsActivateCardOrderRatio" description:"电话卡激活率(计费时间)"` + LivePlayCnt *int64 `orm:"live_play_cnt" json:"livePlayCnt" description:"全站直播观看数"` + ItemEntranceClkCnt *int64 `orm:"item_entrance_clk_cnt" json:"itemEntranceClkCnt" description:"小黄车点击数"` + ShowCnt *int64 `orm:"show_cnt" json:"showCnt" description:"全站曝光"` + ReportDateStr string `orm:"report_date_str" json:"reportDateStr" description:"时间"` + CampaignId *int64 `orm:"campaign_id" json:"campaignId" description:"计划 ID"` + CampaignName string `orm:"campaign_name" json:"campaignName" description:"计划名称"` + UnitId *int64 `orm:"unit_id" json:"unitId" description:"单元 ID"` + UnitName string `orm:"unit_name" json:"unitName" description:"单元名称"` + CreativeId *int64 `orm:"creative_id" json:"creativeId" description:"创意 ID"` + CreativeName string `orm:"creative_name" json:"creativeName" description:"创意名称"` + CidActualRoiAfterSubsidy *float64 `orm:"cid_actual_roi_after_subsidy" json:"cidActualRoiAfterSubsidy" description:"补贴后实际 ROI"` + CidCouponAmount *int64 `orm:"cid_coupon_amount" json:"cidCouponAmount" description:"核销券金额"` + CidCouponCallbackPaidRefundAmount *int64 `orm:"cid_coupon_callback_paid_refund_amount" json:"cidCouponCallbackPaidRefundAmount" description:"退单有回传_核销券金额"` + CidVoucherCost *float64 `orm:"cid_voucher_cost" json:"cidVoucherCost" description:"券成本"` +} + +// CampaignReportSumCol 广告计划效果指标表字段定义 +type CampaignReportSumCol struct { + beans.SQLBaseCol + T0OrderPaymentAmt string + CreativeMaterialType string + LiveName string + AuthorId string + PicUrl string + PicName string + PicId string + CoverUrl string + CoverId string + ItemOrderConversionRatio string + ItemCardClickRatio string + ItemCardClkCnt string + LivePlayCntCost string + AdMerchantFollowCost string + AdMerchantFollow string + NetT0OrderCnt string + NetT0Roi string + NetT0Gmv string + PhotoName string + PhotoIdStr string + PhotoId string + ModPriceSegment string + AgeSegment string + Province string + Gender string + AdPhotoPlayedFiveRatio string + AdPhotoPlayedThreeRatio string + OrderSubmitRoi string + OrderSubmitAmt string + EventOrderSubmitCost string + EventOrderSubmit string + EventOrderPaidRoi string + EventAppInvoked string + EventAddShoppingCart string + ConversionNumCost string + AdEffectivePlayNum string + AdItemClick string + MerchantProductId string + CostTotal string + AdShow string + AdShow1kCost string + Impression string + PhotoClick string + PhotoClickRatio string + Click string + ActionbarClick string + ActionbarClickCost string + EspClickRatio string + ActionRatio string + AdItemClickCount string + EspLivePlayedSeconds string + PlayedThreeSeconds string + Play3sRatio string + PlayedFiveSeconds string + Play5sRatio string + PlayedEnd string + PlayEndRatio string + Share string + Comment string + Likes string + Report string + Block string + ItemNegative string + LiveShare string + LiveComment string + LiveReward string + EffectivePlayCount string + EffectivePlayRatio string + ConversionNum string + ConversionCostEsp string + Roi string + Gmv string + T0Gmv string + T1Gmv string + T7Gmv string + T15Gmv string + T30Gmv string + T0Roi string + T1Roi string + T7Roi string + T15Roi string + T30Roi string + PaiedOrder string + OrderRatio string + T0OrderCnt string + T0OrderCntCost string + T0OrderCntRatio string + T1OrderCnt string + T7OrderCnt string + T15OrderCnt string + T30OrderCnt string + MerchantRecoFans string + T1Retention string + T7Retention string + T15Retention string + T30Retention string + T1RetentionRatio string + T7RetentionRatio string + T15RetentionRatio string + T30RetentionRatio string + ReservationSuccess string + ReservationCost string + StandardLivePlayedStarted string + AdLivePlayCnt string + AdLivePlayCntCost string + LiveAudienceCost string + LiveEventGoodsView string + GoodsClickRatio string + DirectAttrPlatNewBuyerCnt string + T30AttrPlatTotalBuyerCnt string + DirectAttrSellerNewBuyerCnt string + T30AttrSellerTotalBuyerCnt string + T3Gmv string + T3OrderCnt string + T3Roi string + T7IndirectOrderAmt string + T7IndirectOrderCnt string + FansT0GmvPerFans string + FansT3GmvPerFans string + FansT7GmvPerFans string + FansT15GmvPerFans string + FansT30GmvPerFans string + RecoFansCost string + QcpxWhiteboxDirectOrderPaymentAmt string + QcpxWhiteboxDirectOrderCnt string + FansT0Gmv string + FansT1Gmv string + FansT7Gmv string + FansT15Gmv string + FansT30Gmv string + FansT0Roi string + FansT1Roi string + FansT7Roi string + FansT15Roi string + FansT30Roi string + T0ShopNewBuyerOrderPaymentAmt string + T1ShopNewBuyerOrderPaymentAmt string + T3ShopNewBuyerOrderPaymentAmt string + T7ShopNewBuyerOrderPaymentAmt string + T15ShopNewBuyerOrderPaymentAmt string + T30ShopNewBuyerOrderPaymentAmt string + T0ShopNewBuyerOrderCnt string + T1ShopNewBuyerOrderCnt string + T3ShopNewBuyerOrderCnt string + T7ShopNewBuyerOrderCnt string + T15ShopNewBuyerOrderCnt string + T30ShopNewBuyerOrderCnt string + T1NewBuyerRepurchaseRatio string + T3NewBuyerRepurchaseRatio string + T7NewBuyerRepurchaseRatio string + T15NewBuyerRepurchaseRatio string + T30NewBuyerRepurchaseRatio string + T0ShopNewBuyerRoi string + T1ShopNewBuyerRoi string + T3ShopNewBuyerRoi string + T7ShopNewBuyerRoi string + T15ShopNewBuyerRoi string + T30ShopNewBuyerRoi string + CreateCardOrderCnt string + ForwardTsCreateCardOrderCnt string + CreateCardOrderCost string + ForwardTsCreateCardOrderCost string + ActivateCardOrderCnt string + ForwardTsActivateCardOrderCnt string + ActivateCardOrderCost string + ForwardTsActivateCardOrderCost string + CreateCardOrderRatio string + ForwardTsCreateCardOrderRatio string + ActivateCardOrderCntRatio string + ForwardTsActivateCardOrderRatio string + LivePlayCnt string + ItemEntranceClkCnt string + ShowCnt string + ReportDateStr string + CampaignId string + CampaignName string + UnitId string + UnitName string + CreativeId string + CreativeName string + CidActualRoiAfterSubsidy string + CidCouponAmount string + CidCouponCallbackPaidRefundAmount string + CidVoucherCost string +} + +// TableName 返回表名 +func (e *CampaignReportSum) TableName() string { + return "campaign_report_sum" +} + +// GetCols 获取所有字段名 +func (e *CampaignReportSum) GetCols() *CampaignReportSumCol { + return &CampaignReportSumCol{ + SQLBaseCol: beans.SQLBaseCol{ + Id: "id", + CreatedAt: "created_at", + UpdatedAt: "updated_at", + }, + T0OrderPaymentAmt: "t0_order_payment_amt", + CreativeMaterialType: "creative_material_type", + LiveName: "live_name", + AuthorId: "author_id", + PicUrl: "pic_url", + PicName: "pic_name", + PicId: "pic_id", + CoverUrl: "cover_url", + CoverId: "cover_id", + ItemOrderConversionRatio: "item_order_conversion_ratio", + ItemCardClickRatio: "item_card_click_ratio", + ItemCardClkCnt: "item_card_clk_cnt", + LivePlayCntCost: "live_play_cnt_cost", + AdMerchantFollowCost: "ad_merchant_follow_cost", + AdMerchantFollow: "ad_merchant_follow", + NetT0OrderCnt: "net_t0_order_cnt", + NetT0Roi: "net_t0_roi", + NetT0Gmv: "net_t0_gmv", + PhotoName: "photo_name", + PhotoIdStr: "photo_id_str", + PhotoId: "photo_id", + ModPriceSegment: "mod_price_segment", + AgeSegment: "age_segment", + Province: "province", + Gender: "gender", + AdPhotoPlayedFiveRatio: "ad_photo_played_five_ratio", + AdPhotoPlayedThreeRatio: "ad_photo_played_three_ratio", + OrderSubmitRoi: "order_submit_roi", + OrderSubmitAmt: "order_submit_amt", + EventOrderSubmitCost: "event_order_submit_cost", + EventOrderSubmit: "event_order_submit", + EventOrderPaidRoi: "event_order_paid_roi", + EventAppInvoked: "event_app_invoked", + EventAddShoppingCart: "event_add_shopping_cart", + ConversionNumCost: "conversion_num_cost", + AdEffectivePlayNum: "ad_effective_play_num", + AdItemClick: "ad_item_click", + MerchantProductId: "merchant_product_id", + CostTotal: "cost_total", + AdShow: "ad_show", + AdShow1kCost: "ad_show1k_cost", + Impression: "impression", + PhotoClick: "photo_click", + PhotoClickRatio: "photo_click_ratio", + Click: "click", + ActionbarClick: "actionbar_click", + ActionbarClickCost: "actionbar_click_cost", + EspClickRatio: "esp_click_ratio", + ActionRatio: "action_ratio", + AdItemClickCount: "ad_item_click_count", + EspLivePlayedSeconds: "esp_live_played_seconds", + PlayedThreeSeconds: "played_three_seconds", + Play3sRatio: "play3s_ratio", + PlayedFiveSeconds: "played_five_seconds", + Play5sRatio: "play5s_ratio", + PlayedEnd: "played_end", + PlayEndRatio: "play_end_ratio", + Share: "share", + Comment: "comment", + Likes: "likes", + Report: "report", + Block: "block", + ItemNegative: "item_negative", + LiveShare: "live_share", + LiveComment: "live_comment", + LiveReward: "live_reward", + EffectivePlayCount: "effective_play_count", + EffectivePlayRatio: "effective_play_ratio", + ConversionNum: "conversion_num", + ConversionCostEsp: "conversion_cost_esp", + Roi: "roi", + Gmv: "gmv", + T0Gmv: "t0_gmv", + T1Gmv: "t1_gmv", + T7Gmv: "t7_gmv", + T15Gmv: "t15_gmv", + T30Gmv: "t30_gmv", + T0Roi: "t0_roi", + T1Roi: "t1_roi", + T7Roi: "t7_roi", + T15Roi: "t15_roi", + T30Roi: "t30_roi", + PaiedOrder: "paied_order", + OrderRatio: "order_ratio", + T0OrderCnt: "t0_order_cnt", + T0OrderCntCost: "t0_order_cnt_cost", + T0OrderCntRatio: "t0_order_cnt_ratio", + T1OrderCnt: "t1_order_cnt", + T7OrderCnt: "t7_order_cnt", + T15OrderCnt: "t15_order_cnt", + T30OrderCnt: "t30_order_cnt", + MerchantRecoFans: "merchant_reco_fans", + T1Retention: "t1_retention", + T7Retention: "t7_retention", + T15Retention: "t15_retention", + T30Retention: "t30_retention", + T1RetentionRatio: "t1_retention_ratio", + T7RetentionRatio: "t7_retention_ratio", + T15RetentionRatio: "t15_retention_ratio", + T30RetentionRatio: "t30_retention_ratio", + ReservationSuccess: "reservation_success", + ReservationCost: "reservation_cost", + StandardLivePlayedStarted: "standard_live_played_started", + AdLivePlayCnt: "ad_live_play_cnt", + AdLivePlayCntCost: "ad_live_play_cnt_cost", + LiveAudienceCost: "live_audience_cost", + LiveEventGoodsView: "live_event_goods_view", + GoodsClickRatio: "goods_click_ratio", + DirectAttrPlatNewBuyerCnt: "direct_attr_plat_new_buyer_cnt", + T30AttrPlatTotalBuyerCnt: "t30_attr_plat_total_buyer_cnt", + DirectAttrSellerNewBuyerCnt: "direct_attr_seller_new_buyer_cnt", + T30AttrSellerTotalBuyerCnt: "t30_attr_seller_total_buyer_cnt", + T3Gmv: "t3_gmv", + T3OrderCnt: "t3_order_cnt", + T3Roi: "t3_roi", + T7IndirectOrderAmt: "t7_indirect_order_amt", + T7IndirectOrderCnt: "t7_indirect_order_cnt", + FansT0GmvPerFans: "fans_t0_gmv_per_fans", + FansT3GmvPerFans: "fans_t3_gmv_per_fans", + FansT7GmvPerFans: "fans_t7_gmv_per_fans", + FansT15GmvPerFans: "fans_t15_gmv_per_fans", + FansT30GmvPerFans: "fans_t30_gmv_per_fans", + RecoFansCost: "reco_fans_cost", + QcpxWhiteboxDirectOrderPaymentAmt: "qcpx_whitebox_direct_order_payment_amt", + QcpxWhiteboxDirectOrderCnt: "qcpx_whitebox_direct_order_cnt", + FansT0Gmv: "fans_t0_gmv", + FansT1Gmv: "fans_t1_gmv", + FansT7Gmv: "fans_t7_gmv", + FansT15Gmv: "fans_t15_gmv", + FansT30Gmv: "fans_t30_gmv", + FansT0Roi: "fans_t0_roi", + FansT1Roi: "fans_t1_roi", + FansT7Roi: "fans_t7_roi", + FansT15Roi: "fans_t15_roi", + FansT30Roi: "fans_t30_roi", + T0ShopNewBuyerOrderPaymentAmt: "t0_shop_new_buyer_order_payment_amt", + T1ShopNewBuyerOrderPaymentAmt: "t1_shop_new_buyer_order_payment_amt", + T3ShopNewBuyerOrderPaymentAmt: "t3_shop_new_buyer_order_payment_amt", + T7ShopNewBuyerOrderPaymentAmt: "t7_shop_new_buyer_order_payment_amt", + T15ShopNewBuyerOrderPaymentAmt: "t15_shop_new_buyer_order_payment_amt", + T30ShopNewBuyerOrderPaymentAmt: "t30_shop_new_buyer_order_payment_amt", + T0ShopNewBuyerOrderCnt: "t0_shop_new_buyer_order_cnt", + T1ShopNewBuyerOrderCnt: "t1_shop_new_buyer_order_cnt", + T3ShopNewBuyerOrderCnt: "t3_shop_new_buyer_order_cnt", + T7ShopNewBuyerOrderCnt: "t7_shop_new_buyer_order_cnt", + T15ShopNewBuyerOrderCnt: "t15_shop_new_buyer_order_cnt", + T30ShopNewBuyerOrderCnt: "t30_shop_new_buyer_order_cnt", + T1NewBuyerRepurchaseRatio: "t1_new_buyer_repurchase_ratio", + T3NewBuyerRepurchaseRatio: "t3_new_buyer_repurchase_ratio", + T7NewBuyerRepurchaseRatio: "t7_new_buyer_repurchase_ratio", + T15NewBuyerRepurchaseRatio: "t15_new_buyer_repurchase_ratio", + T30NewBuyerRepurchaseRatio: "t30_new_buyer_repurchase_ratio", + T0ShopNewBuyerRoi: "t0_shop_new_buyer_roi", + T1ShopNewBuyerRoi: "t1_shop_new_buyer_roi", + T3ShopNewBuyerRoi: "t3_shop_new_buyer_roi", + T7ShopNewBuyerRoi: "t7_shop_new_buyer_roi", + T15ShopNewBuyerRoi: "t15_shop_new_buyer_roi", + T30ShopNewBuyerRoi: "t30_shop_new_buyer_roi", + CreateCardOrderCnt: "create_card_order_cnt", + ForwardTsCreateCardOrderCnt: "forward_ts_create_card_order_cnt", + CreateCardOrderCost: "create_card_order_cost", + ForwardTsCreateCardOrderCost: "forward_ts_create_card_order_cost", + ActivateCardOrderCnt: "activate_card_order_cnt", + ForwardTsActivateCardOrderCnt: "forward_ts_activate_card_order_cnt", + ActivateCardOrderCost: "activate_card_order_cost", + ForwardTsActivateCardOrderCost: "forward_ts_activate_card_order_cost", + CreateCardOrderRatio: "create_card_order_ratio", + ForwardTsCreateCardOrderRatio: "forward_ts_create_card_order_ratio", + ActivateCardOrderCntRatio: "activate_card_order_cnt_ratio", + ForwardTsActivateCardOrderRatio: "forward_ts_activate_card_order_ratio", + LivePlayCnt: "live_play_cnt", + ItemEntranceClkCnt: "item_entrance_clk_cnt", + ShowCnt: "show_cnt", + ReportDateStr: "report_date_str", + CampaignId: "campaign_id", + CampaignName: "campaign_name", + UnitId: "unit_id", + UnitName: "unit_name", + CreativeId: "creative_id", + CreativeName: "creative_name", + CidActualRoiAfterSubsidy: "cid_actual_roi_after_subsidy", + CidCouponAmount: "cid_coupon_amount", + CidCouponCallbackPaidRefundAmount: "cid_coupon_callback_paid_refund_amount", + CidVoucherCost: "cid_voucher_cost", + } +} diff --git a/service/copydata/campaign_report_service.go b/service/copydata/campaign_report_service.go new file mode 100644 index 0000000..1d724f6 --- /dev/null +++ b/service/copydata/campaign_report_service.go @@ -0,0 +1,97 @@ +package copydata + +import ( + dao "cid/dao/copydata" + dto "cid/model/dto/copydata" + "context" + "errors" + + "gitea.com/red-future/common/beans" +) + +type campaignReportSumService struct{} + +// CampaignReportSum 广告计划效果指标表服务 +var CampaignReportSum = new(campaignReportSumService) + +// Create 创建广告计划效果指标表 +func (s *campaignReportSumService) Create(ctx context.Context, req *dto.CampaignReportSumItem) (res *dto.CreateCampaignReportSumRes, err error) { + // 验证必要字段 + if req.ReportDateStr == "" { + return nil, errors.New("报告日期不能为空") + } + + // 插入数据库 + id, err := dao.CampaignReportSum.Insert(ctx, req) + if err != nil { + return nil, err + } + + res = &dto.CreateCampaignReportSumRes{ + Id: id, + } + return +} + +// BatchCreate 批量创建广告计划效果指标表 +func (s *campaignReportSumService) BatchCreate(ctx context.Context, req *dto.BatchCreateCampaignReportSumReq) (res *dto.BatchCreateCampaignReportSumRes, 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.CampaignReportSum.BatchInsert(ctx, req.Items) + if err != nil { + return nil, err + } + + res = &dto.BatchCreateCampaignReportSumRes{ + SuccessCount: successCount, + FailCount: failCount, + FailedItems: failedIndexes, + } + return +} + +// CreateDetail 创建广告效果指标表 +func (s *campaignReportSumService) CreateDetail(ctx context.Context, req *dto.CampaignReportDetailItem) (res *dto.CreateCampaignReportDetailRes, err error) { + // 验证必要字段 + if req.ReportDateStr == "" { + return nil, errors.New("报告日期不能为空") + } + + // 插入数据库 + id, err := dao.CampaignReportDetail.Insert(ctx, req) + if err != nil { + return nil, err + } + + res = &dto.CreateCampaignReportDetailRes{ + Id: id, + } + return +} + +// BatchCreateDetail 批量创建广告效果指标表 +func (s *campaignReportSumService) BatchCreateDetail(ctx context.Context, req *dto.BatchCreateCampaignReportDetailReq) (res *dto.BatchCreateCampaignReportDetailRes, 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.CampaignReportDetail.BatchInsert(ctx, req.Items) + if err != nil { + return nil, err + } + + res = &dto.BatchCreateCampaignReportDetailRes{ + SuccessCount: successCount, + FailCount: failCount, + FailedItems: failedIndexes, + } + return +}