diff --git a/Application/Admin/Controller/FinancePromoteController.class.php b/Application/Admin/Controller/FinancePromoteController.class.php index f18459b7c..6226b2cf7 100644 --- a/Application/Admin/Controller/FinancePromoteController.class.php +++ b/Application/Admin/Controller/FinancePromoteController.class.php @@ -41,13 +41,12 @@ class FinancePromoteController extends AdminController $senddata = []; //获取各会长的充值方式 $cash = self::getJoinPromoteData([],$istimeselect); - foreach($cash as $k=>$v){ $senddata[$v['p_id']] = $v; } - //内冲 - $inside = self::getJoinPromoteData([],$istimeselect,"promote_coin"); - foreach($inside as $k=>$v){ + //内冲 + $inside = self::getJoinPromoteData([],$istimeselect,"promote_coin"); + foreach($inside as $k=>$v){ if(array_key_exists($v['p_id'],$senddata)){ $senddata[$v['p_id']]['inside_cash_count']= $v['pay_amount']-$v['back_amount']; }else{ @@ -57,6 +56,26 @@ class FinancePromoteController extends AdminController $senddata[$v['p_id']] = $v; }; } + //官方渠道单算 + //判断公司 + $gfflah = false; + if (isset($_REQUEST['company_id']) && $_REQUEST['company_id']==0) { + $gfflah = true; + } + if (isset($_REQUEST['promote_id'])) { + if($_REQUEST['promote_id'] == 0){ + $gfflah = true; + }else{ + $gfflah =false; + } + } + if($gfflah){ + //计算官方渠道 + unset($_REQUEST['company_id']); + $_REQUEST['promote_id'] = 0; + $gfcash = self::getJoinPromoteData([],$istimeselect); + $senddata[0] = $gfcash[0]; + } if(!empty($senddata)){ if(array_key_exists(0,$senddata) || $_REQUEST['promote_id']==0){ @@ -81,7 +100,7 @@ class FinancePromoteController extends AdminController "inside_cash_count"=>0, ); foreach($senddata as $k=>$v){ - + if(empty($v['company_name'])) $v['company_name']= "万盟天下科技"; if(!array_key_exists('cash_count',$v)) $v['cash_count']=0; if(!array_key_exists('balance_coin_count',$v)) $v['balance_coin_count']=0; @@ -138,6 +157,7 @@ class FinancePromoteController extends AdminController } if (isset($_REQUEST['company_id'])) { $map['promote.company_id'] = $_REQUEST['company_id']; + } if($type == "spend"){ if (isset($_REQUEST['game_name']) || isset($_REQUEST['game_type'])) { @@ -146,7 +166,7 @@ class FinancePromoteController extends AdminController if($istimeselect){ $map['s.pay_time']=$istimeselect; } - + $map['s.pay_status']=1; $field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count, SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count, @@ -154,28 +174,31 @@ class FinancePromoteController extends AdminController IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) p_id, IFNULL(company_id,0) company_id,company_name"; return M() - ->table("tab_spend s") - ->field($field) - ->where($map) - ->join("tab_promote promote ON s.promote_id = promote.id","left") - ->join("tab_promote_company company ON promote.company_id = company.id","left") - ->group('p_id') - ->select(); + ->table("tab_spend s") + ->field($field) + ->where($map) + ->join("tab_promote promote ON s.promote_id = promote.id","left") + ->join("tab_promote_company company ON promote.company_id = company.id","left") + ->group('p_id') + ->select(); }else{ if($istimeselect){ $map['s.create_time']=$istimeselect; } $map['s.status']=1; $map['s.source_id']=0; - $field= "SUM(CASE WHEN s.type = 1 THEN num ELSE 0 END) as pay_amount,SUM(CASE WHEN s.type = 2 THEN num ELSE 0 END) as back_amount,IFNULL(if(substring_index(substring_index(`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(`chain`,'/',2),'/',-1)),0) p_id"; + $field= "SUM(CASE WHEN s.type = 1 THEN num ELSE 0 END) as pay_amount,SUM(CASE WHEN s.type = 2 THEN num ELSE 0 END) as back_amount,IFNULL(if(substring_index(substring_index(`chain`,'/',2),'/',-1)='', + s.promote_id,substring_index(substring_index(`chain`,'/',2),'/',-1)),0) p_id, + IFNULL(company_id,0) company_id,company_name"; return M("promote_coin s","tab_") - ->field($field) - ->where($map) - ->join("tab_promote promote ON s.promote_id = promote.id","left") - ->group('p_id') - ->select(); + ->field($field) + ->where($map) + ->join("tab_promote promote ON s.promote_id = promote.id","left") + ->join("tab_promote_company company ON promote.company_id = company.id","left") + ->group('p_id') + ->select(); } - + } //渠道查看 @@ -206,25 +229,27 @@ class FinancePromoteController extends AdminController $senddata[$v['promote_id']] = $v; } $inside = self::promoteUserData([],$istimeselect,"promote_coin"); - foreach($inside as $k=>$v){ + foreach($inside as $k=>$v){ if(array_key_exists($v['promote_id'],$senddata)){ - $senddata[$v['promote_id']]['inside_cash_count']= $v['pay_amount']; + $senddata[$v['promote_id']]['inside_cash_count']= $v['pay_amount']-$v['back_amount']; }else{ - $v['inside_cash_count'] = $v['pay_amount']; + $v['inside_cash_count'] = $v['pay_amount']-$v['back_amount']; unset($v['pay_amount']); $senddata[$v['promote_id']] = $v; }; } - if(array_key_exists(0,$senddata) || $_REQUEST['promote_id']==0){ - $pmap['status']=1; - if($istimeselect){ - $pmap['create_time'] = $istimeselect; - } - $admininside = M("provide_user p","tab_")->field("sum(amount) amount")->where($pmap)->find(); - if($admininside['amount'] >0){ - $senddata[0]['inside_cash_count']= $admininside['amount']; + if(!empty($senddata)){ + if(array_key_exists(0,$senddata) || $_REQUEST['promote_id']==0){ + $pmap['status']=1; + if($istimeselect){ + $pmap['create_time'] = $istimeselect; + } + $admininside = M("provide_user p","tab_")->field("sum(amount) amount")->where($pmap)->find(); + if($admininside['amount'] >0){ + $senddata[0]['inside_cash_count']= $admininside['amount']; + } + } - } $count = count($senddata); if ($_REQUEST['data_order'] != '') { @@ -246,7 +271,7 @@ class FinancePromoteController extends AdminController "inside_cash_count"=>0, ); foreach($senddata as $k=>$v){ - + if(empty($v['company_name'])) $v['company_name']= "万盟天下科技"; if(empty($v['promote_account'])) $v['promote_account']= "官方渠道"; if(!array_key_exists('cash_count',$v)) $v['cash_count']=0; @@ -281,7 +306,7 @@ class FinancePromoteController extends AdminController $this->meta_title = '渠道统计'; $this->display(); // dump($senddata); - + } private function promoteUserData($map,$istimeselect,$type="spend") { @@ -312,27 +337,28 @@ class FinancePromoteController extends AdminController SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count, IFNULL(company_id,0) company_id,company_name,promote_id,promote.account promote_account"; return M() - ->table("tab_spend s") - ->field($field) - ->where($map) - ->join("tab_promote promote ON s.promote_id = promote.id", "left") - ->join("tab_promote_company company ON promote.company_id = company.id", "left") - ->group('promote_id') - ->select(); + ->table("tab_spend s") + ->field($field) + ->where($map) + ->join("tab_promote promote ON s.promote_id = promote.id", "left") + ->join("tab_promote_company company ON promote.company_id = company.id", "left") + ->group('promote_id') + ->select(); }else{ if($istimeselect){ $map['s.create_time']=$istimeselect; } $map['s.status']=1; $map['s.source_id']=0; - $map['s.type']=1; - $field= "sum(num) pay_amount,promote_id"; + $field= "SUM(CASE WHEN s.type = 1 THEN num ELSE 0 END) as pay_amount,SUM(CASE WHEN s.type = 2 THEN num ELSE 0 END) as back_amount, + IFNULL(company_id,0) company_id,company_name,promote_id,promote.account promote_account"; return M("promote_coin s","tab_") - ->field($field) - ->where($map) - ->join("tab_promote promote ON s.promote_id = promote.id","left") - ->group('promote_id') - ->select(); + ->field($field) + ->where($map) + ->join("tab_promote promote ON s.promote_id = promote.id","left") + ->join("tab_promote_company company ON promote.company_id = company.id", "left") + ->group('promote_id') + ->select(); } # code... } @@ -376,7 +402,7 @@ class FinancePromoteController extends AdminController } $this->assign('promote_level', $level); - //游戏统计列表 + //游戏统计列表 $data =self::gameStatisticsData($map, $row, $p); if(isset($_REQUEST['export'])){ $data =self::gameStatisticsData($map); @@ -429,7 +455,7 @@ class FinancePromoteController extends AdminController public function gameStatisticsDetail($p = 1) { set_time_limit(0); if(isset($_REQUEST['game_id'])){ - + //转化为名称和类型,重新请求 $game = M("game","tab_")->field("relation_game_name,sdk_version")->where(" id = {$_REQUEST['game_id']} ")->find(); if($game === false){ @@ -448,7 +474,7 @@ class FinancePromoteController extends AdminController if (!empty($_REQUEST['pay_order_number'])) { $map['pay_order_number'] = $_REQUEST['pay_order_number']; } - + if (isset($_REQUEST['game_name']) || isset($_REQUEST['game_type']) || isset($_REQUEST['partner_id'])) { $map["game_id"] = array("in",implode(',', array_column(getGameidByPartnerNameType($_REQUEST['partner_id'],$_REQUEST['game_name'], $_REQUEST['game_type']), 'id')) ); } @@ -512,7 +538,7 @@ class FinancePromoteController extends AdminController $data = D('spend')->getSpendData($map,$field,$group,$order); }else { $data = D('spend')->getSpendData($map,$field,$group,$order,$page,$row); - } + } foreach($data as $key => $value) { $data[$key]['pay_way'] = getPayType($value['pay_way']); } @@ -625,7 +651,7 @@ class FinancePromoteController extends AdminController } elseif (isset($_REQUEST['time_end'])) { $map['pay_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399]; } - + if ($_REQUEST['promote_id'] != '') { if ($_REQUEST['promote_id'] == 0 || $_REQUEST['promote_type'] == 2) { $map['tab_spend.promote_id'] = $_REQUEST['promote_id']; @@ -646,7 +672,7 @@ class FinancePromoteController extends AdminController $row = 10; } $map['pay_status'] = 1; - + if (!empty(I('user_account'))) { $map['tab_spend.user_account'] = array('like','%'.I("user_account").'%'); } @@ -670,8 +696,8 @@ class FinancePromoteController extends AdminController $data = D('spend')->getSpendData($map, $field2, $group, $order,0,0, $join); }else { $data = D('spend')->getSpendData($map, $field2, $group, $order, $page, $row, $join); - } - + } + foreach($data as $key => $value) { $data[$key]['pay_way'] = getPayType($value['pay_way']); } @@ -769,15 +795,15 @@ class FinancePromoteController extends AdminController $total_cost = $admincount["amount"]?:0; if($count >0){ $admininside = M("provide_user p","tab_") - ->field("order_number,user_account,amount,balance,create_time") - ->join("left join tab_user as u on u.id = p.user_id") - ->where($pmap); + ->field("order_number,user_account,amount,balance,create_time") + ->join("left join tab_user as u on u.id = p.user_id") + ->where($pmap); if(isset($_REQUEST['export'])){ $admininside = $admininside->select(); }else { $admininside = $admininside->page($page, $row)->select(); - } + } foreach ($admininside as $k => $v) { $temp = [ @@ -793,7 +819,7 @@ class FinancePromoteController extends AdminController $senddata[] = $temp; } } - + }else{ if($istimeselect){ $map['s.create_time']=$istimeselect; @@ -801,9 +827,9 @@ class FinancePromoteController extends AdminController $map['s.status']=1; $map['s.source_id']=0; $ininsidecount = M("promote_coin s","tab_") - ->field("SUM(CASE WHEN s.type = 1 THEN num ELSE 0 END) as pay_amount,SUM(CASE WHEN s.type = 2 THEN num ELSE 0 END) as back_amount,count(*) count") - ->where($map) - ->find(); + ->field("SUM(CASE WHEN s.type = 1 THEN num ELSE 0 END) as pay_amount,SUM(CASE WHEN s.type = 2 THEN num ELSE 0 END) as back_amount,count(*) count") + ->where($map) + ->find(); $count = $ininsidecount["count"]?:0; $total_cost = ($ininsidecount["pay_amount"]-$ininsidecount["back_amount"]); if ($count >0) { @@ -816,7 +842,7 @@ class FinancePromoteController extends AdminController $ininside = $ininside->select(); }else { $ininside = $ininside->page($page, $row)->select(); - } + } foreach ($ininside as $k => $v) { $temp = [ "sn"=>$v['sn'], @@ -853,7 +879,7 @@ class FinancePromoteController extends AdminController if($page) {$this->assign('_page', $page);} $this->assign('data',$senddata); $this->display(); - + } } \ No newline at end of file