132 lines
5.3 KiB
PHP
132 lines
5.3 KiB
PHP
<?php
|
|
namespace app\admin\controller;
|
|
use app\common\controller\Admin;
|
|
use think\Request;
|
|
use think\Loader;
|
|
// 书籍用户
|
|
class Promotionlinkstatistics extends Admin{
|
|
|
|
//列表
|
|
public function index(){
|
|
$bookname = trim(input('bookname'));
|
|
if($bookname){
|
|
$where=array('status'=>1,'title'=>$bookname);
|
|
}else{
|
|
$where=array();
|
|
$where['status'] = 1;
|
|
$where['title'] = [ 'exp' , "regexp '^[0-9]+$'"];
|
|
|
|
}
|
|
$res=M('novel')->where($where)->field('id,title,allvisit')->order('id desc')->paginate(5);
|
|
$page = $res->render();
|
|
$data=$res->all();
|
|
foreach($data as $k=>$v){
|
|
//今日充值
|
|
$data[$k]['daymoney'] = db('order')->where('iscontrol',0)->where(array(
|
|
'status' => 1,
|
|
'articleid' => $v['id']
|
|
))->whereTime('create_time','d')->sum('money');
|
|
// 总充值
|
|
$data[$k]['money'] = db('order')->where('iscontrol',0)->where(array(
|
|
'status' => 1,
|
|
'articleid' => $v['id']
|
|
))->sum('money');
|
|
// 今日充值次数
|
|
$data[$k]['DayNumberofpayments'] = db('order')->where('iscontrol',0)->where(array(
|
|
'status' => 1,
|
|
'articleid' => $v['id']
|
|
))->whereTime('create_time','d')->count();
|
|
// 总充值次数
|
|
$data[$k]['Numberofpayments'] = db('order')->where('iscontrol',0)->where(array(
|
|
'status' => 1,
|
|
'articleid' => $v['id']
|
|
))->count();
|
|
// 今日新增用户
|
|
$data[$k]['dayusers'] = db('history')->Distinct(true)->where(array(
|
|
'articleid' => $v['id']
|
|
))->whereTime('create_time','d')->count('distinct(uid)');
|
|
// 新增总用户
|
|
$data[$k]['mumusers'] = db('history')->Distinct(true)->where(array(
|
|
'articleid' => $v['id']
|
|
))->count('distinct(uid)');
|
|
// 今日付费率
|
|
$data[$k]['daypayrate'] = $data[$k]['DayNumberofpayments']==0?0:number_format($data[$k]['DayNumberofpayments'] / $data[$k]['dayusers'],2) * 100;
|
|
// 总付费率
|
|
$data[$k]['payrate'] = $data[$k]['Numberofpayments']==0?0:number_format($data[$k]['Numberofpayments'] / $data[$k]['mumusers'],2) * 100;
|
|
// 今日客单价
|
|
$data[$k]['dayprice'] = $data[$k]['daymoney']==0?0:number_format($data[$k]['daymoney'] / $data[$k]['dayusers'],2);
|
|
// 总客单价
|
|
$data[$k]['price'] = $data[$k]['money']==0?0:number_format($data[$k]['money'] / $data[$k]['mumusers'],2);
|
|
|
|
}
|
|
$res = $data;
|
|
|
|
$this->assign('res', $res);
|
|
$this->assign('page', $page);
|
|
$this->setMeta('书籍用户数据统计');
|
|
return $this->fetch();
|
|
}
|
|
|
|
// 详情用户
|
|
public function info(){
|
|
|
|
$id = input('id');
|
|
$startdata = input('startdata');
|
|
$enddata = input('enddata');
|
|
if($startdata && $enddata){
|
|
$text = "从 ".$startdata." 开始 到 ".$enddata." 的数据统计";
|
|
$startdata = strtotime($startdata);
|
|
$enddata = strtotime($enddata);
|
|
}else{
|
|
$startdata = time() - 86400;
|
|
$enddata = time();
|
|
$text = "默认展示 24 小时内数据";
|
|
}
|
|
// 书名
|
|
$bookname = db('novel')->where('id',$id)->value('title');
|
|
// 基本条件
|
|
$where = array(
|
|
'status' => 1,
|
|
'articleid' => $id
|
|
);
|
|
$data = array();
|
|
// 总充值
|
|
$data['money'] = db('order')->where('iscontrol',0)->where($where)->whereTime('create_time', 'between', [$startdata,$enddata])->sum('money');
|
|
// 总充值次数
|
|
$data['Numberofpayments'] = db('order')->where('iscontrol',0)->where($where)->whereTime('create_time', 'between', [$startdata,$enddata])->count();
|
|
// 新增总用户
|
|
$data['mumusers'] = db('history')->Distinct(true)->where(array(
|
|
'articleid' => $id
|
|
))->whereTime('create_time', 'between', [$startdata,$enddata])->count('distinct(uid)');
|
|
//付费率
|
|
$data['payrate'] = $data['Numberofpayments']==0?0:number_format($data['Numberofpayments'] / $data['mumusers'],2) * 100;
|
|
// 总客单价
|
|
$data['price'] = $data['money']==0?0:number_format($data['money'] / $data['mumusers'],2);
|
|
// 时间筛选用完需转换后给前端
|
|
$startdata = date('Y-m-d H:i:s',$startdata);
|
|
$enddata = date('Y-m-d H:i:s',$enddata);
|
|
// 充值用户
|
|
$user = db('order')->field('a.money,a.out_trade_no,a.create_time as times, b.username,b.avatar,b.uid as userid')->alias('a')
|
|
->join('cps_member b','a.uid = b.uid')
|
|
->where('iscontrol',0)
|
|
->where(array('a.articleid'=>$id,'a.status'=>1))
|
|
->whereTime('a.create_time', 'between', [$startdata,$enddata])
|
|
->order('a.id desc')
|
|
->limit(0,10)
|
|
->select();
|
|
|
|
$this->assign('text', $text);
|
|
$this->assign('user', $user);
|
|
$this->assign('data', $data);
|
|
$this->assign('id', $id);
|
|
$this->assign('startdata', $startdata);
|
|
$this->assign('enddata', $enddata);
|
|
$this->assign('bookname', $bookname);
|
|
$this->setMeta('详情');
|
|
return $this->fetch();
|
|
}
|
|
|
|
|
|
|
|
|
|
} |