<?php

namespace Admin\Controller;
use User\Api\UserApi as UserApi;

/**
 * 推广查询控制器
 * @author 王贺
 */
class QueryController extends ThinkController {
    public function settlement($p=0) {

        $group = I('group',1);
        $this->assign('group',$group);
        if(isset($_REQUEST['total_status'])){
            unset($_REQUEST['total_status']);
        }

				$this->m_title = '推广结算';
				$this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Query/settlement','status'=>1])->find());

        if ($group == 1) {
            if($_REQUEST['unum']==2){
                $order='unum';
                $order_type=SORT_ASC;
            }else if($_REQUEST['unum']==1){
                $order='unum';
                $order_type=SORT_DESC;
            }
            if($_REQUEST['spay_amount']==2){
                $order='spay_amount';
                $order_type=SORT_ASC;
            }else if($_REQUEST['spay_amount']==1){
                $order='spay_amount';
                $order_type=SORT_DESC;
            }
            $model = array(
                'title'  => '渠道结算',
                'template_list' =>'settlement',
                'order' => $order,
                'order_type'=>$order_type//0倒序  1 正序
            );
            $start=$_REQUEST['timestart'];
            $end=$_REQUEST['timeend'];
            if(I('group')!=''){
                if($start==''||$end==''&&$_REQUEST['promote_account']==''){
                    $this->error('结算周期、所属渠道不能为空!','',1);
                }
                if($start==''||$end==''){
                    $this->error('请选择结算周期!','',1);
                }
                if($_REQUEST['promote_account']==''){
                    $this->error('请选择渠道!','',1);
                }
            }
            $smap['tab_spend.pay_status']=1;
            //判断是否结算绑币
            if($_REQUEST['bind_coin'] == 0){
                $smap['tab_spend.pay_way'] = array('neq',-1);
            }

            $this->meta_title = '渠道结算列表';
            $this->assign('setdate',date("Y-m-d",strtotime("-1 day")));
            if($start && $end){
                if((strtotime($end)+24*60*60-1)<strtotime($start)){
                    $this->error('时间选择不正确!',U('Query/settlement'),'');
                }
                $umap['register_time']=array('BETWEEN',array(strtotime($start),strtotime($end)+24*60*60-1));
                if(isset($_REQUEST['game_name']) && $_REQUEST['game_name']!=''){
                    $umap['fgame_id']=get_game_id($_REQUEST['game_name']);
                    $smap['tab_spend.game_id']=get_game_id($_REQUEST['game_name']);
                }
                if(isset($_REQUEST['promote_account'])&&$_REQUEST['promote_account']!=''){
                    $allid=get_subordinate_promote_($_REQUEST['promote_account']);
                    $allid[]=$_REQUEST['promote_account'];
                    $umap['tab_user.promote_account']=array('in',$allid);
                    $smap['tab_spend.promote_account']=array('in',$allid);
                }else{
                    $this->error('未选择渠道!','',1);
                }
                $umap['is_check']=1;
                $umap['settle_check']=0;
                $smap['pay_time']=array('BETWEEN',array(strtotime($start),strtotime($end)+24*60*60-1));
                $smap['is_check']=1;
                $smap['settle_check']=0;
                $map['umap']=$umap;
                $map['smap']=$smap;

                $user = A('Settlement','Event');
                $user->settlement($model,$p,$map);
            }else{
                $this->display();
            }
        }
        if ($group == 2) {
           if(isset($_REQUEST['stimestart'])&&isset($_REQUEST['stimeend'])){
                $map['create_time']=array('BETWEEN',array(strtotime($_REQUEST['stimestart']),strtotime($_REQUEST['stimeend'])+24*60*60-1));
            }elseif(isset($_REQUEST['stimestart'])){
                 $map['create_time']=array('BETWEEN',array(strtotime($_REQUEST['stimestart']),time()));
            }elseif(isset($_REQUEST['stimeend'])){
                  $map['create_time']=array('LT',(strtotime($_REQUEST['stimeend'])+24*60*60-1));
            }
           if(isset($_REQUEST['timestart'])&&isset($_REQUEST['timeend'])){
                $map['starttime']=['GT',strtotime($_REQUEST['timestart'])];
                $map['endtime']=['LT',strtotime($_REQUEST['timeend'])+24*60*60];
            }elseif(isset($_REQUEST['timestart'])) {
               $map['starttime']=['GT',strtotime($_REQUEST['timestart'])];
            }elseif(isset($_REQUEST['timeend'])){
               $map['endtime']=['LT',strtotime($_REQUEST['timeend'])+24*60*60];
            }
            if(isset($_REQUEST['game_name'])){
                if($_REQUEST['game_name']=='全部'){
                    unset($_REQUEST['game_name']);
                }else{
                    $map['game_name'] = $_REQUEST['game_name'];
                }
            }
            if(isset($_REQUEST['promote_account'])){
                if($_REQUEST['promote_account']=='全部'){
                    unset($_REQUEST['promote_account']);
                }else{
                    $map['promote_account'] = $_REQUEST['promote_account'];
                }
            }
             if(!empty($_REQUEST['settlement_number'])){
                $map['settlement_number'] = $_REQUEST['settlement_number'];
            }

						$map['developers'] = 0;

            $model = array(
                'm_name' => 'settlement',
                'fields' => array(
                        'settlement_number',
                        'starttime','endtime',
                        'promote_id','promote_account',
                        'sum(total_money) as total_money',
                        'sum(total_number) as total_number',
                        'sum(sum_money) as sum_money',
                        'bind_coin_status',
                        'create_time'),
                'group'  => 'promote_id,starttime,endtime,create_time,bind_coin_status',
                'order'  => 'create_time desc ',
                'title'  => '结算账单',
                'template_list' =>'settlement',
            );
            $map1=$map;
            $ztotal=null_to_0(D('settlement')->where($map1)->sum('sum_money*10000')/10000);
            $this->assign('ztotal',$ztotal);
            $ttotal=null_to_0(D('settlement')->where('create_time'.total(1))->sum('sum_money*10000')/10000);
            $this->assign('ttotal',$ttotal);
            $ytotal=null_to_0(D('settlement')->where('create_time'.total(5))->sum('sum_money*10000')/10000);
            $this->assign('ytotal',$ytotal);
            $user = A('Bill','Event');
            $user->money_list($model,$p,$map);
        }

    }
    public function cpsettlement($p=0) {
        $page = intval($p);
        $page = $page ? $page : 1; //默认显示第一页数据

				if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}

