| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace app\v1\logic\dataReport;
- use plugin\saiadmin\basic\BaseLogic;
- use support\think\Db;
- /**
- * 欢迎页逻辑层
- */
- class WelcomeLogic extends BaseLogic
- {
- public function index()
- {
- $data = [
- 'reg' => [
- 'name' => '注册用户',
- ],
- 'login' => [
- 'name' => '登录用户',
- ],
- 'pay' => [
- 'name' => '充值金额',
- ],
- 'cost' => [
- 'name' => '消耗金额',
- ],
- ];
- $tday = date('Y-m-d');
- $lday = date('Y-m-d',time()-86400);
- $tmon = date('Y-m');
- $lmon = date('Y-m',strtotime($tmon)-86400);
- $res = [];
- $baseTotalDayField = [
- 'sum(reg_total)' => 'reg',
- 'sum(old_login_total)' => 'login',
- 'sum(pay_total)' => 'pay',
- ];
- $tYear = (int)date('Y', strtotime($tday));
- $lYear = (int)date('Y', strtotime($lday));
- $res['tday'] = Db::connect('db_data_report')->table('base_total_day_'.$tYear)->field($baseTotalDayField)->where('tdate',$tday)->find();
- $res['lday'] = Db::connect('db_data_report')->table('base_total_day_'.$lYear)->field($baseTotalDayField)->where('tdate',$lday)->find();
- $baseTotalMonthField = [
- 'sum(reg_total)' => 'reg',
- 'sum(login_total)' => 'login',
- 'sum(pay_total)' => 'pay',
- ];
- $res['tmon'] = Db::connect('db_data_report')->table('game_total_month')->field($baseTotalMonthField)->where('tmonth',$tmon)->find();
- $res['lmon'] = Db::connect('db_data_report')->table('game_total_month')->field($baseTotalMonthField)->where('tmonth',$lmon)->find();
- $res['tday']['cost'] = Db::connect('db_advert')->table('media_cost')->where('tdate',$tday)->sum('money');
- $res['lday']['cost'] = Db::connect('db_advert')->table('media_cost')->where('tdate',$lday)->sum('money');
- $res['tmon']['cost'] = Db::connect('db_advert')->table('media_cost')->where('tdate',"{$tmon}-01,{$tday}")->sum('money');
- $llday = date('Y-m-d',strtotime($tmon)-86400);
- $res['lmon']['cost'] = Db::connect('db_advert')->table('media_cost')->where('tdate',"{$lmon}-01,{$llday}")->sum('money');
- foreach($res as $ak=>$val){
- foreach($data as $bk=>$v){
- $data[$bk][$ak] = $val[$bk];
- }
- }
- return [
- 'data' => $data,
- ];
- }
- // 一周数据,图表
- public function chartData()
- {
-
- $days = [];
- for($i=-6;$i<=0;$i++){
- $days[] = date('Y-m-d',time()+86400*$i);
- }
- $where = [
- ['tdate','between',[$days[0],$days[6]]],
- ];
- $baseTotalDayField = [
- 'sum(reg_total)' => 'reg',
- 'sum(old_login_total)' => 'login',
- 'sum(pay_total)' => 'pay',
- 'tdate' => 'tdate',
- ];
- $baseTotal = Db::connect('db_data_report')
- ->table('base_total_day_'.date('Y'))
- ->field($baseTotalDayField)
- ->where($where)
- ->group('tdate')
- ->select()->toArray();
- foreach($baseTotal as $v){
- $res[$v['tdate']]['reg'] = $v['reg'];
- $res[$v['tdate']]['pay'] = $v['pay'];
- $res[$v['tdate']]['login'] = $v['login'];
- }
- $costField = [
- 'SUM(money)' => 'cost',
- 'tdate'
- ];
- $temp = Db::connect('db_advert')
- ->table('media_cost')
- ->field($costField)
- ->where($where)
- ->group('tdate')
- ->select()->toArray();
- foreach($temp as $tmp){
- $res[$tmp['tdate']]['cost'] = $tmp['cost'];
- }
- foreach($days as $k=>$d){
- $data['days'][$k] = $d;
- $data['reg'][$k] = $res[$d]['reg']??0;
- $data['pay'][$k] = $res[$d]['pay']??0;
- $data['cost'][$k] = round($res[$d]['cost']??0);
- $data['login'][$k]= $res[$d]['login']??0;
- }
- return $data;
- }
-
-
- }
|