diff --git a/Application/Admin/Controller/QueryController.class.php b/Application/Admin/Controller/QueryController.class.php index 259fccaa8..a5d09a711 100644 --- a/Application/Admin/Controller/QueryController.class.php +++ b/Application/Admin/Controller/QueryController.class.php @@ -13,6 +13,21 @@ use Admin\Model\WithdrawModel; */ class QueryController extends ThinkController { + public $pay_way_name = [ //无费率默认平台必 即是费率为0 + '-1' => 'bind_pay', //绑币支付 + '0' => 'ptb_pay', //平台币支付 + '1' => 'alipay', //支付宝 + '2' => 'wei_xin', + '3' => 'wei_xin', + '4' => 'weixin', + '5' => 'ptb_pay', + '6' => 'jft', //竣付通 + '7' => 'ptb_pay', + '8' => 'ptb_pay', + '9' => 'sqpay', //双乾支付-支付宝 + '10' => 'sqpay', //双乾支付-银联 + '15' => 'sqpay', //双乾支付-快捷 + ]; //生成提现单号 public function produceWithdrawNumber() { @@ -1562,8 +1577,57 @@ class QueryController extends ThinkController $pagecount = M()->table('('.$count.') as a')->count(); foreach($data as $key => $value) { - - + $mytime = $value['my_time']; + $nextMonth = date('Y-m',strtotime("$mytime + 1 month")); + $game_id = $value['game_id']; + $gameInfo = M('game','tab_')->where(['id'=>$game_id])->getField('game_name'); + $gameName = substr($gameInfo,0,strpos($gameInfo,'(')); + $gameMap['game_name'] = ['like','%'.$gameName.'%']; + $gameIdArr = M('game','tab_')->field('id')->where($gameMap)->select(); + $gameNameIdArr = []; + foreach($gameIdArr as $gameKey => $gameValue){ + $gameNameIdArr[] = $gameValue['id']; + } + $promote_id = $value['promote_id']; + $pay_status = 1; + $promoteInfo = M('promote','tab_')->where(['id'=>$promote_id])->find(); + $level = $promoteInfo['level']; + if($promote_id != 0) { + if ($level == 1) { + $rootPromoteId = $promote_id; + $where['promote_id'] = $promote_id; + }else { + $chain = $promoteInfo['chain']; + $chainArr = explode('/',$chain); + $rootPromoteId = $chainArr[1]; + $where1['chain'] = array('like', '%/' . $rootPromoteId. '/%'); + $promoteIdInfo = M('promote','tab_')->field('id')->where($where1)->select(); + $promoteIdArr = []; + foreach($promoteIdInfo as $key2 => $v1) { + $promoteIdArr[] = $v1['id']; + } + $where['promote_id'] = ['in',$promoteIdArr]; + } + + }else { + $where['promote_id'] = 0; + } + + + $where['game_id'] = ['in',$gameNameIdArr]; + $where['pay_status'] = 1; + $begTime = strtotime($mytime); + $endTime = strtotime($nextMonth); + $where['pay_time'] = ['between',[$begTime,$endTime]]; + $spendInfo = M('spend','tab_')->field('pay_amount,pay_way')->where($where)->select(); + $initNum = 0; + foreach($spendInfo as $key1 => $spendValue) { + $pay_way = $spendValue['pay_way']; + $channel_rate = $this->getChannelConfig($pay_way) / 100; + $initNum += $spendValue['pay_amount'] * $channel_rate; + + } + $data[$key]['pay_amount'] = $value['pay_amount'] - $initNum; // if ($value['games_ratio']) { // $data[$key]['upstream'] = $value['pay_amount'] * ($value['games_ratio']*0.01); // } else { @@ -1802,4 +1866,229 @@ class QueryController extends ThinkController $this->display('auto_review'); } } + + public function getChannelConfig($pay_way = 0,$config=false) { + if(!$config) { + $payWayName = $this->pay_way_name[$pay_way]; + $toolConfig = M('tool','tab_')->where(['name'=>$payWayName])->find(); + $config = json_decode($toolConfig['config'],true); + if(empty($config['channel_rate'])){ + $channel_rate = 0; + }else { + $channel_rate = $config['channel_rate']; + } + + }else { + foreach($this->pay_way_name as $key => $value) { + $name = $value; + $toolConfig = M('tool','tab_')->where(['name'=>$name])->find(); + $config = json_decode($toolConfig['config'],true); + if(empty($config['channel_rate'])){ + $channel_rate[$key] = 0; + }else { + $channel_rate[$key] = $config['channel_rate']; + } + } + } + + return $channel_rate; + + } + + public function detailList($p = 1) { + $mytime = $_REQUEST['my_time']; + $nextMonth = date('Y-m',strtotime("$mytime + 1 month")); + $game_id = $_REQUEST['game_id']; + $gameInfo = M('game','tab_')->where(['id'=>$game_id])->getField('game_name'); + $gameName = substr($gameInfo,0,strpos($gameInfo,'(')); + $gameMap['game_name'] = ['like','%'.$gameName.'%']; + $gameIdArr = M('game','tab_')->field('id')->where($gameMap)->select(); + $gameNameIdArr = []; + foreach($gameIdArr as $gameKey => $gameValue){ + $gameNameIdArr[] = $gameValue['id']; + } + $promote_id = $_REQUEST['promote_id']; + $promoteInfo = M('promote','tab_')->where(['id'=>$promote_id])->find(); + $level = $promoteInfo['level']; + if($promote_id != 0) { + if ($level == 1) { + $rootPromoteId = $promote_id; + $map['promote_id'] = $promote_id; + }else { + $chain = $promoteInfo['chain']; + $chainArr = explode('/',$chain); + $rootPromoteId = $chainArr[1]; + $where1['chain'] = array('like', '%/' . $rootPromoteId. '/%'); + $promoteIdInfo = M('promote','tab_')->field('id')->where($where1)->select(); + $promoteIdArr = []; + foreach($promoteIdInfo as $key2 => $v1) { + $promoteIdArr[] = $v1['id']; + } + $map['promote_id'] = ['in',$promoteIdArr]; + } + + }else { + $map['promote_id'] = 0; + } + $pay_status = 1; + $map['game_id'] = ['in',$gameNameIdArr]; + // $map['promote_id'] = ['in',$promoteIdArr]; + $map['pay_status'] = 1; + $begTime = strtotime($mytime); + $endTime = strtotime($nextMonth); + $map['pay_time'] = ['between',[$begTime,$endTime]]; + + $spendInfo = M('spend','tab_')->field('pay_amount,pay_way')->where($map)->select(); + $initZfbNum = 0; + $initWxsmNum = 0; + $initWxNum = 0; + $initPlatformCoinNum = 0; + $initBindNum = 0; + $initSqNum = 0; + $initWftNum = 0; + $initJbyNum = 0; + $initJftNum = 0; + $initappleNum = 0; + $initJzNum = 0; + $initSqzfbNum = 0; //双乾支付-支付宝 + $initSqylNum = 0; //双乾支付-银联 + $initSqkjNum = 0; // 双乾支付-快捷 + $initZfbNumTotal = 0; + $initWxsmNumTotal = 0; + $initWxNumTotal = 0; + $initPlatformCoinNumTotal = 0; + $initBindNumTotal = 0; + $initSqNumTotal = 0; + $initWftNumTotal = 0; + $initJbyNumTotal = 0; + $initJftNumTotal = 0; + $initappleNumTotal = 0; + $initJzNumTotal = 0; + $initSqzfbNumTotal = 0; //双乾支付-支付宝 + $initSqylNumTotal = 0; //双乾支付-银联 + $initSqkjNumTotal = 0; // 双乾支付-快捷 + $detailInfoTotal = []; + foreach($spendInfo as $key => $value) { + $pay_way = $value['pay_way']; + $pay_amount = $value['pay_amount']; + $channel_rate = $this->getChannelConfig($pay_way) / 100; + switch($pay_way) { + case -1: + $initBindNumTotal += $pay_amount ; //总流水 + $initBindNum += $channel_rate * $pay_amount; //总扣费 + $afterBindNum = $initBindNumTotal - $initBindNum; + break; + case 0: + $initPlatformCoinNumTotal += $pay_amount ; + $initPlatformCoinNum += $channel_rate * $pay_amount; + $afterPlatformCoinNum = $initPlatformCoinNumTotal - $initPlatformCoinNum; + break; + case 1: + $initZfbNumTotal += $pay_amount ; + $initZfbNum += $channel_rate * $pay_amount; + $afterZfbNum = $initZfbNumTotal - $initZfbNum; + break; + case 2: + $initWxsmNumTotal += $pay_amount ; + $initWxsmNum += $channel_rate * $pay_amount; + $afterWxsmNum = $initWxsmNumTotal - $initWxsmNum; + break; + case 3: + $initWxNumTotal += $pay_amount ; + $initWxNum += $channel_rate * $pay_amount; + $afterWxNum = $initWxNumTotal - $initWxNum; + break; + case 4: + $initWftNumTotal += $pay_amount ; + $initWftNum += $channel_rate * $pay_amount; + $afterWftNum = $initWftNumTotal - $initWftNum; + break; + case 5: + $initJbyNumTotal += $pay_amount ; + $initJbyNum += $channel_rate * $pay_amount; + $afterJbyNum = $initJbyNumTotal - $initJbyNum; + break; + case 6: + $initJftNumTotal += $pay_amount ; + $initJftNum += $channel_rate * $pay_amount; + $afterJftNum = $initJftNumTotal - $initJftNum; + break; + case 7: + $initappleNumTotal += $pay_amount; + $initappleNum += $channel_rate * $pay_amount; + $afterappleNum = $initappleNumTotal - $initappleNum; + break; + case 8: + $initJzNumTotal += $pay_amount; + $initJzNum += $channel_rate * $pay_amount; + $afterappleNum = $initappleNumTotal - $initappleNum; + break; + case 9: + $initSqzfbNumTotal += $pay_amount; + $initSqzfbNum += $channel_rate * $pay_amount; + $afterSqzfbNum = $initSqzfbNumTotal - $initSqzfbNum; + break; + case 10: + $initSqylNumTotal += $pay_amount; + $initSqylNum += $channel_rate * $pay_amount; + $afterSqylNum = $initSqylNumTotal - $initSqylNum; + break; + case 15: + $initSqkjNumTotal += $pay_amount; + $initSqkjNum += $channel_rate * $pay_amount; + $afterSqkjNum = $initSqkjNumTotal - $initSqkjNum; + break; + default: + break; + } + + } + $detailInfoTotal['bindtotal'] = $initBindNumTotal; + $detailInfoTotal['platformcointotal'] = $initPlatformCoinNumTotal; + $detailInfoTotal['zfbtotal'] = $initZfbNumTotal; + $detailInfoTotal['wxsmtotal'] = $initWxsmNumTotal; + $detailInfoTotal['wxtotal'] = $initWxNumTotal; + $detailInfoTotal['wfttotal'] = $initWftNumTotal; + $detailInfoTotal['jbytotal'] = $initJbyNumTotal; + $detailInfoTotal['jfttotal'] = $initJftNumTotal; + $detailInfoTotal['appletotal'] = $initappleNumTotal; + $detailInfoTotal['jztotal'] = $initJzNumTotal; + $detailInfoTotal['sqzfbtotal'] = $initSqzfbNumTotal; + $detailInfoTotal['sqyltotal'] = $initSqylNumTotal; + $detailInfoTotal['sqkjtotal'] = $initSqkjNumTotal; + + + $detailInfoTotal['bind'] = $initBindNum; + $detailInfoTotal['platformcoin'] = $initPlatformCoinNum; + $detailInfoTotal['zfb'] = $initZfbNum; + $detailInfoTotal['wxsm'] = $initWxsmNum; + $detailInfoTotal['wx'] = $initWxNum; + $detailInfoTotal['wft'] = $initWftNum; + $detailInfoTotal['jby'] = $initJbyNum; + $detailInfoTotal['jft'] = $initJftNum; + $detailInfoTotal['apple'] = $initappleNum; + $detailInfoTotal['jz'] = $initJzNum; + $detailInfoTotal['sqzfb'] = $initSqzfbNum; + $detailInfoTotal['sqyl'] = $initSqylNum; + $detailInfoTotal['sqkj'] = $initSqkjNum; + + $detailInfoTotal['afterbind'] = $afterBindNum; + $detailInfoTotal['afterplatformcoin'] = $afterPlatformCoinNum; + $detailInfoTotal['afterzfb'] = $afterZfbNum; + $detailInfoTotal['afterwxsm'] = $afterWxsmNum; + $detailInfoTotal['afterwx'] = $afterWxNum; + $detailInfoTotal['afterwft'] = $afterWftNum; + $detailInfoTotal['afterjby'] = $afterJbyNum; + $detailInfoTotal['afterjft'] = $afterJftNum; + $detailInfoTotal['afterapple'] = $afterappleNum; + $detailInfoTotal['afterjz'] = $afterJzNum; + $detailInfoTotal['aftersqzfb'] = $afterSqzfbNum; + $detailInfoTotal['aftersqyl'] = $afterSqylNum; + $detailInfoTotal['aftersqkj'] = $afterSqkjNum; + + $rateCon = $this->getChannelConfig(0,true); + $this->assign('ratecon',$rateCon); + $this->assign('data', $detailInfoTotal); + $this->display(); + } } diff --git a/Application/Admin/View/Query/detaillist.html b/Application/Admin/View/Query/detaillist.html new file mode 100644 index 000000000..c7c466832 --- /dev/null +++ b/Application/Admin/View/Query/detaillist.html @@ -0,0 +1,149 @@ + + + + + + + 渠道详情 + + + + + + + + + +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
支付渠道渠道费率(%)总流水渠道费扣除渠道费用后流水
绑币{$ratecon['-1']}{$data.bindtotal}{$data.bind}{$data.afterbind}
平台币{$ratecon['0']}{$data.platformcointotal}{$data.platformcoin}{$data.afterplatformcoin}
支付宝{$ratecon['1']}{$data.zfbtotal}{$data.zfb}{$data.afterzfb}
微信(扫码){$ratecon['2']}{$data.wxsmtotal}{$data.wxsm}{$data.afterwxsm}
微信app{$ratecon['3']}{$data.wxtotal}{$data.wx}{$data.afterwx}
威富通{$ratecon['4']}{$data.wfttotal}{$data.wft}{$data.afterwft}
聚宝云{$ratecon['5']}{$data.jbytotal}{$data.jby}{$data.afterjby}
竣付通{$ratecon['6']}{$data.jfttotal}{$data.jft}{$data.afterjft}
苹果支付{$ratecon['7']}{$data.appletotal}{$data.apple}{$data.afterapple}
金猪支付{$ratecon['8']}{$data.jztotal}{$data.jz}{$data.afterjz}
双乾支付-支付宝{$ratecon['9']}{$data.sqzfbtotal}{$data.sqzfb}{$data.aftersqzfb}
双乾支付-银联{$ratecon['10']}{$data.sqyltotal}{$data.sqyl}{$data.aftersqyl}
双乾支付-快捷{$ratecon['15']}{$data.sqkjtotal}{$data.sqkj}{$data.aftersqkj}
+
+
+ +  +
+ + + diff --git a/Application/Admin/View/Query/marketList.html b/Application/Admin/View/Query/marketList.html index 0f240b493..78188596f 100644 --- a/Application/Admin/View/Query/marketList.html +++ b/Application/Admin/View/Query/marketList.html @@ -134,7 +134,7 @@ 内外团 归属类型 游戏名称 - 总流水 + 扣除渠道费后总流水 上游结算流水 下游结算流水 绩优流水 @@ -156,7 +156,7 @@ {$data.company_belong} {$data.company_relation} {$data.game_names} -
{$data.pay_amount}
+
{$data.pay_amount}
{$data.upstream} {$data.downstream} {$data.highquality} @@ -250,6 +250,23 @@ + + +