diff --git a/Application/Admin/Common/function.php b/Application/Admin/Common/function.php index c76087014..309eeed77 100644 --- a/Application/Admin/Common/function.php +++ b/Application/Admin/Common/function.php @@ -585,6 +585,19 @@ function getAllGame() $list = M("game", 'tab_')->field('relation_game_name as game_name')->group('relation_game_name')->select(); return $list; } +/** + * 获取合作公司 + * @author chenzhi + */ +function getPromoteCompany() +{ + $list = M("PromoteCompany", 'tab_') + ->field('id,company_name') + ->where("status = 1") + ->select(); + array_unshift($list,array("id"=>0,"company_name"=>"万盟天下科技"));//默认0 + return $list; +} /** * 中间加密 替换字符串的子串 diff --git a/Application/Admin/Controller/FinancePromoteController.class.php b/Application/Admin/Controller/FinancePromoteController.class.php new file mode 100644 index 000000000..4226625a6 --- /dev/null +++ b/Application/Admin/Controller/FinancePromoteController.class.php @@ -0,0 +1,162 @@ +"; + } + public function index() + { + if ($_REQUEST['data_order'] != '') { + $data_order = reset(explode(',', $_REQUEST['data_order'])); + $data_order_type = end(explode(',', $_REQUEST['data_order'])); + $this->assign('userarpu_order', $data_order); + $this->assign('userarpu_order_type', $data_order_type); + } + if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { + $pmap['create_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]]; + } elseif (isset($_REQUEST['time_start'])) { + $pmap['create_time'] = ['GT', strtotime($_REQUEST['time_start'])]; + } elseif (isset($_REQUEST['time_end'])) { + $pmap['create_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399]; + } + $senddata = []; + //获取各会长的现金充值 + $cash = self::getJoinPromoteData(array("pay_way"=>array("GT",0))); + foreach($cash as $k=>$v){ + $v['cash_count'] = $v['pay_amount']; + unset($v['pay_amount']); + $senddata[$v['p_id']] = $v; + } + //平台币直充支出 + $balance = self::getJoinPromoteData(array("pay_way"=>array("EQ",0))); + foreach($balance as $k=>$v){ + if(array_key_exists($v['p_id'],$senddata)){ + $senddata[$v['p_id']]['balance_coin_count']= $v['pay_amount']; + }else{ + $v['balance_coin_count'] = $v['pay_amount']; + unset($v['pay_amount']); + $senddata[$v['p_id']] = $v; + }; + } + //平台币内充 + $bind = self::getJoinPromoteData(array("pay_way"=>array("LT",0))); + foreach($bind as $k=>$v){ + if(array_key_exists($v['p_id'],$senddata)){ + $senddata[$v['p_id']]['bind_coin_count']= $v['pay_amount']; + }else{ + $v['bind_coin_count'] = $v['pay_amount']; + unset($v['pay_amount']); + $senddata[$v['p_id']] = $v; + }; + } + //内冲 + $inside = self::getJoinPromoteData([],"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']; + }else{ + $v['inside_cash_count'] = $v['pay_amount']; + unset($v['pay_amount']); + $senddata[$v['p_id']] = $v; + }; + } + if(array_key_exists(0,$senddata) || $_REQUEST['promote_id']==0){ + $pmap['status']=1; + + $admininside = M("provide_user p","tab_")->field("sum(amount) amount")->where($pmap)->find(); + if($admininside['amount'] >0){ + $senddata[0]['inside_cash_count']= $admininside['amount']; + } + + } + + $data = []; + $count =array( + "cash_count"=>0, + "balance_coin_count"=>0, + "bind_coin_count"=>0, + "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; + if(!array_key_exists('bind_coin_count',$v)) $v['bind_coin_count']=0; + if(!array_key_exists('inside_cash_count',$v)) $v['inside_cash_count']=0; + $v['allcount'] = $v['cash_count']-0+$v['balance_coin_count']+$v['bind_coin_count']; + $count['cash_count'] += $v['cash_count']; + $count['balance_coin_count'] += $v['balance_coin_count']; + $count['bind_coin_count'] += $v['bind_coin_count']; + $count['inside_cash_count'] += $v['inside_cash_count']; + $count['all_count'] += $v['allcount']; + $data[] = $v; + } + $data = my_sort($data, $data_order_type, (int)$data_order); + $this->assign('list_data', $data); + $this->assign('all_count', $count); + $this->display(); + # code... + } + private function getJoinPromoteData($map,$type="spend") + { + if ($_REQUEST['promote_id'] != '') { + if ($_REQUEST['promote_id'] == 0) { + $map['s.promote_id'] = 0; + } else { + $promoter_ids = D("Promote")->where("chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']}")->field('id')->select(); + if ($promoter_ids) { + $map['s.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))]; + } + } + } + + if($type == "spend"){ + if (isset($_REQUEST['game_name']) || isset($_REQUEST['game_type'])) { + $map["s.game_id"] = array("in",implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')) ); + } + if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { + $map['s.pay_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]]; + } elseif (isset($_REQUEST['time_start'])) { + $map['s.pay_time'] = ['GT', strtotime($_REQUEST['time_start'])]; + } elseif (isset($_REQUEST['time_end'])) { + $maps['s.pay_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399]; + } + + $map['s.pay_status']=1; + $field= "sum(pay_amount) pay_amount,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(); + }else{ + if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { + $map['s.create_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]]; + } elseif (isset($_REQUEST['time_start'])) { + $map['s.create_time'] = ['GT', strtotime($_REQUEST['time_start'])]; + } elseif (isset($_REQUEST['time_end'])) { + $maps['s.create_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399]; + } + $map['s.status']=1; + $map['s.source_id']=0; + $map['s.type']=1; + $field= "sum(num) pay_amount,IFNULL(if(substring_index(substring_index(`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(`chain`,'/',2),'/',-1)),0) p_id"; + 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(); + } + + } + + +} \ No newline at end of file diff --git a/Application/Admin/View/FinancePromote/index.html b/Application/Admin/View/FinancePromote/index.html new file mode 100644 index 000000000..b4757c72c --- /dev/null +++ b/Application/Admin/View/FinancePromote/index.html @@ -0,0 +1,457 @@ + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +  -  +
+ + +
+
+
+ +
+
+ +
+ + + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
推广公司会长渠道 + 游戏现金金额▲ + + 游戏现金金额▼ + 游戏现金金额 + + 第三方支付(微信,支付宝,快捷) + + 平台币直充支出▲ + + 平台币直充支出▼ + 平台币直充支出 + + 平台币购买游戏道具所产生的金额 + + 内充支出▲ + + 内充支出▼ + 内充支出 + + 公会下的玩家使用绑定币消费的金额 + + 平台币内充▲ + + 平台币内充▼ + 平台币内充 + + 管理后台直接下放给会长的平台币 渠道游戏内充值合计 游戏现金金额(游戏现金流水+平台币支出+公会内充支出=总流水 操作
aOh! 暂时还没有内容!
{$data.company_name}{:get_promote_name($data['p_id'])}{$data.cash_count}{$data.balance_coin_count}{$data.bind_coin_count} + {$data.inside_cash_count}{$data.allcount} + 游戏查看 + 渠道查看 +
汇总:{$all_count['cash_count']}{$all_count['balance_coin_count']}{$all_count['bind_coin_count']}{$all_count['inside_cash_count']}{$all_count['all_count']} + 游戏查看 + 渠道查看 +
+
+
+
+ 导出 + {$_page|default=''} +
+ + + + + +
+ + + + if(C('COLOR_STYLE')=='blue_color') echo ' + '; + + + + + + + + \ No newline at end of file