        $this->assign('setdate',date("Y-m-d",strtotime("-1 day")));
        if($_REQUEST['sum_money']==2){
            $order='total desc';
        }else if($_REQUEST['sum_money']==1){
            $order='total asc';
        }
        $group = I('group',1);
        $this->assign('group',$group);


				$this->m_title = '开发者结算';
				$this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Query/cpsettlement','status'=>1])->find());

        if(isset($_REQUEST['timestart'])&&$_REQUEST['timestart']!=''&&$_REQUEST['group']==1){
            $starttime = strtotime($_REQUEST['timestart']);
            $endtime   = strtotime($_REQUEST['timeend'])+24*3600-1;

            if(isset($_REQUEST['developers_id'])){
                $map['g.developers'] = $_REQUEST['developers_id'];
            }else{
                $this->error('请选择开发者');
            }

            if(isset($_REQUEST['selle_status'])){
                if($_REQUEST['selle_status']=="未结算"){
                    $map['s.selle_status']=0;
                }else if($_REQUEST['selle_status']=="已结算"){
                    $map['s.selle_status']=1;
                }
            } else {
							$map['s.selle_status'] = 0;
						}
            //判断是否结算绑币
            if($_REQUEST['bind_coin'] == 0){
                $map['s.pay_way'] = array('neq',-1);
            }
            $map['s.pay_status']=1;
            $map['pay_time']=array('BETWEEN',array($starttime,$endtime));
            $model = array(
                'm_name' => 'Spend as s',
                'order'  => $order,
                'title'  => '渠道结算',
                'group'  => 'g.developers,g.id',
                'fields' => 'sum(s.pay_amount) as total,s.selle_ratio,s.id,g.developers,s.selle_status,g.id as gid,g.game_name,s.pay_status,s.pay_amount',
                'template_list' =>'cpsettlement',
            );

            $user = A('Spend','Event');
						$this->meta_title = '开发者结算';
            $user->cpsettl_list($model,$p,$map);
        }else if($_REQUEST['group']==2){

            if(isset($_REQUEST['timestart']) && $_REQUEST['timeend']!=''){
                $starttime = strtotime($_REQUEST['timestart']);
                $endtime   = strtotime($_REQUEST['timeend'])+24*3600-1;
                $map['starttime'] = array('egt',$starttime);
                $map['endtime']   = array('elt',$endtime);
            }elseif(isset($_REQUEST['timestart'])){
                 $starttime = strtotime($_REQUEST['timestart']);
                  $map['starttime'] = array('egt',$starttime);
            }elseif(isset($_REQUEST['timeend'])){
                $endtime   = strtotime($_REQUEST['timeend'])+24*3600-1;
                $map['endtime']   = array('elt',$endtime);

            }

           if(isset($_REQUEST['start']) && $_REQUEST['end']!=''){
                $starttime = strtotime($_REQUEST['start']);
                $endtime   = strtotime($_REQUEST['end'])+24*3600-1;
                $map['create_time'] = array('BETWEEN',array($starttime,$endtime));
            }elseif(isset($_REQUEST['start'])){
                $starttime = strtotime($_REQUEST['start']);
                $map['create_time'] = array('BETWEEN',array($starttime,time()));
            }elseif(isset($_REQUEST['end'])){
                 $endtime   = strtotime($_REQUEST['end'])+24*3600-1;
                $map['create_time'] = array('LT',$endtime);
            }

            if(isset($_REQUEST['developers_id'])){
                $map['developers']=$_REQUEST['developers_id'];
            }else{
                $map['developers'] = array('neq',0);
            }

            $data = M('TotalSettlement','tab_')->where($map)->order('create_time desc')->page($page,$row)->select();
            $count = M('TotalSettlement','tab_')->where($map)->order('create_time desc')->count();

						$page = set_pagination($count,$row);
						if($page) {$this->assign('_page', $page);}

            $this->assign('data',$data);
            $this->assign('meta_title','开发者结算记录');
            $this->display();
        }else{
            $this->meta_title = '开发者结算列表';
            $this->display();
        }
    }
    public function generatesettlementAll(){
        $request    =   I('request.ids');

        if(empty($request)){
            $this->error('请选择要操作的数据');
        }
        if (is_array($request)) {
            foreach($request as $k => $v) {
                $query = explode(',',$v);
                $ids[] = $k;
                $_REQUEST[$k]['cooperation'] = $query[0];
                $_REQUEST[$k]['cps_ratio']   = $query[1];
                $_REQUEST[$k]['cpa_price']   = $query[2];
                $_REQUEST[$k]['unum']        = $query[3];
                $_REQUEST[$k]['spay_amount'] = $query[4];
                $_REQUEST[$k]['game_id']     = $query[5];
            }
            unset($_REQUEST['ids']);
        } elseif (is_numeric($request)) {
            $id = $ids[] = $request;
            $_REQUEST[$id]['ids']=$id;
            $_REQUEST[$id]['cooperation'] = $_REQUEST['cooperation'];
            $_REQUEST[$id]['cps_ratio']   = $_REQUEST['cps_ratio'];
            $_REQUEST[$id]['cpa_price']   = $_REQUEST['cpa_price'];
            $_REQUEST[$id]['unum']        = $_REQUEST['unum'];
            $_REQUEST[$id]['spay_amount'] = $_REQUEST['spay_amount'];
        } else {
            $this->error('参数有误!!!');
        }
        sort(array_unique($ids));
        if (is_array($ids)) {
            $promote_id  = get_promote_id($_REQUEST['promote_account']);
            $create_time = time();
            foreach ($ids as $k => $v) {
                if(get_settlement($_REQUEST['timestart'],$_REQUEST['timeend'],$promote_id,$_REQUEST[$v]['game_id'])){
                   continue;
                }

                $data[$k]['game_id']           = $_REQUEST[$v]['game_id'];
                $data[$k]['game_name']         = get_game_name($_REQUEST[$v]['game_id']);
                $data[$k]['promote_account']   = $_REQUEST['promote_account'];
                $data[$k]['promote_id']        = $promote_id;
                $data[$k]['total_money']       = $_REQUEST[$v]['spay_amount'];
                $data[$k]['total_number']      = $_REQUEST[$v]['unum'];
                $data[$k]['starttime']         = strtotime($_REQUEST['timestart']);
                $data[$k]['endtime']           = strtotime($_REQUEST['timeend'])+24*60*60-1;
                $data[$k]['pattern']           = $_REQUEST[$v]['cooperation']=='CPS'?0:1;
                $data[$k]['ratio']             = $_REQUEST[$v]['cps_ratio'];
                $data[$k]['money']             = $_REQUEST[$v]['cpa_price'];
                $data[$k]['create_time']       = $create_time;
                $data[$k]['bind_coin_status']  = $_REQUEST['bind_coin'];
                $data[$k]['settlement_number'] = 'JS-'.date('Ymd').date('His').sp_random_string(4);

                if(get_settlement($data[$k]['starttime'],$data[$k]['endtime'],$data[$k]['promote_id'],$data[$k]['game_id'])){
                    $this->error('该结算周期不可结算,请重新选择');
                }
                if($data[$k]['pattern']){
                    $data[$k]['sum_money']=$data[$k]['total_number']*$data[$k]['money'];
                }else{
                    $data[$k]['sum_money']=$data[$k]['total_money']*$data[$k]['ratio']/100;
                }
                if($data[$k]['game_id']==''||$data[$k]['promote_id']==''||$data[$k]['starttime']==''||$data[$k]['endtime']==''){
                    $this->error('必要参数不存在');
                }

                $map['fgame_id']=$data[$k]['game_id'];
                // $map['is_check']=1;
                $map['puid'] = 0;
                $map['register_time']=array('BETWEEN',array($data[$k]['starttime'],$data[$k]['endtime']));
                $allid=get_subordinate_promote_($data[$k]['promote_account']);
                $allid[]=$data[$k]['promote_account'];
                $map['promote_account']=array('in',$allid);
                $u=M('User','tab_');
                $user=$u->where($map)->setField('settle_check',1);
                unset($map['register_time']);
                unset($map['puid']);
                $map['pay_status'] = 1;
                $map['pay_time']=array('BETWEEN',array($data[$k]['starttime'],$data[$k]['endtime']));
                $s=M('spend','tab_');
                $spend=$s->where($map)->setField('settle_check',1);
            }
        }
        $data = array_values($data);
        $result=M('settlement','tab_')->addAll($data);
        if($result){
            $settMap['promote_id']  = $promote_id;
            $settMap['starttime']   = strtotime($_REQUEST['timestart']);
            $settMap['endtime']     = strtotime($_REQUEST['timeend'])+24*60*60-1;
            $settMap['create_time'] = $data[0]['create_time'];
            $settMap['bind_coin_status'] = $_REQUEST['bind_coin'];
            $dataSett = M('settlement','tab_')->field(array(
                        'settlement_number',
                        'starttime','endtime',
                        'promote_id','promote_account',
                        'sum(total_money) as total_money',
                        'sum(total_number) as total_number',
                        'sum(sum_money) as sum_money',
                        'status',
                        'ti_status',
                        'bind_coin_status',
                        'create_time'))->where($settMap)
                        ->group('promote_id,starttime,endtime,create_time,bind_coin_status')
                        ->order('create_time desc')
                        ->select();
            M('TotalSettlement','tab_')->addAll($dataSett);
            $this->success('结算成功',U('Query/settlement',array('group'=>2)));
        }else{

            /*if (is_array($ids)) {
                $promote_id  = get_promote_id($_REQUEST['promote_account']);
                foreach ($ids as $k => $v) {
                    if(get_settlement($_REQUEST['timestart'],$_REQUEST['timeend'],$promote_id,$_REQUEST[$v]['game_id'])){
                        continue;
                    }

                    $errorStartTime = strtotime($_REQUEST['timestart']);
                    $errorEndTime = strtotime($_REQUEST['timeend'])+24*60*60-1;

                    $game_id = $_REQUEST[$v]['game_id'];

                    $map['fgame_id']=$game_id;
                    $map['register_time']=array('BETWEEN',array($errorStartTime,$errorEndTime));
                    $map['promote_id']=array('in',$promote_id);
                    $u=M('User','tab_');
                    $user=$u->where($map)->setField('settle_check',0);
                    unset($map['register_time']);
                    $map['pay_time']=array('BETWEEN',array($errorStartTime,$errorEndTime));
                    $s=M('spend','tab_');
                    $spend=$s->where($map)->setField('settle_check',0);
                }
            }*/


            $this->error('结算失败');
        }
    }
    public function generatesettlement(){
        //批量结算要加判断
        $data['game_id']=$_REQUEST['game_id'];
        $data['game_name']=get_game_name($_REQUEST['game_id']);
        $data['promote_id']=$_REQUEST['promote_id'];
        $data['promote_account']=get_promote_name($_REQUEST['promote_id']);
        $data['total_money']=$_REQUEST['spay_amount'];
        $data['total_number']=$_REQUEST['unum'];
        $data['starttime']=strtotime($_REQUEST['starttime']);
        $data['endtime']=strtotime($_REQUEST['endtime'])+24*60*60-1;
        $data['pattern']=$_REQUEST['cooperation']=='CPS'?0:1;
        $data['ratio']=$_REQUEST['cps_ratio'];
        $data['money']=$_REQUEST['cpa_price'];
        $data['create_time']=time();
        $data['settlement_number']='JS-'.date('Ymd').date('His').sp_random_string(4);
        if(get_settlement($data['starttime'],$data['promote_id'],$data['game_id'])){
            $this->error('该结算周期不可结算,请重新选择');
        }
        if($data['pattern']){
            $data['sum_money']=$data['total_number']*$data['money'];
        }else{
            $data['sum_money']=$data['total_money']*$data['ratio']/100;
        }
        if($data['game_id']==''||$data['promote_id']==''||$data['starttime']==''||$data['endtime']==''){
            $this->error('必要参数不存在');
        }
        $map['fgame_id']=$data['game_id'];
        // $map['is_check']=1;
        $map['register_time']=array('BETWEEN',array($data['starttime'],$data['endtime']));
        $allid=get_subordinate_promote_($data['promote_account']);
        $allid[]=$data['promote_account'];
        $map['promote_id']=array('in',$data['promote_id']);
        $u=M('User','tab_');
        $user=$u->where($map)->setField('settle_check',1);
        unset($map['register_time']);
        $map['pay_time']=array('BETWEEN',array($data['starttime'],$data['endtime']));
        $s=M('spend','tab_');
        $spend=$s->where($map)->setField('settle_check',1);
        $result=M('settlement','tab_')->add($data);
        if($result){
            $this->success('结算成功');
        }else{
            $this->error('结算失败');
        }
    }
    public function generatecpsettlement() {//cp结算

        $request    =   I('request.ids');
        if(empty($request)){
            $this->error('请选择要操作的数据');
        }
        $starttime = strtotime($_REQUEST['timestart']);
        $endtime   = strtotime($_REQUEST['endtime'])+24*3600-1;
        $map['s.pay_status']   = 1;
        $map['s.selle_status'] = 0;
        foreach ($request as $key => $value) {
            $query = explode(',',$value);

            $ids[] = $query[0];
            $requestData[$key]['game_id']     =  $query[0];
            $requestData[$key]['selle_ratio'] =  $query[1];
            $requestData[$key]['total']       =  $query[2];
        }

        $map['s.game_id']=array('in',$ids);
        $map['pay_time']=array('BETWEEN',array($starttime,$endtime));
        $spe  = M('spend as s','tab_');
        $smap = array('s.selle_time'=>date('Y-m-d',time()),'s.selle_status'=>1);
        $data = $spe
        ->field('s.id,s.selle_status,s.selle_time')
        ->join('tab_game as g on g.id=s.game_id','LEFT')
        ->where($map)
        ->setField($smap);
        if($data){
            $create_time = time();
            foreach ($requestData as $key => $value) {
                $datas[$key]['game_id']           = $value['game_id'];
                $datas[$key]['game_name']         = get_game_name($value['game_id']);
                $datas[$key]['promote_id']        = '0';
                $datas[$key]['promote_account']   = '0';
                $datas[$key]['total_money']       = $value['total'];
                $datas[$key]['total_number']      = 0;
                $datas[$key]['starttime']         = $starttime;
                $datas[$key]['endtime']           = $endtime;
                $datas[$key]['pattern']           = 0;//$_REQUEST['cooperation']=='CPS'?0:1;
                $datas[$key]['ratio']             = $value['selle_ratio'];
                $datas[$key]['sum_money']         = $value['selle_ratio']*$value['total']/100;
                $datas[$key]['money']             = 0;
                $datas[$key]['developers']        = $_REQUEST['developers_id'];
                $datas[$key]['create_time']       = $create_time;
                $datas[$key]['settlement_number'] = 'JS-'.date('Ymd').date('His').sp_random_string(4);
                $datas[$key]['bind_coin_status']  = $_REQUEST['bind_coin'];
            }
            $datas = array_values($datas);
            $result=M('settlement','tab_')->addAll($datas);
            $settMap['developers']  = $_REQUEST['developers_id'];
            $settMap['starttime']   = $starttime;
            $settMap['endtime']     = $endtime;
            $settMap['create_time'] = $create_time;
            $dataSett = M('settlement','tab_')->field(array(
                        'settlement_number',
                        'starttime','endtime',
                        'promote_id','promote_account',
                        'sum(total_money) as total_money',
                        'sum(total_number) as total_number',
                        'sum(sum_money) as sum_money',
                        'status',
                        'ti_status',
                        'bind_coin_status',
                        'developers',
                        'create_time',))->where($settMap)
                        ->group('developers,starttime,endtime,create_time,bind_coin_status')
                        ->order('create_time desc')
                        ->select();
            M('TotalSettlement','tab_')->addAll($dataSett);
            \Think\Log::actionLog('Query/generatecpsettlement','Query',1);
            $this->success('结算成功',U('Query/cpsettlement',array('group'=>2)));
        }else{
            $this->error('结算失败');
        }
        $map1   = array('status'=>1,'selle_status'=>1);
        $total  = null_to_0(D('spend')->where($map1)->sum('pay_amount'));
        $ttotal = null_to_0(D('spend')->where('pay_time'.total(1))->where($map1)->sum('pay_amount'));
        $ytotal = null_to_0(D('spend')->where('pay_time'.total(5))->where($map1)->sum('pay_amount'));
        $this->assign('total',$total);
        $this->assign('ttotal',$ttotal);
        $this->assign('ytotal',$ytotal);

    }
    public function changeratio(){
        $gid    =   I('request.game_id');
        if(empty($gid)){
             $this->ajaxReturn(0,"请选择要操作的数据",0);exit;
        }
        $starttime=strtotime($_REQUEST['timestart'].'-01');
        $endtime=strtotime($_REQUEST['timestart']."+1 month -1 day")+24*3600-1;
        $map['s.pay_status']=1;
        $map['s.selle_status']=0;
        $map['s.game_id']=$_REQUEST['game_id'];
        $map['pay_time']=array('BETWEEN',array($starttime,$endtime));
        $spe=M('spend as s','tab_');
        $data=$spe
        ->field('s.id,s.selle_status,s.selle_ratio')
        ->join('tab_game as g on g.id=s.game_id','LEFT')
        ->where($map)
        ->setField('s.selle_ratio',$_POST['ratio']);
        if($data === false){
            $this->ajaxReturn(array('status'=>0));
        }else{
            $this->ajaxReturn(['status'=>1,'data'=>$data]);
        }
    }
    public function cp_withdraw($p=0){
        if(isset($_REQUEST['settlement_number'])){
            $map['settlement_number']=array('like','%'.$_REQUEST['settlement_number'].'%');
        }
        if(isset($_REQUEST['status'])){
            $map['status']=$_REQUEST['status'];
        }
        if(isset($_REQUEST['developers'])){
            if($_REQUEST['developers']=='全部'){
                unset($_REQUEST['developers']);
            }else{
                $map['developers'] = $_REQUEST['developers'];
            }
        }else{
            $map['developers'] = array('neq',0);

        }

        if(isset($_REQUEST['timestart']) && isset($_REQUEST['timeend'])){
            $starttime = strtotime($_REQUEST['timestart']);
            $endtime   = strtotime($_REQUEST['timeend'])+24*3600-1;
            $map['audit_time'] = array('BETWEEN',array($starttime,$endtime));
            unset($_REQUEST['timestart']);unset($_REQUEST['timeend']);
        }elseif(isset($_REQUEST['timestart'])){
            $map['audit_time'] = ['GT',strtotime(I('timestart'))];
            unset($_REQUEST['timestart']);
        }elseif(isset($_REQUEST['timeend'])){
            $map['audit_time'] = ['LT',strtotime(I('timeend'))+86399];
            unset($_REQUEST['timeend']);
        }

        if($_REQUEST['create_time']==2){
            $order='create_time desc';
        }elseif($_REQUEST['create_time']==1){
            $order='create_time asc';
        }else{
            $order='create_time desc';
        }
        if($_REQUEST['sum_money']==2){
            $order='sum_money desc';
        }elseif($_REQUEST['sum_money']==1){
            $order='sum_money asc';
        }
        $model = array(
            'm_name' => 'withdraw',
            'order'  => $order,
            'title'  => '渠道提现',
            'template_list' =>'cp_withdraw',
        );
        $map1 = $map;
        $map1['status']=1;
        if(isset($_REQUEST['status'])&&$_REQUEST['status']==0){
        $total = '0.00';$ttotal='0.00';$ytotal='0.00';
        }else{
        $total  = null_to_0(D('withdraw')->where($map1)->sum('sum_money'));
        $ttotal = null_to_0(D('withdraw')->where('audit_time'.total(1))->where($map1)->sum('sum_money'));
        $ytotal = null_to_0(D('withdraw')->where('audit_time'.total(5))->where($map1)->sum('sum_money'));
        }
        $this->assign('stotal',$total);
        $this->assign('ttotal',$ttotal);
        $this->assign('ytotal',$ytotal);
        $user = A('Bill','Event');

				$this->m_title = '开发者提现';
				$this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Query/cp_withdraw','status'=>1])->find());


        $user->money_list($model,$p,$map);
    }
    public function withdraw() {
        $adminid = C('USER_ADMINISTRATOR');//获取超管id
        $adminmobile = M('UcenterMember')->field('mobile')->find($adminid);
        $this->assign('adminmobile',$adminmobile['mobile']);
        if(isset($_REQUEST['settlement_number'])){
            $map['settlement_number']=$_REQUEST['settlement_number'];
        }
        if(isset($_REQUEST['ti_status'])){
            $map['status']=$_REQUEST['ti_status'];
        }
        if(isset($_REQUEST['promote_account'])){
            if($_REQUEST['promote_account']=='全部'){
                unset($_REQUEST['promote_account']);
            }else{
                $map['promote_account'] = $_REQUEST['promote_account'];
            }
        }else{
            $map['promote_id'] = array('gt',0);

        }

        if($_REQUEST['create_time']==2){
            $order='create_time desc';
        }elseif($_REQUEST['create_time']==1){
            $order='create_time asc';
        }else{
            $order='create_time desc';
        }
        if($_REQUEST['sum_money']==2){
            $order='sum_money desc';
        }elseif($_REQUEST['sum_money']==1){
            $order='sum_money asc';
        }
        $model = array(
            'm_name' => 'withdraw',
            'order'  => $order,
            'title'  => '渠道提现',
            'template_list' =>'withdraw',
        );
        $map1=array('status'=>1);
        $total=null_to_0(D('withdraw')->where($map1)->sum('sum_money'));
        $ttotal=null_to_0(D('withdraw')->where('end_time'.total(1))->where($map1)->sum('sum_money'));
        $ytotal=null_to_0(D('withdraw')->where('end_time'.total(5))->where($map1)->sum('sum_money'));
        $this->assign('total',$total);
        $this->assign('ttotal',$ttotal);
        $this->assign('ytotal',$ytotal);
        $user = A('Bill','Event');


				$this->m_title = '推广提现';
				$this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Query/withdraw','status'=>1])->find());


        $user->money_list($model,$p,$map);

    }

    public function set_withdraw_status($model='withdraw') {
        $withdraw   = M('withdraw',"tab_");
        $settlement = M('settlement',"tab_");
        $count = count($_REQUEST['ids']);
        if($count > 1 || is_array($_REQUEST['ids'])){
            for ($i=0; $i <$count; $i++) {
                $map['id']=$_REQUEST['ids'][$i];
                $dataWithdraw = $withdraw->where($map)->find();
                $withdraw->where($map)->save(array("audit_time"=>time()));
                //修改 total_settlement表和settlement的ti_status状态
                $this->set_total_settlement_ti_status($dataWithdraw['settlement_number']);
            }
        }else{
            $map['id']=$_REQUEST['ids'];
            $dataWithdraw = $withdraw->where($map)->find();
            $withdraw->where($map)->save(array("audit_time"=>time()));
            //修改 total_settlement表和settlement的ti_status状态
            $this->set_total_settlement_ti_status($dataWithdraw['settlement_number']);
        }
        parent::set_status($model);
    }

    private function set_total_settlement_ti_status($settlement_number){
        $totalSettlementMap['settlement_number'] = $settlement_number;
        $totalSettlement = M('TotalSettlement','tab_');
        $totalSettlement->where($totalSettlementMap)->save(array("ti_status"=>$_REQUEST['status']));
        $dataTotalSettlement = $totalSettlement->where($totalSettlementMap)->find();
        $settMap['promote_id']  = $dataTotalSettlement['promote_id'];
        $settMap['starttime']   = $dataTotalSettlement['starttime'];
        $settMap['endtime']     = $dataTotalSettlement['endtime'];
        $settMap['create_time'] = $dataTotalSettlement['create_time'];
        M("settlement","tab_")->where($settMap)->save(array('ti_status'=>$_REQUEST['status']));
    }


    protected function upPromote($promote_id){
        $model = D('Promote');
        $data['id'] = $promote_id;
        $data['money'] = 0;
        return $model->save($data);
    }

    public function details($promote_id=0,$create_time=0){
        $map['promote_id'] = $promote_id;
        $map['create_time'] = $create_time;
        $data  = M('settlement','tab_')->where($map)->select();
        $total = M('settlement','tab_')->where($map)->sum('sum_money');
        $this->assign('total',$total);
        $this->assign('list_data',$data);
        $this->display();
    }

    public function detailscps($developers_id=0,$create_time=0,$p=0){
        $page = intval($p);
        $page = $page ? $page : 1; //默认显示第一页数据
        $row = !empty(C('ADMIN_LIST_ROW'))?C('ADMIN_LIST_ROW'):10;
        $map['developers_id'] = $developers_id;
        $map['create_time'] = $create_time;
        $data  = M('settlement','tab_')->where($map)->page($page,$row)->select();
        $count = M('settlement','tab_')->where($map)->count();
        if($count > $row){
            $page = new \Think\Page($count, $row);
            $page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
           $this->assign('_page', $page->show());
        }
        $total = M('settlement','tab_')->where($map)->sum('sum_money');
        $this->assign('total',$total);
        $this->assign('list_data',$data);
        $this->display();
    }

    public function withdrawDetails($settlement_number=''){
        $map['settlement_number'] = $settlement_number;
        $data = M('TotalSettlement','tab_')->where($map)->find();
        $settMap['promote_id'] = $data['promote_id'];
        $settMap['starttime']  = $data['starttime'];
        $settMap['endtime']    = $data['endtime'];
        $settMap['create_time'] = $data['create_time'];
        $dataSett = M('settlement','tab_')->where($settMap)->select();
        $total = M('settlement','tab_')->where($settMap)->sum('sum_money');
        $this->assign('list_data',$dataSett);
        $this->assign('total',$total);
        $this->display();
    }
    /**
     * 审核推广提现
     * @author <jszsl001@163.com>
     */

    public function set_withdraw_agree(){

        //行为日志判断
        if(I('status')==1&&I('msg_type')==5&&I('field')=='status'){
            //同意推广提现
            action_log('tg_tx_agree','withdraw',UID,UID);
        }
        if(I('status')==2&&I('msg_type')==6&&I('field')=='status'){
            //拒绝推广提现
            action_log('tg_tx_disagree','withdraw',UID,UID);
        }

        //判断打款类型
        if(I('withdraw_type',0,'intval')==1){
            //手动打款,直接就改状态
            $this->set_withdraw_status();
        }else{
            $adminid = C('USER_ADMINISTRATOR');//获取超管id
            $adminmobile = M('UcenterMember')->field('mobile')->find($adminid);

            $dx = A('Phone');
            $res = -1;
            $res = $dx->check_tel_code($adminmobile['mobile'],$_POST['code']);
            switch ($res) {
                case '-1':
                    $this->error('短信验证码无效,请重新获取');
                    break;
                case '-2':
                    $this->error('时间超时,请重新获取短信验证码');
                    break;
                case '-3':
                    $this->error('短信验证码不正确,请重新输入');
                    break;
            }
            $withdraw=M('withdraw',"tab_");
            $pay = new \Think\Pay('alipay', C('alipay'));
            $withdraw_way = $_POST['withdraw_way'];
            //支付宝
            if($withdraw_way==1){
                $map['id']=$_POST['ids'];
                $dind=$withdraw->where($map)->find();
                if($dind['status']==1){
                    $this->ajaxReturn(['status'=>-1,'info'=>'请不要重复打款']);
                }
                $widthdrawNo = "TX_" . date('Ymd') . date('His') . sp_random_string(4);
                $vo   = new \Think\Pay\PayVo();
                $vo->setOrderNo($dind['settlement_number'])
                ->setBatchNo($widthdrawNo)
                ->setTable('Withdraw')
                ->setPayMethod("transfer")
                ->setDetailData('渠道结算提现,订单'.$dind["settlement_number"]);
                $res =  $pay->buildRequestForm($vo);
                if($res==10000){
                    $this->ajaxReturn(['status'=>1,'info'=>'打款成功']);
                }else{
                   $this->ajaxReturn(['status'=>0,'info'=>'打款失败']);
                }
            }

        }
    }
}