Pārlūkot izejas kodu

每 3小时回滚的 bug

wcc 3 gadi atpakaļ
vecāks
revīzija
179165c315

+ 54 - 28
flink-ad-monitoring/src/main/java/flink/zanxiangnet/ad/monitoring/pojo/entity/AdStatOfHourDWD.java

@@ -1293,64 +1293,37 @@ public class AdStatOfHourDWD {
         AdStatOfHourDWD result = new AdStatOfHourDWD();
         BeanUtils.copyProperties(hourODS, result);
         result.setCreateTime(new Date(createTime));
-
-        // 小时数据
+        // 填充小时数据
         result.setCostDeviationRateHour(hourODS.getCostDeviationRate());
         result.setCostHour(hourODS.getCost());
         result.setCompensationAmountHour(hourODS.getCompensationAmount());
         result.setViewCountHour(hourODS.getViewCount());
-        result.setThousandDisplayPriceHour(hourODS.getThousandDisplayPrice());
         result.setAvgViewPerUserHour(hourODS.getAvgViewPerUser());
         result.setValidClickCountHour(hourODS.getValidClickCount());
-        result.setCtrHour(hourODS.getCtr());
-        result.setCpcHour(hourODS.getCpc());
         result.setValuableClickCountHour(hourODS.getValuableClickCount());
-        result.setValuableClickRateHour(hourODS.getValuableClickRate());
-        result.setValuableClickCostHour(hourODS.getValuableClickCost());
         result.setConversionsCountHour(hourODS.getConversionsCount());
-        result.setConversionsCostHour(hourODS.getConversionsCost());
-        result.setConversionsRateHour(hourODS.getConversionsRate());
         result.setDeepConversionsCountHour(hourODS.getDeepConversionsCount());
-        result.setDeepConversionsCostHour(hourODS.getDeepConversionsCost());
-        result.setDeepConversionsRateHour(hourODS.getDeepConversionsRate());
         result.setOrderCountHour(hourODS.getOrderCount());
         result.setFirstDayOrderCountHour(hourODS.getFirstDayOrderCount());
-        result.setWebOrderCostHour(hourODS.getWebOrderCost());
-        result.setOrderRateHour(hourODS.getOrderRate());
         result.setOrderAmountHour(hourODS.getOrderAmount());
         result.setFirstDayOrderAmountHour(hourODS.getFirstDayOrderAmount());
-        result.setOrderUnitPriceHour(hourODS.getOrderUnitPrice());
-        result.setOrderRoiHour(hourODS.getOrderRoi());
         result.setSignInCountHour(hourODS.getSignInCount());
         result.setScanFollowCountHour(hourODS.getScanFollowCount());
         result.setWechatAppRegisterUvHour(hourODS.getWechatAppRegisterUv());
-        result.setWechatMinigameRegisterCostHour(hourODS.getWechatMinigameRegisterCost());
-        result.setWechatMinigameRegisterRateHour(hourODS.getWechatMinigameRegisterRate());
-        result.setWechatMinigameArpuHour(hourODS.getWechatMinigameArpu());
         result.setWechatMinigameRetentionCountHour(hourODS.getWechatMinigameRetentionCount());
         result.setWechatMinigameCheckoutCountHour(hourODS.getWechatMinigameCheckoutCount());
         result.setWechatMinigameCheckoutAmountHour(hourODS.getWechatMinigameCheckoutAmount());
         result.setOfficialAccountFollowCountHour(hourODS.getOfficialAccountFollowCount());
-        result.setOfficialAccountFollowRateHour(hourODS.getOfficialAccountFollowRate());
         result.setOfficialAccountRegisterUserCountHour(hourODS.getOfficialAccountRegisterUserCount());
-        result.setOfficialAccountRegisterRateHour(hourODS.getOfficialAccountRegisterRate());
-        result.setOfficialAccountRegisterCostHour(hourODS.getOfficialAccountRegisterCost());
         result.setOfficialAccountRegisterAmountHour(hourODS.getOfficialAccountRegisterAmount());
-        result.setOfficialAccountRegisterRoiHour(hourODS.getOfficialAccountRegisterRoi());
         result.setOfficialAccountApplyCountHour(hourODS.getOfficialAccountApplyCount());
         result.setOfficialAccountApplyUserCountHour(hourODS.getOfficialAccountApplyUserCount());
-        result.setOfficialAccountApplyRateHour(hourODS.getOfficialAccountApplyRate());
-        result.setOfficialAccountApplyCostHour(hourODS.getOfficialAccountApplyCost());
         result.setOfficialAccountApplyAmountHour(hourODS.getOfficialAccountApplyAmount());
-        result.setOfficialAccountApplyRoiHour(hourODS.getOfficialAccountApplyRoi());
         result.setOfficialAccountOrderCountHour(hourODS.getOfficialAccountOrderCount());
         result.setOfficialAccountFirstDayOrderCountHour(hourODS.getOfficialAccountFirstDayOrderCount());
         result.setOfficialAccountOrderUserCountHour(hourODS.getOfficialAccountOrderUserCount());
-        result.setOfficialAccountOrderRateHour(hourODS.getOfficialAccountOrderRate());
-        result.setOfficialAccountOrderCostHour(hourODS.getOfficialAccountOrderCost());
         result.setOfficialAccountOrderAmountHour(hourODS.getOfficialAccountOrderAmount());
         result.setOfficialAccountFirstDayOrderAmountHour(hourODS.getOfficialAccountFirstDayOrderAmount());
-        result.setOfficialAccountOrderRoiHour(hourODS.getOfficialAccountOrderRoi());
         result.setOfficialAccountConsultCountHour(hourODS.getOfficialAccountConsultCount());
         result.setOfficialAccountReaderCountHour(hourODS.getOfficialAccountReaderCount());
         result.setOfficialAccountCreditApplyUserCountHour(hourODS.getOfficialAccountCreditApplyUserCount());
@@ -1359,6 +1332,59 @@ public class AdStatOfHourDWD {
         result.setForwardUserCountHour(hourODS.getForwardUserCount());
         result.setNoInterestCountHour(hourODS.getNoInterestCount());
 
+        // 总消耗 / 总曝光
+        result.setThousandDisplayPriceHour(result.getViewCountHour() == 0 ? 0 : NumberUtil.divideForAd(result.getCostHour(), result.getViewCountHour()).multiply(new BigDecimal(1000)).longValue());
+        // 广告点击次数 / 广告曝光次数
+        result.setCtrHour(result.getViewCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValidClickCountHour(), result.getViewCountHour()));
+        // 广告花费/广告点击次数
+        result.setCpcHour(result.getValidClickCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getValidClickCountHour()));
+        // 广告可转化点击次数/广告曝光次数
+        result.setValuableClickRateHour(result.getViewCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getValuableClickCountHour(), result.getViewCountHour()));
+        // 广告花费/可转化点击次数
+        result.setValuableClickCostHour(result.getValuableClickCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getValuableClickCountHour()));
+        // 广告花费/转化目标量
+        result.setConversionsCostHour(result.getConversionsCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getConversionsCountHour()));
+        // 公众号:转化目标量/点击次数。
+        result.setConversionsRateHour(result.getValidClickCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getConversionsCountHour(), result.getValidClickCountHour()));
+        // 广告花费/深度转化目标量
+        result.setDeepConversionsCostHour(result.getDeepConversionsCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getDeepConversionsCountHour()));
+        // 深度转化目标量/可转化点击次数
+        result.setDeepConversionsRateHour(result.getValuableClickCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getDeepConversionsCountHour(), result.getValuableClickCountHour()));
+        // 广告花费/下单量
+        result.setWebOrderCostHour(result.getOrderCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getOrderCountHour()));
+        // 下单量/点击次数
+        result.setOrderRateHour(result.getValidClickCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderCountHour(), result.getValidClickCountHour()));
+        // 下单金额/下单量
+        result.setOrderUnitPriceHour(result.getOrderCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getOrderAmountHour(), result.getOrderCountHour()));
+        // 下单金额/广告花费
+        result.setOrderRoiHour(result.getCostHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountHour(), result.getCostHour()));
+        // 广告消耗 / 小游戏注册人数
+        result.setWechatMinigameRegisterCostHour(result.getWechatAppRegisterUvHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getWechatAppRegisterUvHour()));
+        // 小游戏注册人数 / 广告点击次数
+        result.setWechatMinigameRegisterRateHour(result.getValidClickCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getWechatAppRegisterUvHour(), result.getValidClickCountHour()));
+        // 总收益 / 总人数
+        result.setWechatMinigameArpuHour(result.getWechatAppRegisterUvHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOrderAmountHour(), result.getWechatAppRegisterUvHour()));
+        // 关注次数 / 点击次数
+        result.setOfficialAccountFollowRateHour(result.getValidClickCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountFollowCountHour(), result.getValidClickCountHour()));
+        // 公众号内注册人数 / 公众号关注次数
+        result.setOfficialAccountRegisterRateHour(result.getOfficialAccountFollowCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountRegisterUserCountHour(), result.getOfficialAccountFollowCountHour()));
+        // 广告消耗 / 广告注册人数
+        result.setOfficialAccountRegisterCostHour(result.getOfficialAccountRegisterUserCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getOfficialAccountRegisterUserCountHour()));
+        // 注册产生的订单金额累计/广告花费
+        result.setOfficialAccountRegisterRoiHour(result.getCostHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountRegisterAmountHour(), result.getCostHour()));
+        // 公众号内填单的独立用户数/公众号关注次数
+        result.setOfficialAccountApplyRateHour(result.getOfficialAccountFollowCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountApplyUserCountHour(), result.getOfficialAccountFollowCountHour()));
+        // 广告花费/广告产生的填单行为数量
+        result.setOfficialAccountApplyCostHour(result.getOfficialAccountApplyUserCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getOfficialAccountApplyUserCountHour()));
+        // 填单产生的订单金额累计/广告花费
+        result.setOfficialAccountApplyRoiHour(result.getCostHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountApplyAmountHour(), result.getCostHour()));
+        // 公众号内下单独立用户数(UV)/公众号关注次数
+        result.setOfficialAccountOrderRateHour(result.getOfficialAccountFollowCountHour() == 0 ? BigDecimal.ZERO : NumberUtil.divideForAd(result.getOfficialAccountOrderUserCountHour(), result.getOfficialAccountFollowCountHour()));
+        // 广告花费/广告产生的下单行为数量
+        result.setOfficialAccountOrderCostHour(result.getOfficialAccountOrderCountHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getCostHour(), result.getOfficialAccountOrderCountHour()));
+        // 下单产生的订单金额累计/广告花费
+        result.setOfficialAccountOrderRoiHour(result.getCostHour() == 0 ? 0 : NumberUtil.divideForMoney(result.getOfficialAccountOrderAmountHour(), result.getCostHour()));
+
         // 聚合天数据
         result.setCostDeviationRateDay(BigDecimal.ZERO);
         result.setCostDay(0L);