Bläddra i källkod

Merge commit '5c200383e3e64922d5f14040fa1d14417fe3873f' into dev

ith5 5 månader sedan
förälder
incheckning
59f7dae48a

+ 2 - 0
app/process/CreateTables.php

@@ -263,6 +263,7 @@ class CreateTables
   `imei` varchar(64) DEFAULT '' COMMENT 'imei/idfa',
   `imei` varchar(64) DEFAULT '' COMMENT 'imei/idfa',
   `oaid` varchar(128) DEFAULT '' COMMENT 'oaid/cid',
   `oaid` varchar(128) DEFAULT '' COMMENT 'oaid/cid',
   `ip` varchar(128) NOT NULL DEFAULT '',
   `ip` varchar(128) NOT NULL DEFAULT '',
+  `ip_location` varchar(128) NOT NULL DEFAULT '',
   `vt` tinyint(4) NOT NULL DEFAULT '1' COMMENT '0:模拟器1:真机2:未知',
   `vt` tinyint(4) NOT NULL DEFAULT '1' COMMENT '0:模拟器1:真机2:未知',
   `brand` varchar(32) DEFAULT '' COMMENT '品牌',
   `brand` varchar(32) DEFAULT '' COMMENT '品牌',
   `model` varchar(32) DEFAULT '' COMMENT '机型',
   `model` varchar(32) DEFAULT '' COMMENT '机型',
@@ -288,6 +289,7 @@ class CreateTables
   `site_id` int(10) unsigned NOT NULL DEFAULT '1000' COMMENT '广告位id',
   `site_id` int(10) unsigned NOT NULL DEFAULT '1000' COMMENT '广告位id',
   `auth_id` int(11) NOT NULL DEFAULT '0' COMMENT '负责人ID',
   `auth_id` int(11) NOT NULL DEFAULT '0' COMMENT '负责人ID',
   `ip` varchar(128) NOT NULL DEFAULT '',
   `ip` varchar(128) NOT NULL DEFAULT '',
+  `ip_location` varchar(128) NOT NULL DEFAULT '',
   `login_time` int(10) unsigned NOT NULL,
   `login_time` int(10) unsigned NOT NULL,
   `reg_time` int(10) unsigned NOT NULL,
   `reg_time` int(10) unsigned NOT NULL,
   `imei` varchar(64) DEFAULT '' COMMENT 'imei/idfa',
   `imei` varchar(64) DEFAULT '' COMMENT 'imei/idfa',

+ 37 - 40
app/v1/logic/dataReport/AnalyseLogic.php

@@ -77,14 +77,11 @@ class AnalyseLogic extends BaseLogic
     }
     }
 
 
     // 注册按时
     // 注册按时
