|
@@ -3,10 +3,12 @@ package flink.zanxiangnet.ad.monitoring.pojo.entity;
|
|
|
import com.google.gson.annotations.SerializedName;
|
|
|
import flink.zanxiangnet.ad.monitoring.maxcompute.bean.annotation.MaxComputeColumn;
|
|
|
import flink.zanxiangnet.ad.monitoring.maxcompute.bean.annotation.MaxComputeTable;
|
|
|
+import flink.zanxiangnet.ad.monitoring.util.NumberUtil;
|
|
|
import flink.zanxiangnet.ad.monitoring.util.PlanUtil;
|
|
|
import lombok.Data;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
@@ -98,25 +100,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 当日成本偏差。反映广告今日的实际成本与目标成本直接的差异,注:该项成本相关数据按小时更新,与实时更新的「转化目标成本」数据存在出入属于正常情况。
|
|
|
*/
|
|
|
@SerializedName("cost_deviation_rate_total")
|
|
|
- private Double costDeviationRateTotal;
|
|
|
+ private BigDecimal costDeviationRateTotal;
|
|
|
|
|
|
/**
|
|
|
* 当日成本偏差。反映广告今日的实际成本与目标成本直接的差异,注:该项成本相关数据按小时更新,与实时更新的「转化目标成本」数据存在出入属于正常情况。
|
|
|
*/
|
|
|
@SerializedName("cost_deviation_rate_day")
|
|
|
- private Double costDeviationRateDay;
|
|
|
+ private BigDecimal costDeviationRateDay;
|
|
|
|
|
|
/**
|
|
|
* 当日成本偏差。反映广告今日的实际成本与目标成本直接的差异,注:该项成本相关数据按小时更新,与实时更新的「转化目标成本」数据存在出入属于正常情况。
|
|
|
*/
|
|
|
@SerializedName("cost_deviation_rate_hour")
|
|
|
- private Double costDeviationRateHour;
|
|
|
+ private BigDecimal costDeviationRateHour;
|
|
|
|
|
|
/**
|
|
|
* 当日成本偏差。反映广告今日的实际成本与目标成本直接的差异,注:该项成本相关数据按小时更新,与实时更新的「转化目标成本」数据存在出入属于正常情况。
|
|
|
*/
|
|
|
@SerializedName("cost_deviation_rate_minute")
|
|
|
- private Double costDeviationRateMinute;
|
|
|
+ private BigDecimal costDeviationRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 消耗
|
|
@@ -218,25 +220,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 人均曝光次数。每个用户观看广告的平均次数。
|
|
|
*/
|
|
|
@SerializedName("avg_view_per_user_all")
|
|
|
- private Double avgViewPerUserAll;
|
|
|
+ private BigDecimal avgViewPerUserAll;
|
|
|
|
|
|
/**
|
|
|
* 人均曝光次数。每个用户观看广告的平均次数。
|
|
|
*/
|
|
|
@SerializedName("avg_view_per_user_day")
|
|
|
- private Double avgViewPerUserDay;
|
|
|
+ private BigDecimal avgViewPerUserDay;
|
|
|
|
|
|
/**
|
|
|
* 人均曝光次数。每个用户观看广告的平均次数。
|
|
|
*/
|
|
|
@SerializedName("avg_view_per_user_hour")
|
|
|
- private Double avgViewPerUserHour;
|
|
|
+ private BigDecimal avgViewPerUserHour;
|
|
|
|
|
|
/**
|
|
|
* 人均曝光次数。每个用户观看广告的平均次数。
|
|
|
*/
|
|
|
@SerializedName("avg_view_per_user_minute")
|
|
|
- private Double avgViewPerUserMinute;
|
|
|
+ private BigDecimal avgViewPerUserMinute;
|
|
|
|
|
|
/**
|
|
|
* 点击次数。用户在广告外层进行点击操作的次数。包括点击图片/视频,及朋友圈广告“文字链、头像、昵称、门店、选择按钮”等所有广告外层区域的点击。
|
|
@@ -266,25 +268,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 点击率。看到广告后执行点击操作的百分比。计算逻辑:广告点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("ctr_all")
|
|
|
- private Double ctrAll;
|
|
|
+ private BigDecimal ctrAll;
|
|
|
|
|
|
/**
|
|
|
* 点击率。看到广告后执行点击操作的百分比。计算逻辑:广告点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("ctr_day")
|
|
|
- private Double ctrDay;
|
|
|
+ private BigDecimal ctrDay;
|
|
|
|
|
|
/**
|
|
|
* 点击率。看到广告后执行点击操作的百分比。计算逻辑:广告点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("ctr_hour")
|
|
|
- private Double ctrHour;
|
|
|
+ private BigDecimal ctrHour;
|
|
|
|
|
|
/**
|
|
|
* 点击率。看到广告后执行点击操作的百分比。计算逻辑:广告点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("ctr_minute")
|
|
|
- private Double ctrMinute;
|
|
|
+ private BigDecimal ctrMinute;
|
|
|
|
|
|
/**
|
|
|
* 点击均价。一次广告点击的平均花费。计算逻辑:广告花费/广告点击次数。
|
|
@@ -338,25 +340,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 可转化点击率。用户看到广告后执行可转化点击操作的百分比。计算逻辑:广告可转化点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("valuable_click_rate_all")
|
|
|
- private Double valuableClickRateAll;
|
|
|
+ private BigDecimal valuableClickRateAll;
|
|
|
|
|
|
/**
|
|
|
* 可转化点击率。用户看到广告后执行可转化点击操作的百分比。计算逻辑:广告可转化点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("valuable_click_rate_day")
|
|
|
- private Double valuableClickRateDay;
|
|
|
+ private BigDecimal valuableClickRateDay;
|
|
|
|
|
|
/**
|
|
|
* 可转化点击率。用户看到广告后执行可转化点击操作的百分比。计算逻辑:广告可转化点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("valuable_click_rate_hour")
|
|
|
- private Double valuableClickRateHour;
|
|
|
+ private BigDecimal valuableClickRateHour;
|
|
|
|
|
|
/**
|
|
|
* 可转化点击率。用户看到广告后执行可转化点击操作的百分比。计算逻辑:广告可转化点击次数/广告曝光次数。
|
|
|
*/
|
|
|
@SerializedName("valuable_click_rate_minute")
|
|
|
- private Double valuableClickRateMinute;
|
|
|
+ private BigDecimal valuableClickRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 可转化点击成本。一次可转化点击的平均花费。计算逻辑:广告花费/可转化点击次数。
|
|
@@ -434,25 +436,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 目标转化率。朋友圈:转化目标量/可转化点击次数。公众号:转化目标量/点击次数。
|
|
|
*/
|
|
|
@SerializedName("conversions_rate_all")
|
|
|
- private Double conversionsRateAll;
|
|
|
+ private BigDecimal conversionsRateAll;
|
|
|
|
|
|
/**
|
|
|
* 目标转化率。朋友圈:转化目标量/可转化点击次数。公众号:转化目标量/点击次数。
|
|
|
*/
|
|
|
@SerializedName("conversions_rate_day")
|
|
|
- private Double conversionsRateDay;
|
|
|
+ private BigDecimal conversionsRateDay;
|
|
|
|
|
|
/**
|
|
|
* 目标转化率。朋友圈:转化目标量/可转化点击次数。公众号:转化目标量/点击次数。
|
|
|
*/
|
|
|
@SerializedName("conversions_rate_hour")
|
|
|
- private Double conversionsRateHour;
|
|
|
+ private BigDecimal conversionsRateHour;
|
|
|
|
|
|
/**
|
|
|
* 目标转化率。朋友圈:转化目标量/可转化点击次数。公众号:转化目标量/点击次数。
|
|
|
*/
|
|
|
@SerializedName("conversions_rate_minute")
|
|
|
- private Double conversionsRateMinute;
|
|
|
+ private BigDecimal conversionsRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 深度转化目标量-灰度中。根据您选择的深度智能优化目标,该广告对应的具体数量。部分需接入转化跟踪后可统计。
|
|
@@ -506,25 +508,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 深度目标转化率-灰度中。朋友圈:深度转化目标量/可转化点击次数。公众号:深度转化目标量/点击次数。指标随深度转化功能灰度中。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("deep_conversions_rate_all")
|
|
|
- private Double deepConversionsRateAll;
|
|
|
+ private BigDecimal deepConversionsRateAll;
|
|
|
|
|
|
/**
|
|
|
* 深度目标转化率-灰度中。朋友圈:深度转化目标量/可转化点击次数。公众号:深度转化目标量/点击次数。指标随深度转化功能灰度中。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("deep_conversions_rate_day")
|
|
|
- private Double deepConversionsRateDay;
|
|
|
+ private BigDecimal deepConversionsRateDay;
|
|
|
|
|
|
/**
|
|
|
* 深度目标转化率-灰度中。朋友圈:深度转化目标量/可转化点击次数。公众号:深度转化目标量/点击次数。指标随深度转化功能灰度中。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("deep_conversions_rate_hour")
|
|
|
- private Double deepConversionsRateHour;
|
|
|
+ private BigDecimal deepConversionsRateHour;
|
|
|
|
|
|
/**
|
|
|
* 深度目标转化率-灰度中。朋友圈:深度转化目标量/可转化点击次数。公众号:深度转化目标量/点击次数。指标随深度转化功能灰度中。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("deep_conversions_rate_minute")
|
|
|
- private Double deepConversionsRateMinute;
|
|
|
+ private BigDecimal deepConversionsRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 下单量。用户通过该广告进行商品成交(如下单提交、在线支付)的次数。接入转化跟踪后可统计。
|
|
@@ -602,25 +604,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 下单率。一次点击到下单的转化率。
|
|
|
*/
|
|
|
@SerializedName("order_rate_all")
|
|
|
- private Double orderRateAll;
|
|
|
+ private BigDecimal orderRateAll;
|
|
|
|
|
|
/**
|
|
|
* 下单率。一次点击到下单的转化率。
|
|
|
*/
|
|
|
@SerializedName("order_rate_day")
|
|
|
- private Double orderRateDay;
|
|
|
+ private BigDecimal orderRateDay;
|
|
|
|
|
|
/**
|
|
|
* 下单率。一次点击到下单的转化率。
|
|
|
*/
|
|
|
@SerializedName("order_rate_hour")
|
|
|
- private Double orderRateHour;
|
|
|
+ private BigDecimal orderRateHour;
|
|
|
|
|
|
/**
|
|
|
* 下单率。一次点击到下单的转化率。
|
|
|
*/
|
|
|
@SerializedName("order_rate_minute")
|
|
|
- private Double orderRateMinute;
|
|
|
+ private BigDecimal orderRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 下单金额。广告带来的总订单金额(即销售额)。接入转化跟踪后可统计。
|
|
@@ -698,25 +700,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 下单ROI。下单金额/广告花费。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("order_roi_all")
|
|
|
- private Double orderRoiAll;
|
|
|
+ private BigDecimal orderRoiAll;
|
|
|
|
|
|
/**
|
|
|
* 下单ROI。下单金额/广告花费。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("order_roi_day")
|
|
|
- private Double orderRoiDay;
|
|
|
+ private BigDecimal orderRoiDay;
|
|
|
|
|
|
/**
|
|
|
* 下单ROI。下单金额/广告花费。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("order_roi_hour")
|
|
|
- private Double orderRoiHour;
|
|
|
+ private BigDecimal orderRoiHour;
|
|
|
|
|
|
/**
|
|
|
* 下单ROI。下单金额/广告花费。接入转化跟踪后可统计。
|
|
|
*/
|
|
|
@SerializedName("order_roi_minute")
|
|
|
- private Double orderRoiMinute;
|
|
|
+ private BigDecimal orderRoiMinute;
|
|
|
|
|
|
/**
|
|
|
* 签收次数。签收从广告主处购买的商品的次数。接入转化跟踪后可统计。
|
|
@@ -818,49 +820,49 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 小游戏注册率。一次点击到小游戏注册的转化率。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_register_rate_all")
|
|
|
- private Double wechatMinigameRegisterRateAll;
|
|
|
+ private BigDecimal wechatMinigameRegisterRateAll;
|
|
|
|
|
|
/**
|
|
|
* 小游戏注册率。一次点击到小游戏注册的转化率。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_register_rate_day")
|
|
|
- private Double wechatMinigameRegisterRateDay;
|
|
|
+ private BigDecimal wechatMinigameRegisterRateDay;
|
|
|
|
|
|
/**
|
|
|
* 小游戏注册率。一次点击到小游戏注册的转化率。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_register_rate_hour")
|
|
|
- private Double wechatMinigameRegisterRateHour;
|
|
|
+ private BigDecimal wechatMinigameRegisterRateHour;
|
|
|
|
|
|
/**
|
|
|
* 小游戏注册率。一次点击到小游戏注册的转化率。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_register_rate_minute")
|
|
|
- private Double wechatMinigameRegisterRateMinute;
|
|
|
+ private BigDecimal wechatMinigameRegisterRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 首日新增广告ARPU。广告带来的注册用户,在注册当日,产生的平均广告变现收入。注:该指标天更新,可以查看昨天及以前的数据。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_arpu_all")
|
|
|
- private Double wechatMinigameArpuAll;
|
|
|
+ private BigDecimal wechatMinigameArpuAll;
|
|
|
|
|
|
/**
|
|
|
* 首日新增广告ARPU。广告带来的注册用户,在注册当日,产生的平均广告变现收入。注:该指标天更新,可以查看昨天及以前的数据。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_arpu_day")
|
|
|
- private Double wechatMinigameArpuDay;
|
|
|
+ private BigDecimal wechatMinigameArpuDay;
|
|
|
|
|
|
/**
|
|
|
* 首日新增广告ARPU。广告带来的注册用户,在注册当日,产生的平均广告变现收入。注:该指标天更新,可以查看昨天及以前的数据。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_arpu_hour")
|
|
|
- private Double wechatMinigameArpuHour;
|
|
|
+ private BigDecimal wechatMinigameArpuHour;
|
|
|
|
|
|
/**
|
|
|
* 首日新增广告ARPU。广告带来的注册用户,在注册当日,产生的平均广告变现收入。注:该指标天更新,可以查看昨天及以前的数据。
|
|
|
*/
|
|
|
@SerializedName("wechat_minigame_arpu_minute")
|
|
|
- private Double wechatMinigameArpuMinute;
|
|
|
+ private BigDecimal wechatMinigameArpuMinute;
|
|
|
|
|
|
/**
|
|
|
* 小游戏次留人数。通过广告首次登录小游戏,并在第二天再次登录的独立用户数。接入转化跟踪后可统计。
|
|
@@ -962,25 +964,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 公众号关注率。一次点击到公众号关注的转化率。
|
|
|
*/
|
|
|
@SerializedName("official_account_follow_rate_all")
|
|
|
- private Double officialAccountFollowRateAll;
|
|
|
+ private BigDecimal officialAccountFollowRateAll;
|
|
|
|
|
|
/**
|
|
|
* 公众号关注率。一次点击到公众号关注的转化率。
|
|
|
*/
|
|
|
@SerializedName("official_account_follow_rate_day")
|
|
|
- private Double officialAccountFollowRateDay;
|
|
|
+ private BigDecimal officialAccountFollowRateDay;
|
|
|
|
|
|
/**
|
|
|
* 公众号关注率。一次点击到公众号关注的转化率。
|
|
|
*/
|
|
|
@SerializedName("official_account_follow_rate_hour")
|
|
|
- private Double officialAccountFollowRateHour;
|
|
|
+ private BigDecimal officialAccountFollowRateHour;
|
|
|
|
|
|
/**
|
|
|
* 公众号关注率。一次点击到公众号关注的转化率。
|
|
|
*/
|
|
|
@SerializedName("official_account_follow_rate_minute")
|
|
|
- private Double officialAccountFollowRateMinute;
|
|
|
+ private BigDecimal officialAccountFollowRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 公众号内注册人数。用户通过关注类广告关注公众号后,在公众号内部产生了广告主定义的注册行为的人数(UV)。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
@@ -1010,25 +1012,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 公众号内注册比例。公众号内注册独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_register_rate_all")
|
|
|
- private Double officialAccountRegisterRateAll;
|
|
|
+ private BigDecimal officialAccountRegisterRateAll;
|
|
|
|
|
|
/**
|
|
|
* 公众号内注册比例。公众号内注册独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_register_rate_day")
|
|
|
- private Double officialAccountRegisterRateDay;
|
|
|
+ private BigDecimal officialAccountRegisterRateDay;
|
|
|
|
|
|
/**
|
|
|
* 公众号内注册比例。公众号内注册独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_register_rate_hour")
|
|
|
- private Double officialAccountRegisterRateHour;
|
|
|
+ private BigDecimal officialAccountRegisterRateHour;
|
|
|
|
|
|
/**
|
|
|
* 公众号内注册比例。公众号内注册独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_register_rate_minute")
|
|
|
- private Double officialAccountRegisterRateMinute;
|
|
|
+ private BigDecimal officialAccountRegisterRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 公众号内注册成本。广告花费/广告产生的注册行为数量。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
@@ -1154,25 +1156,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 公众号内填单比例。公众号内填单的独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_apply_rate_all")
|
|
|
- private Double officialAccountApplyRateAll;
|
|
|
+ private BigDecimal officialAccountApplyRateAll;
|
|
|
|
|
|
/**
|
|
|
* 公众号内填单比例。公众号内填单的独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_apply_rate_day")
|
|
|
- private Double officialAccountApplyRateDay;
|
|
|
+ private BigDecimal officialAccountApplyRateDay;
|
|
|
|
|
|
/**
|
|
|
* 公众号内填单比例。公众号内填单的独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_apply_rate_hour")
|
|
|
- private Double officialAccountApplyRateHour;
|
|
|
+ private BigDecimal officialAccountApplyRateHour;
|
|
|
|
|
|
/**
|
|
|
* 公众号内填单比例。公众号内填单的独立用户数/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放)。
|
|
|
*/
|
|
|
@SerializedName("official_account_apply_rate_minute")
|
|
|
- private Double officialAccountApplyRateMinute;
|
|
|
+ private BigDecimal officialAccountApplyRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 公众号内填单成本。广告花费/广告产生的填单行为数量。接入转化跟踪后可统计(公众号接入暂未全量开放) 。
|
|
@@ -1322,25 +1324,25 @@ public class PlanStatOfMinuteDWD {
|
|
|
* 公众号内下单比例。公众号内下单独立用户数(UV)/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放) 。
|
|
|
*/
|
|
|
@SerializedName("official_account_order_rate_all")
|
|
|
- private Double officialAccountOrderRateAll;
|
|
|
+ private BigDecimal officialAccountOrderRateAll;
|
|
|
|
|
|
/**
|
|
|
* 公众号内下单比例。公众号内下单独立用户数(UV)/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放) 。
|
|
|
*/
|
|
|
@SerializedName("official_account_order_rate_day")
|
|
|
- private Double officialAccountOrderRateDay;
|
|
|
+ private BigDecimal officialAccountOrderRateDay;
|
|
|
|
|
|
/**
|
|
|
* 公众号内下单比例。公众号内下单独立用户数(UV)/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放) 。
|
|
|
*/
|
|
|
@SerializedName("official_account_order_rate_hour")
|
|
|
- private Double officialAccountOrderRateHour;
|
|
|
+ private BigDecimal officialAccountOrderRateHour;
|
|
|
|
|
|
/**
|
|
|
* 公众号内下单比例。公众号内下单独立用户数(UV)/公众号关注次数。接入转化跟踪后可统计(公众号接入暂未全量开放) 。
|
|
|
*/
|
|
|
@SerializedName("official_account_order_rate_minute")
|
|
|
- private Double officialAccountOrderRateMinute;
|
|
|
+ private BigDecimal officialAccountOrderRateMinute;
|
|
|
|
|
|
/**
|
|
|
* 公众号内下单成本。广告花费/广告产生的下单行为数量。接入转化跟踪后可统计(公众号接入暂未全量开放) 。
|
|
@@ -1700,87 +1702,35 @@ public class PlanStatOfMinuteDWD {
|
|
|
result.getAdIds().add(todayODS.getAdId());
|
|
|
result.getAdGroupMap().computeIfAbsent(todayODS.getAdgroupId(), key -> new HashSet<>(3)).add(todayODS.getAdId());
|
|
|
|
|
|
- result.setCostDeviationRateDay(result.getCostDeviationRateDay() + todayODS.getCostDeviationRate());
|
|
|
+ result.setCostDeviationRateDay(result.getCostDeviationRateDay().add(todayODS.getCostDeviationRate()));
|
|
|
result.setCostDay(result.getCostDay() + todayODS.getCost());
|
|
|
result.setCompensationAmountDay(result.getCompensationAmountDay() + todayODS.getCompensationAmount());
|
|
|
result.setViewCountDay(result.getViewCountDay() + todayODS.getViewCount());
|
|
|
- // 总消耗 / 总曝光
|
|
|
- result.setThousandDisplayPriceDay(result.getViewCountDay() == 0 ? 0 : (result.getCostDay() / result.getViewCountDay() * 1000));
|
|
|
result.setValidClickCountDay(result.getValidClickCountDay() + todayODS.getValidClickCount());
|
|
|
- // 广告点击次数 / 广告曝光次数
|
|
|
- result.setCtrDay(result.getViewCountDay() == 0 ? 0.0 : result.getValidClickCountDay() / result.getViewCountDay());
|
|
|
- // 广告花费/广告点击次数
|
|
|
- result.setCpcDay(result.getValidClickCountDay() == 0 ? 0 : result.getCostDay() / result.getValidClickCountDay());
|
|
|
result.setValuableClickCountDay(result.getValuableClickCountDay() + todayODS.getValuableClickCount());
|
|
|
- // 广告可转化点击次数/广告曝光次数
|
|
|
- result.setValuableClickRateDay(result.getViewCountDay() == 0 ? 0.0 : result.getValuableClickCountDay() / result.getViewCountDay());
|
|
|
- // 广告花费/可转化点击次数
|
|
|
- result.setValuableClickCostDay(result.getValuableClickCountDay() == 0 ? 0 : result.getCostDay() / result.getValuableClickCountDay());
|
|
|
result.setConversionsCountDay(result.getConversionsCountDay() + todayODS.getConversionsCount());
|
|
|
- // 广告花费/转化目标量
|
|
|
- result.setConversionsCostDay(result.getConversionsCountDay() == 0 ? 0 : result.getCostDay() / result.getConversionsCountDay());
|
|
|
- // 公众号:转化目标量/点击次数。
|
|
|
- result.setConversionsRateDay(result.getValidClickCountDay() == 0 ? 0.0 : result.getConversionsCountDay() / result.getValidClickCountDay());
|
|
|
result.setDeepConversionsCountDay(result.getDeepConversionsCountDay() + todayODS.getDeepConversionsCount());
|
|
|
- // 广告花费/深度转化目标量
|
|
|
- result.setDeepConversionsCostDay(result.getDeepConversionsCountDay() == 0 ? 0 : result.getCostDay() / result.getDeepConversionsCountDay());
|
|
|
- // 深度转化目标量/可转化点击次数
|
|
|
- result.setDeepConversionsRateDay(result.getValuableClickCountDay() == 0 ? 0.0 : result.getDeepConversionsCountDay() / result.getValuableClickCountDay());
|
|
|
result.setOrderCountDay(result.getOrderCountDay() + todayODS.getOrderCount());
|
|
|
result.setFirstDayOrderCountDay(result.getFirstDayOrderCountDay() + todayODS.getFirstDayOrderCount());
|
|
|
- // 广告花费/下单量
|
|
|
- result.setWebOrderCostDay(result.getOrderCountDay() == 0 ? 0 : result.getCostDay() / result.getOrderCountDay());
|
|
|
- // 下单量/点击次数
|
|
|
- result.setOrderRateDay(result.getValidClickCountDay() == 0 ? 0.0 : result.getOrderCountDay() / result.getValidClickCountDay());
|
|
|
result.setOrderAmountDay(result.getOrderAmountDay() + todayODS.getOrderAmount());
|
|
|
result.setFirstDayOrderAmountDay(result.getFirstDayOrderAmountDay() + todayODS.getFirstDayOrderAmount());
|
|
|
- // 下单金额/下单量
|
|
|
- result.setOrderUnitPriceDay(result.getOrderCountDay() == 0 ? 0 : result.getOrderAmountDay() / result.getOrderCountDay());
|
|
|
- // 下单金额/广告花费
|
|
|
- result.setOrderRoiDay(result.getCostDay() == 0 ? 0.0 : result.getOrderAmountDay() / result.getCostDay());
|
|
|
result.setSignInCountDay(result.getSignInCountDay() + todayODS.getSignInCount());
|
|
|
result.setScanFollowCountDay(result.getScanFollowCountDay() + todayODS.getScanFollowCount());
|
|
|
result.setWechatAppRegisterUvDay(result.getWechatAppRegisterUvDay() + todayODS.getWechatAppRegisterUv());
|
|
|
- // 广告消耗 / 小游戏注册人数
|
|
|
- result.setWechatMinigameRegisterCostDay(result.getWechatAppRegisterUvDay() == 0 ? 0 : result.getCostDay() / result.getWechatAppRegisterUvDay());
|
|
|
- // 小游戏注册人数 / 广告点击次数
|
|
|
- result.setWechatMinigameRegisterRateDay(result.getValidClickCountDay() == 0 ? 0.0 : result.getWechatAppRegisterUvDay() / result.getValidClickCountDay());
|
|
|
- // 总收益 / 总人数
|
|
|
- result.setWechatMinigameArpuDay(result.getWechatAppRegisterUvDay() == 0 ? 0.0 : result.getOrderAmountDay() / result.getWechatAppRegisterUvDay());
|
|
|
result.setWechatMinigameRetentionCountDay(result.getWechatMinigameRetentionCountDay() + todayODS.getWechatMinigameRetentionCount());
|
|
|
result.setWechatMinigameCheckoutCountDay(result.getWechatMinigameCheckoutCountDay() + todayODS.getWechatMinigameCheckoutCount());
|
|
|
result.setWechatMinigameCheckoutAmountDay(result.getWechatMinigameCheckoutAmountDay() + todayODS.getWechatMinigameCheckoutAmount());
|
|
|
result.setOfficialAccountFollowCountDay(result.getOfficialAccountFollowCountDay() + todayODS.getOfficialAccountFollowCount());
|
|
|
- // 关注次数 / 点击次数
|
|
|
- result.setOfficialAccountFollowRateDay(result.getValidClickCountDay() == 0 ? 0.0 : result.getOfficialAccountFollowCountDay() / result.getValidClickCountDay());
|
|
|
result.setOfficialAccountRegisterUserCountDay(result.getOfficialAccountRegisterUserCountDay() + todayODS.getOfficialAccountRegisterUserCount());
|
|
|
- // 公众号内注册人数 / 公众号关注次数
|
|
|
- result.setOfficialAccountRegisterRateDay(result.getOfficialAccountFollowCountDay() == 0 ? 0.0 : result.getOfficialAccountRegisterUserCountDay() / result.getOfficialAccountFollowCountDay());
|
|
|
- // 广告消耗 / 广告注册人数
|
|
|
- result.setOfficialAccountRegisterCostDay(result.getOfficialAccountRegisterUserCountDay() == 0 ? 0 : result.getCostDay() / result.getOfficialAccountRegisterUserCountDay());
|
|
|
result.setOfficialAccountRegisterAmountDay(result.getOfficialAccountRegisterAmountDay() + todayODS.getOfficialAccountRegisterAmount());
|
|
|
- // 注册产生的订单金额累计/广告花费
|
|
|
- result.setOfficialAccountRegisterRoiDay(result.getCostDay() == 0 ? 0 : result.getOfficialAccountRegisterAmountDay() / result.getCostDay());
|
|
|
result.setOfficialAccountApplyCountDay(result.getOfficialAccountApplyCountDay() + todayODS.getOfficialAccountApplyCount());
|
|
|
result.setOfficialAccountApplyUserCountDay(result.getOfficialAccountApplyUserCountDay() + todayODS.getOfficialAccountApplyUserCount());
|
|
|
- // 公众号内填单的独立用户数/公众号关注次数
|
|
|
- result.setOfficialAccountApplyRateDay(result.getOfficialAccountFollowCountDay() == 0 ? 0.0 : result.getOfficialAccountApplyUserCountDay() / result.getOfficialAccountFollowCountDay());
|
|
|
- // 广告花费/广告产生的填单行为数量
|
|
|
- result.setOfficialAccountApplyCostDay(result.getOfficialAccountApplyUserCountDay() == 0 ? 0 : result.getCostDay() / result.getOfficialAccountApplyUserCountDay());
|
|
|
result.setOfficialAccountApplyAmountDay(result.getOfficialAccountApplyAmountDay() + todayODS.getOfficialAccountApplyAmount());
|
|
|
- // 填单产生的订单金额累计/广告花费
|
|
|
- result.setOfficialAccountApplyRoiDay(result.getCostDay() == 0 ? 0 : result.getOfficialAccountApplyAmountDay() / result.getCostDay());
|
|
|
result.setOfficialAccountOrderCountDay(result.getOfficialAccountOrderCountDay() + todayODS.getOfficialAccountOrderCount());
|
|
|
result.setOfficialAccountFirstDayOrderCountDay(result.getOfficialAccountFirstDayOrderCountDay() + todayODS.getOfficialAccountFirstDayOrderCount());
|
|
|
result.setOfficialAccountOrderUserCountDay(result.getOfficialAccountOrderUserCountDay() + todayODS.getOfficialAccountOrderUserCount());
|
|
|
- // 公众号内下单独立用户数(UV)/公众号关注次数
|
|
|
- result.setOfficialAccountOrderRateDay(result.getOfficialAccountFollowCountDay() == 0 ? 0.0 : result.getOfficialAccountOrderUserCountDay() / result.getOfficialAccountFollowCountDay());
|
|
|
- // 广告花费/广告产生的下单行为数量
|
|
|
- result.setOfficialAccountOrderCostDay(result.getOfficialAccountOrderCountDay() == 0 ? 0 : result.getCostDay() / result.getOfficialAccountOrderCountDay());
|
|
|
result.setOfficialAccountOrderAmountDay(result.getOfficialAccountOrderAmountDay() + todayODS.getOfficialAccountOrderAmount());
|
|
|
result.setOfficialAccountFirstDayOrderAmountDay(result.getOfficialAccountFirstDayOrderAmountDay() + todayODS.getOfficialAccountFirstDayOrderAmount());
|
|
|
- // 下单产生的订单金额累计/广告花费
|
|
|
- result.setOfficialAccountOrderRoiDay(result.getCostDay() == 0 ? 0 : result.getOfficialAccountOrderAmountDay() / result.getCostDay());
|
|
|
result.setOfficialAccountConsultCountDay(result.getOfficialAccountConsultCountDay() + todayODS.getOfficialAccountConsultCount());
|
|
|
result.setOfficialAccountReaderCountDay(result.getOfficialAccountReaderCountDay() + todayODS.getOfficialAccountReaderCount());
|
|
|
result.setOfficialAccountCreditApplyUserCountDay(result.getOfficialAccountCreditApplyUserCountDay() + todayODS.getOfficialAccountCreditApplyUserCount());
|
|
@@ -1788,6 +1738,59 @@ public class PlanStatOfMinuteDWD {
|
|
|
result.setForwardCountDay(result.getForwardCountDay() + todayODS.getForwardCount());
|
|
|
result.setForwardUserCountDay(result.getForwardUserCountDay() + todayODS.getForwardUserCount());
|
|
|
result.setNoInterestCountDay(result.getNoInterestCountDay() + todayODS.getNoInterestCount());
|
|
|
+
|
|
|
+ // 总消耗 / 总曝光
|
|
|
+ result.setThousandDisplayPriceDay(result.getViewCountDay() == 0 ? 0 : NumberUtil.divideForAd(result.getCostDay(), result.getViewCountDay()).multiply(new BigDecimal(1000)).longValue());
|
|
|
+ // 广告点击次数 / 广告曝光次数
|
|
|
+ result.setCtrDay(result.getViewCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValidClickCountDay(), result.getViewCountDay()));
|
|
|
+ // 广告花费/广告点击次数
|
|
|
+ result.setCpcDay(result.getValidClickCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getValidClickCountDay()));
|
|
|
+ // 广告可转化点击次数/广告曝光次数
|
|
|
+ result.setValuableClickRateDay(result.getViewCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValuableClickCountDay(), result.getViewCountDay()));
|
|
|
+ // 广告花费/可转化点击次数
|
|
|
+ result.setValuableClickCostDay(result.getValuableClickCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getValuableClickCountDay()));
|
|
|
+ // 广告花费/转化目标量
|
|
|
+ result.setConversionsCostDay(result.getConversionsCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getConversionsCountDay()));
|
|
|
+ // 公众号:转化目标量/点击次数。
|
|
|
+ result.setConversionsRateDay(result.getValidClickCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getConversionsCountDay(), result.getValidClickCountDay()));
|
|
|
+ // 广告花费/深度转化目标量
|
|
|
+ result.setDeepConversionsCostDay(result.getDeepConversionsCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getDeepConversionsCountDay()));
|
|
|
+ // 深度转化目标量/可转化点击次数
|
|
|
+ result.setDeepConversionsRateDay(result.getValuableClickCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getDeepConversionsCountDay(), result.getValuableClickCountDay()));
|
|
|
+ // 广告花费/下单量
|
|
|
+ result.setWebOrderCostDay(result.getOrderCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getOrderCountDay()));
|
|
|
+ // 下单量/点击次数
|
|
|
+ result.setOrderRateDay(result.getValidClickCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderCountDay(), result.getValidClickCountDay()));
|
|
|
+ // 下单金额/下单量
|
|
|
+ result.setOrderUnitPriceDay(result.getOrderCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getOrderAmountDay(), result.getOrderCountDay()));
|
|
|
+ // 下单金额/广告花费
|
|
|
+ result.setOrderRoiDay(result.getCostDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountDay(), result.getCostDay()));
|
|
|
+ // 广告消耗 / 小游戏注册人数
|
|
|
+ result.setWechatMinigameRegisterCostDay(result.getWechatAppRegisterUvDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getWechatAppRegisterUvDay()));
|
|
|
+ // 小游戏注册人数 / 广告点击次数
|
|
|
+ result.setWechatMinigameRegisterRateDay(result.getValidClickCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getWechatAppRegisterUvDay(), result.getValidClickCountDay()));
|
|
|
+ // 总收益 / 总人数
|
|
|
+ result.setWechatMinigameArpuDay(result.getWechatAppRegisterUvDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountDay(), result.getWechatAppRegisterUvDay()));
|
|
|
+ // 关注次数 / 点击次数
|
|
|
+ result.setOfficialAccountFollowRateDay(result.getValidClickCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountFollowCountDay(), result.getValidClickCountDay()));
|
|
|
+ // 公众号内注册人数 / 公众号关注次数
|
|
|
+ result.setOfficialAccountRegisterRateDay(result.getOfficialAccountFollowCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountRegisterUserCountDay(), result.getOfficialAccountFollowCountDay()));
|
|
|
+ // 广告消耗 / 广告注册人数
|
|
|
+ result.setOfficialAccountRegisterCostDay(result.getOfficialAccountRegisterUserCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getOfficialAccountRegisterUserCountDay()));
|
|
|
+ // 注册产生的订单金额累计/广告花费
|
|
|
+ result.setOfficialAccountRegisterRoiDay(result.getCostDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountRegisterAmountDay(), result.getCostDay()));
|
|
|
+ // 公众号内填单的独立用户数/公众号关注次数
|
|
|
+ result.setOfficialAccountApplyRateDay(result.getOfficialAccountFollowCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountApplyUserCountDay(), result.getOfficialAccountFollowCountDay()));
|
|
|
+ // 广告花费/广告产生的填单行为数量
|
|
|
+ result.setOfficialAccountApplyCostDay(result.getOfficialAccountApplyUserCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getOfficialAccountApplyUserCountDay()));
|
|
|
+ // 填单产生的订单金额累计/广告花费
|
|
|
+ result.setOfficialAccountApplyRoiDay(result.getCostDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountApplyAmountDay(), result.getCostDay()));
|
|
|
+ // 公众号内下单独立用户数(UV)/公众号关注次数
|
|
|
+ result.setOfficialAccountOrderRateDay(result.getOfficialAccountFollowCountDay() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountOrderUserCountDay(), result.getOfficialAccountFollowCountDay()));
|
|
|
+ // 广告花费/广告产生的下单行为数量
|
|
|
+ result.setOfficialAccountOrderCostDay(result.getOfficialAccountOrderCountDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostDay(), result.getOfficialAccountOrderCountDay()));
|
|
|
+ // 下单产生的订单金额累计/广告花费
|
|
|
+ result.setOfficialAccountOrderRoiDay(result.getCostDay() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountOrderAmountDay(), result.getCostDay()));
|
|
|
}
|
|
|
// 填充总数据
|
|
|
if (beforeYesterdayDayDWD != null) {
|
|
@@ -1862,7 +1865,7 @@ public class PlanStatOfMinuteDWD {
|
|
|
result.getAdIds().addAll(yesterdayMinuteDWD.getAdIds());
|
|
|
PlanUtil.reduceAdGroup(result.getAdGroupMap(), yesterdayMinuteDWD.getAdGroupMap());
|
|
|
|
|
|
- result.setCostDeviationRateTotal(result.getCostDeviationRateTotal() + yesterdayMinuteDWD.getCostDeviationRateDay());
|
|
|
+ result.setCostDeviationRateTotal(result.getCostDeviationRateTotal().add(yesterdayMinuteDWD.getCostDeviationRateDay()));
|
|
|
result.setCostTotal(result.getCostTotal() + yesterdayMinuteDWD.getCostDay());
|
|
|
result.setCompensationAmountTotal(result.getCompensationAmountTotal() + yesterdayMinuteDWD.getCompensationAmountDay());
|
|
|
result.setViewCountTotal(result.getViewCountTotal() + yesterdayMinuteDWD.getViewCountDay());
|
|
@@ -1899,7 +1902,7 @@ public class PlanStatOfMinuteDWD {
|
|
|
result.setForwardUserCountTotal(result.getForwardUserCountTotal() + yesterdayMinuteDWD.getForwardUserCountDay());
|
|
|
result.setNoInterestCountTotal(result.getNoInterestCountTotal() + yesterdayMinuteDWD.getNoInterestCountDay());
|
|
|
}
|
|
|
- result.setCostDeviationRateTotal(result.getCostDeviationRateTotal() + result.getCostDeviationRateDay());
|
|
|
+ result.setCostDeviationRateTotal(result.getCostDeviationRateTotal().add(result.getCostDeviationRateDay()));
|
|
|
result.setCostTotal(result.getCostTotal() + result.getCostDay());
|
|
|
result.setCompensationAmountTotal(result.getCompensationAmountTotal() + result.getCompensationAmountDay());
|
|
|
result.setViewCountTotal(result.getViewCountTotal() + result.getViewCountDay());
|
|
@@ -1936,116 +1939,88 @@ public class PlanStatOfMinuteDWD {
|
|
|
result.setForwardUserCountTotal(result.getForwardUserCountTotal() + result.getForwardUserCountDay());
|
|
|
result.setNoInterestCountTotal(result.getNoInterestCountTotal() + result.getNoInterestCountDay());
|
|
|
// 总消耗 / 总曝光
|
|
|
- result.setThousandDisplayPriceAll(result.getViewCountTotal() == 0 ? 0 : (result.getCostTotal() / result.getViewCountTotal() * 1000));
|
|
|
+ result.setThousandDisplayPriceAll(result.getViewCountTotal() == 0 ? 0 : NumberUtil.divideForAd(result.getCostTotal(), result.getViewCountTotal()).multiply(new BigDecimal(1000)).longValue());
|
|
|
// 广告点击次数 / 广告曝光次数
|
|
|
- result.setCtrAll(result.getViewCountTotal() == 0 ? 0.0 : result.getValidClickCountTotal() / result.getViewCountTotal());
|
|
|
+ result.setCtrAll(result.getViewCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValidClickCountTotal(), result.getViewCountTotal()));
|
|
|
// 广告花费/广告点击次数
|
|
|
- result.setCpcAll(result.getValidClickCountTotal() == 0 ? 0 : result.getCostTotal() / result.getValidClickCountTotal());
|
|
|
+ result.setCpcAll(result.getValidClickCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getValidClickCountTotal()));
|
|
|
// 广告可转化点击次数/广告曝光次数
|
|
|
- result.setValuableClickRateAll(result.getViewCountTotal() == 0 ? 0.0 : result.getValuableClickCountTotal() / result.getViewCountTotal());
|
|
|
+ result.setValuableClickRateAll(result.getViewCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValuableClickCountTotal(), result.getViewCountTotal()));
|
|
|
// 广告花费/可转化点击次数
|
|
|
- result.setValuableClickCostAll(result.getValuableClickCountTotal() == 0 ? 0 : result.getCostTotal() / result.getValuableClickCountTotal());
|
|
|
+ result.setValuableClickCostAll(result.getValuableClickCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getValuableClickCountTotal()));
|
|
|
// 广告花费/转化目标量
|
|
|
- result.setConversionsCostAll(result.getConversionsCountTotal() == 0 ? 0 : result.getCostTotal() / result.getConversionsCountTotal());
|
|
|
+ result.setConversionsCostAll(result.getConversionsCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getConversionsCountTotal()));
|
|
|
// 公众号:转化目标量/点击次数。
|
|
|
- result.setConversionsRateAll(result.getValidClickCountTotal() == 0 ? 0.0 : result.getConversionsCountTotal() / result.getValidClickCountTotal());
|
|
|
+ result.setConversionsRateAll(result.getValidClickCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getConversionsCountTotal(), result.getValidClickCountTotal()));
|
|
|
// 广告花费/深度转化目标量
|
|
|
- result.setDeepConversionsCostAll(result.getDeepConversionsCountTotal() == 0 ? 0 : result.getCostTotal() / result.getDeepConversionsCountTotal());
|
|
|
+ result.setDeepConversionsCostAll(result.getDeepConversionsCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getDeepConversionsCountTotal()));
|
|
|
// 深度转化目标量/可转化点击次数
|
|
|
- result.setDeepConversionsRateAll(result.getValuableClickCountTotal() == 0 ? 0.0 : result.getDeepConversionsCountTotal() / result.getValuableClickCountTotal());
|
|
|
+ result.setDeepConversionsRateAll(result.getValuableClickCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getDeepConversionsCountTotal(), result.getValuableClickCountTotal()));
|
|
|
// 广告花费/下单量
|
|
|
- result.setWebOrderCostAll(result.getOrderCountTotal() == 0 ? 0 : result.getCostTotal() / result.getOrderCountTotal());
|
|
|
+ result.setWebOrderCostAll(result.getOrderCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getOrderCountTotal()));
|
|
|
// 下单量/点击次数
|
|
|
- result.setOrderRateAll(result.getValidClickCountTotal() == 0 ? 0.0 : result.getOrderCountTotal() / result.getValidClickCountTotal());
|
|
|
+ result.setOrderRateAll(result.getValidClickCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderCountTotal(), result.getValidClickCountTotal()));
|
|
|
// 下单金额/下单量
|
|
|
- result.setOrderUnitPriceAll(result.getOrderCountTotal() == 0 ? 0 : result.getOrderAmountTotal() / result.getOrderCountTotal());
|
|
|
+ result.setOrderUnitPriceAll(result.getOrderCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getOrderAmountTotal(), result.getOrderCountTotal()));
|
|
|
// 下单金额/广告花费
|
|
|
- result.setOrderRoiAll(result.getCostTotal() == 0 ? 0.0 : result.getOrderAmountTotal() / result.getCostTotal());
|
|
|
+ result.setOrderRoiAll(result.getCostTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountTotal(), result.getCostTotal()));
|
|
|
// 广告消耗 / 小游戏注册人数
|
|
|
- result.setWechatMinigameRegisterCostAll(result.getWechatAppRegisterUvTotal() == 0 ? 0 : result.getCostTotal() / result.getWechatAppRegisterUvTotal());
|
|
|
+ result.setWechatMinigameRegisterCostAll(result.getWechatAppRegisterUvTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getWechatAppRegisterUvTotal()));
|
|
|
// 小游戏注册人数 / 广告点击次数
|
|
|
- result.setWechatMinigameRegisterRateAll(result.getValidClickCountTotal() == 0 ? 0.0 : result.getWechatAppRegisterUvTotal() / result.getValidClickCountTotal());
|
|
|
+ result.setWechatMinigameRegisterRateAll(result.getValidClickCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getWechatAppRegisterUvTotal(), result.getValidClickCountTotal()));
|
|
|
// 总收益 / 总人数
|
|
|
- result.setWechatMinigameArpuAll(result.getWechatAppRegisterUvTotal() == 0 ? 0.0 : result.getOrderAmountTotal() / result.getWechatAppRegisterUvTotal());
|
|
|
+ result.setWechatMinigameArpuAll(result.getWechatAppRegisterUvTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountTotal(), result.getWechatAppRegisterUvTotal()));
|
|
|
// 关注次数 / 点击次数
|
|
|
- result.setOfficialAccountFollowRateAll(result.getValidClickCountTotal() == 0 ? 0.0 : result.getOfficialAccountFollowCountTotal() / result.getValidClickCountTotal());
|
|
|
+ result.setOfficialAccountFollowRateAll(result.getValidClickCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountFollowCountTotal(), result.getValidClickCountTotal()));
|
|
|
// 公众号内注册人数 / 公众号关注次数
|
|
|
- result.setOfficialAccountRegisterRateAll(result.getOfficialAccountFollowCountTotal() == 0 ? 0.0 : result.getOfficialAccountRegisterUserCountTotal() / result.getOfficialAccountFollowCountTotal());
|
|
|
+ result.setOfficialAccountRegisterRateAll(result.getOfficialAccountFollowCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountRegisterUserCountTotal(), result.getOfficialAccountFollowCountTotal()));
|
|
|
// 广告消耗 / 广告注册人数
|
|
|
- result.setOfficialAccountRegisterCostAll(result.getOfficialAccountRegisterUserCountTotal() == 0 ? 0 : result.getCostTotal() / result.getOfficialAccountRegisterUserCountTotal());
|
|
|
+ result.setOfficialAccountRegisterCostAll(result.getOfficialAccountRegisterUserCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getOfficialAccountRegisterUserCountTotal()));
|
|
|
// 注册产生的订单金额累计/广告花费
|
|
|
- result.setOfficialAccountRegisterRoiAll(result.getCostTotal() == 0 ? 0 : result.getOfficialAccountRegisterAmountTotal() / result.getCostTotal());
|
|
|
+ result.setOfficialAccountRegisterRoiAll(result.getCostTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountRegisterAmountTotal(), result.getCostTotal()));
|
|
|
// 公众号内填单的独立用户数/公众号关注次数
|
|
|
- result.setOfficialAccountApplyRateAll(result.getOfficialAccountFollowCountTotal() == 0 ? 0.0 : result.getOfficialAccountApplyUserCountTotal() / result.getOfficialAccountFollowCountTotal());
|
|
|
+ result.setOfficialAccountApplyRateAll(result.getOfficialAccountFollowCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountApplyUserCountTotal(), result.getOfficialAccountFollowCountTotal()));
|
|
|
// 广告花费/广告产生的填单行为数量
|
|
|
- result.setOfficialAccountApplyCostAll(result.getOfficialAccountApplyUserCountTotal() == 0 ? 0 : result.getCostTotal() / result.getOfficialAccountApplyUserCountTotal());
|
|
|
+ result.setOfficialAccountApplyCostAll(result.getOfficialAccountApplyUserCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getOfficialAccountApplyUserCountTotal()));
|
|
|
// 填单产生的订单金额累计/广告花费
|
|
|
- result.setOfficialAccountApplyRoiAll(result.getCostTotal() == 0 ? 0 : result.getOfficialAccountApplyAmountTotal() / result.getCostTotal());
|
|
|
+ result.setOfficialAccountApplyRoiAll(result.getCostTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountApplyAmountTotal(), result.getCostTotal()));
|
|
|
// 公众号内下单独立用户数(UV)/公众号关注次数
|
|
|
- result.setOfficialAccountOrderRateAll(result.getOfficialAccountFollowCountTotal() == 0 ? 0.0 : result.getOfficialAccountOrderUserCountTotal() / result.getOfficialAccountFollowCountTotal());
|
|
|
+ result.setOfficialAccountOrderRateAll(result.getOfficialAccountFollowCountTotal() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountOrderUserCountTotal(), result.getOfficialAccountFollowCountTotal()));
|
|
|
// 广告花费/广告产生的下单行为数量
|
|
|
- result.setOfficialAccountOrderCostAll(result.getOfficialAccountOrderCountTotal() == 0 ? 0 : result.getCostTotal() / result.getOfficialAccountOrderCountTotal());
|
|
|
+ result.setOfficialAccountOrderCostAll(result.getOfficialAccountOrderCountTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostTotal(), result.getOfficialAccountOrderCountTotal()));
|
|
|
// 下单产生的订单金额累计/广告花费
|
|
|
- result.setOfficialAccountOrderRoiAll(result.getCostTotal() == 0 ? 0 : result.getOfficialAccountOrderAmountTotal() / result.getCostTotal());
|
|
|
+ result.setOfficialAccountOrderRoiAll(result.getCostTotal() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountOrderAmountTotal(), result.getCostTotal()));
|
|
|
|
|
|
// 上一次聚合的 5分钟数据
|
|
|
if (lastMinuteDWD != null && lastMinuteDWD.getHour().equals(result.getHour())) {
|
|
|
- result.setCostDeviationRateMinute(result.getCostDeviationRateHour() - lastMinuteDWD.getCostDeviationRateHour());
|
|
|
result.setCostMinute(result.getCostHour() - lastMinuteDWD.getCostHour());
|
|
|
result.setCompensationAmountMinute(result.getCompensationAmountHour() - lastMinuteDWD.getCompensationAmountHour());
|
|
|
result.setViewCountMinute(result.getViewCountHour() - lastMinuteDWD.getViewCountHour());
|
|
|
- result.setThousandDisplayPriceMinute(result.getThousandDisplayPriceHour() - lastMinuteDWD.getThousandDisplayPriceHour());
|
|
|
- result.setAvgViewPerUserMinute(result.getAvgViewPerUserHour() - lastMinuteDWD.getAvgViewPerUserHour());
|
|
|
result.setValidClickCountMinute(result.getValidClickCountHour() - lastMinuteDWD.getValidClickCountHour());
|
|
|
- result.setCtrMinute(result.getCtrHour() - lastMinuteDWD.getCtrHour());
|
|
|
- result.setCpcMinute(result.getCpcHour() - lastMinuteDWD.getCpcHour());
|
|
|
result.setValuableClickCountMinute(result.getValuableClickCountHour() - lastMinuteDWD.getValuableClickCountHour());
|
|
|
- result.setValuableClickRateMinute(result.getValuableClickRateHour() - lastMinuteDWD.getValuableClickRateHour());
|
|
|
- result.setValuableClickCostMinute(result.getValuableClickCostHour() - lastMinuteDWD.getValuableClickCostHour());
|
|
|
result.setConversionsCountMinute(result.getConversionsCountHour() - lastMinuteDWD.getConversionsCountHour());
|
|
|
- result.setConversionsCostMinute(result.getConversionsCostHour() - lastMinuteDWD.getConversionsCostHour());
|
|
|
- result.setConversionsRateMinute(result.getConversionsRateHour() - lastMinuteDWD.getConversionsRateHour());
|
|
|
result.setDeepConversionsCountMinute(result.getDeepConversionsCountHour() - lastMinuteDWD.getDeepConversionsCountHour());
|
|
|
- result.setDeepConversionsCostMinute(result.getDeepConversionsCostHour() - lastMinuteDWD.getDeepConversionsCostHour());
|
|
|
- result.setDeepConversionsRateMinute(result.getDeepConversionsRateHour() - lastMinuteDWD.getDeepConversionsRateHour());
|
|
|
result.setOrderCountMinute(result.getOrderCountHour() - lastMinuteDWD.getOrderCountHour());
|
|
|
result.setFirstDayOrderCountMinute(result.getFirstDayOrderCountHour() - lastMinuteDWD.getFirstDayOrderCountHour());
|
|
|
- result.setWebOrderCostMinute(result.getWebOrderCostHour() - lastMinuteDWD.getWebOrderCostHour());
|
|
|
- result.setOrderRateMinute(result.getOrderRateHour() - lastMinuteDWD.getOrderRateHour());
|
|
|
result.setOrderAmountMinute(result.getOrderAmountHour() - lastMinuteDWD.getOrderAmountHour());
|
|
|
result.setFirstDayOrderAmountMinute(result.getFirstDayOrderAmountHour() - lastMinuteDWD.getFirstDayOrderAmountHour());
|
|
|
- result.setOrderUnitPriceMinute(result.getOrderUnitPriceHour() - lastMinuteDWD.getOrderUnitPriceHour());
|
|
|
- result.setOrderRoiMinute(result.getOrderRoiHour() - lastMinuteDWD.getOrderRoiHour());
|
|
|
result.setSignInCountMinute(result.getSignInCountHour() - lastMinuteDWD.getSignInCountHour());
|
|
|
result.setScanFollowCountMinute(result.getScanFollowCountHour() - lastMinuteDWD.getScanFollowCountHour());
|
|
|
result.setWechatAppRegisterUvMinute(result.getWechatAppRegisterUvHour() - lastMinuteDWD.getWechatAppRegisterUvHour());
|
|
|
- result.setWechatMinigameRegisterCostMinute(result.getWechatMinigameRegisterCostHour() - lastMinuteDWD.getWechatMinigameRegisterCostHour());
|
|
|
- result.setWechatMinigameRegisterRateMinute(result.getWechatMinigameRegisterRateHour() - lastMinuteDWD.getWechatMinigameRegisterRateHour());
|
|
|
- result.setWechatMinigameArpuMinute(result.getWechatMinigameArpuHour() - lastMinuteDWD.getWechatMinigameArpuHour());
|
|
|
result.setWechatMinigameRetentionCountMinute(result.getWechatMinigameRetentionCountHour() - lastMinuteDWD.getWechatMinigameRetentionCountHour());
|
|
|
result.setWechatMinigameCheckoutCountMinute(result.getWechatMinigameCheckoutCountHour() - lastMinuteDWD.getWechatMinigameCheckoutCountHour());
|
|
|
result.setWechatMinigameCheckoutAmountMinute(result.getWechatMinigameCheckoutAmountHour() - lastMinuteDWD.getWechatMinigameCheckoutAmountHour());
|
|
|
result.setOfficialAccountFollowCountMinute(result.getOfficialAccountFollowCountHour() - lastMinuteDWD.getOfficialAccountFollowCountHour());
|
|
|
- result.setOfficialAccountFollowRateMinute(result.getOfficialAccountFollowRateHour() - lastMinuteDWD.getOfficialAccountFollowRateHour());
|
|
|
result.setOfficialAccountRegisterUserCountMinute(result.getOfficialAccountRegisterUserCountHour() - lastMinuteDWD.getOfficialAccountRegisterUserCountHour());
|
|
|
- result.setOfficialAccountRegisterRateMinute(result.getOfficialAccountRegisterRateHour() - lastMinuteDWD.getOfficialAccountRegisterRateHour());
|
|
|
- result.setOfficialAccountRegisterCostMinute(result.getOfficialAccountRegisterCostHour() - lastMinuteDWD.getOfficialAccountRegisterCostHour());
|
|
|
result.setOfficialAccountRegisterAmountMinute(result.getOfficialAccountRegisterAmountHour() - lastMinuteDWD.getOfficialAccountRegisterAmountHour());
|
|
|
- result.setOfficialAccountRegisterRoiMinute(result.getOfficialAccountRegisterRoiHour() - lastMinuteDWD.getOfficialAccountRegisterRoiHour());
|
|
|
result.setOfficialAccountApplyCountMinute(result.getOfficialAccountApplyCountHour() - lastMinuteDWD.getOfficialAccountApplyCountHour());
|
|
|
result.setOfficialAccountApplyUserCountMinute(result.getOfficialAccountApplyUserCountHour() - lastMinuteDWD.getOfficialAccountApplyUserCountHour());
|
|
|
- result.setOfficialAccountApplyRateMinute(result.getOfficialAccountApplyRateHour() - lastMinuteDWD.getOfficialAccountApplyRateHour());
|
|
|
- result.setOfficialAccountApplyCostMinute(result.getOfficialAccountApplyCostHour() - lastMinuteDWD.getOfficialAccountApplyCostHour());
|
|
|
result.setOfficialAccountApplyAmountMinute(result.getOfficialAccountApplyAmountHour() - lastMinuteDWD.getOfficialAccountApplyAmountHour());
|
|
|
- result.setOfficialAccountApplyRoiMinute(result.getOfficialAccountApplyRoiHour() - lastMinuteDWD.getOfficialAccountApplyRoiHour());
|
|
|
result.setOfficialAccountOrderCountMinute(result.getOfficialAccountOrderCountHour() - lastMinuteDWD.getOfficialAccountOrderCountHour());
|
|
|
result.setOfficialAccountFirstDayOrderCountMinute(result.getOfficialAccountFirstDayOrderCountHour() - lastMinuteDWD.getOfficialAccountFirstDayOrderCountHour());
|
|
|
result.setOfficialAccountOrderUserCountMinute(result.getOfficialAccountOrderUserCountHour() - lastMinuteDWD.getOfficialAccountOrderUserCountHour());
|
|
|
- result.setOfficialAccountOrderRateMinute(result.getOfficialAccountOrderRateHour() - lastMinuteDWD.getOfficialAccountOrderRateHour());
|
|
|
- result.setOfficialAccountOrderCostMinute(result.getOfficialAccountOrderCostHour() - lastMinuteDWD.getOfficialAccountOrderCostHour());
|
|
|
result.setOfficialAccountOrderAmountMinute(result.getOfficialAccountOrderAmountHour() - lastMinuteDWD.getOfficialAccountOrderAmountHour());
|
|
|
result.setOfficialAccountFirstDayOrderAmountMinute(result.getOfficialAccountFirstDayOrderAmountHour() - lastMinuteDWD.getOfficialAccountFirstDayOrderAmountHour());
|
|
|
- result.setOfficialAccountOrderRoiMinute(result.getOfficialAccountOrderRoiHour() - lastMinuteDWD.getOfficialAccountOrderRoiHour());
|
|
|
result.setOfficialAccountConsultCountMinute(result.getOfficialAccountConsultCountHour() - lastMinuteDWD.getOfficialAccountConsultCountHour());
|
|
|
result.setOfficialAccountReaderCountMinute(result.getOfficialAccountReaderCountHour() - lastMinuteDWD.getOfficialAccountReaderCountHour());
|
|
|
result.setOfficialAccountCreditApplyUserCountMinute(result.getOfficialAccountCreditApplyUserCountHour() - lastMinuteDWD.getOfficialAccountCreditApplyUserCountHour());
|
|
@@ -2053,6 +2028,60 @@ public class PlanStatOfMinuteDWD {
|
|
|
result.setForwardCountMinute(result.getForwardCountHour() - lastMinuteDWD.getForwardCountHour());
|
|
|
result.setForwardUserCountMinute(result.getForwardUserCountHour() - lastMinuteDWD.getForwardUserCountHour());
|
|
|
result.setNoInterestCountMinute(result.getNoInterestCountHour() - lastMinuteDWD.getNoInterestCountHour());
|
|
|
+
|
|
|
+
|
|
|
+ // 消耗 / 曝光
|
|
|
+ result.setThousandDisplayPriceMinute(result.getViewCountMinute() == 0 ? 0 : NumberUtil.divideForAd(result.getCostMinute(), result.getViewCountMinute()).multiply(new BigDecimal(1000)).longValue());
|
|
|
+ // 广告点击次数 / 广告曝光次数
|
|
|
+ result.setCtrMinute(result.getViewCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValidClickCountMinute(), result.getViewCountMinute()));
|
|
|
+ // 广告花费/广告点击次数
|
|
|
+ result.setCpcMinute(result.getValidClickCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getValidClickCountMinute()));
|
|
|
+ // 广告可转化点击次数/广告曝光次数
|
|
|
+ result.setValuableClickRateMinute(result.getViewCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValuableClickCountMinute(), result.getViewCountMinute()));
|
|
|
+ // 广告花费/可转化点击次数
|
|
|
+ result.setValuableClickCostMinute(result.getValuableClickCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getValuableClickCountMinute()));
|
|
|
+ // 广告花费/转化目标量
|
|
|
+ result.setConversionsCostMinute(result.getConversionsCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getConversionsCountMinute()));
|
|
|
+ // 公众号:转化目标量/点击次数。
|
|
|
+ result.setConversionsRateMinute(result.getValidClickCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getConversionsCountMinute(), result.getValidClickCountMinute()));
|
|
|
+ // 广告花费/深度转化目标量
|
|
|
+ result.setDeepConversionsCostMinute(result.getDeepConversionsCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getDeepConversionsCountMinute()));
|
|
|
+ // 深度转化目标量/可转化点击次数
|
|
|
+ result.setDeepConversionsRateMinute(result.getValuableClickCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getDeepConversionsCountMinute(), result.getValuableClickCountMinute()));
|
|
|
+ // 广告花费/下单量
|
|
|
+ result.setWebOrderCostMinute(result.getOrderCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getOrderCountMinute()));
|
|
|
+ // 下单量/点击次数
|
|
|
+ result.setOrderRateMinute(result.getValidClickCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderCountMinute(), result.getValidClickCountMinute()));
|
|
|
+ // 下单金额/下单量
|
|
|
+ result.setOrderUnitPriceMinute(result.getOrderCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getOrderAmountMinute(), result.getOrderCountMinute()));
|
|
|
+ // 下单金额/广告花费
|
|
|
+ result.setOrderRoiMinute(result.getCostMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountMinute(), result.getCostMinute()));
|
|
|
+ // 广告消耗 / 小游戏注册人数
|
|
|
+ result.setWechatMinigameRegisterCostMinute(result.getWechatAppRegisterUvMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getWechatAppRegisterUvMinute()));
|
|
|
+ // 小游戏注册人数 / 广告点击次数
|
|
|
+ result.setWechatMinigameRegisterRateMinute(result.getValidClickCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getWechatAppRegisterUvMinute(), result.getValidClickCountMinute()));
|
|
|
+ // 总收益 / 总人数
|
|
|
+ result.setWechatMinigameArpuMinute(result.getWechatAppRegisterUvMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountMinute(), result.getWechatAppRegisterUvMinute()));
|
|
|
+ // 关注次数 / 点击次数
|
|
|
+ result.setOfficialAccountFollowRateMinute(result.getValidClickCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountFollowCountMinute(), result.getValidClickCountMinute()));
|
|
|
+ // 公众号内注册人数 / 公众号关注次数
|
|
|
+ result.setOfficialAccountRegisterRateMinute(result.getOfficialAccountFollowCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountRegisterUserCountMinute(), result.getOfficialAccountFollowCountMinute()));
|
|
|
+ // 广告消耗 / 广告注册人数
|
|
|
+ result.setOfficialAccountRegisterCostMinute(result.getOfficialAccountRegisterUserCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getOfficialAccountRegisterUserCountMinute()));
|
|
|
+ // 注册产生的订单金额累计/广告花费
|
|
|
+ result.setOfficialAccountRegisterRoiMinute(result.getCostMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountRegisterAmountMinute(), result.getCostMinute()));
|
|
|
+ // 公众号内填单的独立用户数/公众号关注次数
|
|
|
+ result.setOfficialAccountApplyRateMinute(result.getOfficialAccountFollowCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountApplyUserCountMinute(), result.getOfficialAccountFollowCountMinute()));
|
|
|
+ // 广告花费/广告产生的填单行为数量
|
|
|
+ result.setOfficialAccountApplyCostMinute(result.getOfficialAccountApplyUserCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getOfficialAccountApplyUserCountMinute()));
|
|
|
+ // 填单产生的订单金额累计/广告花费
|
|
|
+ result.setOfficialAccountApplyRoiMinute(result.getCostMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountApplyAmountMinute(), result.getCostMinute()));
|
|
|
+ // 公众号内下单独立用户数(UV)/公众号关注次数
|
|
|
+ result.setOfficialAccountOrderRateMinute(result.getOfficialAccountFollowCountMinute() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountOrderUserCountMinute(), result.getOfficialAccountFollowCountMinute()));
|
|
|
+ // 广告花费/广告产生的下单行为数量
|
|
|
+ result.setOfficialAccountOrderCostMinute(result.getOfficialAccountOrderCountMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostMinute(), result.getOfficialAccountOrderCountMinute()));
|
|
|
+ // 下单产生的订单金额累计/广告花费
|
|
|
+ result.setOfficialAccountOrderRoiMinute(result.getCostMinute() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountOrderAmountMinute(), result.getCostMinute()));
|
|
|
} else {
|
|
|
result.setCostDeviationRateMinute(statODS.getCostDeviationRate());
|
|
|
result.setCostMinute(statODS.getCost());
|
|
@@ -2124,10 +2153,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
}
|
|
|
|
|
|
private static PlanStatOfMinuteDWD initValue(PlanStatOfMinuteDWD dwd) {
|
|
|
- dwd.setCostDeviationRateTotal(0.0);
|
|
|
- dwd.setCostDeviationRateDay(0.0);
|
|
|
- dwd.setCostDeviationRateHour(0.0);
|
|
|
- dwd.setCostDeviationRateMinute(0.0);
|
|
|
+ dwd.setCostDeviationRateTotal(BigDecimal.ZERO);
|
|
|
+ dwd.setCostDeviationRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setCostDeviationRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setCostDeviationRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setCostTotal(0L);
|
|
|
dwd.setCostDay(0L);
|
|
|
dwd.setCostHour(0L);
|
|
@@ -2144,18 +2173,18 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setThousandDisplayPriceDay(0L);
|
|
|
dwd.setThousandDisplayPriceHour(0L);
|
|
|
dwd.setThousandDisplayPriceMinute(0L);
|
|
|
- dwd.setAvgViewPerUserAll(0.0);
|
|
|
- dwd.setAvgViewPerUserDay(0.0);
|
|
|
- dwd.setAvgViewPerUserHour(0.0);
|
|
|
- dwd.setAvgViewPerUserMinute(0.0);
|
|
|
+ dwd.setAvgViewPerUserAll(BigDecimal.ZERO);
|
|
|
+ dwd.setAvgViewPerUserDay(BigDecimal.ZERO);
|
|
|
+ dwd.setAvgViewPerUserHour(BigDecimal.ZERO);
|
|
|
+ dwd.setAvgViewPerUserMinute(BigDecimal.ZERO);
|
|
|
dwd.setValidClickCountTotal(0L);
|
|
|
dwd.setValidClickCountDay(0L);
|
|
|
dwd.setValidClickCountHour(0L);
|
|
|
dwd.setValidClickCountMinute(0L);
|
|
|
- dwd.setCtrAll(0.0);
|
|
|
- dwd.setCtrDay(0.0);
|
|
|
- dwd.setCtrHour(0.0);
|
|
|
- dwd.setCtrMinute(0.0);
|
|
|
+ dwd.setCtrAll(BigDecimal.ZERO);
|
|
|
+ dwd.setCtrDay(BigDecimal.ZERO);
|
|
|
+ dwd.setCtrHour(BigDecimal.ZERO);
|
|
|
+ dwd.setCtrMinute(BigDecimal.ZERO);
|
|
|
dwd.setCpcAll(0L);
|
|
|
dwd.setCpcDay(0L);
|
|
|
dwd.setCpcHour(0L);
|
|
@@ -2164,10 +2193,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setValuableClickCountDay(0L);
|
|
|
dwd.setValuableClickCountHour(0L);
|
|
|
dwd.setValuableClickCountMinute(0L);
|
|
|
- dwd.setValuableClickRateAll(0.0);
|
|
|
- dwd.setValuableClickRateDay(0.0);
|
|
|
- dwd.setValuableClickRateHour(0.0);
|
|
|
- dwd.setValuableClickRateMinute(0.0);
|
|
|
+ dwd.setValuableClickRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setValuableClickRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setValuableClickRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setValuableClickRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setValuableClickCostAll(0L);
|
|
|
dwd.setValuableClickCostDay(0L);
|
|
|
dwd.setValuableClickCostHour(0L);
|
|
@@ -2180,10 +2209,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setConversionsCostDay(0L);
|
|
|
dwd.setConversionsCostHour(0L);
|
|
|
dwd.setConversionsCostMinute(0L);
|
|
|
- dwd.setConversionsRateAll(0.0);
|
|
|
- dwd.setConversionsRateDay(0.0);
|
|
|
- dwd.setConversionsRateHour(0.0);
|
|
|
- dwd.setConversionsRateMinute(0.0);
|
|
|
+ dwd.setConversionsRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setConversionsRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setConversionsRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setConversionsRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setDeepConversionsCountTotal(0L);
|
|
|
dwd.setDeepConversionsCountDay(0L);
|
|
|
dwd.setDeepConversionsCountHour(0L);
|
|
@@ -2192,10 +2221,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setDeepConversionsCostDay(0L);
|
|
|
dwd.setDeepConversionsCostHour(0L);
|
|
|
dwd.setDeepConversionsCostMinute(0L);
|
|
|
- dwd.setDeepConversionsRateAll(0.0);
|
|
|
- dwd.setDeepConversionsRateDay(0.0);
|
|
|
- dwd.setDeepConversionsRateHour(0.0);
|
|
|
- dwd.setDeepConversionsRateMinute(0.0);
|
|
|
+ dwd.setDeepConversionsRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setDeepConversionsRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setDeepConversionsRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setDeepConversionsRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setOrderCountTotal(0L);
|
|
|
dwd.setOrderCountDay(0L);
|
|
|
dwd.setOrderCountHour(0L);
|
|
@@ -2208,10 +2237,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setWebOrderCostDay(0L);
|
|
|
dwd.setWebOrderCostHour(0L);
|
|
|
dwd.setWebOrderCostMinute(0L);
|
|
|
- dwd.setOrderRateAll(0.0);
|
|
|
- dwd.setOrderRateDay(0.0);
|
|
|
- dwd.setOrderRateHour(0.0);
|
|
|
- dwd.setOrderRateMinute(0.0);
|
|
|
+ dwd.setOrderRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setOrderRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setOrderRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setOrderRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setOrderAmountTotal(0L);
|
|
|
dwd.setOrderAmountDay(0L);
|
|
|
dwd.setOrderAmountHour(0L);
|
|
@@ -2224,10 +2253,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setOrderUnitPriceDay(0L);
|
|
|
dwd.setOrderUnitPriceHour(0L);
|
|
|
dwd.setOrderUnitPriceMinute(0L);
|
|
|
- dwd.setOrderRoiAll(0.0);
|
|
|
- dwd.setOrderRoiDay(0.0);
|
|
|
- dwd.setOrderRoiHour(0.0);
|
|
|
- dwd.setOrderRoiMinute(0.0);
|
|
|
+ dwd.setOrderRoiAll(BigDecimal.ZERO);
|
|
|
+ dwd.setOrderRoiDay(BigDecimal.ZERO);
|
|
|
+ dwd.setOrderRoiHour(BigDecimal.ZERO);
|
|
|
+ dwd.setOrderRoiMinute(BigDecimal.ZERO);
|
|
|
dwd.setSignInCountTotal(0L);
|
|
|
dwd.setSignInCountDay(0L);
|
|
|
dwd.setSignInCountHour(0L);
|
|
@@ -2244,14 +2273,14 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setWechatMinigameRegisterCostDay(0L);
|
|
|
dwd.setWechatMinigameRegisterCostHour(0L);
|
|
|
dwd.setWechatMinigameRegisterCostMinute(0L);
|
|
|
- dwd.setWechatMinigameRegisterRateAll(0.0);
|
|
|
- dwd.setWechatMinigameRegisterRateDay(0.0);
|
|
|
- dwd.setWechatMinigameRegisterRateHour(0.0);
|
|
|
- dwd.setWechatMinigameRegisterRateMinute(0.0);
|
|
|
- dwd.setWechatMinigameArpuAll(0.0);
|
|
|
- dwd.setWechatMinigameArpuDay(0.0);
|
|
|
- dwd.setWechatMinigameArpuHour(0.0);
|
|
|
- dwd.setWechatMinigameArpuMinute(0.0);
|
|
|
+ dwd.setWechatMinigameRegisterRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameRegisterRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameRegisterRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameRegisterRateMinute(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameArpuAll(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameArpuDay(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameArpuHour(BigDecimal.ZERO);
|
|
|
+ dwd.setWechatMinigameArpuMinute(BigDecimal.ZERO);
|
|
|
dwd.setWechatMinigameRetentionCountTotal(0L);
|
|
|
dwd.setWechatMinigameRetentionCountDay(0L);
|
|
|
dwd.setWechatMinigameRetentionCountHour(0L);
|
|
@@ -2268,18 +2297,18 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setOfficialAccountFollowCountDay(0L);
|
|
|
dwd.setOfficialAccountFollowCountHour(0L);
|
|
|
dwd.setOfficialAccountFollowCountMinute(0L);
|
|
|
- dwd.setOfficialAccountFollowRateAll(0.0);
|
|
|
- dwd.setOfficialAccountFollowRateDay(0.0);
|
|
|
- dwd.setOfficialAccountFollowRateHour(0.0);
|
|
|
- dwd.setOfficialAccountFollowRateMinute(0.0);
|
|
|
+ dwd.setOfficialAccountFollowRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountFollowRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountFollowRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountFollowRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setOfficialAccountRegisterUserCountTotal(0L);
|
|
|
dwd.setOfficialAccountRegisterUserCountDay(0L);
|
|
|
dwd.setOfficialAccountRegisterUserCountHour(0L);
|
|
|
dwd.setOfficialAccountRegisterUserCountMinute(0L);
|
|
|
- dwd.setOfficialAccountRegisterRateAll(0.0);
|
|
|
- dwd.setOfficialAccountRegisterRateDay(0.0);
|
|
|
- dwd.setOfficialAccountRegisterRateHour(0.0);
|
|
|
- dwd.setOfficialAccountRegisterRateMinute(0.0);
|
|
|
+ dwd.setOfficialAccountRegisterRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountRegisterRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountRegisterRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountRegisterRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setOfficialAccountRegisterCostAll(0L);
|
|
|
dwd.setOfficialAccountRegisterCostDay(0L);
|
|
|
dwd.setOfficialAccountRegisterCostHour(0L);
|
|
@@ -2300,10 +2329,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setOfficialAccountApplyUserCountDay(0L);
|
|
|
dwd.setOfficialAccountApplyUserCountHour(0L);
|
|
|
dwd.setOfficialAccountApplyUserCountMinute(0L);
|
|
|
- dwd.setOfficialAccountApplyRateAll(0.0);
|
|
|
- dwd.setOfficialAccountApplyRateDay(0.0);
|
|
|
- dwd.setOfficialAccountApplyRateHour(0.0);
|
|
|
- dwd.setOfficialAccountApplyRateMinute(0.0);
|
|
|
+ dwd.setOfficialAccountApplyRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountApplyRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountApplyRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountApplyRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setOfficialAccountApplyCostAll(0L);
|
|
|
dwd.setOfficialAccountApplyCostDay(0L);
|
|
|
dwd.setOfficialAccountApplyCostHour(0L);
|
|
@@ -2328,10 +2357,10 @@ public class PlanStatOfMinuteDWD {
|
|
|
dwd.setOfficialAccountOrderUserCountDay(0L);
|
|
|
dwd.setOfficialAccountOrderUserCountHour(0L);
|
|
|
dwd.setOfficialAccountOrderUserCountMinute(0L);
|
|
|
- dwd.setOfficialAccountOrderRateAll(0.0);
|
|
|
- dwd.setOfficialAccountOrderRateDay(0.0);
|
|
|
- dwd.setOfficialAccountOrderRateHour(0.0);
|
|
|
- dwd.setOfficialAccountOrderRateMinute(0.0);
|
|
|
+ dwd.setOfficialAccountOrderRateAll(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountOrderRateDay(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountOrderRateHour(BigDecimal.ZERO);
|
|
|
+ dwd.setOfficialAccountOrderRateMinute(BigDecimal.ZERO);
|
|
|
dwd.setOfficialAccountOrderCostAll(0L);
|
|
|
dwd.setOfficialAccountOrderCostDay(0L);
|
|
|
dwd.setOfficialAccountOrderCostHour(0L);
|