From 4a0477f8c4c93e0e19e60a9a9819c14305fecaac Mon Sep 17 00:00:00 2001 From: zhengyongxing Date: Mon, 17 May 2021 09:26:16 +0800 Subject: [PATCH] =?UTF-8?q?5.19=E5=8A=9F=E8=83=BD=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompanyStatementPoolController.class.php | 14 + .../CompanySystemRatioController.class.php | 299 ++++++++++++++++++ .../View/CompanyStatementPool/viewCpPool.html | 4 +- .../View/CompanyStatementPool/viewPcPool.html | 3 + .../View/CompanyStatementPool/viewPuPool.html | 4 + .../Admin/View/CompanySystemRatio/export.html | 274 ++++++++++++++++ .../Admin/View/CompanySystemRatio/index.html | 293 +++++++++++++++++ 7 files changed, 890 insertions(+), 1 deletion(-) create mode 100644 Application/Admin/Controller/CompanySystemRatioController.class.php create mode 100644 Application/Admin/View/CompanySystemRatio/export.html create mode 100644 Application/Admin/View/CompanySystemRatio/index.html diff --git a/Application/Admin/Controller/CompanyStatementPoolController.class.php b/Application/Admin/Controller/CompanyStatementPoolController.class.php index 996461a6b..45f3f9828 100644 --- a/Application/Admin/Controller/CompanyStatementPoolController.class.php +++ b/Application/Admin/Controller/CompanyStatementPoolController.class.php @@ -278,6 +278,20 @@ class CompanyStatementPoolController extends ThinkController }else{ $pool_info["payment"] = '--'; } + + //获取基本信息 + $payedData = SM("company_statement_info","tab_") + ->field("SUM(CASE WHEN verify_status = 2 THEN statement_money ELSE 0 END) as offline_amount,SUM(CASE WHEN verify_status != 2 THEN statement_money ELSE 0 END) as online_amount") + ->where("pool_id = '{$id}'")->find(); + +// $payedData = SM("company_statement_info","tab_") +// ->field("*") +// ->where("pool_id = '{$id}' and verify_status = 2")->select(); +// +// dump($payedData);die(); + + $this->assign("payed_data",$payedData); + // dump($pool_info);die(); $statement_num = $pool_info['statement_num']; $this->assign("pool_data",$pool_info); diff --git a/Application/Admin/Controller/CompanySystemRatioController.class.php b/Application/Admin/Controller/CompanySystemRatioController.class.php new file mode 100644 index 000000000..770247c2d --- /dev/null +++ b/Application/Admin/Controller/CompanySystemRatioController.class.php @@ -0,0 +1,299 @@ +admininfo = $_SESSION['onethink_admin']['user_auth']; + parent::_initialize(); + } + + //比例类型 0-内团 1-外团 2-分发联盟 3上游游戏 4聚合比例 + private $checkRatio = [0,1,2,3,4]; + + public function index() + { + $params = I('get.'); + $page = $params['p'] ? intval($params['p']) : 1; + $row = $params['row'] ? intval($params['row']) : 10; + //权限分配 + if(!IS_ROOT){ + $this->OpAuthList= getModuleControllerAuth(); + } + + $map = []; + + + + $data = M("game_ratio_mould","tab_")->where($map)->select(); + + $handleData=[]; + $handleData = $this->getAggregateData(); + + foreach ($data as $key => $value) { + $handleData[$value['relation_game_id']][$value['company_belong']][] = ['turnover'=>"0.00",'ratio'=>$value['ratio'],'instanceof'=>1]; + + $handleData[$value['relation_game_id']][$value['company_belong']]=array_merge($handleData[$value['relation_game_id']][$value['company_belong']],json_decode($value['turnover_ratio'],true)??[]); + } + + $handleData = $this->getCpGameRatio($handleData); + $data = $this->handleRatio($handleData); + +// dump($handleData);die(); + + $gameData = M("game","tab_")->field("original_package_name,relation_game_name game_name,game_type_name,relation_game_id game_id") + ->where($map) + ->group("original_package_name") + ->select(); + $gameOriginData = M("game","tab_")->field("original_package_name,relation_game_name game_name,relation_game_id")->where($map)->group("relation_game_id")->select(); + //类型区分 + $handleGameData = []; + foreach ($gameData as $key => $value) { + if ($value['game_type_name']) { + $handleGameData[$value['game_type_name']][] = $value; + } + } + //游戏原包名区分 + $handleOriginData = []; + foreach ($gameOriginData as $key => $value) { + if ($value['original_package_name']) { + $handleOriginData[$value['original_package_name']][] = $value; + } + } + + //将比例打进游戏中 + foreach ($handleOriginData as $key => $value) { + foreach ($value as $k => $v) { + $handleOriginData[$key][$k]['ratio_data'] = $data[$v['relation_game_id']]; + + } + } + + //处理数据 + $data = []; + foreach ($handleGameData as $key => $value) { + + $handleData = []; + + foreach ($value as $k => $v) { +// unset($handleGameData[$key][$k]['original_package_name']); + $handleGameData[$key][$k]['game_data'] = $handleOriginData[$v['original_package_name']]; + + } + $handleData['game_type'] = $key; + $handleData['data'] = $handleGameData[$key]; + $data[] = $handleData; + + } + + foreach ($data as $key => $value) { + + foreach ($value['data'] as $k => $v) { + + if (!$v['game_data']) { + $data[$key]['data'][$k]['row'] = 1; + $data[$key]['row'] += 1; + } + + foreach ($v['game_data'] as $vk => $vv) { + $data[$key]['data'][$k]['game_data'][$vk]['row'] = $vv['ratio_data']?count($vv['ratio_data']):1; + $data[$key]['data'][$k]['row'] += $vv['ratio_data']?count($vv['ratio_data']):1; + $data[$key]['row'] += $vv['ratio_data']?count($vv['ratio_data']):1; + +// if (!$vv['ratio_data']) { +// $data[$key]['data'][$k]['game_data'][$vk]['row']=1; +// } + + foreach($vv['ratio_data'] as $vvk=>$vvv) { + if (count($data[$key]['data'][$k]['game_data'][$vk]['ratio_data']) == 1) { + $data[$key]['data'][$k]['game_data'][$vk]['ratio_data'][$vvk]['turnover'] = '无阶梯'; + break; + } else { + + if ($vvv['is_equal'] != 1) { + $data[$key]['data'][$k]['game_data'][$vk]['ratio_data'][$vvk]['turnover'] + = $vvv['turnover'].($vvv['instanceof']==1?'<=':'<').'月流水'. + ('<'). + ($data[$key]['data'][$k]['game_data'][$vk]['ratio_data'][$vvk+1]['turnover']??'∞'); + } else { + $data[$key]['data'][$k]['game_data'][$vk]['ratio_data'][$vvk]['turnover']= + '月流水='.$vvv['turnover']; + } + + } + + } + + } + } + } + + if ($_REQUEST['export']) { + $this->assign("is_export",true); + $this->assign("data",$data); + + $time = date("Y-m-d",time()); + + $this->assign('title',"海南万盟天下产品分成比例体系[{$time}]"); + $this->display("export");die(); + } + + $count = count($data); + $page = set_pagination($count, $row,$params); + if($page) { + $this->assign('_page', $page); + } + + $size = $row;//每页显示的记录数 + + $data = array_slice($data, ($params['p'] - 1) * $size, $size); + +// dump($data);die(); + + $this->assign("data",$data); + $this->display(); + + } + + + //获取上游游戏比例 + function getCpGameRatio($handleData = []) { + $cpGameData = M('cp_game_ratio', 'tab_')->where(['is_del'=>"0"])->order('id asc')->select(); + + foreach ($cpGameData as $key => $value) { + + $cpRatio['turnover'] = $value['begin_total_amount']; + $cpRatio['instanceof'] = $value['instanceof']; + $cpRatio['ratio'] = $value['ratio']; + + $handleData[$value['game_id']][3][] =$cpRatio; + + } + + return $handleData; + } + + //将比例整合 + function handleRatio($handleData = []) { + $finalData = []; + + foreach ($handleData as $key => $value) { + foreach ($value as $vk => $vv) { + foreach ($vv as $k => $v) { + + if ($finalData[$key][$v['turnover']]) { + $finalData[$key][$v['turnover']][$vk] = $v["ratio"]; + //判断是否有相同值且一个是>=另一个是>的情况 + if ($finalData[$key][$v['turnover']]["instanceof"] != $v["instanceof"]) { + $finalData[$key][$v['turnover']]["instanceof"] = 0; + + $finalData[$key][$v['turnover']."eq"] = $finalData[$key][$v['turnover']]; + $finalData[$key][$v['turnover']."eq"]['is_equal'] = 1; + } + + continue; + } + $v['is_equal'] = 0; + $v[$vk] = $v["ratio"]; + unset($v["ratio"]); + $finalData[$key][$v['turnover']] = $v; + + } + } + } + + + $data = []; + foreach ($finalData as $key => $value) { + + foreach ($value as $k => $v) { + + foreach ($this->checkRatio as $ck=>$cv) { + if ($k == "0.00" && !$finalData[$key][$k][$cv]) { + $finalData[$key][$k][$cv] = "0.00"; + } + + if ($k != "0.00" && !$finalData[$key][$k][$cv]) { + //查找上一个比例 + $finalData[$key][$k][$cv] = $data[$key][count($data[$key])-1][$cv]; + } + } + $data[$key][] = $finalData[$key][$k]; + + } + + } + + return $data; + } + + function getAggregateData() { + $request = []; + $request['remote'] = 1; + + $aggregateData = json_decode(curl_post($this->api,$request),true); + +// dump($aggregateData); + + $gameData = M("game","tab_") + ->field("unique_code,relation_game_id game_id") + ->where('unique_code is not null or unique_code!=""') + ->group("unique_code") + ->select(); + +// dump($gameData); + + $gameUniqueData = []; + foreach ($gameData as $key => $value ) { + + $gameUniqueData[$value['unique_code']] = $value['game_id']; + + } + + $handleAggregateData = []; + foreach ($aggregateData as $key => $value) { + + if ($value['unique_code']) { + + $explodeData = explode('|',$value['exploitation_rate']); + $explodeDefauleData = explode('|',$value['default_exploitation_rate']); + + $temporaryNum = 100; + $temporaryData = []; + + foreach ($explodeDefauleData as $k => $v) { +// dump($v); + if ($v<$temporaryNum && $v>0) { + $temporaryData = []; + $temporaryNum = $v; + + $temporaryData[] = ['turnover'=>'0.00','instanceof'=>1,'ratio'=>number_format(100.00-$v,2,'.','')]; + + $defauleData = json_decode($explodeData[$k],true); + + foreach ($defauleData as $ek => $ev) { + $temporaryData[] = ['turnover'=>$ev['money'],'instanceof'=>$ev['symbol'],'ratio'=>number_format(100.00-$ev['rate'],2,'.','')]; + } +// dump($temporaryData); + + } + + } + + if($temporaryData) { + $handleAggregateData[$gameUniqueData[$value['unique_code']]][4] = $temporaryData; + } + + } + } + + return $handleAggregateData; + } + + +} \ No newline at end of file diff --git a/Application/Admin/View/CompanyStatementPool/viewCpPool.html b/Application/Admin/View/CompanyStatementPool/viewCpPool.html index c4268d24f..824655697 100644 --- a/Application/Admin/View/CompanyStatementPool/viewCpPool.html +++ b/Application/Admin/View/CompanyStatementPool/viewCpPool.html @@ -300,7 +300,9 @@ - + + 线下打款:{$payed_data.offline_amount}    线上打款:{$payed_data.online_amount} + diff --git a/Application/Admin/View/CompanyStatementPool/viewPcPool.html b/Application/Admin/View/CompanyStatementPool/viewPcPool.html index 40a9e3ad7..6b51861c5 100644 --- a/Application/Admin/View/CompanyStatementPool/viewPcPool.html +++ b/Application/Admin/View/CompanyStatementPool/viewPcPool.html @@ -288,6 +288,9 @@ + + 线下打款:{$payed_data.offline_amount}    线上打款:{$payed_data.online_amount} + diff --git a/Application/Admin/View/CompanyStatementPool/viewPuPool.html b/Application/Admin/View/CompanyStatementPool/viewPuPool.html index 8053495e7..e008db558 100644 --- a/Application/Admin/View/CompanyStatementPool/viewPuPool.html +++ b/Application/Admin/View/CompanyStatementPool/viewPuPool.html @@ -424,6 +424,10 @@ --> + + + 线下打款:{$payed_data.offline_amount}    线上打款:{$payed_data.online_amount} + diff --git a/Application/Admin/View/CompanySystemRatio/export.html b/Application/Admin/View/CompanySystemRatio/export.html new file mode 100644 index 000000000..5ee4274ca --- /dev/null +++ b/Application/Admin/View/CompanySystemRatio/export.html @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ style="display:none"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
产品类型原包名现包名比例等级标准cp合作方下游内团下游外团下游外团分发聚合方
aOh! 暂时还没有内容!
{$data['game_type']|default='无'}{$data['data'][0]['original_package_name']|default='无'}{$data['data'][0]['game_data'][0]['game_name']|default='无'}{$data['data'][0]['game_data'][0]['ratio_data'][0]['turnover']|default='无阶梯'}{$data['data'][0]['game_data'][0]['ratio_data'][0][0]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][1]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][2]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][3]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][4]|default='0.00'}%
{$ratio_data['turnover']|default='无阶梯'}{$ratio_data[0]|default='0.00'}%{$ratio_data[1]|default='0.00'}%{$ratio_data[2]|default='0.00'}%{$ratio_data[3]|default='0.00'}%{$ratio_data[4]|default='0.00'}%
{$game_data['game_name']}
{$game_data_other['turnover']|default='无阶梯'}{$game_data_other['0']|default='0.00'}%{$game_data_other['1']|default='0.00'}%{$game_data_other['2']|default='0.00'}%{$game_data_other['3']|default='0.00'}%{$game_data_other['4']|default='0.00'}%
{$sun_data['original_package_name']|default='无'}{$sun_data['game_data'][0]['game_name']|default='无'}{$sun_data['game_data'][0]['ratio_data'][0]['turnover']|default='无阶梯'}{$sun_data['game_data'][0]['ratio_data'][0]['0']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['1']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['2']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['3']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['4']|default='0.00'}%
{$game_datas['turnover']|default='无阶梯'}{$game_datas['0']|default='0.00'}%{$game_datas['1']|default='0.00'}%{$game_datas['2']|default='0.00'}%{$game_datas['3']|default='0.00'}%{$game_datas['4']|default='0.00'}%
{$game_datas['game_name']|default='无'}{$game_datas['ratio_data'][0]['turnover']|default='无阶梯'}{$game_datas['ratio_data'][0][0]|default='0.00'}%{$game_datas['ratio_data'][0][1]|default='0.00'}%{$game_datas['ratio_data'][0][2]|default='0.00'}%{$game_datas['ratio_data'][0][3]|default='0.00'}%{$game_datas['ratio_data'][0][4]|default='0.00'}%
{$game_data_others['turnover']|default='无阶梯'}{$game_data_others['0']|default='0.00'}%{$game_data_others['1']|default='0.00'}%{$game_data_others['2']|default='0.00'}%{$game_data_others['3']|default='0.00'}%{$game_data_others['4']|default='0.00'}%
+
+
+
+ 导出 + {$_page|default=''} +
+ + + + + if(C('COLOR_STYLE')=='blue_color') echo ' + + '; + + + + + + + + + + diff --git a/Application/Admin/View/CompanySystemRatio/index.html b/Application/Admin/View/CompanySystemRatio/index.html new file mode 100644 index 000000000..d1f40e518 --- /dev/null +++ b/Application/Admin/View/CompanySystemRatio/index.html @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + +
+
+ style="display:none"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
产品类型原包名现包名比例等级标准分成比例
cp合作方下游内团下游外团下游外团分发聚合方
aOh! 暂时还没有内容!
{$data['game_type']|default='无'}{$data['data'][0]['original_package_name']|default='无'}{$data['data'][0]['game_data'][0]['game_name']|default='无'}{$data['data'][0]['game_data'][0]['ratio_data'][0]['turnover']|default='无阶梯'}{$data['data'][0]['game_data'][0]['ratio_data'][0][0]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][1]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][2]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][3]|default='0.00'}%{$data['data'][0]['game_data'][0]['ratio_data'][0][4]|default='0.00'}%
{$ratio_data['turnover']|default='无阶梯'}{$ratio_data[0]|default='0.00'}%{$ratio_data[1]|default='0.00'}%{$ratio_data[2]|default='0.00'}%{$ratio_data[3]|default='0.00'}%{$ratio_data[4]|default='0.00'}%
{$game_data['game_name']}
{$game_data_other['turnover']|default='无阶梯'}{$game_data_other['0']|default='0.00'}%{$game_data_other['1']|default='0.00'}%{$game_data_other['2']|default='0.00'}%{$game_data_other['3']|default='0.00'}%{$game_data_other['4']|default='0.00'}%
{$sun_data['original_package_name']|default='无'}{$sun_data['game_data'][0]['game_name']|default='无'}{$sun_data['game_data'][0]['ratio_data'][0]['turnover']|default='无阶梯'}{$sun_data['game_data'][0]['ratio_data'][0]['0']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['1']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['2']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['3']|default='0.00'}%{$sun_data['game_data'][0]['ratio_data'][0]['4']|default='0.00'}%
{$game_datas['turnover']|default='无阶梯'}{$game_datas['0']|default='0.00'}%{$game_datas['1']|default='0.00'}%{$game_datas['2']|default='0.00'}%{$game_datas['3']|default='0.00'}%{$game_datas['4']|default='0.00'}%
{$game_datas['game_name']|default='无'}{$game_datas['ratio_data'][0]['turnover']|default='无阶梯'}{$game_datas['ratio_data'][0][0]|default='0.00'}%{$game_datas['ratio_data'][0][1]|default='0.00'}%{$game_datas['ratio_data'][0][2]|default='0.00'}%{$game_datas['ratio_data'][0][3]|default='0.00'}%{$game_datas['ratio_data'][0][4]|default='0.00'}%
{$game_data_others['turnover']|default='无阶梯'}{$game_data_others['0']|default='0.00'}%{$game_data_others['1']|default='0.00'}%{$game_data_others['2']|default='0.00'}%{$game_data_others['3']|default='0.00'}%{$game_data_others['4']|default='0.00'}%
+
+
+
+ 导出 + {$_page|default=''} +
+ +
+ + + if(C('COLOR_STYLE')=='blue_color') echo ' + + '; + + + + + + + + + + +