Files
data-engine/service/copydata/material_report_service.go
2026-04-02 11:51:44 +08:00

262 lines
13 KiB
Go

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