From 54fb23d32d94b0aaa96950357a41ee9d8c9b1f62 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Mon, 11 Sep 2023 17:44:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E4=B8=8A=E5=88=86=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8C=85=E5=90=AB=20=E4=BB=A3=E7=90=86=E7=BB=99?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=8A=E5=88=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/AdminStatistics.php | 89 ++++++++++++++++-------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/app/controller/AdminStatistics.php b/app/controller/AdminStatistics.php index d222bdb..723a7cc 100644 --- a/app/controller/AdminStatistics.php +++ b/app/controller/AdminStatistics.php @@ -7,6 +7,8 @@ use app\BaseController; use app\middleware\CheckAdmin; use app\model\AdminDownScoresRecords; use app\model\AdminUpScoresRecords; +use app\model\AgentDownScoresRecords; +use app\model\AgentUpScoresRecords; use app\model\AgentUser; use think\exception\ValidateException; use think\facade\Request; @@ -91,49 +93,31 @@ class AdminStatistics extends BaseController $type = $param['type']; $date = get_near_month_datetime(); - - $data = []; - - if ($type == 1) { - // 上分统计 - $sumData = AdminUpScoresRecords::field('SUM(balance) as sum_num') - ->where('id','>=',1) - ->find(); - // 统计近4个月数据 - foreach ($date as $month => $datetime) { - - $res = AdminUpScoresRecords::field('SUM(balance) as sum_num') - ->where([ - ['create_time','>=',$datetime['start_time']], - ['create_time','<=',$datetime['end_time']], - ]) - ->find(); - $data['histogram'][] = [ - 'date' => $month, - 'value' => $res['sum_num'] ?? 0 - ]; - } - } else { - // 下分统计 - $sumData = AdminDownScoresRecords::field('SUM(withdrawal_amount) as sum_num') - ->where('id','>=',1) - ->find(); - // 统计近4个月数据 - foreach ($date as $month => $datetime) { - $res = AdminDownScoresRecords::field('SUM(withdrawal_amount) as sum_num') - ->where([ - ['create_time','>=',$datetime['start_time']], - ['create_time','<=',$datetime['end_time']], - ]) - ->find(); - $data['histogram'][] = [ - 'date' => $month, - 'value' => $res['sum_num'] ?? 0 - ]; - } + $dateKey = array_keys($date); + + $data = ['sum_value' => 0]; + + // type = 1 上分 type = 2 下分 (统计) + $field = 'balance'; + $adminModel = AdminUpScoresRecords::class; + $agentModel = AdminUpScoresRecords::class; + if ($type == 2) { + $field = 'withdrawal_amount'; + $adminModel = AdminDownScoresRecords::class; + $agentModel = AgentDownScoresRecords::class; + } + // 总数统计 + $adminData = $this->adminOrAgentStatistics($adminModel,$date,$field); + $data['sum_value'] += $adminData['sum_value']; + $agentData = $this->adminOrAgentStatistics($agentModel,$date,$field); + $data['sum_value'] += $adminData['sum_value']; + // 月份统计 + foreach ($dateKey as $dateValue) { + $data['histogram'][] = [ + 'date' => $dateValue, + 'value' => $adminData[$dateValue] + $agentData[$dateValue] + ]; } - - $data['sum_value'] = $sumData['sum_num'] ?: 0; return $this->renderSuccess('数据返回成功',$data); } catch (ValidateException $validateException) { @@ -141,4 +125,25 @@ class AdminStatistics extends BaseController } } + protected function adminOrAgentStatistics($model,$date,$field = 'balance') + { + $data = []; + $sumData = $model::field("SUM({$field}) as sum_num") + ->where('id','>=',1) + ->find(); + $data['sum_value'] = $sumData['sum_num'] ?? 0; + + // 统计近4个月数据 + foreach ($date as $month => $datetime) { + $res = $model::field("SUM({$field}) as sum_num") + ->where([ + ['create_time','>=',$datetime['start_time']], + ['create_time','<=',$datetime['end_time']], + ]) + ->find(); + $data[$month] = $res['sum_num'] ?? 0; + } + return $data; + } + }