From 15bd05a5af1657cd70e00bd76cf1fc21518991b1 Mon Sep 17 00:00:00 2001 From: chenzhi <“chenzhi063@qq.com> Date: Tue, 19 Nov 2019 09:13:57 +0800 Subject: [PATCH] 123 --- .../IndexChartSetController.class.php | 101 ++++++++++++------ 1 file changed, 69 insertions(+), 32 deletions(-) diff --git a/Application/Admin/Controller/IndexChartSetController.class.php b/Application/Admin/Controller/IndexChartSetController.class.php index dc699d56c..4cc0186a6 100644 --- a/Application/Admin/Controller/IndexChartSetController.class.php +++ b/Application/Admin/Controller/IndexChartSetController.class.php @@ -24,7 +24,9 @@ class IndexChartSetController extends AdminController { public $ChartModel; public $LoginModel; public $SpendModel; + public $PromoteModel; public $addid; + public $adddata; public $continue=false; public function _initialize(){ @@ -34,6 +36,7 @@ class IndexChartSetController extends AdminController { $this->ChartModel =M("IndexChart","tab_"); $this->LoginModel =M("user_login_record","tab_"); $this->SpendModel =M("spend","tab_"); + $this->PromoteModel =M("promote","tab_"); $this->nowdata =time(); } @@ -55,7 +58,9 @@ class IndexChartSetController extends AdminController { $this->newUser(); $this->activeUser(); + $this->payUser(); $this->payMoney(); + $this->promoteNew(); $t2 = microtime(true); die("success runtime:".round($t2-$t1,3).'s'); @@ -128,6 +133,37 @@ class IndexChartSetController extends AdminController { $res = $this->ChartModel->save($savedata); dump($res); } + /** + * 计算充值用户 + */ + public function payUser() + { + $savedata = array( + "id"=>$this->addid + ); + $map = ['pay_time'=>['between',[$this->beginTime,$this->endTime]],'pay_status'=>1];//1支付成功 + $hoursnews = $this->SpendModel->field('FROM_UNIXTIME(pay_time, "%H") as time,COUNT(DISTINCT user_id) AS payuser') + ->where($map) + ->group("time") + ->select(); + $hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23']; + $user_hours = array(); + foreach($hours as $v) { + $user_hours[$v] = 0; + } + foreach($hoursnews as $h) { + $user_hours[$h['time']] = (integer)$h['payuser']; + } + $savedata["pay_user_hours"] = serialize($user_hours); + unset($user_hours); + $activeCount = $this->LoginModel->field('count(DISTINCT user_id) payuser') + ->where($map) + ->select(); + $savedata["pay_user_count"] = $activeCount['payuser']; + $res = $this->ChartModel->save($savedata); + dump($res); + # code... + } /** * 充值金额计算 */ @@ -168,45 +204,46 @@ class IndexChartSetController extends AdminController { */ public function promoteNew() { + $savedata = array( + "id"=>$this->addid + ); + $map = ['create_time'=>['between',[$this->beginTime,$this->endTime]]]; + $hoursnews = $this->PromoteModel->field('FROM_UNIXTIME(create_time, "%H") as time,COUNT(1) AS news') + ->where($map) + ->group("time") + ->select(); + + + $hours = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23']; + $user_hours = array(); + foreach($hours as $v) { + $user_hours[$v] = 0; + } + foreach($hoursnews as $h) { + $user_hours[$h['time']] = (integer)$h['news']; + } + $savedata["promote_new_hours"] = serialize($user_hours);//promote_new_hours + unset($user_hours); + $activeCount = $this->PromoteModel->field('COUNT(1) AS news') + ->where($map) + ->find(); + dump($activeCount); + $savedata["promote_new_count"] = $activeCount['news']; + $res = $this->ChartModel->save($savedata); + dump($res); # code... } /** - * 计算24小时统计及总计方法 + * 统计其他综合信息 + * 1. 7天活跃 + * 2. 平台累计用户 + * 3. 累计付费用户 */ - public function hoursAndCount($type,$map) - { - $model =''; - $field = ''; - $countfield = ''; - $housename=''; - switch ($type) { - case 'newUser': - $model = $this->UserModel; - $field = 'FROM_UNIXTIME(register_time, "%H") as time,COUNT(1) AS news'; - $housename = 'new_user_count'; - break; - case 'activeUser': - $model = $this->LoginModel; - $field = 'FROM_UNIXTIME(login_time, "%H") as time,COUNT(DISTINCT user_id) AS news'; - break; - case 'payMoney': - $model = $this->SpendModel; - $field = 'FROM_UNIXTIME(pay_time, "%H") as time,sum(pay_amount) AS news'; - break; - default: - # code... - break; - } - $hours= $model->field($field) - ->where($map) - ->group("time") - ->select(); - - # code... - } + +