重构数据引擎
This commit is contained in:
@@ -1,113 +0,0 @@
|
||||
package copydata
|
||||
|
||||
import (
|
||||
"context"
|
||||
dao "dataengine/dao/copydata"
|
||||
dto "dataengine/model/dto/copydata"
|
||||
"errors"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
type cidAccountReportDetailService struct{}
|
||||
|
||||
// CidAccountReportDetail 广告数据报表详情服务
|
||||
var CidAccountReportDetail = new(cidAccountReportDetailService)
|
||||
|
||||
// Create 创建广告数据报表详情
|
||||
func (s *cidAccountReportDetailService) Create(ctx context.Context, req *dto.CidAccountReportDetailItem) (res *dto.CreateCidAccountReportDetailRes, err error) {
|
||||
// 验证必要字段
|
||||
if req.DataType == "" {
|
||||
return nil, errors.New("数据类型不能为空")
|
||||
}
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.CidAccountReportDetail.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateCidAccountReportDetailRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建广告数据报表详情
|
||||
func (s *cidAccountReportDetailService) BatchCreate(ctx context.Context, req *dto.BatchCreateCidAccountReportDetailReq) (res *dto.BatchCreateCidAccountReportDetailRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"})
|
||||
// 验证数据
|
||||
if len(req.Items) == 0 {
|
||||
return nil, errors.New("批量创建数据不能为空")
|
||||
}
|
||||
|
||||
//// 验证每条数据
|
||||
//for i, item := range req.Items {
|
||||
// if item.DataType == "" {
|
||||
// return nil, errors.New("第" + string(rune(i+1)) + "条数据的数据类型不能为空")
|
||||
// }
|
||||
// if item.ReportDateStr == "" {
|
||||
// return nil, errors.New("第" + string(rune(i+1)) + "条数据的报告日期不能为空")
|
||||
// }
|
||||
//}
|
||||
|
||||
// 批量插入数据库
|
||||
successCount, failCount, failedIndexes, err := dao.CidAccountReportDetail.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateCidAccountReportDetailRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// CreateSum Create 创建广告数据报表汇总
|
||||
func (s *cidAccountReportDetailService) CreateSum(ctx context.Context, req *dto.CidAccountReportSumItem) (res *dto.CreateCidAccountReportSumRes, err error) {
|
||||
// 验证必要字段
|
||||
if req.DataType == "" {
|
||||
return nil, errors.New("数据类型不能为空")
|
||||
}
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.CidAccountReportSum.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateCidAccountReportSumRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreateSum 批量创建广告数据报表汇总
|
||||
func (s *cidAccountReportDetailService) BatchCreateSum(ctx context.Context, req *dto.BatchCreateCidAccountReportSumReq) (res *dto.BatchCreateCidAccountReportSumRes, 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.CidAccountReportSum.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateCidAccountReportSumRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package copydata
|
||||
|
||||
import (
|
||||
"context"
|
||||
dao "dataengine/dao/copydata"
|
||||
dto "dataengine/model/dto/copydata"
|
||||
"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
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
package copydata
|
||||
|
||||
import (
|
||||
"context"
|
||||
dao "dataengine/dao/copydata"
|
||||
dto "dataengine/model/dto/copydata"
|
||||
"errors"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
type creativeReportSumService struct{}
|
||||
|
||||
// CreativeReportSum 广告效果指标表服务
|
||||
var CreativeReportSum = new(creativeReportSumService)
|
||||
|
||||
// Create 创建广告效果指标表
|
||||
func (s *creativeReportSumService) Create(ctx context.Context, req *dto.CreativeReportSumItem) (res *dto.CreateCreativeReportSumRes, err error) {
|
||||
// 验证必要字段
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.CreativeReportSum.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateCreativeReportSumRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建广告效果指标表
|
||||
func (s *creativeReportSumService) BatchCreate(ctx context.Context, req *dto.BatchCreateCreativeReportSumReq) (res *dto.BatchCreateCreativeReportSumRes, 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.CreativeReportSum.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateCreativeReportSumRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (s *creativeReportSumService) CreateDetail(ctx context.Context, req *dto.CreativeReportDetailItem) (res *dto.CreateCreativeReportDetailRes, err error) {
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
id, err := dao.CreativeReportDetail.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateCreativeReportDetailRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (s *creativeReportSumService) BatchCreateDetail(ctx context.Context, req *dto.BatchCreateCreativeReportDetailReq) (res *dto.BatchCreateCreativeReportDetailRes, 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.CreativeReportDetail.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateCreativeReportDetailRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1,261 +0,0 @@
|
||||
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,
|
||||
}
|
||||
}
|
||||
@@ -1,237 +0,0 @@
|
||||
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,
|
||||
}
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package copydata
|
||||
|
||||
import (
|
||||
"context"
|
||||
dao "dataengine/dao/copydata"
|
||||
dto "dataengine/model/dto/copydata"
|
||||
"errors"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
type storewideReportService struct{}
|
||||
|
||||
// StorewideReportSum 广告效果指标表服务
|
||||
var StorewideReportSum = new(storewideReportService)
|
||||
|
||||
// Create 创建广告效果指标表
|
||||
func (s *storewideReportService) Create(ctx context.Context, req *dto.StorewideReportSumItem) (res *dto.CreateStorewideReportSumRes, err error) {
|
||||
// 验证必要字段
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.StorewideReportSum.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateStorewideReportSumRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建广告效果指标表
|
||||
func (s *storewideReportService) BatchCreate(ctx context.Context, req *dto.BatchCreateStorewideReportSumReq) (res *dto.BatchCreateStorewideReportSumRes, 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.StorewideReportSum.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateStorewideReportSumRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Create 创建广告效果指标表
|
||||
func (s *storewideReportService) CreateDetail(ctx context.Context, req *dto.StorewideReportDetailItem) (res *dto.CreateStorewideReportDetailRes, err error) {
|
||||
// 验证必要字段
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.StorewideReportDetail.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateStorewideReportDetailRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建广告效果指标表
|
||||
func (s *storewideReportService) BatchCreateDetail(ctx context.Context, req *dto.BatchCreateStorewideReportDetailReq) (res *dto.BatchCreateStorewideReportDetailRes, 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.StorewideReportDetail.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateStorewideReportDetailRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
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 taskReportService struct{}
|
||||
|
||||
// TaskReport 调控任务数据服务
|
||||
var TaskReport = new(taskReportService)
|
||||
|
||||
// Create 创建调控任务数据
|
||||
func (s *taskReportService) Create(ctx context.Context, req *dto.TaskReportItem) (res *dto.CreateTaskReportRes, err error) {
|
||||
// 验证必要字段
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
id, err := dao.TaskReport.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateTaskReportRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建调控任务数据
|
||||
func (s *taskReportService) BatchCreate(ctx context.Context, req *dto.BatchCreateTaskReportReq) (res *dto.BatchCreateTaskReportRes, 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.TaskReport.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateTaskReportRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// List 获取调控任务数据列表
|
||||
func (s *taskReportService) List(ctx context.Context, req *dto.ListTaskReportReq) (res *dto.ListTaskReportRes, err error) {
|
||||
list, total, err := dao.TaskReport.List(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 转换为 DTO 格式
|
||||
items := make([]*dto.TaskReportItem, len(list))
|
||||
for i, item := range list {
|
||||
items[i] = convertEntityToDTO(item)
|
||||
}
|
||||
|
||||
res = &dto.ListTaskReportRes{
|
||||
List: items,
|
||||
Total: total,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// convertEntityToDTO 将实体转换为 DTO
|
||||
func convertEntityToDTO(entity *entity.TaskReport) *dto.TaskReportItem {
|
||||
return &dto.TaskReportItem{
|
||||
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,
|
||||
PhotoId: entity.PhotoId,
|
||||
CostTotal: entity.CostTotal,
|
||||
T0Gmv: entity.T0Gmv,
|
||||
T0Roi: entity.T0Roi,
|
||||
T0OrderCnt: entity.T0OrderCnt,
|
||||
T0OrderCntCost: entity.T0OrderCntCost,
|
||||
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,
|
||||
LivePlayCnt: entity.LivePlayCnt,
|
||||
ItemEntranceClkCnt: entity.ItemEntranceClkCnt,
|
||||
ShowCnt: entity.ShowCnt,
|
||||
ReportDateStr: entity.ReportDateStr,
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
package copydata
|
||||
|
||||
import (
|
||||
"context"
|
||||
dao "dataengine/dao/copydata"
|
||||
dto "dataengine/model/dto/copydata"
|
||||
"errors"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
type unitReportSumService struct{}
|
||||
|
||||
// UnitReportSumService 广告效果指标服务
|
||||
var UnitReportSumService = new(unitReportSumService)
|
||||
|
||||
// Create 创建广告效果指标
|
||||
func (s *unitReportSumService) Create(ctx context.Context, req *dto.UnitReportSumItem) (res *dto.CreateUnitReportSumRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"})
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
id, err := dao.UnitReportSum.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateUnitReportSumRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建广告效果指标
|
||||
func (s *unitReportSumService) BatchCreate(ctx context.Context, req *dto.BatchCreateUnitReportSumReq) (res *dto.BatchCreateUnitReportSumRes, 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.UnitReportSum.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateUnitReportSumRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Create 创建广告效果指标详情
|
||||
func (s *unitReportSumService) CreateDetail(ctx context.Context, req *dto.UnitReportDetailItem) (res *dto.CreateUnitReportDetailRes, err error) {
|
||||
if req.ReportDateStr == "" {
|
||||
return nil, errors.New("报告日期不能为空")
|
||||
}
|
||||
|
||||
id, err := dao.UnitReportDetail.Insert(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.CreateUnitReportDetailRes{
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// BatchCreate 批量创建广告效果指标详情
|
||||
func (s *unitReportSumService) BatchCreateDetail(ctx context.Context, req *dto.BatchCreateUnitReportDetailReq) (res *dto.BatchCreateUnitReportDetailRes, 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.UnitReportDetail.BatchInsert(ctx, req.Items)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res = &dto.BatchCreateUnitReportDetailRes{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
FailedItems: failedIndexes,
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user