model = model('Withdraw')->setConnect(); $this->view->assign("stateList", $this->model->getStateList()); } /** * 导出 */ public function export(){ ini_set('memory_limit', '256M'); //内存限制 if($this->group == 3){ $columns = [ '代理商', '提现时间', '划账日期','提现金额','打款方式','开户人','银行','卡号','身份证号','状态']; } elseif (in_array($this->group, [ AdminConstants::ADMIN_SUPER_MANAGER_ID, AdminConstants::ADMIN_GROUP_ID_ADMIN, AdminConstants::ADMIN_GROUP_ID_SETTLEMENT ])) { $columns = [ '渠道商id','渠道商', '提现时间', '划账日期','提现金额','打款方式','开户人','银行','卡号','身份证号','商务负责人','分成比例','付款方名称','结算单时间区间','状态']; } header('Content-Description: File Transfer'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="打款管理数据导出-'.date('YmdHis', time()).'.csv"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); $fp = fopen('php://output', 'a');//打开output流 mb_convert_variables('GBK', 'UTF-8', $columns); fputcsv($fp, $columns);//将数据格式化为CSV格式并写入到output流中 $payer = model('Payer')->getPayerList(); list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $sort = 'withdraw.id'; if (in_array($this->group, [ AdminConstants::ADMIN_SUPER_MANAGER_ID, AdminConstants::ADMIN_GROUP_ID_ADMIN, AdminConstants::ADMIN_GROUP_ID_SETTLEMENT ])){ //管理员的 //获取管理员下面的渠道商 $channels = model('Admin') ->join('auth_group_access a','a.uid= admin.id') ->join('admin_extend d','admin.id = d.admin_id') ->where('a.group_id','eq',3) ->field('admin.id,admin.nickname,d.pay_method') ->select(); $cNames = []; foreach ($channels as $channel) { $cNames[$channel->id] = ['nickname'=>$channel->nickname,'dkfs'=>$channel->pay_method]; } //查询所有管理员 $glyInfo = model('admin')->join('auth_group_access aa','aa.uid = admin.id') ->where('aa.group_id < 3') ->column('admin.id,admin.nickname'); $total = $this->model ->join("admin_extend","admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->join('payer','payer.id = admin_extend.payerid','left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid') ->where('g.group_id','eq',3) ->where($where) ->count(); $limit = 3000; $pages = ceil($total / $limit); for($i = 1; $i <= $pages; $i++) { $offset = ($i - 1) * $limit; $list = $this->model ->join("admin_extend", "admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g', 'g.uid= withdraw.admin_id') ->join('admin', 'withdraw.admin_id = admin.id') ->join('payer', 'payer.id = admin_extend.payerid', 'left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid,payer.name') ->where('g.group_id', 'eq', 3) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); foreach ($list as $key => $val) { $list[$key]['admin.nickname'] = empty($cNames[$val->admin_id]['nickname']) ? '' : $cNames[$val->admin_id]['nickname']; $list[$key]['dkfs'] = empty($cNames[$val->admin_id]['dkfs']) ? '' : $cNames[$val->admin_id]['dkfs']; $list[$key]['withdraw.createtime'] = $val['createtime']; if (key_exists($list[$key]['create_by'], $glyInfo)) { $list[$key]['create_by'] = $glyInfo[$list[$key]['create_by']]; } else { $list[$key]['create_by'] = '-'; } if (key_exists($list[$key]['payerid'], $payer)) { $list[$key]['payerid'] = $payer[$list[$key]['payerid']]; } else { $list[$key]['payerid'] = '-'; } $section = ''; if (empty($list[$key]['stime'])) { $section .= '入驻平台 - '; } else { $section .= $list[$key]['stime'] . ' - '; } $section .= $list[$key]['etime']; $list[$key]['section'] = $section; $dkfs = '支付宝'; if(!empty($val['dkfs'])){ if($val['dkfs'] == 1){ $dkfs = '银行卡对公'; }elseif($val['dkfs'] == 2){ $dkfs = '银行卡对私'; }elseif($val['dkfs'] == 3){ $dkfs = '微信'; } } $state = '未知'; if($val['state'] == 1){ $state = '提现中'; }elseif ($val['state'] == 2){ $state = '打款中'; }elseif ($val['state'] == 3){ $state = '已打款'; } //获取每列数据,转换处理成需要导出的数据 $rowData = [ $val['admin_id'], rm_space($list[$key]['admin.nickname']), date('Y-m-d H:i:s',$val['createtime']), empty($val['finishtime'])?'无':date('Y-m-d H:i:s',$val['finishtime']), $val['money'], $dkfs, rm_space($val['card_holder']), "\t".rm_space($val['card_bank'])."\t", empty($val['card_num'])?'-':"\t".get_number($val['card_num'])."\t", empty($val['idcard_no'])?'-':"\t".get_number($val['idcard_no'], true)."\t", rm_space($val['create_by']), $val['benefit'], rm_space($val['name']), $section, $state ]; //需要格式转换,否则会乱码 mb_convert_variables('GBK', 'UTF-8', $rowData); fputcsv($fp, $rowData); } //必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 ob_flush(); flush(); } }elseif($this->group == 3){ //渠道商 //获取渠道商下面的代理商列表 $channels = model('Admin') ->join('auth_group_access a','a.uid= admin.id') ->join('admin_extend d','admin.id = d.admin_id') ->where('a.group_id','eq',4) ->where('d.create_by','eq',$this->auth->id) ->field('admin.id,admin.nickname,d.pay_method') ->select(); $cNames = []; foreach ($channels as $channel) { $cNames[$channel->id] = ['nickname'=>$channel->nickname,'dkfs'=>$channel->pay_method]; } $daili_id = implode(',',array_keys($cNames)); $total = $this->model ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->where('withdraw.admin_id','in',$daili_id) ->where($where) ->order($sort, $order) ->count(); $limit = 3000; $pages = ceil($total / $limit); for($i = 1; $i <= $pages; $i++) { $offset = ($i - 1) * $limit; $list = $this->model ->join("admin_extend ex", "ex.admin_id = withdraw.admin_id", "left") ->join('auth_group_access g', 'g.uid= withdraw.admin_id') ->join('admin', 'withdraw.admin_id = admin.id') ->field('withdraw.*,g.group_id,admin.nickname,ex.card_holder,ex.card_num,ex.card_bank,ex.idcard_no') ->where('withdraw.admin_id', 'in', $daili_id) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); foreach ($list as $key => $val) { $list[$key]['admin.nickname'] = empty($cNames[$val->admin_id]['nickname']) ? '' : $cNames[$val->admin_id]['nickname']; $list[$key]['dkfs'] = empty($cNames[$val->admin_id]['dkfs']) ? '' : $cNames[$val->admin_id]['dkfs']; $list[$key]['withdraw.createtime'] = $val['createtime']; $dkfs = '支付宝'; if(!empty($val['dkfs'])){ if($val['dkfs'] == 1){ $dkfs = '银行卡对公'; }elseif($val['dkfs'] == 2){ $dkfs = '银行卡对私'; }elseif($val['dkfs'] == 3){ $dkfs = '微信'; } } $state = '未知'; if($val['state'] == 1){ $state = '提现中'; }elseif ($val['state'] == 2){ $state = '打款中'; }elseif ($val['state'] == 3){ $state = '已打款'; } //获取每列数据,转换处理成需要导出的数据 $rowData = [ $list[$key]['admin.nickname'], date('Y-m-d H:i:s',$val['createtime']), empty($val['finishtime'])?'无':date('Y-m-d H:i:s',$val['finishtime']), $val['money'], $dkfs, rm_space($val['card_holder']), "\t".rm_space($val['card_bank'])."\t", empty($val['card_num'])?'-':"\t".get_number($val['card_num'])."\t", empty($val['idcard_no'])?'-':"\t".get_number($val['idcard_no'], true)."\t", $state ]; //需要格式转换,否则会乱码 mb_convert_variables('GBK', 'UTF-8', $rowData); fputcsv($fp, $rowData); } //必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。 ob_flush(); flush(); } } fclose($fp); exit(); } /** * 打款管理列表 */ public function index() { $this->assign('group',$this->group); $this->assignconfig('group',$this->group); //设置过滤方法 $this->request->filter(['strip_tags']); $where = []; //千万不能删除这段,这段有用 if ($this->request->isAjax()){ list($where, $sort, $order, $offset, $limit) = $this->buildparams(); } $payer = model('Payer')->getPayerList(); $payerStr = ''; if(count($payer)){ $payerStr .= '{'; foreach ($payer as $k=>$v){ $payerStr.= '"'.$k.'":'.'"'.$v.'",'; } $payerStr = substr($payerStr,0,-1); $payerStr .= '}'; } $this->assignconfig('payer',json_encode($payer)); if (in_array($this->group, [ AdminConstants::ADMIN_SUPER_MANAGER_ID, AdminConstants::ADMIN_GROUP_ID_ADMIN, AdminConstants::ADMIN_GROUP_ID_SETTLEMENT ])) { /* * 统计,sum三个字段 */ //提现中 $state1 = $this->model ->join("admin_extend","admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->join('payer','payer.id = admin_extend.payerid','left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid') ->where('g.group_id','eq',3) ->where($where) ->where('withdraw.state',1) ->sum('withdraw.money'); //打款中 $state2 = $this->model ->join("admin_extend","admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->join('payer','payer.id = admin_extend.payerid','left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid') ->where('g.group_id','eq',3) ->where($where) ->where('withdraw.state',2) ->sum('withdraw.money'); //已打款 $state3 = $this->model ->join("admin_extend","admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->join('payer','payer.id = admin_extend.payerid','left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid') ->where('g.group_id','eq',3) ->where($where) ->where('withdraw.state',3) ->sum('withdraw.money'); $this->assignconfig('state1',$state1); $this->assignconfig('state2',$state2); $this->assignconfig('state3',$state3); }elseif($this->group==3){ $channels = model('Admin') ->join('auth_group_access a','a.uid= admin.id') ->join('admin_extend d','admin.id = d.admin_id') ->where('a.group_id','eq',4) ->where('d.create_by','eq',$this->auth->id) ->field('admin.id,admin.nickname,d.pay_method') ->select(); $cNames = []; foreach ($channels as $channel) { $cNames[$channel->id] = ['nickname'=>$channel->nickname,'dkfs'=>$channel->pay_method]; } $daili_id = implode(',',array_keys($cNames)); /* * 统计,sum三个字段 */ //提现中 $state1 = $this->model ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->where('withdraw.admin_id','in',$daili_id) ->where($where) ->where('withdraw.state',1) ->sum('money'); //打款中 $state2 = $this->model ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->where('withdraw.admin_id','in',$daili_id) ->where($where) ->where('withdraw.state',2) ->sum('money'); //已打款 $state3 = $this->model ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->where('withdraw.admin_id','in',$daili_id) ->where($where) ->where('withdraw.state',3) ->sum('money'); $this->assignconfig('state1',$state1); $this->assignconfig('state2',$state2); $this->assignconfig('state3',$state3); }else{ $this->assignconfig('state1',0); $this->assignconfig('state2',0); $this->assignconfig('state3',0); } if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('pkey_name')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $sort = 'withdraw.id'; Log::write($where,'congtest'); if (in_array($this->group, [ AdminConstants::ADMIN_SUPER_MANAGER_ID, AdminConstants::ADMIN_GROUP_ID_ADMIN, AdminConstants::ADMIN_GROUP_ID_SETTLEMENT ])){ //管理员的 //获取管理员下面的渠道商 $channels = model('Admin') ->join('auth_group_access a','a.uid= admin.id') ->join('admin_extend d','admin.id = d.admin_id') ->where('a.group_id','eq',3) ->field('admin.id,admin.nickname,d.pay_method') ->select(); $cNames = []; foreach ($channels as $channel) { $cNames[$channel->id] = ['nickname'=>$channel->nickname,'dkfs'=>$channel->pay_method]; } //查询所有管理员 $glyInfo = model('admin')->join('auth_group_access aa','aa.uid = admin.id') ->where('aa.group_id < 3') ->column('admin.id,admin.nickname'); $total = $this->model ->join("admin_extend","admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->join('payer','payer.id = admin_extend.payerid','left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid') ->where('g.group_id','eq',3) ->where($where) ->count(); $list = $this->model ->join("admin_extend","admin_extend.admin_id = withdraw.admin_id") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->join('payer','payer.id = admin_extend.payerid','left') ->field('withdraw.*,g.group_id,admin.nickname,admin_extend.card_holder,admin_extend.card_num,admin_extend.card_bank,admin_extend.idcard_no,admin_extend.benefit,admin_extend.create_by,admin_extend.payerid as payerid,payer.name') ->where('g.group_id','eq',3) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); // echo $this->model->getLastSql();die; foreach($list as $key=>$val){ $list[$key]['admin.nickname'] = empty($cNames[$val->admin_id]['nickname'])?'':$cNames[$val->admin_id]['nickname']; $list[$key]['dkfs'] = empty($cNames[$val->admin_id]['dkfs'])?'':$cNames[$val->admin_id]['dkfs']; $list[$key]['withdraw.createtime'] = $val['createtime']; if(key_exists($list[$key]['create_by'],$glyInfo)){ $list[$key]['create_by'] = $glyInfo[$list[$key]['create_by']]; }else{ $list[$key]['create_by'] = '-'; } if(key_exists($list[$key]['payerid'],$payer)){ $list[$key]['payerid'] = $payer[$list[$key]['payerid']]; }else{ $list[$key]['payerid'] = '-'; } $section = ''; if(empty($list[$key]['stime'])){ $section .= '入驻平台 - '; }else{ $section .= $list[$key]['stime'].' - '; } $section .= $list[$key]['etime']; $list[$key]['section'] = $section; } $result = array("total" => $total, "rows" => $list,"others"=>array('state1'=>$state1,'state2'=>$state2,'state3'=>$state3)); }elseif($this->group == 3){ //渠道商 //获取渠道商下面的代理商列表 $channels = model('Admin') ->join('auth_group_access a','a.uid= admin.id') ->join('admin_extend d','admin.id = d.admin_id') ->where('a.group_id','eq',4) ->where('d.create_by','eq',$this->auth->id) ->field('admin.id,admin.nickname,d.pay_method') ->select(); $cNames = []; foreach ($channels as $channel) { $cNames[$channel->id] = ['nickname'=>$channel->nickname,'dkfs'=>$channel->pay_method]; } $daili_id = implode(',',array_keys($cNames)); $total = $this->model ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->where('withdraw.admin_id','in',$daili_id) ->where($where) ->order($sort, $order) ->count(); $list = $this->model ->join("admin_extend ex","ex.admin_id = withdraw.admin_id","left") ->join('auth_group_access g','g.uid= withdraw.admin_id') ->join('admin','withdraw.admin_id = admin.id') ->field('withdraw.*,g.group_id,admin.nickname,ex.card_holder,ex.card_num,ex.card_bank,ex.idcard_no') ->where('withdraw.admin_id','in',$daili_id) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); foreach($list as $key=>$val){ $list[$key]['admin.nickname'] = empty($cNames[$val->admin_id]['nickname'])?'':$cNames[$val->admin_id]['nickname']; $list[$key]['dkfs'] = empty($cNames[$val->admin_id]['dkfs'])?'':$cNames[$val->admin_id]['dkfs']; $list[$key]['withdraw.createtime'] = $val['createtime']; } $result = array("total" => $total, "rows" => $list,"others"=>array('state1'=>$state1,'state2'=>$state2,'state3'=>$state3)); }else{ //无权查看数据的用户组 $result = array("total" => 0, "rows" => []); } return json($result); } return $this->view->fetch(); } /* * 我的结算单 */ public function mywithdraw(){ if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('pkey_name')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model ->where('withdraw.admin_id','eq',$this->auth->id) ->where($where) ->order($sort, $order) ->count(); $list = $this->model ->where('withdraw.admin_id','eq',$this->auth->id) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); $result = array("total" => $total, "rows" => $list); return json($result); } $admin_money = model('admin_money')->where('admin_id','eq',$this->auth->id)->find(); $this->assign('admin_money',$admin_money); $agreementyiArr = []; $totalSplitMoney = 0; if($this->group==3){ //渠道充值不含当天 $today_collect = model('orders_collect')->sumCollect($this->auth->id,1,3); $totalSplitMoney = $today_collect['split_money'] ?? 0; $this->assign('recharge_all',$today_collect['recharge_money']??0); $this->assign('no_cash_money',($today_collect['recharge_money_benefit']??0)-$admin_money['cash_money']-$admin_money['count_cash_money']-$totalSplitMoney); $this->assign('count_money',($today_collect['recharge_money_benefit']??0)-$totalSplitMoney); $adminExtendModel = AdminService::instance()->getAdminExtendModel(); $adminExtendInfo = $adminExtendModel->getInfo($this->auth->id); if ($adminExtendInfo['pay_method'] == 2) { // 对私打款 /** @var \app\admin\model\Agreementyi $agreementyiModel */ $agreementyiModel = model('agreementyi'); if ($agYiId = $agreementyiModel->checkAgreement($this->auth->id, $adminExtendInfo['card_holder'], $adminExtendInfo['card_num'], $adminExtendInfo['card_bank'], $adminExtendInfo['benefit'])) { $this->assign('agYiId', $agYiId); } $agreementyiArr = $agreementyiModel->where('admin_id', $this->auth->id)->select(); } } if($this->group==4){ //代理充值不含当天 $today_collect = model('orders_collect')->sumCollect($this->auth->id,1,1); $this->assign('recharge_all',$today_collect['recharge_money']??0);//总充值不含当天 $this->assign('no_cash_money',($today_collect['recharge_money_benefit']??0)-$admin_money['cash_money']-$admin_money['count_cash_money']); $this->assign('count_money',$today_collect['recharge_money_benefit']??0); } //echo ($today_collect['recharge_money_benefit']??0).'----'.$admin_money['cash_money'].'----'.$admin_money['count_cash_money']; $this->assign('agreementyiArr', $agreementyiArr); $this->assign('split_money',$totalSplitMoney); return $this->view->fetch(); } /* * 我的结算单历史记录 */ public function myhistorydraw($admin_id='') { if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('pkey_name')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $admin_id = $this->request->get('admin_id'); $total = $this->model ->where('withdraw.admin_id', 'eq', $admin_id) ->where($where) ->order($sort, $order) ->count(); $list = $this->model ->where('withdraw.admin_id', 'eq', $admin_id) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); $result = array("total" => $total, "rows" => $list); return json($result); } $admin_group = model('AuthGroupAccess')->getGroupId($admin_id); $admin_money = model('admin_money')->where('admin_id', 'eq', $admin_id)->find(); $this->assign('admin_id', $admin_id); $this->assign('admin_money', $admin_money); $totalSplitMoney = 0; if ($admin_group == 3) { //渠道充值不含当天 $today_collect = model('orders_collect')->sumCollect($admin_id, 1, 3); $totalSplitMoney = $today_collect['split_money'] ?? 0; $this->assign('recharge_all', $today_collect['recharge_money'] ?? 0); $this->assign('no_cash_money', ($today_collect['recharge_money_benefit'] ?? 0) - $admin_money['cash_money'] - $admin_money['count_cash_money']-$totalSplitMoney); $this->assign('count_money', ($today_collect['recharge_money_benefit'] ?? 0) -$totalSplitMoney); } if ($admin_group == 4) { //代理充值不含当天 $today_collect = model('orders_collect')->sumCollect($admin_id, 1, 1); $this->assign('recharge_all', $today_collect['recharge_money'] ?? 0);//总充值不含当天 $this->assign('no_cash_money', ($today_collect['recharge_money_benefit'] ?? 0) - $admin_money['cash_money'] - $admin_money['count_cash_money']); $this->assign('count_money', $today_collect['recharge_money_benefit'] ?? 0); } $this->assign('split_money',$totalSplitMoney); return $this->view->fetch(); } public function add() { $theme = config('site.theme'); if ($theme && !in_array($theme, ['xg', 'sf'])) { /** * 渠道商 && 对私打款 检验是否需要签协议 */ if ($this->group == 3) { // $adminConfigModel = AdminService::instance()->getAdminConfigModel(); // $adminInfo = $adminConfigModel->getAdminInfoAll($this->auth->id); $adminExtendModel = AdminService::instance()->getAdminExtendModel(); $adminExtendInfo = $adminExtendModel->getInfo($this->auth->id); if ($adminExtendInfo['pay_method'] == 2) { // 对私打款 /** @var \app\admin\model\Agreementyi $agreementyiModel */ $agreementyiModel = model('agreementyi'); if (!$agYiId = $agreementyiModel->checkAgreement($this->auth->id, $adminExtendInfo['card_holder'], $adminExtendInfo['benefit'] )) { // $this->redirect('agreementyi/add'); $this->error('检测到协议未签或收款人已变更,请先签署协议!', 'agreementyi/add'); } } } } $t = time(); $start_time = strtotime(date('Y-m-d 23:30:00')); $end_time = strtotime(date('Y-m-d 01:30:00')); if($t>=$start_time || $t<=$end_time){ $this->error('每天00:00-01:30与23:30-24:00,不支持提现'); } $admin_money = model('AdminMoney')->where('admin_id='.$this->auth->id)->find(); $isIdCard = 0; $no_cash_money = 0; if($this->group==3){ //渠道充值不含当天 $today_collect = model('orders_collect')->sumCollect($this->auth->id,1,3); $totalSplitMoney = $today_collect['split_money'] ?? 0; //未提现金额 $no_cash_money = ($today_collect['recharge_money_benefit']??0)-$admin_money['cash_money']-$admin_money['count_cash_money']-$totalSplitMoney; } if($this->group==4){ //代理充值不含当天 $today_collect = model('orders_collect')->sumCollect($this->auth->id,1,1); $no_cash_money = ($today_collect['recharge_money_benefit']??0)-$admin_money['cash_money']-$admin_money['count_cash_money']; $extends=model('AdminExtend')->where(['admin_id'=>$this->auth->id])->find(); $cb = $extends->create_by; $fAdmin = model('AdminExtend')->where(['admin_id'=>$cb])->find(); $isIdCard = empty($fAdmin->is_idcard)?0:$fAdmin->is_idcard; if(!empty($extends->idcard_no)){ $isIdCard = 0; } } $no_cash_money = StringHelper::moneyFormat($no_cash_money); if ($this->request->isPost()) { $timedate = date('Ymd',time()); $withdrawKey = 'WD:'.$this->auth->id.':'.$timedate; $redis = Redis::instance(); if(empty($this->request->post('idcard_no'))){ $row = $this->request->post('row/a'); $withdrawType = $this->request->post('type'); if ($row) { if (!$redis->setex($withdrawKey,600,'1')) { $this->error('提现过于频繁,请十分钟以后再试'); } $money = $row['money']; //按月提现 if ($withdrawType == 2) { $month = OrderService::instance()->getWithdrawMonth($this->auth->id)->data; $money = $no_cash_money = (string) $month['cmoney']; $save['etime'] = $month['etime']; $save['stime'] = $month['stime']; } else { $no_cash_money = (string) $no_cash_money; $save['etime'] = date('Ymd',strtotime('-1 day')); $stime = model('withdraw')->setConnect()->where('admin_id',$this->auth->id)->field('etime')->order('id desc')->find(); if(empty($stime['etime'])){ $save['stime'] = null; }else{ $save['stime'] = date('Ymd',strtotime($stime['etime'])+3600*24); } } //未提现余额 严格校验 if($no_cash_money != $money){ $redis->del($withdrawKey); $this->error('ERROR:提现金额与计算后的提现金额不一致'); } $minMoney = 10; if ($money < $minMoney) { $redis->del($withdrawKey); $this->error("最低提现金额{$minMoney}元"); } /* if($admin_money['no_cash_money'] < $money){ $redis->del($withdrawKey); $this->error('超出最大可提现金额'.$admin_money['no_cash_money']); }*/ //$this->error($save['stime']); $save['admin_id'] = $this->auth->id; $save['money'] = $money;//含手续费 $save['state'] = 1; if(model('withdraw')->save($save)){ model('AdminMoney')->where('admin_id',$this->auth->id)->setInc('cash_money',$money); $this->success(); } $redis->del($withdrawKey); $this->error('提交申请失败'); } }else{ //输入身份证号 $idCardNo = trim($this->request->post('idcard_no')); $flag = validateIDCard($idCardNo); if($flag){ model('AdminExtend')->update(['idcard_no'=>$idCardNo],['admin_id'=>$this->auth->id]); $this->success(); }else{ $this->error('身份证号码不合法'); } } $this->error('错误'); } $monthData = OrderService::instance()->getWithdrawMonth($this->auth->id)->data; $this->assign('month', $monthData); $this->assign('isIdcard',$isIdCard); $this->assign('group',$this->group); $this->assignconfig('group',$this->group); $this->view->assign('no_cash_money',$no_cash_money?$no_cash_money:0); $this->assignconfig('no_cash_money',$no_cash_money?$no_cash_money:0); return $this->view->fetch(); } public function edit($ids = NULL) { $row = $this->model->get($ids); if (!$row){ $this->error(__('No Results were found')); } $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { if (!in_array($row[$this->dataLimitField], $adminIds)) { $this->error(__('You have no permission')); } } if ($this->request->isPost()) { $params = $this->request->post("row/a"); if ($params) { try { //是否采用模型验证 if ($this->modelValidate) { $name = basename(str_replace('\\', '/', get_class($this->model))); $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : true) : $this->modelValidate; $row->validate($validate); } if($row['state'] ==3){ $this->error('已打款 请勿重复处理'); } if(empty($params['state'])){ $this->error('请选择一种打款状态'); } $result = $row->allowField(true)->save($params,['id'=>$params['id']]); if ($result !== false) { $withdraw = $this->model->get($params['id']); if($params['state'] == 3){ //提现中的减少 $admin_update1 = model('AdminMoney')->where('admin_id',$withdraw['admin_id'])->setDec('cash_money',$withdraw['money']); //已打款的增加 $admin_update2 = model('AdminMoney')->where('admin_id',$withdraw['admin_id'])->setInc('count_cash_money',$withdraw['money']); //更新完成时间 $time = time(); $updateTime = model('Withdraw')->where('id',$params['id'])->update(['finishtime'=>$time]); } $this->success(); } else { $this->error($row->getError()); } } catch (\think\exception\PDOException $e) { $this->error($e->getMessage()); } } $this->error(__('Parameter %s can not be empty', '')); } $admin= model("Admin")->where('id',$row['admin_id'])->find(); if ($admin) { $row['admin_nickname'] = $admin['nickname']; }else{ $row['admin_nickname'] = ''; } $ae = model('AdminExtend')->where('admin_id',$row['admin_id'])->find(); $this->view->assign('ae',$ae); $this->view->assign("row", $row); $dingdan = []; $payInfo = []; $auth = model('AuthGroupAccess')->where('uid',$row['admin_id'])->find(); if($auth->group_id==3){ $payInfo = model('AdminExtend') ->join('payer','payer.id = admin_extend.payerid','left') ->join('admin','admin.id = admin_extend.create_by') ->where('admin_extend.admin_id='.$row['admin_id']) ->field('admin.nickname,admin_extend.benefit,payer.name') ->find(); if(empty($payInfo['name'])){ $payInfo['name'] = '暂无'; } } if($row['stime'] && $row['etime']){ if($auth->group_id==3){ //渠道 $dingdan = model('orders_collect') ->where('admin_id',$row['admin_id']) ->where('createdate','egt',$row['stime']) ->where('createdate','elt',$row['etime']) ->where('type','eq',1) ->where('flag','eq',3) ->field('id,createdate,recharge_money,recharge_money_benefit,admin_id as aid') ->select(); } if($auth->group_id==4){ //代理收入 $dingdan = model('orders_collect') ->where('admin_id',$row['admin_id']) ->where('createdate','egt',$row['stime']) ->where('createdate','elt',$row['etime']) ->where('type','eq',1) ->where('flag','eq',1) ->field('id,createdate,recharge_money,recharge_money_benefit,admin_id as aid') ->select(); } //Log::write($this->model->getlastsql(),'11111111'); } $this->view->assign('payinfo',$payInfo); $this->view->assign('dingdan',$dingdan); return $this->view->fetch(); } /** * 批量更新s */ public function multi($ids = "") { $ids = $ids ? $ids : $this->request->param("ids"); if ($ids) { if ($this->request->has('params')) { parse_str($this->request->post("params"), $values); $values = array_intersect_key($values, array_flip(is_array($this->multiFields) ? $this->multiFields : explode(',', $this->multiFields))); if ($values) { if($values['state']!=2 && $values['state']!=3){ $this->error("非法操作"); } $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { $this->model->where($this->dataLimitField, 'in', $adminIds); } $idsarr = explode(",",$ids); $successids = ""; $cantids = ""; $failedids = ""; foreach ($idsarr as $v){ $withdraw = $this->model->get($v); if($values['state'] == 2 && $withdraw['state'] == 3){ $cantids .= "{$v},"; }else{ $res = $this->model->where("id",$v)->update($values); if($res){ if($values['state'] == 3){ //提现中的减少 $admin_update1 = model('AdminMoney')->where('admin_id',$withdraw['admin_id'])->setDec('cash_money',$withdraw['money']); //已打款的增加 $admin_update2 = model('AdminMoney')->where('admin_id',$withdraw['admin_id'])->setInc('count_cash_money',$withdraw['money']); //更新完成时间 $time = time(); $updateTime = model('Withdraw')->where('id',$v)->update(['finishtime'=>$time]); } $successids .= "{$v},"; }else{ $failedids .= "{$v},"; } } } $successids = rtrim($successids,","); $cantids = rtrim($cantids,","); $failedids = rtrim($failedids,","); $msg = ""; if(empty($cantids) && empty($failedids)){ $this->success(); } if($successids) $msg .= "ID:{$successids}操作成功!
"; if($cantids) $msg .= "ID:{$cantids}已打款,不能修改!
"; if($failedids) $msg .= "ID:{$failedids}未更新行!"; $this->success($msg); } else { $this->error(__('You have no permission')); } } } $this->error(__('Parameter %s can not be empty', 'ids')); } public function mywithdrawExport() { ini_set('memory_limit', '512M'); //内存限制 list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model ->where('withdraw.admin_id','eq',$this->auth->id) ->where($where) ->order($sort, $order) ->count(); $list = $this->model ->where('withdraw.admin_id','eq',$this->auth->id) ->where($where) ->order('withdraw.state asc,withdraw.id desc') ->limit($offset, $limit) ->select(); $title=array('提现时间','提现周期','划账日期','提现金额','状态'); $content = ''; $content = implode($title,','); $content .= PHP_EOL; foreach($list as $k =>$v){ $content .= date('Y-m-d H:i:s',$v['createtime']).','.$v['stime'].'-'.$v['etime'].','.$v['finishtime_text'].','.$v['money'].','.$v['state_text'].PHP_EOL; } mb_convert_variables('GBK', 'UTF-8', $content); $fileName = "提现记录导出-".date('YmdHis', time()).".csv"; header('Expires: 0'); header('Content-Encoding: utf-8'); header("Content-type:text/csv; charset=utf-8"); Header("Accept-Length: " . strlen($content)); header("Content-Disposition:attachment;filename=" . $fileName); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Pragma:public'); echo $content;exit; } }