|
|
@@ -713,7 +713,8 @@ class ChannelAnalysisLogic extends BaseLogic
|
|
|
$activeField = "
|
|
|
sum(active_total) as active,
|
|
|
reg_date as tdate";
|
|
|
- $activeData = $this->generateUnionList('game_active_day', $yearRange, $activeWhereRaw, $activeField, 'reg_date');
|
|
|
+
|
|
|
+ $activeData = $this->generateUnionList('game_active_day', $yearRange, $activeWhereRaw, $activeField, 'tdate');
|
|
|
$activeData = array_column($activeData, 'active', 'tdate');
|
|
|
|
|
|
// 4. 注册充值统计(累计充值reg_pay_total, 注册总充值(扣除分成)reg_pay_amount、注册累计付费人数(reg_pay_num))
|
|
|
@@ -724,13 +725,13 @@ class ChannelAnalysisLogic extends BaseLogic
|
|
|
sum(addup_pay_amount) as reg_pay_amount,
|
|
|
reg_date as tdate";
|
|
|
$regPayWhereRaw = str_replace('tdate', 'reg_date', $regPayWhereRaw);
|
|
|
- $regPayData = $this->generateUnionList('game_reg_pay_day', $yearRange, $regPayWhereRaw, $regPayField, 'reg_date');
|
|
|
+ $regPayData = $this->generateUnionList('game_reg_pay_day', $yearRange, $regPayWhereRaw, $regPayField, 'tdate');
|
|
|
|
|
|
$regPayData = array_column($regPayData, null, 'tdate');
|
|
|
|
|
|
// 5. 拼装数据
|
|
|
// 拼装数据
|
|
|
- foreach ($baseTotalDayData as $key => &$row)
|
|
|
+ foreach ($baseTotalDayData as &$row)
|
|
|
{
|
|
|
$row['active'] = $activeData[$row['tdate']] ?? 0; // 次留数
|
|
|
$row['cost'] = $costData[$row['tdate']] ?? 0; // 支出
|
|
|
@@ -837,8 +838,9 @@ class ChannelAnalysisLogic extends BaseLogic
|
|
|
|
|
|
// 合计 消耗金额,注册数,注册成本
|
|
|
foreach ($baseData as $key => $val) {
|
|
|
- $totalRow['cost'] = !empty($totalRow['cost']) ? ($totalRow['cost'] + $costData[$key] ?? 0) : $costData[$key] ?? 0;
|
|
|
- $totalRow['d0']['cost'] = !empty($totalRow['cost']) ? ($totalRow['cost'] + $costData[$key] ?? 0) : $costData[$key] ?? 0;
|
|
|
+ $cost = $costData[$key] ?? 0;
|
|
|
+ $totalRow['cost'] = !empty($totalRow['cost']) ? ($totalRow['cost'] + $cost) : $cost;
|
|
|
+ $totalRow['d0']['cost'] = !empty($totalRow['cost']) ? ($totalRow['cost'] + $cost) : $cost;
|
|
|
$totalRow['reg_total'] = !empty($totalRow['reg_total']) ? ($totalRow['reg_total'] + $val['reg_total'] ?? 0) : $val['reg_total'] ?? 0;
|
|
|
$totalRow['d0']['reg_total'] = !empty($totalRow['reg_total']) ? ($totalRow['reg_total'] + $val['reg_total'] ?? 0) : $val['reg_total'] ?? 0;
|
|
|
$totalRow['reg_cost'] = getRound($totalRow['cost'] ?? 0, $totalRow['reg_total'] ?? 0);
|
|
|
@@ -847,7 +849,7 @@ class ChannelAnalysisLogic extends BaseLogic
|
|
|
for ($i = 1; $i <= $days; $i++) {
|
|
|
$daykey = 'd' . $i;
|
|
|
$totalRow[$daykey]['reg_total'] = !empty($totalRow[$daykey]['reg_total']) ? ($totalRow[$daykey]['reg_total'] + $val['reg_total'] ?? 0) : $val['reg_total'] ?? 0;
|
|
|
- $totalRow[$daykey]['cost'] = !empty($totalRow[$daykey]['cost']) ? ($totalRow[$daykey]['cost'] + $costData[$key] ?? 0) : $costData[$key] ?? 0;
|
|
|
+ $totalRow[$daykey]['cost'] = !empty($totalRow[$daykey]['cost']) ? ($totalRow[$daykey]['cost'] + $cost) : $cost;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -855,14 +857,15 @@ class ChannelAnalysisLogic extends BaseLogic
|
|
|
foreach ($regPayData as $row) {
|
|
|
$regDate = $row['reg_date'];
|
|
|
$data[$regDate]['tdate'] = $regDate;
|
|
|
-
|
|
|
+ $regTotal = $baseData[$regDate]['reg_total'] ?? 0;
|
|
|
+ $cost = $costData[$regDate] ?? 0;
|
|
|
// 注册数
|
|
|
- $data[$regDate]['reg_total'] = $baseData[$regDate]['reg_total'] ?? 0;
|
|
|
+ $data[$regDate]['reg_total'] = $regTotal;
|
|
|
|
|
|
// 注册成本
|
|
|
- $data[$regDate]['reg_cost'] = getRound($costData[$regDate] ?? 0, $data[$regDate]['reg_total'] ?? 0);
|
|
|
+ $data[$regDate]['reg_cost'] = getRound($cost, $regTotal);
|
|
|
// 消耗金额
|
|
|
- $data[$regDate]['cost'] = $costData[$regDate] ?? 0;
|
|
|
+ $data[$regDate]['cost'] = $cost;
|
|
|
|
|
|
// 计算日期相差天数
|
|
|
$daykey = (strtotime($row['pay_date']) - strtotime($regDate)) / 86400 + 1;
|
|
|
@@ -870,35 +873,35 @@ class ChannelAnalysisLogic extends BaseLogic
|
|
|
|
|
|
switch ($dataType) {
|
|
|
case 'recovery':
|
|
|
- $data[$regDate][$daykey] = getPercent($row['addup_pay_total'], $costData[$regDate] ?? 0, 1);
|
|
|
+ $data[$regDate][$daykey] = getPercent($row['addup_pay_total'], $cost, 1);
|
|
|
if ($nowDate === $row['pay_date']) {
|
|
|
- $data[$regDate]['d0'] = getPercent($row['addup_pay_total'], $costData[$regDate] ?? 0, 1);
|
|
|
+ $data[$regDate]['d0'] = getPercent($row['addup_pay_total'], $cost, 1);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
/* 扣除分成/cost , 计算 */
|
|
|
case 'remount':
|
|
|
// 按天回本率
|
|
|
- $data[$regDate][$daykey] = getPercent($row['addup_pay_amount'], $costData[$regDate] ?? 0, 1);
|
|
|
+ $data[$regDate][$daykey] = getPercent($row['addup_pay_amount'], $cost, 1);
|
|
|
// 累计回本率
|
|
|
if ($nowDate === $row['pay_date']) {
|
|
|
- $data[$regDate]['d0'] = getPercent($row['addup_pay_amount'], $costData[$regDate] ?? 0, 1);
|
|
|
+ $data[$regDate]['d0'] = getPercent($row['addup_pay_amount'], $cost, 1);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
/* 累计计费付费金额 / 注册数 */
|
|
|
case 'ltv':
|
|
|
// 按天LTV
|
|
|
- $data[$regDate][$daykey] = getRound($row['addup_pay_total'], $baseData[$regDate]['reg_total'] ?? 0, 1);
|
|
|
+ $data[$regDate][$daykey] = getRound($row['addup_pay_total'], $regTotal, 1);
|
|
|
// 累计LTV
|
|
|
if ($nowDate === $row['pay_date']) {
|
|
|
- $data[$regDate]['d0'] = getRound($row['addup_pay_total'], $baseData[$regDate]['reg_total'] ?? 0, 1);
|
|
|
+ $data[$regDate]['d0'] = getRound($row['addup_pay_total'], $regTotal, 1);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
/* 后面的LTV数据, 按天LTV / 第一天LTV , 目的是为了计算LTV增长率*/
|
|
|
case 'ltvbs':
|
|
|
- $totalLtv[$daykey] = getRound($row['addup_pay_total'], $baseData[$regDate]['reg_total'] ?? 0, 1);
|
|
|
+ $totalLtv[$daykey] = getRound($row['addup_pay_total'], $regTotal, 1);
|
|
|
$fz = $totalLtv['d1'] ?? 0 != 0 ? $totalLtv['d1'] : 1;
|
|
|
$data[$regDate][$daykey] = round($totalLtv[$daykey] / $fz, 2);
|
|
|
break;
|