-
     public function generateWhereSql($params)
     public function generateWhereSql($params)
     {
     {
 
 
         $whereSql = "";
         $whereSql = "";
 
 
-       
-
         // 游戏id
         // 游戏id
         if (!empty($params['game_id'])) {
         if (!empty($params['game_id'])) {
             if (is_array($params['game_id'])) {
             if (is_array($params['game_id'])) {
@@ -327,19 +324,19 @@ class AnalyseLogic extends BaseLogic
     public function getDataOverview($where)
     public function getDataOverview($where)
     {
     {
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
-        print_r($params);
+
         $whereSql = $this->generateWhereSql($params);
         $whereSql = $this->generateWhereSql($params);
-        echo $whereSql;
+
         // 基础汇总信息
         // 基础汇总信息
         $field = "
         $field = "
-      SUM(login_total) AS login_total,  -- 登陆总数
-      SUM(reg_total) AS reg_total, -- 注册总数
-      SUM(pay_total) AS pay_total, -- 付费总数
-      SUM(pay_num) AS pay_num, -- 付费人数
-      SUM(reg_login_total) AS reg_login_total, -- 注册登陆总数
-      SUM(reg_pay_num) AS reg_pay_num, -- 注册付费数
-      SUM(reg_pay_total) AS reg_pay_total, -- 注册付费金额
-      SUM(old_login_total) AS old_login_total, -- 老用户登陆总数
+      SUM(login_total) AS login_total,  
+      SUM(reg_total) AS reg_total, 
+      SUM(pay_total) AS pay_total, 
+      SUM(pay_num) AS pay_num, 
+      SUM(reg_login_total) AS reg_login_total, 
+      SUM(reg_pay_num) AS reg_pay_num, 
+      SUM(reg_pay_total) AS reg_pay_total, 
+      SUM(old_login_total) AS old_login_total, 
       tdate";
       tdate";
         $baseData = $this->generateYearUnionList('base_total_day_', $where['reg_date'], $whereSql, $field, 'tdate');
         $baseData = $this->generateYearUnionList('base_total_day_', $where['reg_date'], $whereSql, $field, 'tdate');
 
 
@@ -414,14 +411,14 @@ class AnalyseLogic extends BaseLogic
         $whereSql = $this->generateWhereSql($params);
         $whereSql = $this->generateWhereSql($params);
         // 基础汇总信息
         // 基础汇总信息
         $field = "
         $field = "
-      SUM(login_total) AS login_total,  -- 登陆总数
-      SUM(reg_total) AS reg_total, -- 注册总数
-      SUM(pay_total) AS pay_total, -- 付费总数
-      SUM(pay_num) AS pay_num, -- 付费人数
-      SUM(reg_login_total) AS reg_login_total, -- 注册登陆总数
-      SUM(reg_pay_num) AS reg_pay_num, -- 注册付费数
-      SUM(reg_pay_total) AS reg_pay_total, -- 注册付费金额
-      SUM(old_login_total) AS old_login_total, -- 老用户登陆总数
+      SUM(login_total) AS login_total,
+      SUM(reg_total) AS reg_total,
+      SUM(pay_total) AS pay_total,
+      SUM(pay_num) AS pay_num,
+      SUM(reg_login_total) AS reg_login_total,
+      SUM(reg_pay_num) AS reg_pay_num,
+      SUM(reg_pay_total) AS reg_pay_total,
+      SUM(old_login_total) AS old_login_total,
       date_format(`tdate`, '%Y-%m') AS mdate";
       date_format(`tdate`, '%Y-%m') AS mdate";
         $baseData = $this->generateYearUnionList('base_total_day_', $where['reg_date'], $whereSql, $field, 'mdate');
         $baseData = $this->generateYearUnionList('base_total_day_', $where['reg_date'], $whereSql, $field, 'mdate');
 
 
@@ -502,9 +499,9 @@ class AnalyseLogic extends BaseLogic
 
 
 
 
         $field = "
         $field = "
-      SUM(pay_total) AS pay_total, -- 付费金额
-      SUM(pay_num) AS pay_num, -- 付费人数
-      SUM(login_total) AS login_total, -- 登陆总数
+      SUM(pay_total) AS pay_total, 
+      SUM(pay_num) AS pay_num, 
+      SUM(login_total) AS login_total, 
       game_id,
       game_id,
       tdate";
       tdate";
 
 
@@ -615,8 +612,8 @@ class AnalyseLogic extends BaseLogic
         // 1. 根据注册时间,获取注册付费人数
         // 1. 根据注册时间,获取注册付费人数
         $payData = Db::connect('db_game_log')->query("
         $payData = Db::connect('db_game_log')->query("
         SELECT 
         SELECT 
-          SUBSTRING(reg_date,1,10) as dimension,  -- 注册日期
-          COUNT(DISTINCT uid) as pay_num  -- 注册付费人数
+          SUBSTRING(reg_date,1,10) as dimension, 
+          COUNT(DISTINCT uid) as pay_num 
         FROM sdk_order_success
         FROM sdk_order_success
           WHERE {$whereRaw} AND reg_date BETWEEN '{$params['reg_date'][0]} 00:00:00' AND '{$params['reg_date'][1]} 23:59:59'
           WHERE {$whereRaw} AND reg_date BETWEEN '{$params['reg_date'][0]} 00:00:00' AND '{$params['reg_date'][1]} 23:59:59'
             GROUP BY 
             GROUP BY 
@@ -631,10 +628,10 @@ class AnalyseLogic extends BaseLogic
         foreach ($tableNames as $tableName) {
         foreach ($tableNames as $tableName) {
             $sqlArr[] = "
             $sqlArr[] = "
           SELECT  
           SELECT  
-            CONCAT(FROM_UNIXTIME(reg_time, '%Y-%m-%d'), '|', TIMESTAMPDIFF(DAY, FROM_UNIXTIME(reg_time), FROM_UNIXTIME(login_time))) AS dimension, -- 注册日期|留存天数
-            FROM_UNIXTIME(reg_time, '%Y-%m-%d') AS reg_date, -- 注册日期
-            TIMESTAMPDIFF(DAY, FROM_UNIXTIME(reg_time), FROM_UNIXTIME(login_time)) AS day_num, -- 留存天数
-            COUNT(DISTINCT a.user_name) AS remain_num -- 留存人数
+            CONCAT(FROM_UNIXTIME(reg_time, '%Y-%m-%d'), '|', TIMESTAMPDIFF(DAY, FROM_UNIXTIME(reg_time), FROM_UNIXTIME(login_time))) AS dimension,
+            FROM_UNIXTIME(reg_time, '%Y-%m-%d') AS reg_date,
+            TIMESTAMPDIFF(DAY, FROM_UNIXTIME(reg_time), FROM_UNIXTIME(login_time)) AS day_num,
+            COUNT(DISTINCT a.user_name) AS remain_num
           FROM {$tableName} AS a
           FROM {$tableName} AS a
             INNER JOIN (
             INNER JOIN (
               SELECT 
               SELECT 
@@ -725,9 +722,9 @@ class AnalyseLogic extends BaseLogic
             $data2Res = [];
             $data2Res = [];
 
 
             $field = "
             $field = "
-          SUM(reg_total) as reg, -- 注册人数
-          SUM(old_login_total) as login, -- 老用户登陆人数
-          SUM(pay_total) as pay, -- 付费金额
+          SUM(reg_total) as reg,
+          SUM(old_login_total) as login,
+          SUM(pay_total) as pay,
           tdate
           tdate
         ";
         ";
 
 
@@ -760,7 +757,7 @@ class AnalyseLogic extends BaseLogic
             // 获取消耗数据1
             // 获取消耗数据1
             $params['reg_date'] = $params['compare_date1'];
             $params['reg_date'] = $params['compare_date1'];
             $costWhereSql1 = $this->generateWhereSql($params);
             $costWhereSql1 = $this->generateWhereSql($params);
-            echo $costWhereSql1;
+
             $costData1 = Db::connect('db_advert')->query("
             $costData1 = Db::connect('db_advert')->query("
           SELECT SUM(money) as money, tdate
           SELECT SUM(money) as money, tdate
           FROM media_cost
           FROM media_cost
@@ -852,10 +849,10 @@ class AnalyseLogic extends BaseLogic
             $data2Res = [];
             $data2Res = [];
 
 
             $field = "
             $field = "
-          SUM(reg_total) as reg, -- 注册人数
-          SUM(old_login_total) as login, -- 老用户登陆人数
-          SUM(pay_total) as pay, -- 付费金额
-          SUM(cost) as cost, -- 消耗金额
+          SUM(reg_total) as reg,
+          SUM(old_login_total) as login,
+          SUM(pay_total) as pay,
+          SUM(cost) as cost,
           thour
           thour
         ";
         ";
 
 
@@ -874,7 +871,7 @@ class AnalyseLogic extends BaseLogic
             // 获取对比日期2的数据, 注册、登录、充值
             // 获取对比日期2的数据, 注册、登录、充值
             $params['reg_date'] = $params['compare_date2_date'];
             $params['reg_date'] = $params['compare_date2_date'];
             $whereSql2 = $this->generateWhereSql($params);
             $whereSql2 = $this->generateWhereSql($params);
-            echo $whereSql2;
+
             $baseData2 = $this->generateMonthUnionList('base_total_hour_', $params['compare_date2'], $whereSql2, $field, 'thour');
             $baseData2 = $this->generateMonthUnionList('base_total_hour_', $params['compare_date2'], $whereSql2, $field, 'thour');
 
 
             foreach ($baseData2 as $item) {
             foreach ($baseData2 as $item) {
@@ -887,7 +884,7 @@ class AnalyseLogic extends BaseLogic
 
 
             $ndate = date("Y-m-d");
             $ndate = date("Y-m-d");
             $hour = date("H");
             $hour = date("H");
-            print_r($data1Res);
+
             for ($h = 0; $h < 24; $h++) {
             for ($h = 0; $h < 24; $h++) {
                 if ($params['compare_date1_date'] == $ndate && $h > $hour) {
                 if ($params['compare_date1_date'] == $ndate && $h > $hour) {
                     continue;
                     continue;

+ 79 - 222
app/v1/logic/dataReport/ChannelAnalysisLogic.php

@@ -1,21 +1,16 @@
 <?php
 <?php
 
 
-// 玩家日志逻
-
 namespace app\v1\logic\dataReport;
 namespace app\v1\logic\dataReport;
 
 
 use app\v1\logic\tool\ToolLogic;
 use app\v1\logic\tool\ToolLogic;
 use plugin\saiadmin\basic\BaseLogic;
 use plugin\saiadmin\basic\BaseLogic;
-use plugin\saiadmin\service\OpenSpoutWriter;
 use support\think\Db;
 use support\think\Db;
-use support\Request;
 
 
 class ChannelAnalysisLogic extends BaseLogic
 class ChannelAnalysisLogic extends BaseLogic
 {
 {
     // 分时数据
     // 分时数据
     public function getHourDataList($where)
     public function getHourDataList($where)
     {
     {
-
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
         // hour=>小时, reg_total=>注册数,cost=>消耗,pay_num=>付费总用户数,
         // hour=>小时, reg_total=>注册数,cost=>消耗,pay_num=>付费总用户数,
         // pay_total=>付费总金额,reg_pay_num=>小时注册当天付费数,reg_pay_total=>小时注册当天付费金额
         // pay_total=>付费总金额,reg_pay_num=>小时注册当天付费数,reg_pay_total=>小时注册当天付费金额
@@ -33,8 +28,6 @@ class ChannelAnalysisLogic extends BaseLogic
         $group = 'agent_id,thour';
         $group = 'agent_id,thour';
         $whereSql = $this->generateWhereSql($params);
         $whereSql = $this->generateWhereSql($params);
 
 
-        echo $whereSql;
-
         // 根据日期,连表查询
         // 根据日期,连表查询
         $tableNames = ToolLogic::getMonthlyTableNames('base_total_hour_', $where['reg_date'][0], $where['reg_date'][1]);
         $tableNames = ToolLogic::getMonthlyTableNames('base_total_hour_', $where['reg_date'][0], $where['reg_date'][1]);
         $sqlParts = [];
         $sqlParts = [];
@@ -44,10 +37,7 @@ class ChannelAnalysisLogic extends BaseLogic
         $unionSql = implode(" UNION ALL ", $sqlParts);
         $unionSql = implode(" UNION ALL ", $sqlParts);
 
 
         // 外层包裹分页、排序
         // 外层包裹分页、排序
-        $finalSql = "
-            SELECT {$field} FROM ( {$unionSql} ) AS all_hour
-            GROUP BY {$group}
-        ";
+        $finalSql = " SELECT {$field} FROM ( {$unionSql} ) AS all_hour GROUP BY {$group} ";
 
 
         // 按小时数据
         // 按小时数据
         $hourData = Db::connect('db_data_report')->query($finalSql);
         $hourData = Db::connect('db_data_report')->query($finalSql);
@@ -75,13 +65,11 @@ class ChannelAnalysisLogic extends BaseLogic
             // 回本率
             // 回本率
             $hourRow['roi'] = ToolLogic::getPercent($hourRow['reg_pay_total'], $hourRow['cost']);
             $hourRow['roi'] = ToolLogic::getPercent($hourRow['reg_pay_total'], $hourRow['cost']);
 
 
-
             // 统计数据,每小时的数据
             // 统计数据,每小时的数据
             $total[$hourKey]['reg_total'] = !empty($total[$hourKey]['reg_total']) ? ($total[$hourKey]['reg_total'] + $hourRow['reg_total']) : $hourRow['reg_total'];
             $total[$hourKey]['reg_total'] = !empty($total[$hourKey]['reg_total']) ? ($total[$hourKey]['reg_total'] + $hourRow['reg_total']) : $hourRow['reg_total'];
             $total[$hourKey]['cost'] = !empty($total[$hourKey]['cost']) ? round($total[$hourKey]['cost'] + $hourRow['cost'], 2) : $hourRow['cost'];
             $total[$hourKey]['cost'] = !empty($total[$hourKey]['cost']) ? round($total[$hourKey]['cost'] + $hourRow['cost'], 2) : $hourRow['cost'];
             $total[$hourKey]['reg_pay_total'] = !empty($total[$hourKey]['reg_pay_total']) ? ($total[$hourKey]['reg_pay_total'] + $hourRow['reg_pay_total']) : $hourRow['reg_pay_total'];
             $total[$hourKey]['reg_pay_total'] = !empty($total[$hourKey]['reg_pay_total']) ? ($total[$hourKey]['reg_pay_total'] + $hourRow['reg_pay_total']) : $hourRow['reg_pay_total'];
             $total[$hourKey]['reg_pay_num'] = !empty($total[$hourKey]['reg_pay_num']) ? ($total[$hourKey]['reg_pay_num'] + $hourRow['reg_pay_num']) : $hourRow['reg_pay_num'];
             $total[$hourKey]['reg_pay_num'] = !empty($total[$hourKey]['reg_pay_num']) ? ($total[$hourKey]['reg_pay_num'] + $hourRow['reg_pay_num']) : $hourRow['reg_pay_num'];
-
             $total['total_raw']['reg_total'] = !empty($total['total_raw']['reg_total']) ? ($total['total_raw']['reg_total'] + $hourRow['reg_total']) : $hourRow['reg_total'];
             $total['total_raw']['reg_total'] = !empty($total['total_raw']['reg_total']) ? ($total['total_raw']['reg_total'] + $hourRow['reg_total']) : $hourRow['reg_total'];
             $total['total_raw']['cost'] = !empty($total['total_raw']['cost']) ? round($total['total_raw']['cost'] + $hourRow['cost'], 2) : $hourRow['cost'];
             $total['total_raw']['cost'] = !empty($total['total_raw']['cost']) ? round($total['total_raw']['cost'] + $hourRow['cost'], 2) : $hourRow['cost'];
             $total['total_raw']['reg_pay_total'] = !empty($total['total_raw']['reg_pay_total']) ? ($total['total_raw']['reg_pay_total'] + $hourRow['reg_pay_total']) : $hourRow['reg_pay_total'];
             $total['total_raw']['reg_pay_total'] = !empty($total['total_raw']['reg_pay_total']) ? ($total['total_raw']['reg_pay_total'] + $hourRow['reg_pay_total']) : $hourRow['reg_pay_total'];
@@ -90,7 +78,6 @@ class ChannelAnalysisLogic extends BaseLogic
             $hourResult[$agentId][$hourKey] = $hourRow;
             $hourResult[$agentId][$hourKey] = $hourRow;
         }
         }
 
 
-
         // 计算统计的注册成本、付费绿、回本率
         // 计算统计的注册成本、付费绿、回本率
         foreach ($total as $key => &$v) {
         foreach ($total as $key => &$v) {
             if (!is_array($v)) continue; // 跳过 agent_id => 合计 等非数组元素
             if (!is_array($v)) continue; // 跳过 agent_id => 合计 等非数组元素
@@ -120,10 +107,8 @@ class ChannelAnalysisLogic extends BaseLogic
 
 
 
 
     // 留存按日
     // 留存按日
-
-    public function generateWhereSql($params)
+    public function generateWhereSql($params): string
     {
     {
-
         $whereSql = "";
         $whereSql = "";
         // 游戏id
         // 游戏id
         if (!empty($params['game_id'])) {
         if (!empty($params['game_id'])) {
@@ -172,9 +157,8 @@ class ChannelAnalysisLogic extends BaseLogic
         return $whereSql;
         return $whereSql;
     }
     }
 
 
-    public function getActiveDataList($where)
+    public function getActiveDataList($where): array
     {
     {
-
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
 
 
         $whereSql = $this->generateWhereSql($params);
         $whereSql = $this->generateWhereSql($params);
@@ -211,7 +195,6 @@ class ChannelAnalysisLogic extends BaseLogic
         $actDataSql = "select reg_date as tdate, days, sum(active_total) as active from ({$unionGameActiveDaySql}) as all_game_active_day group by reg_date,days";
         $actDataSql = "select reg_date as tdate, days, sum(active_total) as active from ({$unionGameActiveDaySql}) as all_game_active_day group by reg_date,days";
         // 替换日期字段, 因为game_active_day_表的日期字段是[reg_date]
         // 替换日期字段, 因为game_active_day_表的日期字段是[reg_date]
         $actDataSql = str_replace("AND tdate", "AND reg_date", $actDataSql);
         $actDataSql = str_replace("AND tdate", "AND reg_date", $actDataSql);
-
         // 日期、活跃天数、活跃数,按日期和活跃天数分组
         // 日期、活跃天数、活跃数,按日期和活跃天数分组
         $actData = Db::connect('db_data_report')->query($actDataSql);
         $actData = Db::connect('db_data_report')->query($actDataSql);
 
 
@@ -253,10 +236,7 @@ class ChannelAnalysisLogic extends BaseLogic
             }
             }
             // 活跃天数的key
             // 活跃天数的key
             $dayKey = 'd' . $r['days'];
             $dayKey = 'd' . $r['days'];
-
             // N日留存率 = 第N天活跃数 ÷ 注册日注册数 × 100%。
             // N日留存率 = 第N天活跃数 ÷ 注册日注册数 × 100%。
-            // $list['2025-07-23'][d1]['active']/$list['2025-07-23']['reg']
-            // $list['2025-07-23'][d2]['active']/$list['2025-07-23']['reg']
             $list[$reg_date][$dayKey] = ToolLogic::getPercent($r['active'], $list[$reg_date]['reg']);
             $list[$reg_date][$dayKey] = ToolLogic::getPercent($r['active'], $list[$reg_date]['reg']);
             // d1...dn的reg = 记录按日的活跃数
             // d1...dn的reg = 记录按日的活跃数
             $totalData[$dayKey]['active'] += $r['active'];
             $totalData[$dayKey]['active'] += $r['active'];
@@ -271,11 +251,10 @@ class ChannelAnalysisLogic extends BaseLogic
             }
             }
         }
         }
 
 
-        $data = [
+        return [
             'data' => array_values($list),
             'data' => array_values($list),
             'totalRow' => $total,
             'totalRow' => $total,
         ];
         ];
-        return $data;
     }
     }
 
 
     /**
     /**
@@ -306,14 +285,10 @@ class ChannelAnalysisLogic extends BaseLogic
     public function getAgentDataList($where)
     public function getAgentDataList($where)
     {
     {
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
-
         // 忽略 0 投入
         // 忽略 0 投入
         $igz = !empty($params['filter']) && is_array($params['filter']) && in_array('igz', $params['filter']);
         $igz = !empty($params['filter']) && is_array($params['filter']) && in_array('igz', $params['filter']);
-
-
         $group = !empty($params['group']) ? $params['group'] : '';
         $group = !empty($params['group']) ? $params['group'] : '';
 
 
-
         // 如果分组按照 游戏组ID||游戏组
         // 如果分组按照 游戏组ID||游戏组
         if ($group == 1) {
         if ($group == 1) {
             $type = 'game_id';
             $type = 'game_id';
@@ -327,7 +302,6 @@ class ChannelAnalysisLogic extends BaseLogic
 
 
         $whereSql = $this->generateWhereSql($params);
         $whereSql = $this->generateWhereSql($params);
 
 
-
         // 1.查询消耗数据, 安game_id/agent_id分组
         // 1.查询消耗数据, 安game_id/agent_id分组
         // 忽略后台录入的消耗
         // 忽略后台录入的消耗
         $costWhereSql = $whereSql;
         $costWhereSql = $whereSql;
@@ -357,7 +331,6 @@ class ChannelAnalysisLogic extends BaseLogic
         // 2. 获取基础报表数据,兼容跨年
         // 2. 获取基础报表数据,兼容跨年
         $baseData = $this->generateYearUnionList('base_total_day_', $params['reg_date'], $whereSql, $totalDayField, $type);
         $baseData = $this->generateYearUnionList('base_total_day_', $params['reg_date'], $whereSql, $totalDayField, $type);
 
 
-
         // 3. 获取活跃数
         // 3. 获取活跃数
         $activeWhereSql = $whereSql . ' AND days = 1';
         $activeWhereSql = $whereSql . ' AND days = 1';
         $activeWhereSql = str_replace('AND tdate', 'AND reg_date', $activeWhereSql);
         $activeWhereSql = str_replace('AND tdate', 'AND reg_date', $activeWhereSql);
@@ -387,8 +360,8 @@ class ChannelAnalysisLogic extends BaseLogic
         $hb7dayData = array_column($hb7dayData ?? [], 'reg_pay_amount_7', $type);
         $hb7dayData = array_column($hb7dayData ?? [], 'reg_pay_amount_7', $type);
 
 
         $hb7dayDataSum = 0;
         $hb7dayDataSum = 0;
-        foreach ($hb7dayData as $row) {
-            $hb7dayDataSum += $row;
+        foreach ($hb7dayData as $daySum) {
+            $hb7dayDataSum += $daySum;
         }
         }
         if (empty($baseData)) {
         if (empty($baseData)) {
             return [];
             return [];
@@ -410,11 +383,8 @@ class ChannelAnalysisLogic extends BaseLogic
         $authData = array_column($authData, null, 'id');
         $authData = array_column($authData, null, 'id');
         $mediaData = array_column($mediaData, null, 'id');
         $mediaData = array_column($mediaData, null, 'id');
 
 
-
-        print_r($baseData);
         // 拼接数据
         // 拼接数据
         foreach ($baseData as $key => &$row) {
         foreach ($baseData as $key => &$row) {
-
             $typeId = $row[$type]; // type, 的取值, 这里根据分组, game_id | agent_id
             $typeId = $row[$type]; // type, 的取值, 这里根据分组, game_id | agent_id
             $cost = $costDataColumn[$typeId] ?? 0;
             $cost = $costDataColumn[$typeId] ?? 0;
             $row['cost'] = $cost;
             $row['cost'] = $cost;
@@ -422,7 +392,6 @@ class ChannelAnalysisLogic extends BaseLogic
             if ($igz && $row['cost'] === 0) {
             if ($igz && $row['cost'] === 0) {
                 unset($baseData[$key]);
                 unset($baseData[$key]);
             }
             }
-
             // 注册成本
             // 注册成本
             $row['reg_cost'] = ToolLogic::getRound($cost, $row['reg_total'] ?? 0);
             $row['reg_cost'] = ToolLogic::getRound($cost, $row['reg_total'] ?? 0);
             // 创角率
             // 创角率
@@ -433,149 +402,97 @@ class ChannelAnalysisLogic extends BaseLogic
             $row['a_per'] = ToolLogic::getPercent($activeData[$typeId]['active'] ?? 0, $row['reg_total'], 1);
             $row['a_per'] = ToolLogic::getPercent($activeData[$typeId]['active'] ?? 0, $row['reg_total'], 1);
             // 次留成本
             // 次留成本
             $row['a_cost'] = ToolLogic::getRound($cost, $row['active'], 1);
             $row['a_cost'] = ToolLogic::getRound($cost, $row['active'], 1);
-
             // 总付费金额
             // 总付费金额
             $row['reg_pay_total'] = $regPayData[$typeId]['reg_pay_total'] ?? 0;
             $row['reg_pay_total'] = $regPayData[$typeId]['reg_pay_total'] ?? 0;
-
             // 总付费人数
             // 总付费人数
             $row['reg_pay_num'] = $regPayData[$typeId]['reg_pay_num'] ?? 0;
             $row['reg_pay_num'] = $regPayData[$typeId]['reg_pay_num'] ?? 0;
-
             //付费成本
             //付费成本
             $row['p_cost'] = ToolLogic::getRound($row['cost'], $row['reg_pay_num']);
             $row['p_cost'] = ToolLogic::getRound($row['cost'], $row['reg_pay_num']);
-
             // 付费率
             // 付费率
             $row['p_per'] = ToolLogic::getPercent($row['reg_pay_num'] ?? 0, $row['reg_total'], 1);
             $row['p_per'] = ToolLogic::getPercent($row['reg_pay_num'] ?? 0, $row['reg_total'], 1);
-
             // 当天回本率
             // 当天回本率
             $row['da_per'] = ToolLogic::getPercent($row['reg_pay_total_da'] ?? 0, $row['cost'], 1);
             $row['da_per'] = ToolLogic::getPercent($row['reg_pay_total_da'] ?? 0, $row['cost'], 1);
-
             // 累计回本率
             // 累计回本率
             $row['re_per'] = (float)trim(ToolLogic::getPercent($row['reg_pay_total'], $row['cost']), "%");
             $row['re_per'] = (float)trim(ToolLogic::getPercent($row['reg_pay_total'], $row['cost']), "%");
-
-
             $row['reg_pay_amount'] = $hb7dayData[$typeId]['reg_pay_amount'] ?? 0;
             $row['reg_pay_amount'] = $hb7dayData[$typeId]['reg_pay_amount'] ?? 0;
-
             // 实际回本率
             // 实际回本率
             $row['re_amount_per'] = ToolLogic::getPercent($row['reg_pay_amount'], $row['cost'], 1);
             $row['re_amount_per'] = ToolLogic::getPercent($row['reg_pay_amount'], $row['cost'], 1);
-
-
             //ARPU
             //ARPU
             $row['arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_pay_num']);
             $row['arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_pay_num']);
-
             //注册ARPU
             //注册ARPU
             $row['r_arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_total']);
             $row['r_arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_total']);
-
             // 7天回本率
             // 7天回本率
             $row['re_amount_per_7'] = ToolLogic::getPercent($hb7dayData[$typeId] ?? 0, $row['cost'], 1);
             $row['re_amount_per_7'] = ToolLogic::getPercent($hb7dayData[$typeId] ?? 0, $row['cost'], 1);
 
 
-
             // 按分组信息展示,id和name
             // 按分组信息展示,id和name
             switch ($params['group'] ?? '') {
             switch ($params['group'] ?? '') {
                 case 1:
                 case 1:
                     $row['akey'] = $row['game_id'];
                     $row['akey'] = $row['game_id'];
-                    $row['name'] = $gameData[$row['game_id']]['name'];
+                    $row['name'] = $gameData[$row['game_id']]['name'] ?? "";
                     $row['auth_name'] = '-';
                     $row['auth_name'] = '-';
                     break;
                     break;
 
 
                 case 2:
                 case 2:
                     $row['akey'] = $row['auth_id'];
                     $row['akey'] = $row['auth_id'];
                     $row['name'] = '-';
                     $row['name'] = '-';
-                    $row['auth_name'] = $authData[$row['auth_id']]['username'];
+                    $row['auth_name'] = $authData[$row['auth_id']]['username'] ?? "";
 
 
                 case 3:
                 case 3:
                     $row['akey'] = $row['media_id'];
                     $row['akey'] = $row['media_id'];
-                    $row['name'] = $mediaData[$row['media_id']]['name'];
-                    $row['auth_name'] = $authData[$row['auth_id']]['username'];
+                    $row['name'] = $mediaData[$row['media_id']]['name'] ?? "";
+                    $row['auth_name'] = $authData[$row['auth_id']]['username'] ?? "";
 
 
                 default:
                 default:
                     $row['akey'] = $row['agent_id'];
                     $row['akey'] = $row['agent_id'];
-                    $row['name'] = $agentData[$row['agent_id']]['name'];
+                    $row['name'] = $agentData[$row['agent_id']]['name'] ?? "";
                     $row['auth_name'] = '-';
                     $row['auth_name'] = '-';
                     break;
                     break;
             }
             }
-
         }
         }
 
 
-
         //  底部合计
         //  底部合计
         $total = [
         $total = [
             'akey' => '合计'
             'akey' => '合计'
         ];
         ];
-        foreach ($baseData as &$row) {
-            $total['cost'] = !empty($total['cost']) ? ($total['cost'] + $row['cost']) : $row['cost'];
-
-            // 激活
-            $total['install'] = !empty($total['install']) ? ($total['install'] + $row['install']) : $row['install'];
-
-            // 注册设备
-            $total['reg_dev'] = !empty($total['reg_dev']) ? ($total['reg_dev'] + $row['reg_dev']) : $row['reg_dev'];
-
-            // 注册数
-            $total['reg_total'] = !empty($total['reg_total']) ? ($total['reg_total'] + $row['reg_total']) : $row['reg_total'];
-
-            // 创角数
-            $total['role_total'] = !empty($total['role_total']) ? ($total['role_total'] + $row['role_total']) : $row['role_total'];
-            // 创角率
-
-            // 次留数
-            $total['active'] = !empty($total['active']) ? ($total['active'] + $row['active']) : $row['active'];
-            // 次留成本
-            // 次留率
-
-            // 当天付费
-            $total['reg_pay_total_da'] = !empty($total['reg_pay_total_da']) ? ($total['reg_pay_total_da'] + $row['reg_pay_total_da']) : $row['reg_pay_total_da'];
-
-            // 总付费人数
-            $total['reg_pay_num'] = !empty($total['reg_pay_num']) ? ($total['reg_pay_num'] + $row['reg_pay_num']) : $row['reg_pay_num'];
-
-            // 总付费金额
-            $total['reg_pay_total'] = !empty($total['reg_pay_total']) ? ($total['reg_pay_total'] + $row['reg_pay_total']) : $row['reg_pay_total'];
-
-            // 老用户
-            $total['old_login_total'] = !empty($total['old_login_total']) ? ($total['old_login_total'] + $row['old_login_total']) : $row['old_login_total'];
-
-            //注册总充值
-            $total['reg_pay_amount'] = !empty($total['reg_pay_amount']) ? ($total['reg_pay_amount'] + $row['reg_pay_amount']) : $row['reg_pay_amount'];
-
+        foreach ($baseData as $val) {
+            $total['cost'] = !empty($total['cost']) ? ($total['cost'] + $val['cost']) : $val['cost'];
+            $total['install'] = !empty($total['install']) ? ($total['install'] + $val['install']) : $val['install']; // 激活
+            $total['reg_dev'] = !empty($total['reg_dev']) ? ($total['reg_dev'] + $val['reg_dev']) : $val['reg_dev']; // 注册设备
+            $total['reg_total'] = !empty($total['reg_total']) ? ($total['reg_total'] + $val['reg_total']) : $val['reg_total']; // 注册数
+            $total['role_total'] = !empty($total['role_total']) ? ($total['role_total'] + $val['role_total']) : $val['role_total']; // 创角数
+            $total['active'] = !empty($total['active']) ? ($total['active'] + $val['active']) : $val['active'];// 次留数
+            $total['reg_pay_total_da'] = !empty($total['reg_pay_total_da']) ? ($total['reg_pay_total_da'] + $val['reg_pay_total_da']) : $val['reg_pay_total_da']; // 当天付费
+            $total['reg_pay_num'] = !empty($total['reg_pay_num']) ? ($total['reg_pay_num'] + $val['reg_pay_num']) : $val['reg_pay_num']; // 总付费人数
+            $total['reg_pay_total'] = !empty($total['reg_pay_total']) ? ($total['reg_pay_total'] + $val['reg_pay_total']) : $val['reg_pay_total']; // 总付费金额
+            $total['old_login_total'] = !empty($total['old_login_total']) ? ($total['old_login_total'] + $val['old_login_total']) : $val['old_login_total']; // 老用户
+            $total['reg_pay_amount'] = !empty($total['reg_pay_amount']) ? ($total['reg_pay_amount'] + $val['reg_pay_amount']) : $val['reg_pay_amount']; //注册总充值
         }
         }
 
 
         // 注册成本
         // 注册成本
         $total['reg_cost'] = ToolLogic::getRound($total['cost'], $total['reg_total'] ?? 0);
         $total['reg_cost'] = ToolLogic::getRound($total['cost'], $total['reg_total'] ?? 0);
-
         // 汇总创角率
         // 汇总创角率
         $total['role_per'] = ToolLogic::getRound($total['role_total'], $total['reg_total'] ?? 0);
         $total['role_per'] = ToolLogic::getRound($total['role_total'], $total['reg_total'] ?? 0);
-
         // 次留率
         // 次留率
         $total['a_per'] = ToolLogic::getPercent($total['active'], $total['reg_total'], 1);
         $total['a_per'] = ToolLogic::getPercent($total['active'], $total['reg_total'], 1);
         // 次留成本
         // 次留成本
         $total['a_cost'] = ToolLogic::getRound($total['cost'], $total['active'], 1);
         $total['a_cost'] = ToolLogic::getRound($total['cost'], $total['active'], 1);
-
         // 付费率
         // 付费率
         $total['p_per'] = ToolLogic::getPercent($total['reg_pay_num'], $total['reg_total'], 1);
         $total['p_per'] = ToolLogic::getPercent($total['reg_pay_num'], $total['reg_total'], 1);
-
         // 当天回本率
         // 当天回本率
         $total['da_per'] = ToolLogic::getPercent($total['reg_pay_total_da'], $total['cost'], 1);
         $total['da_per'] = ToolLogic::getPercent($total['reg_pay_total_da'], $total['cost'], 1);
-
         // 累计回本率
         // 累计回本率
         $total['re_per'] = (float)trim(ToolLogic::getPercent($total['reg_pay_total'], $total['cost']), "%");
         $total['re_per'] = (float)trim(ToolLogic::getPercent($total['reg_pay_total'], $total['cost']), "%");
-
         // 实际回本率
         // 实际回本率
         $total['re_amount_per'] = ToolLogic::getPercent($total['reg_pay_amount'], $total['cost'], 1);
         $total['re_amount_per'] = ToolLogic::getPercent($total['reg_pay_amount'], $total['cost'], 1);
-
         //ARPU
         //ARPU
         $total['arpu'] = ToolLogic::getRound($total['reg_pay_total'], $total['reg_pay_num']);
         $total['arpu'] = ToolLogic::getRound($total['reg_pay_total'], $total['reg_pay_num']);
-
         //注册ARPU
         //注册ARPU
         $total['r_arpu'] = ToolLogic::getRound($total['reg_pay_total'], $total['reg_total']);
         $total['r_arpu'] = ToolLogic::getRound($total['reg_pay_total'], $total['reg_total']);
-
         // 7天回本率
         // 7天回本率
-
         $total['re_amount_per_7'] = ToolLogic::getPercent($hb7dayDataSum, $total['cost'], 1);
         $total['re_amount_per_7'] = ToolLogic::getPercent($hb7dayDataSum, $total['cost'], 1);
-
         //付费成本
         //付费成本
         $total['p_cost'] = ToolLogic::getRound($total['reg_pay_num'], $total['cost'], 1);
         $total['p_cost'] = ToolLogic::getRound($total['reg_pay_num'], $total['cost'], 1);
 
 
-
         $totalData = $this->agentTotal($where);
         $totalData = $this->agentTotal($where);
 
 
         // 汇总数据
         // 汇总数据
@@ -583,8 +500,6 @@ class ChannelAnalysisLogic extends BaseLogic
             'data' => array_merge($baseData, [$total]),
             'data' => array_merge($baseData, [$total]),
             'totalData' => $totalData
             'totalData' => $totalData
         ];
         ];
-
-
     }
     }
 
 
     public function generateYearUnionList($namePrefix, $regDate, $whereSql = '', $field = '*', $group = null)
     public function generateYearUnionList($namePrefix, $regDate, $whereSql = '', $field = '*', $group = null)
@@ -609,7 +524,6 @@ class ChannelAnalysisLogic extends BaseLogic
     /**
     /**
      * @param $where
      * @param $where
      * @param $group
      * @param $group
-     * @return void
      * @description  计算7天回本率
      * @description  计算7天回本率
      * 1. 7天的注册总充值计算出来,可以通过
      * 1. 7天的注册总充值计算出来,可以通过
      */
      */
@@ -649,7 +563,6 @@ class ChannelAnalysisLogic extends BaseLogic
     }
     }
 
 
     /**
     /**
-     * @return void
      * 大盘数据(没有权限)
      * 大盘数据(没有权限)
      * 注册成本:消耗金额/注册数
      * 注册成本:消耗金额/注册数
      * roi:注册付费金额 reg_pay_total /消耗 cost
      * roi:注册付费金额 reg_pay_total /消耗 cost
@@ -659,39 +572,30 @@ class ChannelAnalysisLogic extends BaseLogic
     public function agentTotal($where)
     public function agentTotal($where)
     {
     {
         $whereSql = $this->generateWhereSql($where);
         $whereSql = $this->generateWhereSql($where);
-        $cost = 0; // 消耗金额
-        $regTotal = 0; // 注册数
-        $regPayTotal = 0; // 注册付费金额
-        $regPayNum = 0; // 总付费人数
+
         // 1. 消耗表. 获取消耗金额
         // 1. 消耗表. 获取消耗金额
         $costData = Db::connect('db_advert')->query("SELECT SUM(money) as cost FROM media_cost WHERE 1=1 $whereSql");
         $costData = Db::connect('db_advert')->query("SELECT SUM(money) as cost FROM media_cost WHERE 1=1 $whereSql");
         $cost = $costData[0]['cost'] ?? 0;
         $cost = $costData[0]['cost'] ?? 0;
 
 
         // 2. base_total_day_ 获取注册数(reg_total)、注册付费金额(reg_pay_total)、
         // 2. base_total_day_ 获取注册数(reg_total)、注册付费金额(reg_pay_total)、
-        $baseTotalField = "
-        SUM(reg_total) AS reg_total,
-        SUM(reg_pay_total) AS reg_pay_total";
+        $baseTotalField = " SUM(reg_total) AS reg_total, SUM(reg_pay_total) AS reg_pay_total";
         $baseTotalDayData = $this->generateYearUnionList('base_total_day_', $where['reg_date'], $whereSql, $baseTotalField);
         $baseTotalDayData = $this->generateYearUnionList('base_total_day_', $where['reg_date'], $whereSql, $baseTotalField);
 
 
         $regTotal = $baseTotalDayData[0]['reg_total'] ?? 0;
         $regTotal = $baseTotalDayData[0]['reg_total'] ?? 0;
         $regPayTotal = $baseTotalDayData[0]['reg_pay_total'] ?? 0;
         $regPayTotal = $baseTotalDayData[0]['reg_pay_total'] ?? 0;
 
 
         // 3. 注册付费表. 获取总付费人数(reg_pay_num)
         // 3. 注册付费表. 获取总付费人数(reg_pay_num)
-        $regPayField = "
-            sum(addup_pay_num) as reg_pay_num";
+        $regPayField = "sum(addup_pay_num) as reg_pay_num";
         $regPayWhereSql = str_replace('AND tdate', 'AND reg_date', $whereSql);
         $regPayWhereSql = str_replace('AND tdate', 'AND reg_date', $whereSql);
         $regPayData = $this->generateYearUnionList('game_reg_pay_day_', $where['reg_date'], $regPayWhereSql, $regPayField);
         $regPayData = $this->generateYearUnionList('game_reg_pay_day_', $where['reg_date'], $regPayWhereSql, $regPayField);
         $regPayNum = $regPayData[0]['reg_pay_num'] ?? 0;
         $regPayNum = $regPayData[0]['reg_pay_num'] ?? 0;
 
 
         // roi
         // roi
         $roi = ToolLogic::getPercent($regPayTotal, $cost, 1);
         $roi = ToolLogic::getPercent($regPayTotal, $cost, 1);
-
         // 付费成本
         // 付费成本
         $pCost = ToolLogic::getRound($cost, $regPayNum);
         $pCost = ToolLogic::getRound($cost, $regPayNum);
-
         // reg_cost 注册成本
         // reg_cost 注册成本
         $regCost = ToolLogic::getRound($cost, $regTotal);
         $regCost = ToolLogic::getRound($cost, $regTotal);
-
         // 付费率
         // 付费率
         $pPer = ToolLogic::getPercent($regPayNum, $regTotal, 1);
         $pPer = ToolLogic::getPercent($regPayNum, $regTotal, 1);
 
 
@@ -705,12 +609,10 @@ class ChannelAnalysisLogic extends BaseLogic
     }
     }
 
 
     /**
     /**
-     * @param $where
-     * @return void
      * 广告位总览 ,根据site_id分组
      * 广告位总览 ,根据site_id分组
      * 支出-> media_cost表的消耗数据
      * 支出-> media_cost表的消耗数据
      */
      */
-    public function getAdSiteDataList($where)
+    public function getAdSiteDataList($where): array
     {
     {
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
         // 忽略 0 投入
         // 忽略 0 投入
@@ -758,9 +660,8 @@ class ChannelAnalysisLogic extends BaseLogic
         // active 活跃数,次留人数
         // active 活跃数,次留人数
         $activeWhereSql = $whereSql . ' AND days = 1';
         $activeWhereSql = $whereSql . ' AND days = 1';
         $activeWhereSql = str_replace('AND tdate', 'AND reg_date', $activeWhereSql);
         $activeWhereSql = str_replace('AND tdate', 'AND reg_date', $activeWhereSql);
-        $activeField = "
-            sum(active_total) as active, 
-            site_id";
+        $activeField = " sum(active_total) as active, site_id";
+
         $activeData = $this->generateYearUnionList('game_active_day_', $params['reg_date'], $activeWhereSql, $activeField, $groupBy);
         $activeData = $this->generateYearUnionList('game_active_day_', $params['reg_date'], $activeWhereSql, $activeField, $groupBy);
         $activeData = array_column($activeData, 'active', 'site_id');
         $activeData = array_column($activeData, 'active', 'site_id');
 
 
@@ -785,7 +686,6 @@ class ChannelAnalysisLogic extends BaseLogic
             // 忽略0投入的
             // 忽略0投入的
             if ($igz && $row['cost'] === 0) {
             if ($igz && $row['cost'] === 0) {
                 unset($baseTotalDayData[$key]);
                 unset($baseTotalDayData[$key]);
-
             }
             }
             $row['reg_cost'] = ToolLogic::getRound($row['cost'], $row['reg_total'] ?? 0); // 注册成本
             $row['reg_cost'] = ToolLogic::getRound($row['cost'], $row['reg_total'] ?? 0); // 注册成本
             $row['role_per'] = ToolLogic::getRound($row['role_total'], $row['reg_total'] ?? 0); // 创角率
             $row['role_per'] = ToolLogic::getRound($row['role_total'], $row['reg_total'] ?? 0); // 创角率
@@ -804,8 +704,7 @@ class ChannelAnalysisLogic extends BaseLogic
 
 
         }
         }
 
 
-
-        // // 合计
+        // 合计
         $total = [
         $total = [
             'site_id' => '合计',
             'site_id' => '合计',
             'media_id' => '-',
             'media_id' => '-',
@@ -815,23 +714,21 @@ class ChannelAnalysisLogic extends BaseLogic
             'site_name' => '-',
             'site_name' => '-',
             'auth_name' => '-',
             'auth_name' => '-',
         ];
         ];
-        foreach ($baseTotalDayData as &$row) {
-            $total['cost'] = !empty($total['cost']) ? ($total['cost'] + $row['cost']) : $row['cost']; // 支出
-            $total['install'] = !empty($total['install']) ? ($total['install'] + $row['install']) : $row['install']; // 激活
-            $total['reg_dev'] = !empty($total['reg_dev']) ? ($total['reg_dev'] + $row['reg_dev']) : $row['reg_dev']; // 注册设备
-            $total['reg_total'] = !empty($total['reg_total']) ? ($total['reg_total'] + $row['reg_total']) : $row['reg_total']; // 注册数
-            $total['role_total'] = !empty($total['role_total']) ? ($total['role_total'] + $row['role_total']) : $row['role_total']; // 创角数
-            $total['old_login_total'] = !empty($total['old_login_total']) ? ($total['old_login_total'] + $row['old_login_total']) : $row['old_login_total']; // 老用户
-            $total['reg_pay_total'] = !empty($total['reg_pay_total']) ? ($total['reg_pay_total'] + $row['reg_pay_total']) : $row['reg_pay_total']; // 总付费金额
-
-            echo $row['reg_pay_num'];
-            $total['reg_pay_num'] = !empty($total['reg_pay_num']) ? ($total['reg_pay_num'] + $row['reg_pay_num']) : $row['reg_pay_num']; // 总付费人数
-            $total['active'] = !empty($total['active']) ? ($total['active'] + $row['active']) : $row['active']; // 次留数
-            $total['reg_pay_amount'] = !empty($total['reg_pay_amount']) ? ($total['reg_pay_amount'] + $row['reg_pay_amount']) : $row['reg_pay_amount']; // 注册总充值
-            $total['reg_pay_total_da'] = !empty($total['reg_pay_total_da']) ? ($total['reg_pay_total_da'] + $row['reg_pay_total_da']) : $row['reg_pay_total_da']; // 当天注册付费金额
+        foreach ($baseTotalDayData as $val) {
+            $total['cost'] = !empty($total['cost']) ? round($total['cost'] + $val['cost'], 2) : $val['cost']; // 支出
+            $total['install'] = !empty($total['install']) ? ($total['install'] + $val['install']) : $val['install']; // 激活
+            $total['reg_dev'] = !empty($total['reg_dev']) ? ($total['reg_dev'] + $val['reg_dev']) : $val['reg_dev']; // 注册设备
+            $total['reg_total'] = !empty($total['reg_total']) ? ($total['reg_total'] + $val['reg_total']) : $val['reg_total']; // 注册数
+            $total['role_total'] = !empty($total['role_total']) ? ($total['role_total'] + $val['role_total']) : $val['role_total']; // 创角数
+            $total['old_login_total'] = !empty($total['old_login_total']) ? ($total['old_login_total'] + $val['old_login_total']) : $val['old_login_total']; // 老用户
+            $total['reg_pay_total'] = !empty($total['reg_pay_total']) ? ($total['reg_pay_total'] + $val['reg_pay_total']) : $val['reg_pay_total']; // 总付费金额
+            $total['reg_pay_num'] = !empty($total['reg_pay_num']) ? ($total['reg_pay_num'] + $val['reg_pay_num']) : $val['reg_pay_num']; // 总付费人数
+            $total['active'] = !empty($total['active']) ? ($total['active'] + $val['active']) : $val['active']; // 次留数
+            $total['reg_pay_amount'] = !empty($total['reg_pay_amount']) ? ($total['reg_pay_amount'] + $val['reg_pay_amount']) : $val['reg_pay_amount']; // 注册总充值
+            $total['reg_pay_total_da'] = !empty($total['reg_pay_total_da']) ? ($total['reg_pay_total_da'] + $val['reg_pay_total_da']) : $val['reg_pay_total_da']; // 当天注册付费金额
 
 
         }
         }
-        // print_r($total);
+
         $total['reg_cost'] = ToolLogic::getRound($total['cost'] ?? 0, $total['reg_total'] ?? 0); // 注册成本
         $total['reg_cost'] = ToolLogic::getRound($total['cost'] ?? 0, $total['reg_total'] ?? 0); // 注册成本
         $total['role_per'] = ToolLogic::getRound($total['role_total'] ?? 0, $total['reg_total'] ?? 0); // 创角率
         $total['role_per'] = ToolLogic::getRound($total['role_total'] ?? 0, $total['reg_total'] ?? 0); // 创角率
         $total['a_per'] = ToolLogic::getPercent($total['active'] ?? 0, $total['reg_total'] ?? 0, 1); // 次留率
         $total['a_per'] = ToolLogic::getPercent($total['active'] ?? 0, $total['reg_total'] ?? 0, 1); // 次留率
@@ -844,10 +741,7 @@ class ChannelAnalysisLogic extends BaseLogic
         $total['arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_pay_num'] ?? 0); // ARPU
         $total['arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_pay_num'] ?? 0); // ARPU
         $total['r_arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_total'] ?? 0); // 注册ARPU
         $total['r_arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_total'] ?? 0); // 注册ARPU
 
 
-
-        $resultData = ['data' => $baseTotalDayData, 'total' => $total];
-        return $resultData;
-
+        return ['data' => $baseTotalDayData, 'total' => $total];
     }
     }
 
 
     /**
     /**
@@ -856,7 +750,6 @@ class ChannelAnalysisLogic extends BaseLogic
     public function getAgentDayDataList($where)
     public function getAgentDayDataList($where)
     {
     {
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
-        $whereSql = $this->generateWhereSql($params);
 
 
         // 根据渠道名称获取渠道ID
         // 根据渠道名称获取渠道ID
         if (!empty($params['site_name'])) {
         if (!empty($params['site_name'])) {
@@ -879,7 +772,6 @@ class ChannelAnalysisLogic extends BaseLogic
         $costData = Db::connect('db_advert')->query("SELECT SUM(money) as cost FROM media_cost WHERE 1=1 $whereSql Group By tdate");
         $costData = Db::connect('db_advert')->query("SELECT SUM(money) as cost FROM media_cost WHERE 1=1 $whereSql Group By tdate");
         $costData = array_column($costData, 'cost', 'tdate');
         $costData = array_column($costData, 'cost', 'tdate');
 
 
-
         // 2. base统计数据(展示IP(ad_show_ip)、激活(install)、注册设备(reg_dev)、注册数(reg_total)、创角数(role_total)、老用户(old_login_total)、注册付费人数(reg_pay_num)、当天注册付费金额(reg_pay_total_da)、付费总金额(pay_total)、付费总人数(pay_num))
         // 2. base统计数据(展示IP(ad_show_ip)、激活(install)、注册设备(reg_dev)、注册数(reg_total)、创角数(role_total)、老用户(old_login_total)、注册付费人数(reg_pay_num)、当天注册付费金额(reg_pay_total_da)、付费总金额(pay_total)、付费总人数(pay_num))
         $baseTotalField = "
         $baseTotalField = "
             SUM(ad_show_ip) AS ad_show_ip,
             SUM(ad_show_ip) AS ad_show_ip,
@@ -919,11 +811,10 @@ class ChannelAnalysisLogic extends BaseLogic
 
 
         // 5. 拼装数据
         // 5. 拼装数据
         // 拼装数据
         // 拼装数据
-        foreach ($baseTotalDayData as $key => &$row) {
-
+        foreach ($baseTotalDayData as $key => &$row)
+        {
             $row['active'] = $activeData[$row['tdate']] ?? 0; // 次留数
             $row['active'] = $activeData[$row['tdate']] ?? 0; // 次留数
             $row['cost'] = $costData[$row['tdate']] ?? 0; // 支出
             $row['cost'] = $costData[$row['tdate']] ?? 0; // 支出
-
             $row['reg_cost'] = ToolLogic::getRound($row['cost'], $row['reg_total'] ?? 0); // 注册成本
             $row['reg_cost'] = ToolLogic::getRound($row['cost'], $row['reg_total'] ?? 0); // 注册成本
             $row['role_per'] = ToolLogic::getRound($row['role_total'], $row['reg_total'] ?? 0); // 创角率
             $row['role_per'] = ToolLogic::getRound($row['role_total'], $row['reg_total'] ?? 0); // 创角率
             $row['a_cost'] = ToolLogic::getRound($row['cost'], $row['active'], 1); // 次留成本
             $row['a_cost'] = ToolLogic::getRound($row['cost'], $row['active'], 1); // 次留成本
@@ -939,31 +830,28 @@ class ChannelAnalysisLogic extends BaseLogic
             $row['arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_pay_num']); // ARPU
             $row['arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_pay_num']); // ARPU
             $row['r_arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_total']); // 注册ARPU
             $row['r_arpu'] = ToolLogic::getRound($row['reg_pay_total'], $row['reg_total']); // 注册ARPU
             $row['pay_cost'] = ToolLogic::getPercent($row['pay_amount'] ?? 0, $row['cost'] ?? 0); // 收支比
             $row['pay_cost'] = ToolLogic::getPercent($row['pay_amount'] ?? 0, $row['cost'] ?? 0); // 收支比
-
-
         }
         }
 
 
         // 6. 合计
         // 6. 合计
         $total = [
         $total = [
             'tdate' => '合计'
             'tdate' => '合计'
         ];
         ];
-        foreach ($baseTotalDayData as &$row) {
-            $total['cost'] = !empty($total['cost']) ? ($total['cost'] + $row['cost']) : $row['cost']; // 支出
-            $total['ad_show_ip'] = !empty($total['ad_show_ip']) ? ($total['ad_show_ip'] + $row['ad_show_ip']) : $row['ad_show_ip']; // 展示IP
-            $total['install'] = !empty($total['install']) ? ($total['install'] + $row['install']) : $row['install']; // 激活
-            $total['reg_dev'] = !empty($total['reg_dev']) ? ($total['reg_dev'] + $row['reg_dev']) : $row['reg_dev']; // 注册设备
-            $total['reg_total'] = !empty($total['reg_total']) ? ($total['reg_total'] + $row['reg_total']) : $row['reg_total']; // 注册数
-            $total['role_total'] = !empty($total['role_total']) ? ($total['role_total'] + $row['role_total']) : $row['role_total']; // 创角数
-            $total['active'] = !empty($total['active']) ? ($total['active'] + $row['active']) : $row['active']; // 次留数
+        foreach ($baseTotalDayData as $vv) {
+            $total['cost'] = !empty($total['cost']) ? ($total['cost'] + $vv['cost']) : $vv['cost']; // 支出
+            $total['ad_show_ip'] = !empty($total['ad_show_ip']) ? ($total['ad_show_ip'] + $vv['ad_show_ip']) : $vv['ad_show_ip']; // 展示IP
+            $total['install'] = !empty($total['install']) ? ($total['install'] + $vv['install']) : $vv['install']; // 激活
+            $total['reg_dev'] = !empty($total['reg_dev']) ? ($total['reg_dev'] + $vv['reg_dev']) : $vv['reg_dev']; // 注册设备
+            $total['reg_total'] = !empty($total['reg_total']) ? ($total['reg_total'] + $vv['reg_total']) : $vv['reg_total']; // 注册数
+            $total['role_total'] = !empty($total['role_total']) ? ($total['role_total'] + $vv['role_total']) : $vv['role_total']; // 创角数
+            $total['active'] = !empty($total['active']) ? ($total['active'] + $vv['active']) : $vv['active']; // 次留数
             // 付费人数
             // 付费人数
-            $total['reg_pay_num'] = !empty($total['reg_pay_num']) ? ($total['reg_pay_num'] + $row['reg_pay_num']) : $row['reg_pay_num']; // 总付费人数
-            $total['reg_pay_total'] = !empty($total['reg_pay_total']) ? ($total['reg_pay_total'] + $row['reg_pay_total']) : $row['reg_pay_total']; // 总付费金额
-            $total['reg_pay_amount'] = !empty($total['reg_pay_amount']) ? ($total['reg_pay_amount'] + $row['reg_pay_amount']) : $row['reg_pay_amount']; // 注册总充值
-            $total['pay_total'] = !empty($total['pay_total']) ? ($total['pay_total'] + $row['pay_total']) : $row['pay_total']; // 当天收入
-            $total['pay_amount'] = !empty($total['pay_amount']) ? ($total['pay_amount'] + $row['pay_amount']) : $row['pay_amount']; // 实际收入
-            $total['old_login_total'] = !empty($total['old_login_total']) ? ($total['old_login_total'] + $row['old_login_total']) : $row['old_login_total']; // 老用户
-            $total['reg_pay_total_da'] = !empty($total['reg_pay_total_da']) ? ($total['reg_pay_total_da'] + $row['reg_pay_total_da']) : $row['reg_pay_total_da']; // 当天注册付费金额
-
+            $total['reg_pay_num'] = !empty($total['reg_pay_num']) ? ($total['reg_pay_num'] + $vv['reg_pay_num']) : $vv['reg_pay_num']; // 总付费人数
+            $total['reg_pay_total'] = !empty($total['reg_pay_total']) ? ($total['reg_pay_total'] + $vv['reg_pay_total']) : $vv['reg_pay_total']; // 总付费金额
+            $total['reg_pay_amount'] = !empty($total['reg_pay_amount']) ? ($total['reg_pay_amount'] + $vv['reg_pay_amount']) : $vv['reg_pay_amount']; // 注册总充值
+            $total['pay_total'] = !empty($total['pay_total']) ? ($total['pay_total'] + $vv['pay_total']) : $vv['pay_total']; // 当天收入
+            $total['pay_amount'] = !empty($total['pay_amount']) ? ($total['pay_amount'] + $vv['pay_amount']) : $vv['pay_amount']; // 实际收入
+            $total['old_login_total'] = !empty($total['old_login_total']) ? ($total['old_login_total'] + $vv['old_login_total']) : $vv['old_login_total']; // 老用户
+            $total['reg_pay_total_da'] = !empty($total['reg_pay_total_da']) ? ($total['reg_pay_total_da'] + $vv['reg_pay_total_da']) : $vv['reg_pay_total_da']; // 当天注册付费金额
         }
         }
 
 
         $total['reg_cost'] = ToolLogic::getRound($total['cost'] ?? 0, $total['reg_total'] ?? 0); // 注册成本
         $total['reg_cost'] = ToolLogic::getRound($total['cost'] ?? 0, $total['reg_total'] ?? 0); // 注册成本
@@ -977,19 +865,13 @@ class ChannelAnalysisLogic extends BaseLogic
         $total['re_amount_per'] = ToolLogic::getPercent($total['reg_pay_amount'] ?? 0, $total['cost'] ?? 0, 1); // 实际回本率
         $total['re_amount_per'] = ToolLogic::getPercent($total['reg_pay_amount'] ?? 0, $total['cost'] ?? 0, 1); // 实际回本率
         $total['arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_pay_num'] ?? 0); // ARPU
         $total['arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_pay_num'] ?? 0); // ARPU
         $total['r_arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_total'] ?? 0); // 注册ARPU
         $total['r_arpu'] = ToolLogic::getRound($total['reg_pay_total'] ?? 0, $total['reg_total'] ?? 0); // 注册ARPU
-        //收支比
-        $total['pay_cost'] = ToolLogic::getPercent($total['pay_amount'] ?? 0, $total['cost'] ?? 0);
+        $total['pay_cost'] = ToolLogic::getPercent($total['pay_amount'] ?? 0, $total['cost'] ?? 0); //收支比
 
 
-        $resultData = ['data' => array_values($baseTotalDayData), 'totalRow' => $total];
-        return $resultData;
+        return ['data' => array_values($baseTotalDayData), 'totalRow' => $total];
     }
     }
 
 
-
-    // 生成基础日统计表的联合查询列表
-
     /**
     /**
      * ltv
      * ltv
-     *
      */
      */
     public function getLtvDataList($where)
     public function getLtvDataList($where)
     {
     {
@@ -1024,36 +906,33 @@ class ChannelAnalysisLogic extends BaseLogic
         if (empty($regPayData)) {
         if (empty($regPayData)) {
             return ['data' => [], 'totalRow' => []];
             return ['data' => [], 'totalRow' => []];
         }
         }
+
         // 前端合计数据
         // 前端合计数据
         $totalRow = [
         $totalRow = [
             'tdate' => '合计'
             'tdate' => '合计'
         ];
         ];
 
 
         // 前端data数据
         // 前端data数据
-        $data = [];
-
-        $totalLtv = [];
-
+        $totalLtv = $data = [];
 
 
         // 合计 消耗金额,注册数,注册成本
         // 合计 消耗金额,注册数,注册成本
-        foreach ($baseData as $key => $row) {
+        foreach ($baseData as $key => $val) {
             $totalRow['cost'] = !empty($totalRow['cost']) ? ($totalRow['cost'] + $costData[$key] ?? 0) : $costData[$key] ?? 0;
             $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;
             $totalRow['d0']['cost'] = !empty($totalRow['cost']) ? ($totalRow['cost'] + $costData[$key] ?? 0) : $costData[$key] ?? 0;
-            $totalRow['reg_total'] = !empty($totalRow['reg_total']) ? ($totalRow['reg_total'] + $row['reg_total'] ?? 0) : $row['reg_total'] ?? 0;
-            $totalRow['d0']['reg_total'] = !empty($totalRow['reg_total']) ? ($totalRow['reg_total'] + $row['reg_total'] ?? 0) : $row['reg_total'] ?? 0;
+            $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'] = ToolLogic::getRound($totalRow['cost'] ?? 0, $totalRow['reg_total'] ?? 0);
             $totalRow['reg_cost'] = ToolLogic::getRound($totalRow['cost'] ?? 0, $totalRow['reg_total'] ?? 0);
 
 
             $days = (strtotime($nowDate) - strtotime($key)) / 86400 + 1;
             $days = (strtotime($nowDate) - strtotime($key)) / 86400 + 1;
             for ($i = 1; $i <= $days; $i++) {
             for ($i = 1; $i <= $days; $i++) {
                 $daykey = 'd' . $i;
                 $daykey = 'd' . $i;
-                $totalRow[$daykey]['reg_total'] = !empty($totalRow[$daykey]['reg_total']) ? ($totalRow[$daykey]['reg_total'] + $row['reg_total'] ?? 0) : $row['reg_total'] ?? 0;
+                $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'] + $costData[$key] ?? 0) : $costData[$key] ?? 0;
             }
             }
         }
         }
 
 
-
         // 按照天计算LTV
         // 按照天计算LTV
-        foreach ($regPayData as &$row) {
+        foreach ($regPayData as $row) {
             $regDate = $row['reg_date'];
             $regDate = $row['reg_date'];
             $data[$regDate]['tdate'] = $regDate;
             $data[$regDate]['tdate'] = $regDate;
 
 
@@ -1069,7 +948,6 @@ class ChannelAnalysisLogic extends BaseLogic
             $daykey = (strtotime($row['pay_date']) - strtotime($regDate)) / 86400 + 1;
             $daykey = (strtotime($row['pay_date']) - strtotime($regDate)) / 86400 + 1;
             $daykey = 'd' . $daykey;
             $daykey = 'd' . $daykey;
 
 
-
             switch ($dataType) {
             switch ($dataType) {
                 case 'recovery':
                 case 'recovery':
                     $data[$regDate][$daykey] = ToolLogic::getPercent($row['addup_pay_total'], $costData[$regDate] ?? 0, 1);
                     $data[$regDate][$daykey] = ToolLogic::getPercent($row['addup_pay_total'], $costData[$regDate] ?? 0, 1);
@@ -1138,7 +1016,6 @@ class ChannelAnalysisLogic extends BaseLogic
                     }
                     }
                     break;
                     break;
                 default:
                 default:
-                    continue 2;
                     break;
                     break;
             }
             }
             $totalRow[$daykey]['addup_pay_total'] = $totalRow[$daykey]['addup_pay_total'] ?? 0;
             $totalRow[$daykey]['addup_pay_total'] = $totalRow[$daykey]['addup_pay_total'] ?? 0;
@@ -1157,11 +1034,9 @@ class ChannelAnalysisLogic extends BaseLogic
                 $pay_amount = !empty($pay_amount) ? $pay_amount + $row['addup_pay_amount'] : $row['addup_pay_amount'];
                 $pay_amount = !empty($pay_amount) ? $pay_amount + $row['addup_pay_amount'] : $row['addup_pay_amount'];
                 $pay_num = !empty($pay_num) ? $pay_num + $row['pay_num'] : $row['pay_num'];
                 $pay_num = !empty($pay_num) ? $pay_num + $row['pay_num'] : $row['pay_num'];
             }
             }
-
-
         }
         }
 
 
-        foreach ($totalRow as $key => &$row) {
+        foreach ($totalRow as $key => $vv) {
             if ($key[0] === 'd') {
             if ($key[0] === 'd') {
                 switch ($dataType) {
                 switch ($dataType) {
                     case 'recovery':
                     case 'recovery':
@@ -1233,17 +1108,12 @@ class ChannelAnalysisLogic extends BaseLogic
             'data' => array_values($list),
             'data' => array_values($list),
             'totalRow' => $totalRow
             'totalRow' => $totalRow
         ];
         ];
-
-
     }
     }
 
 
-
-    // 生成wheresql
-
     /**
     /**
      * ltv按月
      * ltv按月
      */
      */
-    public function getLtvmDataList($where)
+    public function getLtvmDataList($where): array
     {
     {
         $params = $this->searchByAuth($where);
         $params = $this->searchByAuth($where);
         // 展示类型
         // 展示类型
@@ -1251,14 +1121,11 @@ class ChannelAnalysisLogic extends BaseLogic
         $nowDate = date("Y-m");
         $nowDate = date("Y-m");
         $whereSql = $this->generateWhereSql($params);
         $whereSql = $this->generateWhereSql($params);
 
 
-        // 1. 获取消耗金额
-
         // 2. 获取注册数
         // 2. 获取注册数
         $totalBaseWhereSql = str_replace('AND tdate', 'AND tmonth', $whereSql);
         $totalBaseWhereSql = str_replace('AND tdate', 'AND tmonth', $whereSql);
         $baseData = Db::connect('db_data_report')->query("SELECT tmonth,SUM(cost) as cost,SUM(reg_total) as reg_total FROM game_total_month WHERE 1=1 $totalBaseWhereSql GROUP BY tmonth");
         $baseData = Db::connect('db_data_report')->query("SELECT tmonth,SUM(cost) as cost,SUM(reg_total) as reg_total FROM game_total_month WHERE 1=1 $totalBaseWhereSql GROUP BY tmonth");
         $baseData = array_column($baseData, null, 'tmonth');
         $baseData = array_column($baseData, null, 'tmonth');
 
 
-
         // 3. 获取注册付费金额
         // 3. 获取注册付费金额
         $field = "
         $field = "
             reg_month,
             reg_month,
@@ -1283,30 +1150,26 @@ class ChannelAnalysisLogic extends BaseLogic
 
 
         // 前端data数据
         // 前端data数据
         $data = [];
         $data = [];
-
         $pay_total = 0;
         $pay_total = 0;
         $pay_amount = 0;
         $pay_amount = 0;
         $pay_num = 0;
         $pay_num = 0;
 
 
-
         // 合计 消耗金额,注册数,注册成本
         // 合计 消耗金额,注册数,注册成本
-        foreach ($baseData as $key => $row) {
-            $totalRow['cost'] = !empty($totalRow['cost']) ? round($totalRow['cost'] + $row['cost'] ?? 0, 2) : $row['cost'] ?? 0;
-            $totalRow['reg_total'] = !empty($totalRow['reg_total']) ? ($totalRow['reg_total'] + $row['reg_total'] ?? 0) : $row['reg_total'] ?? 0;
+        foreach ($baseData as $key => $val) {
+            $totalRow['cost'] = !empty($totalRow['cost']) ? round($totalRow['cost'] + $val['cost'] ?? 0, 2) : $val['cost'] ?? 0;
+            $totalRow['reg_total'] = !empty($totalRow['reg_total']) ? ($totalRow['reg_total'] + $val['reg_total'] ?? 0) : $val['reg_total'] ?? 0;
             $totalRow['reg_cost'] = ToolLogic::getRound($totalRow['cost'] ?? 0, $totalRow['reg_total'] ?? 0);
             $totalRow['reg_cost'] = ToolLogic::getRound($totalRow['cost'] ?? 0, $totalRow['reg_total'] ?? 0);
 
 
             $days = ToolLogic::getMonthNum($key, $nowDate);
             $days = ToolLogic::getMonthNum($key, $nowDate);
             for ($i = 1; $i <= $days; $i++) {
             for ($i = 1; $i <= $days; $i++) {
                 $daykey = 'm' . ($i + 1);
                 $daykey = 'm' . ($i + 1);
-                $totalRow[$daykey]['reg_total'] = !empty($totalRow[$daykey]['reg_total']) ? ($totalRow[$daykey]['reg_total'] + $row['reg_total'] ?? 0) : $row['reg_total'] ?? 0;
-                $totalRow[$daykey]['cost'] = !empty($totalRow[$daykey]['cost']) ? ($totalRow[$daykey]['cost'] + $row['cost'] ?? 0) : $row['cost'] ?? 0;
+                $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'] + $val['cost'] ?? 0) : $val['cost'] ?? 0;
             }
             }
         }
         }
 
 
-        print_r($regPayData);
-
         // 按照天计算LTV
         // 按照天计算LTV
-        foreach ($regPayData as &$row) {
+        foreach ($regPayData as $row) {
             $regDate = $row['reg_month'];
             $regDate = $row['reg_month'];
 
 
             $data[$regDate]['tmonth'] = $regDate;
             $data[$regDate]['tmonth'] = $regDate;
@@ -1320,10 +1183,8 @@ class ChannelAnalysisLogic extends BaseLogic
             $data[$regDate]['cost'] = $baseData[$regDate]['cost'] ?? 0;
             $data[$regDate]['cost'] = $baseData[$regDate]['cost'] ?? 0;
 
 
             // 计算日期相差天数
             // 计算日期相差天数
-            // $daykey = (strtotime($row['pay_month'])-strtotime($regDate))/86400+1;
             $daykey = 'm' . (ToolLogic::getMonthNum($regDate, $row['pay_month']) + 1);
             $daykey = 'm' . (ToolLogic::getMonthNum($regDate, $row['pay_month']) + 1);
 
 
-
             switch ($dataType) {
             switch ($dataType) {
                 case 'recovery':
                 case 'recovery':
                     $data[$regDate][$daykey] = ToolLogic::getPercent($row['addup_pay_total'], $baseData[$regDate]['cost'] ?? 0, 1);
                     $data[$regDate][$daykey] = ToolLogic::getPercent($row['addup_pay_total'], $baseData[$regDate]['cost'] ?? 0, 1);
@@ -1385,7 +1246,6 @@ class ChannelAnalysisLogic extends BaseLogic
                     }
                     }
                     break;
                     break;
                 default:
                 default:
-                    continue 2;
                     break;
                     break;
             }
             }
             $totalRow[$daykey]['addup_pay_total'] = $totalRow[$daykey]['addup_pay_total'] ?? 0;
             $totalRow[$daykey]['addup_pay_total'] = $totalRow[$daykey]['addup_pay_total'] ?? 0;
@@ -1408,7 +1268,7 @@ class ChannelAnalysisLogic extends BaseLogic
 
 
         }
         }
 
 
-        foreach ($totalRow as $key => &$row) {
+        foreach ($totalRow as $key => $vv) {
             if ($key[0] === 'm') {
             if ($key[0] === 'm') {
                 switch ($dataType) {
                 switch ($dataType) {
                     case 'recovery':
                     case 'recovery':
@@ -1470,10 +1330,7 @@ class ChannelAnalysisLogic extends BaseLogic
             'data' => array_values($list),
             'data' => array_values($list),
             'totalRow' => $totalRow
             'totalRow' => $totalRow
         ];
         ];
-
-
     }
     }
-
 }
 }
 
 
 
 

+ 0 - 2
app/v1/logic/dataReport/UserLogLogic.php

@@ -119,8 +119,6 @@ class UserLogLogic extends BaseLogic
     {
     {
         $data = $this->getRechargeDetailList($where, 'all');
         $data = $this->getRechargeDetailList($where, 'all');
 
 
-        print_r($data);
-
         $data = $this->trandformListColumn($data, ['game', 'ip', 'agent', 'auth', 'pay_channel']);
         $data = $this->trandformListColumn($data, ['game', 'ip', 'agent', 'auth', 'pay_channel']);
         $data = array_map(function ($item) {
         $data = array_map(function ($item) {
             return [
             return [