setMeta('计划监控'); return $this->fetch(); } public function refreshs(){ $list = $this->getallad('yyls'); $timarr = $this->timetype(3); $startdata = strtotime($timarr['startdata']); $enddata = strtotime($timarr['enddata']); $rate = input('rate'); if(empty($rate)){ $rate = 50; } foreach($list as $k=>$v){ $list[$k]['regNum'] = db('member')->where('adid',$v['adId'])->where('reg_time', 'between', [$startdata,$enddata])->count('uid'); $list[$k]['pay'] = db('order')->where('iscontrol',0)->where(['adid'=>$v['adId'],'status'=>1,'is_complex'=>1])->where('create_time', 'between', [$startdata,$enddata])->sum('money'); $list[$k]['pay'] = empty($list[$k]['pay'])?0:$list[$k]['pay']; $list[$k]['rates'] = (empty($v['statCost']) || empty($list[$k]['pay']))?0:round($list[$k]['pay'] / $v['statCost'],2)*100; if($list[$k]['rates']>$rate){ unset($list[$k]); } } $list = $this->array_sort($list,'rates','rates'); exit(json_encode(array( 'status'=>1, 'list'=>$list ))); } public function getinfo(){ $adid = input('adid'); $tim = input('tim'); if($tim=="今日"){ $timarr = $this->timetype(3); $t = 3; }elseif($tim=="昨日"){ $timarr = $this->timetype(4); $t = 4; } $list = $this->getads($adid,$t); $startdata = strtotime($timarr['startdata']); $count = 0; foreach($list as $k=>$v){ $count++; if($count==1){ $list[$k]['createdAt'] = '开始消耗:'.$v['createdAt']; } $enddata = strtotime($v['createdAt']); $list[$k]['regNum'] = db('member')->where('adid',$adid)->where('reg_time', 'between', [$startdata,$enddata])->count('uid'); $pay = db('order')->where('iscontrol',0)->where(['adid'=>$adid,'status'=>1,'is_complex'=>1])->where('create_time', 'between', [$startdata,$enddata])->sum('money'); $list[$k]['pay'] = empty($pay)?0:$pay; } exit(json_encode(array( 'status'=>1, 'activities'=>$list ))); } public function getallad($site,$time=3){ $timarr = $this->timetype($time); $arr['startTime'] = $timarr['startdata']; $arr['endTime'] = $timarr['enddata']; $arr['site'] = $site; $arr = json_encode($arr); $url = 'http://ocean.zxklll.cn/api/v1/ocean/cost/realTimeBySite'; $res = $this->pushMessageToClient($url,$arr); $res = json_decode($res,true); if($res['code']=='200'){ return $res['result']; }else{ return $res['message']; } } public function getads($adid,$type=3){ $t = $this->timetype($type); $startTime = $t['startdata']; $endTime = $t['enddata']; $url = 'http://ocean.zxklll.cn/api/v1/ocean/cost/adCostLog'; $arr = array( 'adId'=>intval($adid), 'startTime'=>strval($startTime), 'endTime'=>strval($endTime) ); $arr = json_encode($arr); $res = $this->pushMessageToClient($url,$arr); $res = json_decode($res,true); if($res['code']=='200'){ return $res['result']; }else{ return $res['message']; } } //时间格式返回 public function timetype($t){ if($t==1){ //一年内 $startdata = '2021-03-16 0:0:0'; $enddata = strtotime(date('Y-m-d H:i:s')); //现在 $f = date('i'); $enddata = $enddata+((60-$f)*60); $enddata = date('Y-m-d H:i:s',$enddata); }elseif($t==2){ //一个小时内 $startdata = date('Y-m-d H:0:0'); $enddata = strtotime(date('Y-m-d H:i:s')); //现在 $f = date('i'); $enddata = $enddata+((60-$f)*60); $enddata = date('Y-m-d H:i:s',$enddata); }elseif($t==3){ //一天内 $startdata = date('Y-m-d 0:0:0'); $enddata = strtotime(date('Y-m-d H:i:s')); //现在 $f = date('i'); $enddata = $enddata+((60-$f)*60); $enddata = date('Y-m-d H:i:s',$enddata); }elseif($t==4){ //昨天 $startdata = date('Y-m-d H:i:s',mktime(0,0,0,date('m'),date('d')-1,date('Y'))); $enddata = date('Y-m-d H:i:s',mktime(0,0,0,date('m'),date('d'),date('Y'))); }elseif($t==5){ //一个小时前 $startdata = date("Y-m-d H:0:0", strtotime("-1 hour")); $enddata = date("Y-m-d H:0:0"); } $arr = array( 'startdata'=>$startdata, 'enddata'=>$enddata ); return $arr; } /** * 排序 */ public function array_sort($arr, $keys, $type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == 'asc'){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[] = $arr[$k]; } return $new_array; } public function getTypeName($int){ if($int=='0'){ return '新用户'; }elseif($int==14){ return '高净值'; }elseif($int==13){ return '中净值'; }elseif($int==12){ return '初净值'; }elseif($int==11){ return '低净值'; }elseif($int==4 || $int==5 || $int==6){ return '潜在用户'; }elseif($int==8){ return '无效老用户'; }elseif($int==7){ return '无效新用户'; }else{ return '无'; } } public function pushMessageToClient($url,$data){ //初使化init方法 $ch = curl_init(); //指定URL curl_setopt($ch, CURLOPT_URL, $url); //设定请求后返回结果 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //声明使用POST方式来进行发送 curl_setopt($ch, CURLOPT_POST, 1); //发送什么数据呢 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //忽略证书 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //忽略header头信息 curl_setopt($ch, CURLOPT_HEADER, 0); //设置超时时间 curl_setopt($ch, CURLOPT_TIMEOUT,600); //发送请求 $output = curl_exec($ch); curl_close($ch); //返回数据 return $output; } }