262 lines
13 KiB
Go
262 lines
13 KiB
Go
package copydata
|
|
|
|
import (
|
|
"context"
|
|
dao "dataengine/dao/copydata"
|
|
dto "dataengine/model/dto/copydata"
|
|
entity "dataengine/model/entity/copydata"
|
|
"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,
|
|
}
|
|
}
|