short-play-api/application/admin/controller/Channelstatistics.php
2023-01-29 10:26:52 +08:00

180 lines
6.9 KiB
PHP

<?php
namespace app\admin\controller;
use app\common\controller\Admin;
use think\Request;
use think\Loader;
use think\Cache;
/**
* 投手数据详细统计
*/
class Channelstatistics extends Admin{
public function index(){
$uid = input('uid');
$groupId = session('user_auth.group');
if(empty($uid)){
$uid = session('user_auth.uid');
if($groupId==999){
$this->redirect('Channelstatistics/adminexhibit');
}
if($groupId!==999 && $groupId!==9){
echo '无权限访问';
exit;
}
}
$data = array();
$info = array();
$trinfo = array();
//今日
$startdata = strtotime(date('Y-m-d')); //今日凌晨
$enddata = time(); //现在
//昨日
$startdata2=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$enddata2=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
//本月
$startdata3=mktime(0,0,0,date('m'),1,date('Y'));
$enddata3=mktime(23,59,59,date('m'),date('t'),date('Y'));
//上月
$getmonth = $this->getmonth();
$startdata4 = $getmonth[0];
$enddata4 = $getmonth[1]+86399;
$user = db('member')->field('uid,username,nickname')->where('uid',$uid)->find();
$nickname = empty($user['nickname'])?$user['username']:$user['nickname'];
$trlist = db('transfer')->where('gid',$uid)->order('id desc')->select();
if($trlist){
$data['day'] = 0;
$data['yesterday'] = 0;
$data['month'] = 0;
$data['lastmonth'] = 0;
$data['money'] = 0;
foreach($trlist as $k=>$v){
$datawhere['status'] = 1;
$datawhere['ldurl'] = $v['pageurl'];
$data['day'] += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$startdata,$enddata])->sum('money');
$data['yesterday'] += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$startdata2,$enddata2])->sum('money');
$data['month'] += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$startdata3,$enddata3])->sum('money');
$data['lastmonth'] += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$startdata4,$enddata4])->sum('money');
$data['money'] += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->sum('money');
//每个落地页的详情
$trinfo[$k]['money'] = db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->sum('money');
$trinfo[$k]['userpaynum'] = db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->group('uid')->count('id');
$trinfo[$k]['paybi'] = db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->count('id');
$trinfo[$k]['tid'] = $v['id'];
$trinfo[$k]['text'] = $v['remark'];
}
}
//近6个月统计
$nowday=$this->to_sex_month(6);
//var_dump($nowday);exit;
foreach($nowday as $k=>$v){
$info[date('Y-m',$v[0])] = array(
'money'=>$this->money($uid,$v[0],$v[1]+86399),
'userpaynum'=>$this->userpaynum($uid,$v[0],$v[1]+86399),
'paybi'=>$this->paybi($uid,$v[0],$v[1]+86399),
);
}
$this->assign("trinfo",$trinfo);
$this->assign("info",$info);
$this->assign($data);
$this->setMeta('推广统计 账号:'.$nickname);
return $this->fetch();
}
//管理员权限
public function adminexhibit(){
$data = input('');
$where = array();
if($data['name']){
$where['nickname'] = array('like',"%".$data['name']."%");
}
$user = db('member')->field('uid,username,group,nickname')->where('group',9)->where($where)->paginate(6);
$page = $user->render();
$data=$user->all();
// foreach($data as $k=>$v){
// }
$user = $data;
$this->assign('page', $page);
$this->assign("user",$user);
$this->setMeta('推广师统计');
return $this->fetch();
}
public function money($uid,$a,$e){
$trlist = db('transfer')->where('gid',$uid)->select();
if($trlist){
$num = 0;
foreach($trlist as $k=>$v){
$datawhere['status'] = 1;
$datawhere['ldurl'] = $v['pageurl'];
$num += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$a,$e])->sum('money');
}
return $num;
}
}
public function userpaynum($uid,$a,$e){
$trlist = db('transfer')->where('gid',$uid)->select();
if($trlist){
$num = 0;
foreach($trlist as $k=>$v){
$datawhere['status'] = 1;
$datawhere['ldurl'] = $v['pageurl'];
$num += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$a,$e])->group('uid')->count('id');
}
return $num;
}
}
public function paybi($uid,$a,$e){
$trlist = db('transfer')->where('gid',$uid)->select();
if($trlist){
$num = 0;
foreach($trlist as $k=>$v){
$datawhere['status'] = 1;
$datawhere['ldurl'] = $v['pageurl'];
$num += db('order')->where('iscontrol',0)->where($datawhere)->where('hidden',0)->where('create_time', 'between', [$a,$e])->count('id');
}
return $num;
}
}
//前$mun个月时间戳
public function to_sex_month($mun){
$arr = array();
for($i = 1;$i <= $mun; ++$i){
$t = strtotime("-$i month");
$lastDay = date('Y-m-',$t).date('t',$t);
$arr[] = explode('/',strtotime(date('Y-m-01',$t)).'/'.strtotime($lastDay));
}
return $arr;
}
//获取上月开始结束时间戳
public function getmonth(){
$thismonth = date('m');
$thisyear = date('Y');
if ($thismonth == 1) {
$lastmonth = 12;
$lastyear = $thisyear - 1;
} else {
$lastmonth = $thismonth - 1;
$lastyear = $thisyear;
}
$lastStartDay = $lastyear . '-' . $lastmonth . '-1';
$lastEndDay = $lastyear . '-' . $lastmonth . '-' . date('t', strtotime($lastStartDay));
$b_time = strtotime($lastStartDay);//上个月的月初时间戳
$e_time = strtotime($lastEndDay);//上个月的月末时间戳
$startdata=$b_time;
$enddata=$e_time;
$data = array($startdata,$enddata);
return $data;
}
}