| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | <?phpnamespace app\api\controller;use app\common\controller\Api;use think\Db;/** * 用户推荐 */class Userintro extends Api{    protected $noNeedLogin = [];    protected $noNeedRight = ['*'];    //我的收益    public function myprofit(){        //今日        $start = strtotime(date('Y-m-d'));        $end   = $start + 86399;        //收益type        $profit_type = [21,22,23,52,54,56];        //今日收益        $map = [            'log_type' => ['IN',$profit_type],            'user_id' => $this->auth->id,            'createtime' => ['between',[$start,$end]],        ];        $today_profit = Db::name('user_money_log')->where($map)->sum('change_value');        //今日视频时长        $map = [            'user_id|to_user_id' => $this->auth->id,            'createtime' => ['between',[$start,$end]],        ];        $today_video_min = Db::name('user_match_video_log')->where($map)->count();        //今日语音时长        $map = [            'user_id|to_user_id' => $this->auth->id,            'createtime' => ['between',[$start,$end]],        ];        $today_audio_min = Db::name('user_match_audio_log')->where($map)->count();        //本周收益        $week_start = strtotime(date('Y-m-d')) - ((date('w')==0?7:date('w'))-1)*86400;        $week_end   = $week_start + 604799;        $map = [            'log_type' => ['IN',$profit_type],            'user_id' => $this->auth->id,            'createtime' => ['between',[$week_start,$week_end]],        ];        $week_profit = Db::name('user_money_log')->where($map)->sum('change_value');        //我的累计收益        $map = [            'log_type' => ['IN',$profit_type],            'user_id' => $this->auth->id,        ];        $all_profit = Db::name('user_money_log')->where($map)->sum('change_value');        //我的邀请        $my_intro_number = Db::name('user')->where('intro_uid',$this->auth->id)->count('id');        $result = [            'avatar' => $this->auth->avatar,            'nickname' => $this->auth->nickname,            'username' => $this->auth->username,            'today_profit' => $today_profit,            'today_video_min' => $today_video_min,            'today_audio_min' => $today_audio_min,            'week_profit' => $week_profit,            'all_profit' => $all_profit,            'my_intro_number' => $my_intro_number,        ];        $this->success('success',$result);    }    //我邀请的,成员今日收益    public function myintro(){        $map = [            'intro_uid' => $this->auth->id,        ];        $list = Db::name('user')->field('id,nickname,username,avatar')->where($map)->page($this->page,$this->listrow)->select();        $rs = [];        foreach($list as $key => $user){            $rs[] = $this->profit($user);        }        //dump($rs);        $this->success('success',$rs);    }    //收益数据    private function profit($userinfo){        $uid = $userinfo['id'];        //今日        $start = strtotime(date('Y-m-d'));        $end   = $start + 86399;        //收益type        $profit_type = [21,22,23,52,54,56];        //今日收益        $map = [            'log_type' => ['IN',$profit_type],            'user_id' => $uid,            'createtime' => ['between',[$start,$end]],        ];        $today_profit = Db::name('user_money_log')->where($map)->sum('change_value');        //今日视频时长        $map = [            'user_id|to_user_id' => $uid,            'createtime' => ['between',[$start,$end]],        ];        $today_video_min = Db::name('user_match_video_log')->where($map)->count('id');        //今日语音时长        $map = [            'user_id|to_user_id' => $uid,            'createtime' => ['between',[$start,$end]],        ];        $today_audio_min = Db::name('user_match_audio_log')->where($map)->count('id');        //本周收益        $week_start = strtotime(date('Y-m-d')) - ((date('w')==0?7:date('w'))-1)*86400;        $week_end   = $week_start + 604799;        $map = [            'log_type' => ['IN',$profit_type],            'user_id' => $uid,            'createtime' => ['between',[$week_start,$week_end]],        ];        $week_profit = Db::name('user_money_log')->where($map)->sum('change_value');        $result = [            'today_profit' => $today_profit,            'today_video_min' => $today_video_min,            'today_audio_min' => $today_audio_min,            'week_profit' => $week_profit,        ];        $result = array_merge($result,$userinfo);        return $result;    }}
 |