1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069 |
- <?php
- namespace app\admin\controller;
- use app\common\controller\Backend;
- use app\common\library\Redis;
- use app\main\helper\StringHelper;
- use app\main\service\AdminService;
- use app\main\service\OrderService;
- use think\Controller;
- use think\Log;
- use think\Request;
- use app\main\constants\AdminConstants;
- /**
- * 订单结算
- */
- class Withdraw extends Backend
- {
- protected $model = null;
- protected $searchFields = 'admin.nickname';
- //Multi方法可批量修改的字段
- protected $multiFields = 'state';
- protected $noNeedRight = ['mywithdrawexport'];
- public function _initialize()
- {
- parent::_initialize();
- $this->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}操作成功!<br>";
- if($cantids)
- $msg .= "ID:{$cantids}已打款,不能修改!<br>";
- 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;
-
- }
- }
|