auth->group_id == 1){ $this->error('无权进入'); } }*/ //邀请页 public function introinfo(){ $today = date('Y-m-d'); $starttime = strtotime($today) - 86400; $endtime = $starttime + 86399; $zuori_count = Db::name('user')->where('intro_uid',$this->auth->id)->where('createtime','BETWEEN',[$starttime,$endtime])->count(); $total_count = Db::name('user')->where('intro_uid',$this->auth->id)->count(); $register_url = config('h5register_url') .'?intro_no='. $this->auth->introcode; $result = [ 'zuori_count' => $zuori_count, 'total_count' => $total_count, 'register_url' => $register_url, ]; $this->success(1,$result); } //生成视频分享海报 public function shareposter() { $inviteimage = $this->introimage(); $data = [ [ "left"=> "190px", "top"=> "320px", "type"=> "img", "width"=> "110px", "height"=> "110px", "src"=> httpurllocal($inviteimage)//"https://metavision.oss-cn-hongkong.aliyuncs.com/uploads/20220615/f00cb545deb4c4e7296f444239d83e84.jpg" ], ]; $data = json_encode($data, 320); $poster = [ 'id' => $this->auth->id, 'title' => '珍友', 'waittext' => '您的专属海报正在拼命生成中,请等待片刻...', 'bg_image' => '/assets/img/posteruserbg.png', 'data' => $data, 'status' => 'normal', 'weigh' => 0, 'createtime' => 1653993709, 'updatetime' => 1653994259, ]; $image = new \addons\poster\library\Image(); $imgurl = $image->createPosterImage($poster, $this->auth->getUser()); if (!$imgurl) { $this->error('生成海报出错'); } $imgurl = $_SERVER["REQUEST_SCHEME"]."://".$_SERVER["HTTP_HOST"] . '/' . $imgurl; //echo ''; $this->success('', $imgurl); } //生成邀请码二维码图片 private function introimage() { $params['text'] = config('h5register_url') .'?intro_no='. $this->auth->introcode; $qrcode_service = \addons\qrcode\library\Service::qrcode($params); $qrcodePath = ROOT_PATH . 'public/uploads/hbplayer/'.date('Ymd'); if (!is_dir($qrcodePath)) { @mkdir($qrcodePath); } if (is_really_writable($qrcodePath)) { $filename = 'intro_'.$this->auth->introcode . '.png'; $filePath = $qrcodePath .'/'. $filename; $qrcode_service->writeFile($filePath); } return '/uploads/hbplayer/'.date('Ymd') .'/'. $filename; } //账户中心 api/withdraw/config //提现 api/withdraw/withdraw //账户明细 public function agentjewel_log(){ $map = [ 'user_id' => $this->auth->id, ]; $list = Db::name('user_agentjewel_log') ->field('id,log_type,before,change_value,remain,remark,createtime') ->where($map)->order('id desc')->autopage()->select(); $list = $this->list_appen_logtext($list); $this->success('success',$list); } //追加log_text private function list_appen_logtext($list){ if(!empty($list)){ $conf = config('wallet.logtype'); foreach($list as $key => $val){ $list[$key]['log_text'] = isset($conf[$val['log_type']]) ? $conf[$val['log_type']] : ''; } } return $list; } //申请绑定查询 public function intro_search(){ $username = input('username',0); $user_info = Db::name('user')->field('id,username,group_id,nickname,avatar')->where('username',$username)->find(); if(empty($user_info)){ $this->error('不存在的用户'); } $user_info = info_domain_image($user_info,['avatar']); $this->success(1,$user_info); } //申请绑定 public function apply_intro(){ $down_uid = input('search_uid',0); $images = input('images',''); $remark = input('remark',''); if($down_uid == $this->auth->id){ $this->error('不能绑定自己'); } $where = [ 'user_id' => $this->auth->id, 'down_uid' => $down_uid, 'status' => 0, ]; $check = Db::name('user_intro_apply')->where($where)->find(); if($check){ $this->error('您上次的申请还在审核中'); } $data = [ 'user_id' => $this->auth->id, 'down_uid' => $down_uid, 'images' => $images, 'remark' => $remark, 'createtime'=> time(), ]; Db::name('user_intro_apply')->insertGetId($data); $this->success('申请成功'); } //申请绑定记录 public function apply_intro_log(){ $where = [ 'user_id' => $this->auth->id, ]; $list = Db::name('user_intro_apply')->alias('log') ->field('log.*,user.username,user.nickname,user.avatar') ->join('user','log.down_uid = user.id','LEFT') ->where($where)->autopage()->select(); $list = list_domain_image($list,['avatar']); $this->success(1,$list); } //日报 public function ribao(){ $result = []; //日期 $today = date('Y-m-d'); $startday = input('startday',$today); $starttime = strtotime($startday); $endtime = $starttime + 86399; //传入代理 $down_all_id = input('down_all_id',0); //代理名 $result['agentname'] = $this->auth->agentname ?: $this->auth->nickname; $result['yaoqingtime'] = $this->auth->yaoqingtime; $result['startday'] = $startday; //一级代理 下拉 可选二级代理 $down_all = $this->select_agent(); $result['down_all'] = $down_all; //dump($down_all); //确定收益统计范围 if(!empty($down_all_id)){ $downall_uid = Db::name('user')->where('intro_uid',$down_all_id)->column('id');//其下直推,A1下B0+B1 或 B1下C1 //$downall_uid[] = $down_all_id; }else{ $down_uid = array_column($down_all,'id'); //dump($down_uid); $downall_uid = Db::name('user')->where('intro_uid','IN',$down_uid)->column('id');//其下直推B0+代理下直推C1 或 C1 } //dump($downall_uid); //邀请奖励收益 $recharge_sum = Db::name('user_agentjewel_log')->where('user_id','IN',$downall_uid)->where('log_type',51)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('change_value'); $result['recharge_sum'] = $recharge_sum; //视频收益 $video_sum = Db::name('user_match_video_log')->where('to_user_id','IN',$downall_uid)->where('updatetime','BETWEEN',[$starttime,$endtime])->sum('money'); $result['video_sum'] = $video_sum; //语音收益 $audio_sum = Db::name('user_match_audio_log')->where('to_user_id','IN',$downall_uid)->where('updatetime','BETWEEN',[$starttime,$endtime])->sum('money'); $result['audio_sum'] = $audio_sum; //私信收益 $typing_sum= Db::name('user_match_typing_log')->where('to_user_id','IN',$downall_uid)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('money'); $result['typing_sum'] = $typing_sum; //礼物收益 $gift_sum = Db::name('gift_user_typing')->where('user_to_id','IN',$downall_uid)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('getvalue'); $result['gift_sum'] = $gift_sum; //总收益 $result['total'] = $recharge_sum + $video_sum + $audio_sum + $typing_sum + $gift_sum; $result['total'] = bcadd($result['total'],0,2); //在线用户 $active_num = Db::name('user_active')->where('user_id','IN',$downall_uid)->where('requesttime','BETWEEN',[$starttime,$endtime])->count(); $result['active_num'] = $active_num; //收益用户 $a = Db::name('user_agentjewel_log')->where('user_id','IN',$downall_uid)->where('log_type',51)->where('createtime','BETWEEN',[$starttime,$endtime])->distinct(true)->field('user_id')->select(); $a1 = array_column($a,'user_id'); $b = Db::name('user_match_video_log')->where('to_user_id','IN',$downall_uid)->where('updatetime','BETWEEN',[$starttime,$endtime])->distinct(true)->field('to_user_id')->select(); $b1 = array_column($b,'to_user_id'); $c = Db::name('user_match_audio_log')->where('to_user_id','IN',$downall_uid)->where('updatetime','BETWEEN',[$starttime,$endtime])->distinct(true)->field('to_user_id')->select(); $c1 = array_column($c,'to_user_id'); $d = Db::name('user_match_typing_log')->where('to_user_id','IN',$downall_uid)->where('createtime','BETWEEN',[$starttime,$endtime])->distinct(true)->field('to_user_id')->select(); $d1 = array_column($d,'to_user_id'); $e = Db::name('gift_user_typing')->where('user_to_id','IN',$downall_uid)->where('createtime','BETWEEN',[$starttime,$endtime])->distinct(true)->field('user_to_id')->select(); $e1 = array_column($e,'user_to_id'); // dump($a); // dump($a1); // dump($b); // dump($b1); // dump($c); // dump($c1); // dump($d); // dump($d1); // dump($e); // dump($e1); $abcde = array_merge(array_merge($a1,$b1,$c1),$d1,$e1); $shouyi_user = array_flip(array_flip($abcde)); $result['shouyi_num'] = count($shouyi_user); $this->success(1,$result); } //下拉选择代理 private function select_agent(){ //一级代理下的二级代理 $down_agent_users = []; if($this->auth->group_id == 3){ $down_agent_users = Db::name('user')->field('id,nickname,agentname')->where('agent_id',$this->auth->id)->select(); } //追加自己。二级代理的,就只有自己 $self_agent = [['id'=>$this->auth->id,'nickname'=>$this->auth->nickname,'agentname'=>$this->auth->agentname]]; $down_all = array_merge($self_agent,$down_agent_users); //没有代理名的用昵称 foreach($down_all as $key => $val){ $val['agentname'] = $val['agentname'] ?: $val['nickname']; unset($val['nickname']); $down_all[$key] = $val; } return $down_all; } //成员管理 public function all_user(){ $result = []; //传入代理 $down_all_id = input('down_all_id',0); //传入用户id $get_username = input('get_username',0); //一级代理 下拉 可选二级代理 $down_all = $this->select_agent(); $result['down_all'] = $down_all; //dump($down_all); //确定收益统计范围 if(!empty($down_all_id)){ $where = ['intro_uid' => $down_all_id]; if($get_username){ $where['username']= $get_username; } $downall_uid = Db::name('user')->where($where)->field('id,username,avatar,nickname,is_active,intro_uid,yaoqingtime')->order('yaoqingtime desc')->autopage()->select();//其下直推,A1下B0 或 B1下C1 //$downall_uid[] = $down_all_id; }else{ $down_uid = array_column($down_all,'id'); $where = ['intro_uid' => ['IN',$down_uid]]; if($get_username){ $where['username']= $get_username; } //dump($down_uid); $downall_uid = Db::name('user')->where($where)->field('id,username,avatar,nickname,is_active,intro_uid,yaoqingtime')->order('yaoqingtime desc')->autopage()->select();//其下直推B0+代理下直推C1 或 C1 } //dump($downall_uid); foreach($downall_uid as $key => &$user){ $user['avatar'] = one_domain_image($user['avatar']); $user['agentname'] = Db::name('user')->where('id',$user['intro_uid'])->value('agentname'); //邀请奖励收益 $recharge_sum = Db::name('user_agentjewel_log')->where('user_id',$user['id'])->where('log_type',51)->sum('change_value'); $user['recharge_sum'] = $recharge_sum; //视频收益 $video_sum = Db::name('user_match_video_log')->where('to_user_id',$user['id'])->sum('money'); $user['video_sum'] = $video_sum; //语音收益 $audio_sum = Db::name('user_match_audio_log')->where('to_user_id',$user['id'])->sum('money'); $user['audio_sum'] = $audio_sum; //私信收益 $typing_sum= Db::name('user_match_typing_log')->where('to_user_id',$user['id'])->sum('money'); $user['typing_sum'] = $typing_sum; //礼物收益 $gift_sum = Db::name('gift_user_typing')->where('user_to_id',$user['id'])->sum('getvalue'); $user['gift_sum'] = $gift_sum; //总收益 $user['total'] = $recharge_sum + $video_sum + $audio_sum + $typing_sum + $gift_sum; $user['total'] = bcadd($user['total'],0,2); } //用户列表的排序 if(!empty($downall_uid)){ $column_total = array_column($downall_uid,'total'); array_multisort($column_total, SORT_DESC, $downall_uid); } //用户列表的排序 $result['user_list'] = $downall_uid; $this->success(1,$result); } //成员收入 public function user_shouyi(){ $result = []; //日期 $today = date('Y-m-d'); $startday = input('startday',$today); $starttime = strtotime($startday); $endtime = $starttime + 86399; //传入代理 $down_all_id = input('down_all_id',0); //传入用户id $get_username = input('get_username',0); $result['startday'] = $startday; //一级代理 下拉 可选二级代理 $down_all = $this->select_agent(); $result['down_all'] = $down_all; //dump($down_all); //确定收益统计范围 if(!empty($down_all_id)){ $where = ['intro_uid' => $down_all_id]; if($get_username){ $where['username']= $get_username; } $downall_uid = Db::name('user')->where($where)->field('id,username,avatar,nickname,intro_uid')->order('yaoqingtime desc')->autopage()->select();//其下直推,A1下B0 或 B1下C1 //$downall_uid[] = $down_all_id; }else{ $down_uid = array_column($down_all,'id'); $where = ['intro_uid' => ['IN',$down_uid]]; if($get_username){ $where['username']= $get_username; } //dump($down_uid); $downall_uid = Db::name('user')->where($where)->field('id,username,avatar,nickname,intro_uid')->order('yaoqingtime desc')->autopage()->select();//其下直推B0+代理下直推C1 或 C1 } //dump($downall_uid); foreach($downall_uid as $key => &$user){ $user['agentname'] = Db::name('user')->where('id',$user['intro_uid'])->value('agentname'); //邀请奖励收益 $recharge_sum = Db::name('user_agentjewel_log')->where('user_id',$user['id'])->where('log_type',51)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('change_value'); // $user['recharge_sum'] = $recharge_sum; //视频收益 $video_sum = Db::name('user_match_video_log')->where('to_user_id',$user['id'])->where('updatetime','BETWEEN',[$starttime,$endtime])->sum('money'); // $user['video_sum'] = $video_sum; //语音收益 $audio_sum = Db::name('user_match_audio_log')->where('to_user_id',$user['id'])->where('updatetime','BETWEEN',[$starttime,$endtime])->sum('money'); // $user['audio_sum'] = $audio_sum; //私信收益 $typing_sum= Db::name('user_match_typing_log')->where('to_user_id',$user['id'])->where('createtime','BETWEEN',[$starttime,$endtime])->sum('money'); // $user['typing_sum'] = $typing_sum; //礼物收益 $gift_sum = Db::name('gift_user_typing')->where('user_to_id',$user['id'])->where('createtime','BETWEEN',[$starttime,$endtime])->sum('getvalue'); // $user['gift_sum'] = $gift_sum; //总收益 $user['total'] = $recharge_sum + $video_sum + $audio_sum + $typing_sum + $gift_sum; $user['total'] = bcadd($user['total'],0,2); } //用户列表的排序 if(!empty($downall_uid)){ $column_total = array_column($downall_uid,'total'); array_multisort($column_total, SORT_DESC, $downall_uid); } //用户列表的排序 $result['user_list'] = $downall_uid; $this->success(1,$result); } //成员详情 public function user_info(){ $user_id = input('user_id',0); $user_info = Db::name('user')->where('id',$user_id)->field('id,username,avatar,nickname,intro_uid,yaoqingtime')->find(); //邀请奖励收益 $recharge_sum = Db::name('user_agentjewel_log')->where('user_id',$user_id)->where('log_type',51)->sum('change_value'); $user_info['recharge_sum'] = $recharge_sum; //视频收益 $video_sum = Db::name('user_match_video_log')->where('to_user_id',$user_id)->sum('money'); $user_info['video_sum'] = $video_sum; //语音收益 $audio_sum = Db::name('user_match_audio_log')->where('to_user_id',$user_id)->sum('money'); $user_info['audio_sum'] = $audio_sum; //私信收益 $typing_sum= Db::name('user_match_typing_log')->where('to_user_id',$user_id)->sum('money'); $user_info['typing_sum'] = $typing_sum; //礼物收益 $gift_sum = Db::name('gift_user_typing')->where('user_to_id',$user_id)->sum('getvalue'); $user_info['gift_sum'] = $gift_sum; //总收益 $user_info['total'] = $recharge_sum + $video_sum + $audio_sum + $typing_sum + $gift_sum; $user_info['total'] = bcadd($user_info['total'],0,2); $this->success(1,$user_info); } //成员详情-日历数据 public function user_info_date(){ $user_id = input('user_id',0); $user_info = Db::name('user')->where('id',$user_id)->field('yaoqingtime')->find(); //日期 $todaytime = strtotime(date('Y-m-d'));//今天凌晨 $page = input('page',1); // $datelist = []; if(empty($user_info['yaoqingtime'])){ $this->success(1,$datelist); } //总共查几天,页数 $days = ceil((time() - strtotime(date('Y-m-d',$user_info['yaoqingtime']))) / 86400); $pagemax = ceil($days/10); if($page > $pagemax){ $this->success(1,$datelist); } $datelist = []; for($i=0;$i<10;$i++){ //循环10次 $day = ($page-1)*10 + $i;//往前推的天数 $starttime = $todaytime - $day*86400; $endtime = $starttime + 86399; if($endtime <= $user_info['yaoqingtime']){ break; } $thisday = [ 'date' => date('m-d',$starttime), ]; //邀请奖励收益 $recharge_sum = Db::name('user_agentjewel_log')->where('user_id',$user_id)->where('log_type',51)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('change_value'); $thisday['recharge_sum'] = $recharge_sum; //视频收益 $video_sum = Db::name('user_match_video_log')->where('to_user_id',$user_id)->where('updatetime','BETWEEN',[$starttime,$endtime])->sum('money'); $thisday['video_sum'] = $video_sum; //语音收益 $audio_sum = Db::name('user_match_audio_log')->where('to_user_id',$user_id)->where('updatetime','BETWEEN',[$starttime,$endtime])->sum('money'); $thisday['audio_sum'] = $audio_sum; //私信收益 $typing_sum= Db::name('user_match_typing_log')->where('to_user_id',$user_id)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('money'); $thisday['typing_sum'] = $typing_sum; //礼物收益 $gift_sum = Db::name('gift_user_typing')->where('user_to_id',$user_id)->where('createtime','BETWEEN',[$starttime,$endtime])->sum('getvalue'); $thisday['gift_sum'] = $gift_sum; //总收益 $thisday['total'] = $recharge_sum + $video_sum + $audio_sum + $typing_sum + $gift_sum; $thisday['total'] = bcadd($thisday['total'],0,2); // $datelist[] = $thisday; } $this->success(1,$datelist); } }