238 lines
11 KiB
Go
238 lines
11 KiB
Go
package copydata
|
|
|
|
import (
|
|
"context"
|
|
dao "dataengine/dao/copydata"
|
|
dto "dataengine/model/dto/copydata"
|
|
entity "dataengine/model/entity/copydata"
|
|
"errors"
|
|
)
|
|
|
|
var PopulationReportService = new(populationReportService)
|
|
|
|
type populationReportService struct{}
|
|
|
|
// Create 创建人群报表数据
|
|
func (s *populationReportService) Create(ctx context.Context, req *dto.PopulationReportItem) (*dto.CreatePopulationReportRes, error) {
|
|
if req.ReportDateStr == "" {
|
|
return nil, errors.New("报告日期不能为空")
|
|
}
|
|
|
|
id, err := dao.PopulationReport.Insert(ctx, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &dto.CreatePopulationReportRes{Id: id}, nil
|
|
}
|
|
|
|
// BatchCreate 批量创建人群报表数据
|
|
func (s *populationReportService) BatchCreate(ctx context.Context, req []*dto.PopulationReportItem) (*dto.BatchCreatePopulationReportRes, error) {
|
|
if len(req) == 0 {
|
|
return nil, errors.New("批量创建数据不能为空")
|
|
}
|
|
|
|
successCount, failCount, failedIndexes, err := dao.PopulationReport.BatchInsert(ctx, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &dto.BatchCreatePopulationReportRes{
|
|
SuccessCount: successCount,
|
|
FailCount: failCount,
|
|
FailedItems: failedIndexes,
|
|
}, nil
|
|
}
|
|
|
|
// List 查询人群报表数据列表
|
|
func (s *populationReportService) List(ctx context.Context, req *dto.ListPopulationReportReq) (*dto.ListPopulationReportRes, error) {
|
|
list, total, err := dao.PopulationReport.List(ctx, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// 转换为 DTO
|
|
items := s.convertToDTOs(list)
|
|
|
|
return &dto.ListPopulationReportRes{
|
|
List: items,
|
|
Total: total,
|
|
}, nil
|
|
}
|
|
|
|
// convertToDTOs 将实体列表转换为 DTO 列表
|
|
func (s *populationReportService) convertToDTOs(entities []*entity.PopulationReport) []*dto.PopulationReportItem {
|
|
items := make([]*dto.PopulationReportItem, 0, len(entities))
|
|
for _, e := range entities {
|
|
items = append(items, s.convertToDTO(e))
|
|
}
|
|
return items
|
|
}
|
|
|
|
// convertToDTO 将实体转换为 DTO
|
|
func (s *populationReportService) convertToDTO(e *entity.PopulationReport) *dto.PopulationReportItem {
|
|
return &dto.PopulationReportItem{
|
|
PhotoName: e.PhotoName,
|
|
PhotoIdStr: e.PhotoIdStr,
|
|
PhotoId: e.PhotoId,
|
|
ModPriceSegment: e.ModPriceSegment,
|
|
AgeSegment: e.AgeSegment,
|
|
Province: e.Province,
|
|
Gender: e.Gender,
|
|
MerchantProductId: e.MerchantProductId,
|
|
ReportDateStr: e.ReportDateStr,
|
|
CampaignId: e.CampaignId,
|
|
CampaignName: e.CampaignName,
|
|
UnitId: e.UnitId,
|
|
UnitName: e.UnitName,
|
|
CreativeId: e.CreativeId,
|
|
CreativeName: e.CreativeName,
|
|
AdPhotoPlayedFiveRatio: e.AdPhotoPlayedFiveRatio,
|
|
AdPhotoPlayedThreeRatio: e.AdPhotoPlayedThreeRatio,
|
|
OrderSubmitRoi: e.OrderSubmitRoi,
|
|
OrderSubmitAmt: e.OrderSubmitAmt,
|
|
EventOrderSubmitCost: e.EventOrderSubmitCost,
|
|
EventOrderSubmit: e.EventOrderSubmit,
|
|
EventOrderPaidRoi: e.EventOrderPaidRoi,
|
|
EventAppInvoked: e.EventAppInvoked,
|
|
EventAddShoppingCart: e.EventAddShoppingCart,
|
|
ConversionNumCost: e.ConversionNumCost,
|
|
AdEffectivePlayNum: e.AdEffectivePlayNum,
|
|
AdItemClick: e.AdItemClick,
|
|
CostTotal: e.CostTotal,
|
|
AdShow: e.AdShow,
|
|
AdShow1kCost: e.AdShow1kCost,
|
|
Impression: e.Impression,
|
|
PhotoClick: e.PhotoClick,
|
|
PhotoClickRatio: e.PhotoClickRatio,
|
|
Click: e.Click,
|
|
ActionbarClick: e.ActionbarClick,
|
|
ActionbarClickCost: e.ActionbarClickCost,
|
|
EspClickRatio: e.EspClickRatio,
|
|
ActionRatio: e.ActionRatio,
|
|
AdItemClickCount: e.AdItemClickCount,
|
|
EspLivePlayedSeconds: e.EspLivePlayedSeconds,
|
|
PlayedThreeSeconds: e.PlayedThreeSeconds,
|
|
Play3sRatio: e.Play3sRatio,
|
|
PlayedFiveSeconds: e.PlayedFiveSeconds,
|
|
Play5sRatio: e.Play5sRatio,
|
|
PlayedEnd: e.PlayedEnd,
|
|
PlayEndRatio: e.PlayEndRatio,
|
|
Share: e.Share,
|
|
Comment: e.Comment,
|
|
Likes: e.Likes,
|
|
Report: e.Report,
|
|
Block: e.Block,
|
|
ItemNegative: e.ItemNegative,
|
|
LiveShare: e.LiveShare,
|
|
LiveComment: e.LiveComment,
|
|
LiveReward: e.LiveReward,
|
|
EffectivePlayCount: e.EffectivePlayCount,
|
|
EffectivePlayRatio: e.EffectivePlayRatio,
|
|
ConversionNum: e.ConversionNum,
|
|
ConversionCostEsp: e.ConversionCostEsp,
|
|
Roi: e.Roi,
|
|
Gmv: e.Gmv,
|
|
T0Gmv: e.T0Gmv,
|
|
T1Gmv: e.T1Gmv,
|
|
T3Gmv: e.T3Gmv,
|
|
T7Gmv: e.T7Gmv,
|
|
T15Gmv: e.T15Gmv,
|
|
T30Gmv: e.T30Gmv,
|
|
T0Roi: e.T0Roi,
|
|
T1Roi: e.T1Roi,
|
|
T3Roi: e.T3Roi,
|
|
T7Roi: e.T7Roi,
|
|
T15Roi: e.T15Roi,
|
|
T30Roi: e.T30Roi,
|
|
PaiedOrder: e.PaiedOrder,
|
|
OrderRatio: e.OrderRatio,
|
|
T0OrderCnt: e.T0OrderCnt,
|
|
T0OrderCntCost: e.T0OrderCntCost,
|
|
T0OrderCntRatio: e.T0OrderCntRatio,
|
|
T1OrderCnt: e.T1OrderCnt,
|
|
T7OrderCnt: e.T7OrderCnt,
|
|
T15OrderCnt: e.T15OrderCnt,
|
|
T30OrderCnt: e.T30OrderCnt,
|
|
MerchantRecoFans: e.MerchantRecoFans,
|
|
T1Retention: e.T1Retention,
|
|
T7Retention: e.T7Retention,
|
|
T15Retention: e.T15Retention,
|
|
T30Retention: e.T30Retention,
|
|
T1RetentionRatio: e.T1RetentionRatio,
|
|
T7RetentionRatio: e.T7RetentionRatio,
|
|
T15RetentionRatio: e.T15RetentionRatio,
|
|
T30RetentionRatio: e.T30RetentionRatio,
|
|
ReservationSuccess: e.ReservationSuccess,
|
|
ReservationCost: e.ReservationCost,
|
|
StandardLivePlayedStarted: e.StandardLivePlayedStarted,
|
|
AdLivePlayCnt: e.AdLivePlayCnt,
|
|
AdLivePlayCntCost: e.AdLivePlayCntCost,
|
|
LiveAudienceCost: e.LiveAudienceCost,
|
|
LiveEventGoodsView: e.LiveEventGoodsView,
|
|
GoodsClickRatio: e.GoodsClickRatio,
|
|
DirectAttrPlatNewBuyerCnt: e.DirectAttrPlatNewBuyerCnt,
|
|
T30AttrPlatTotalBuyerCnt: e.T30AttrPlatTotalBuyerCnt,
|
|
DirectAttrSellerNewBuyerCnt: e.DirectAttrSellerNewBuyerCnt,
|
|
T30AttrSellerTotalBuyerCnt: e.T30AttrSellerTotalBuyerCnt,
|
|
T7IndirectOrderAmt: e.T7IndirectOrderAmt,
|
|
T7IndirectOrderCnt: e.T7IndirectOrderCnt,
|
|
FansT0GmvPerFans: e.FansT0GmvPerFans,
|
|
FansT3GmvPerFans: e.FansT3GmvPerFans,
|
|
FansT7GmvPerFans: e.FansT7GmvPerFans,
|
|
FansT15GmvPerFans: e.FansT15GmvPerFans,
|
|
FansT30GmvPerFans: e.FansT30GmvPerFans,
|
|
RecoFansCost: e.RecoFansCost,
|
|
QcpxWhiteboxDirectOrderPaymentAmt: e.QcpxWhiteboxDirectOrderPaymentAmt,
|
|
QcpxWhiteboxDirectOrderCnt: e.QcpxWhiteboxDirectOrderCnt,
|
|
FansT0Gmv: e.FansT0Gmv,
|
|
FansT1Gmv: e.FansT1Gmv,
|
|
FansT7Gmv: e.FansT7Gmv,
|
|
FansT15Gmv: e.FansT15Gmv,
|
|
FansT30Gmv: e.FansT30Gmv,
|
|
FansT0Roi: e.FansT0Roi,
|
|
FansT1Roi: e.FansT1Roi,
|
|
FansT7Roi: e.FansT7Roi,
|
|
FansT15Roi: e.FansT15Roi,
|
|
FansT30Roi: e.FansT30Roi,
|
|
T0ShopNewBuyerOrderPaymentAmt: e.T0ShopNewBuyerOrderPaymentAmt,
|
|
T1ShopNewBuyerOrderPaymentAmt: e.T1ShopNewBuyerOrderPaymentAmt,
|
|
T3ShopNewBuyerOrderPaymentAmt: e.T3ShopNewBuyerOrderPaymentAmt,
|
|
T7ShopNewBuyerOrderPaymentAmt: e.T7ShopNewBuyerOrderPaymentAmt,
|
|
T15ShopNewBuyerOrderPaymentAmt: e.T15ShopNewBuyerOrderPaymentAmt,
|
|
T30ShopNewBuyerOrderPaymentAmt: e.T30ShopNewBuyerOrderPaymentAmt,
|
|
T0ShopNewBuyerOrderCnt: e.T0ShopNewBuyerOrderCnt,
|
|
T1ShopNewBuyerOrderCnt: e.T1ShopNewBuyerOrderCnt,
|
|
T3ShopNewBuyerOrderCnt: e.T3ShopNewBuyerOrderCnt,
|
|
T7ShopNewBuyerOrderCnt: e.T7ShopNewBuyerOrderCnt,
|
|
T15ShopNewBuyerOrderCnt: e.T15ShopNewBuyerOrderCnt,
|
|
T30ShopNewBuyerOrderCnt: e.T30ShopNewBuyerOrderCnt,
|
|
T1NewBuyerRepurchaseRatio: e.T1NewBuyerRepurchaseRatio,
|
|
T3NewBuyerRepurchaseRatio: e.T3NewBuyerRepurchaseRatio,
|
|
T7NewBuyerRepurchaseRatio: e.T7NewBuyerRepurchaseRatio,
|
|
T15NewBuyerRepurchaseRatio: e.T15NewBuyerRepurchaseRatio,
|
|
T30NewBuyerRepurchaseRatio: e.T30NewBuyerRepurchaseRatio,
|
|
T0ShopNewBuyerRoi: e.T0ShopNewBuyerRoi,
|
|
T1ShopNewBuyerRoi: e.T1ShopNewBuyerRoi,
|
|
T3ShopNewBuyerRoi: e.T3ShopNewBuyerRoi,
|
|
T7ShopNewBuyerRoi: e.T7ShopNewBuyerRoi,
|
|
T15ShopNewBuyerRoi: e.T15ShopNewBuyerRoi,
|
|
T30ShopNewBuyerRoi: e.T30ShopNewBuyerRoi,
|
|
CreateCardOrderCnt: e.CreateCardOrderCnt,
|
|
ForwardTsCreateCardOrderCnt: e.ForwardTsCreateCardOrderCnt,
|
|
CreateCardOrderCost: e.CreateCardOrderCost,
|
|
ForwardTsCreateCardOrderCost: e.ForwardTsCreateCardOrderCost,
|
|
ActivateCardOrderCnt: e.ActivateCardOrderCnt,
|
|
ForwardTsActivateCardOrderCnt: e.ForwardTsActivateCardOrderCnt,
|
|
ActivateCardOrderCost: e.ActivateCardOrderCost,
|
|
ForwardTsActivateCardOrderCost: e.ForwardTsActivateCardOrderCost,
|
|
CreateCardOrderRatio: e.CreateCardOrderRatio,
|
|
ForwardTsCreateCardOrderRatio: e.ForwardTsCreateCardOrderRatio,
|
|
ActivateCardOrderCntRatio: e.ActivateCardOrderCntRatio,
|
|
ForwardTsActivateCardOrderRatio: e.ForwardTsActivateCardOrderRatio,
|
|
LivePlayCnt: e.LivePlayCnt,
|
|
ItemEntranceClkCnt: e.ItemEntranceClkCnt,
|
|
ShowCnt: e.ShowCnt,
|
|
}
|
|
}
|