From 013801556af49545e81e7bbaf71fa16442546b73 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Mon, 24 May 2021 17:52:56 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E5=88=86=E6=88=90=E6=AF=94=E4=BE=8B=E6=93=8D=E4=BD=9C=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Admin/View/GameRatioMould/export.html | 2 ++ Application/Admin/View/GameRatioMould/index.html | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Application/Admin/View/GameRatioMould/export.html b/Application/Admin/View/GameRatioMould/export.html index 69a031663..43c30583d 100644 --- a/Application/Admin/View/GameRatioMould/export.html +++ b/Application/Admin/View/GameRatioMould/export.html @@ -35,6 +35,7 @@ 比例分成 生效时间 操作人 + 操作时间 @@ -63,6 +64,7 @@ -- {$data.admin_name} + {$data.create_time} diff --git a/Application/Admin/View/GameRatioMould/index.html b/Application/Admin/View/GameRatioMould/index.html index 2e8075510..9a0940747 100644 --- a/Application/Admin/View/GameRatioMould/index.html +++ b/Application/Admin/View/GameRatioMould/index.html @@ -113,6 +113,7 @@ 比例分成 生效时间 操作人 + 操作时间 操作 @@ -142,6 +143,7 @@ -- {$data.admin_name} + {$data.create_time} 修改 删除 From 9631a26d40eed75236508e2954ea6fd6e0852cc4 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Tue, 25 May 2021 11:44:53 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Controller/GameMarginController.class.php | 6 +++--- .../Admin/Controller/GameMarginSetController.class.php | 10 ++++++---- Application/Admin/View/GameMargin/marginView.html | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Application/Admin/Controller/GameMarginController.class.php b/Application/Admin/Controller/GameMarginController.class.php index 0fb582a6a..821d95f46 100644 --- a/Application/Admin/Controller/GameMarginController.class.php +++ b/Application/Admin/Controller/GameMarginController.class.php @@ -107,7 +107,7 @@ class GameMarginController extends AdminController $count['jh_margin_amount'] += $v['jh_margin_amount']; } - $count['cp_ratio'] = round( $count['cp_statement_amount']/$count['pay_amount'] ,4)*100; + // $count['cp_ratio'] = round( $count['cp_statement_amount']/$count['pay_amount'] ,4)*100; $count['pu_ratio'] = round( $count['pu_statement_amount']/$count['pu_pay_amount'] ,4)*100; $count['pu_margin_ratio'] = round( $count['pu_margin_amount']/$count['pu_pay_amount'] ,4)*100; @@ -129,7 +129,7 @@ class GameMarginController extends AdminController $line = 3; foreach ($marginInfo as &$v) { - $v["cp_ratio"] = "=ROUND(G{$line}/D{$line},4)"; + // $v["cp_ratio"] = "=ROUND(G{$line}/D{$line},4)"; if($v["pc_pay_amount"] > 0){ $v["pc_ratio"] ="=ROUND(M{$line}/K{$line},4)"; @@ -159,7 +159,7 @@ class GameMarginController extends AdminController $count = [ "pay_amount"=>"=SUM(D3:D{$line})", - "cp_ratio"=>"=ROUND(G{$countLine}/D{$countLine},4)", + // "cp_ratio"=>"=ROUND(G{$countLine}/D{$countLine},4)", "cp_statement_amount"=>"=SUM(G3:G{$line})", "cp_rebate_amount"=>"=SUM(I3:I{$line})", "cp_other_amount"=>"=SUM(J3:J{$line})", diff --git a/Application/Admin/Controller/GameMarginSetController.class.php b/Application/Admin/Controller/GameMarginSetController.class.php index 02729dfa4..7180077a3 100644 --- a/Application/Admin/Controller/GameMarginSetController.class.php +++ b/Application/Admin/Controller/GameMarginSetController.class.php @@ -61,8 +61,8 @@ class GameMarginSetController extends Controller { { $this->getInsideCompanyid(); $this->getAllGameSpend(); - $this->getCpStatement(); $this->getJuheStatement(); + $this->getCpStatement(); $this->getPuStatement(); $this->getPcStatement(); $this->setMarginCount(); @@ -91,7 +91,7 @@ class GameMarginSetController extends Controller { "is_refund"=>0, "payed_time"=>["between",[$this->beginThismonth,$this->endThismonth]] ]; - $this->adddata = M("Spend","tab_")->where($where)->group("relation_game_name")->getField("substring_index(game_name, '(', 1) relation_game_name,SUM(pay_amount) pay_amount",true); + $this->adddata = M("Spend","tab_")->where($where)->group("relation_game_name")->order("pay_amount desc")->getField("substring_index(game_name, '(', 1) relation_game_name,SUM(pay_amount) pay_amount",true); } /** * 获取聚合数据 @@ -347,13 +347,15 @@ class GameMarginSetController extends Controller { if( !array_key_exists($game,$this->adddata) ){ continue; } - $statement_money = round( $this->adddata[$game]['pay_amount'] / $val['pay_amount'] * $val['sum_money'],2); + $ratio = $val['first_ratio']; + $statement_money = round( $this->adddata[$game]['pay_amount'] * $ratio / 100,2); if( array_key_exists("cp_statement_amount",$this->adddata[$game]) ){ $this->adddata[$game]['cp_statement_amount'] += $statement_money; }else{ $this->adddata[$game]['cp_statement_amount'] = $statement_money; } $this->adddata[$game]['cp_promote_ratio'] = $val['promote_ratio']; + $this->adddata[$game]['cp_ratio'] = $ratio; } } } @@ -437,7 +439,7 @@ class GameMarginSetController extends Controller { $pay_amount = 0; foreach ($this->adddata as &$v) { foreach ($baseCell as $bkey=>$bval) array_key_exists($bkey,$v) ?: $v[$bkey] = $bval; - $v["cp_ratio"] = round($v["cp_statement_amount"]/$v['pay_amount'],4)*100; + // $v["cp_ratio"] = round($v["cp_statement_amount"]/$v['pay_amount'],4)*100; if($v["pc_pay_amount"] > 0){ $v["pc_ratio"] = round($v["pc_statement_amount"]/$v['pc_pay_amount'],4)*100; diff --git a/Application/Admin/View/GameMargin/marginView.html b/Application/Admin/View/GameMargin/marginView.html index 8ea0d64fa..46ee0e902 100644 --- a/Application/Admin/View/GameMargin/marginView.html +++ b/Application/Admin/View/GameMargin/marginView.html @@ -162,7 +162,7 @@ {$margin["relation_game_name"]} {$margin["pay_amount"]} {$margin["cp_promote_ratio"]}% - {$margin["cp_ratio"]}{$percent} + {$margin["cp_ratio"]}% {$margin["cp_statement_amount"]} {$margin["cp_rebate_ratio"]}% {$margin["cp_rebate_amount"]} @@ -198,7 +198,7 @@ 小计 {$count["pay_amount"]} - {$count["cp_ratio"]}{$percent} + {$count["cp_statement_amount"]} {$count["cp_rebate_amount"]} From 06f58821072c1b85aa0a87560d8fdfd6dfab3238 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Tue, 25 May 2021 15:23:58 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/GameMarginController.class.php | 44 ++++++++++++++++++- .../GameMarginSetController.class.php | 18 ++++---- .../Admin/View/GameMargin/marginView.html | 36 +++++++-------- 3 files changed, 69 insertions(+), 29 deletions(-) diff --git a/Application/Admin/Controller/GameMarginController.class.php b/Application/Admin/Controller/GameMarginController.class.php index 821d95f46..c124c08bf 100644 --- a/Application/Admin/Controller/GameMarginController.class.php +++ b/Application/Admin/Controller/GameMarginController.class.php @@ -89,7 +89,7 @@ class GameMarginController extends AdminController "jh_margin_ratio"=>0, ]; - foreach ($marginInfo as $v) { + foreach ($marginInfo as &$v) { $count['cp_statement_amount'] += $v['cp_statement_amount']; $count['cp_rebate_amount'] += $v['cp_rebate_amount']; $count['cp_other_amount'] += $v['cp_other_amount']; @@ -105,7 +105,8 @@ class GameMarginController extends AdminController $count['jh_pay_amount'] += $v['jh_pay_amount']; $count['jh_statement_amount'] += $v['jh_statement_amount']; $count['jh_margin_amount'] += $v['jh_margin_amount']; - + + $this->sprintfCell($v); } // $count['cp_ratio'] = round( $count['cp_statement_amount']/$count['pay_amount'] ,4)*100; @@ -120,6 +121,7 @@ class GameMarginController extends AdminController $count['jh_ratio'] = round( $count['jh_statement_amount']/$count['jh_pay_amount'] ,4)*100; $count['jh_margin_ratio'] = round( $count['jh_margin_amount']/$count['jh_pay_amount'] ,4)*100; // dd($count); + $this->sprintfCell($count); $this->assign("data",$marginInfo); $this->assign("count",$count); } @@ -274,6 +276,44 @@ class GameMarginController extends AdminController $this->ajaxReturn(["status"=>"0","msg"=>'任务添加失败']); } } + /** + * 格式化数据 + */ + private function sprintfCell(&$item) + { + $item['pay_amount'] = sprintf("%.2f",$item['pay_amount']); + $item['pu_pay_amount'] = sprintf("%.2f",$item['pu_pay_amount']); + $item['pc_pay_amount'] = sprintf("%.2f",$item['pc_pay_amount']); + $item['jh_pay_amount'] = sprintf("%.2f",$item['jh_pay_amount']); + + $item['cp_statement_amount'] = sprintf("%.2f",$item['cp_statement_amount']); + $item['pu_statement_amount'] = sprintf("%.2f",$item['pu_statement_amount']); + $item['pc_statement_amount'] = sprintf("%.2f",$item['pc_statement_amount']); + $item['jh_statement_amount'] = sprintf("%.2f",$item['jh_statement_amount']); + + $item['margin_amount'] = sprintf("%.2f",$item['margin_amount']); + $item['pu_margin_amount'] = sprintf("%.2f",$item['pu_margin_amount']); + $item['pc_margin_amount'] = sprintf("%.2f",$item['pc_margin_amount']); + $item['jh_margin_amount'] = sprintf("%.2f",$item['jh_margin_amount']); + + $item['cp_other_amount'] = sprintf("%.2f",$item['cp_other_amount']); + $item['cp_rebate_amount'] = sprintf("%.2f",$item['cp_rebate_amount']); + + if(array_key_exists('cp_ratio',$item)){ + $item['cp_ratio'] = sprintf("%.0f%%",$item['cp_ratio']); + $item['cp_rebate_ratio'] = sprintf("%.0f%%",$item['cp_rebate_ratio']); + } + + $item['pc_ratio'] = sprintf("%.0f%%",$item['pc_ratio']); + $item['pu_ratio'] = sprintf("%.0f%%",$item['pu_ratio']); + $item['jh_ratio'] = sprintf("%.0f%%",$item['jh_ratio']); + + $item['margin_ratio'] = sprintf("%.1f%%",$item['margin_ratio']); + $item['pu_margin_ratio'] = sprintf("%.1f%%",$item['pu_margin_ratio']); + $item['pc_margin_ratio'] = sprintf("%.1f%%",$item['pc_margin_ratio']); + $item['jh_margin_ratio'] = sprintf("%.1f%%",$item['jh_margin_ratio']); + $item['platform_margin_ratio'] = sprintf("%.1f%%",$item['platform_margin_ratio']); + } } \ No newline at end of file diff --git a/Application/Admin/Controller/GameMarginSetController.class.php b/Application/Admin/Controller/GameMarginSetController.class.php index 7180077a3..a1b1abf2c 100644 --- a/Application/Admin/Controller/GameMarginSetController.class.php +++ b/Application/Admin/Controller/GameMarginSetController.class.php @@ -442,31 +442,31 @@ class GameMarginSetController extends Controller { // $v["cp_ratio"] = round($v["cp_statement_amount"]/$v['pay_amount'],4)*100; if($v["pc_pay_amount"] > 0){ - $v["pc_ratio"] = round($v["pc_statement_amount"]/$v['pc_pay_amount'],4)*100; + $v["pc_ratio"] = round($v["pc_statement_amount"]/$v['pc_pay_amount'],2)*100; $v["pc_margin_amount"] = round($v["pc_pay_amount"]*(1-$v['cp_promote_ratio']/100)*(100-$v["cp_ratio"]-$v['cp_rebate_ratio']-$v["pc_ratio"])/100,2); - $v["pc_margin_ratio"] = round($v["pc_margin_amount"]/$v['pc_pay_amount'],4)*100; + $v["pc_margin_ratio"] = round($v["pc_margin_amount"]/$v['pc_pay_amount'],3)*100; } if ($v["pu_pay_amount"] > 0) { - $v["pu_ratio"] = round($v["pu_statement_amount"]/$v['pu_pay_amount'],4)*100; + $v["pu_ratio"] = round($v["pu_statement_amount"]/$v['pu_pay_amount'],2)*100; $v["pu_margin_amount"] = round($v["pu_pay_amount"]-$v["pu_pay_amount"]*(1-$v['cp_promote_ratio']/100)*($v["cp_ratio"]+$v['cp_rebate_ratio'])/100-$v["pu_statement_amount"],2); - $v["pu_margin_ratio"] = round($v["pu_margin_amount"]/$v['pu_pay_amount'],4)*100; + $v["pu_margin_ratio"] = round($v["pu_margin_amount"]/$v['pu_pay_amount'],3)*100; } - $v['platform_margin_ratio'] = round(($v['pay_amount']-$v['jh_pay_amount']-$v['cp_statement_amount']-$v['cp_rebate_amount']-$v['cp_other_amount']-$v['pc_statement_amount']-$v['pu_statement_amount'])/($v['pay_amount']-$v['jh_pay_amount']),4)*100; + $v['platform_margin_ratio'] = round(($v['pay_amount']-$v['jh_pay_amount']-$v['cp_statement_amount']-$v['cp_rebate_amount']-$v['cp_other_amount']-$v['pc_statement_amount']-$v['pu_statement_amount'])/($v['pay_amount']-$v['jh_pay_amount']),3)*100; if($v['jh_pay_amount'] > 0){ - $v["jh_ratio"] = round($v["jh_statement_amount"]/$v['jh_pay_amount'],4)*100; + $v["jh_ratio"] = round($v["jh_statement_amount"]/$v['jh_pay_amount'],2)*100; $v["jh_margin_amount"] = round( $v["jh_statement_amount"]-$v["jh_pay_amount"]*(1-$v['cp_promote_ratio']/100)*($v["cp_ratio"]+$v['cp_rebate_ratio'])/100 ,2); - $v["jh_margin_ratio"] = round($v["jh_margin_amount"]/$v['jh_pay_amount'],4)*100; + $v["jh_margin_ratio"] = round($v["jh_margin_amount"]/$v['jh_pay_amount'],3)*100; } $v['margin_amount'] = round( ($v['pay_amount']-$v['cp_statement_amount']-$v['cp_rebate_amount']-$v['cp_other_amount']-$v['pc_statement_amount']-$v['pu_statement_amount']+$v['jh_statement_amount']),2); - $v['margin_ratio'] = round($v['margin_amount']/$v['pay_amount'],4)*100; + $v['margin_ratio'] = round($v['margin_amount']/$v['pay_amount'],3)*100; $pay_amount += $v['pay_amount']; $margin_amount += $v['margin_amount']; } - $margin_ratio = round( $margin_amount/$pay_amount ,4)*100; + $margin_ratio = round( $margin_amount/$pay_amount ,3)*100; //保存数据库 $adddata = [ "margin_ratio"=>$margin_ratio, diff --git a/Application/Admin/View/GameMargin/marginView.html b/Application/Admin/View/GameMargin/marginView.html index 46ee0e902..5ff4d7f17 100644 --- a/Application/Admin/View/GameMargin/marginView.html +++ b/Application/Admin/View/GameMargin/marginView.html @@ -162,28 +162,28 @@ {$margin["relation_game_name"]} {$margin["pay_amount"]} {$margin["cp_promote_ratio"]}% - {$margin["cp_ratio"]}% + {$margin["cp_ratio"]} {$margin["cp_statement_amount"]} - {$margin["cp_rebate_ratio"]}% + {$margin["cp_rebate_ratio"]} {$margin["cp_rebate_amount"]} {$margin["cp_other_amount"]} {$margin["pc_pay_amount"]} - {$margin["pc_ratio"]}{$percent} + {$margin["pc_ratio"]} {$margin["pc_statement_amount"]} {$margin["pc_margin_amount"]} - {$margin["pc_margin_ratio"]}{$percent} + {$margin["pc_margin_ratio"]} {$margin["pu_pay_amount"]} - {$margin["pu_ratio"]}{$percent} + {$margin["pu_ratio"]} {$margin["pu_statement_amount"]} {$margin["pu_margin_amount"]} - {$margin["pu_margin_ratio"]}{$percent} - {$margin["platform_margin_ratio"]}{$percent} + {$margin["pu_margin_ratio"]} + {$margin["platform_margin_ratio"]} {$margin["jh_pay_amount"]} - {$margin["jh_ratio"]}{$percent} + {$margin["jh_ratio"]} {$margin["jh_statement_amount"]} {$margin["jh_margin_amount"]} - {$margin["jh_margin_ratio"]}{$percent} - {$margin["margin_ratio"]}{$percent} + {$margin["jh_margin_ratio"]} + {$margin["margin_ratio"]} {$margin["margin_amount"]} @@ -204,22 +204,22 @@ {$count["cp_rebate_amount"]} {$count["cp_other_amount"]} {$count["pc_pay_amount"]} - {$count["pc_ratio"]}{$percent} + {$count["pc_ratio"]} {$count["pc_statement_amount"]} {$count["pc_margin_amount"]} - {$count["pc_margin_ratio"]}{$percent} + {$count["pc_margin_ratio"]} {$count["pu_pay_amount"]} - {$count["pu_ratio"]}{$percent} + {$count["pu_ratio"]} {$count["pu_statement_amount"]} {$count["pu_margin_amount"]} - {$count["pu_margin_ratio"]}{$percent} - {$count["platform_margin_ratio"]}{$percent} + {$count["pu_margin_ratio"]} + {$count["platform_margin_ratio"]} {$count["jh_pay_amount"]} - {$count["jh_ratio"]}{$percent} + {$count["jh_ratio"]} {$count["jh_statement_amount"]} {$count["jh_margin_amount"]} - {$count["jh_margin_ratio"]}{$percent} - {$count["margin_ratio"]}{$percent} + {$count["jh_margin_ratio"]} + {$count["margin_ratio"]} {$count["margin_amount"]} From 1728886f1fbee8fb69e14103377aced7e004cb14 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Tue, 25 May 2021 16:14:09 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8A=E6=B8=B8?= =?UTF-8?q?=E6=AF=94=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Controller/GameMarginSetController.class.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Application/Admin/Controller/GameMarginSetController.class.php b/Application/Admin/Controller/GameMarginSetController.class.php index a1b1abf2c..4f2d2f8a9 100644 --- a/Application/Admin/Controller/GameMarginSetController.class.php +++ b/Application/Admin/Controller/GameMarginSetController.class.php @@ -347,7 +347,11 @@ class GameMarginSetController extends Controller { if( !array_key_exists($game,$this->adddata) ){ continue; } - $ratio = $val['first_ratio']; + if($v['pay_type'] == 1){ + $ratio = $val['first_ratio']; + }else{ + $ratio = $val['second_ratio']; + } $statement_money = round( $this->adddata[$game]['pay_amount'] * $ratio / 100,2); if( array_key_exists("cp_statement_amount",$this->adddata[$game]) ){ $this->adddata[$game]['cp_statement_amount'] += $statement_money; From 7aa29e8f3fc89a5241f3a32d6be3c40aef694b64 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Tue, 25 May 2021 17:54:26 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=AF=8F=E6=9C=88?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=8F=8A=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/GameMarginController.class.php | 160 +++++++++++++++++- .../Admin/View/GameMargin/marginView.html | 8 +- Public/Admin/excel/gamemargin.xlsx | Bin 0 -> 11877 bytes 3 files changed, 157 insertions(+), 11 deletions(-) create mode 100644 Public/Admin/excel/gamemargin.xlsx diff --git a/Application/Admin/Controller/GameMarginController.class.php b/Application/Admin/Controller/GameMarginController.class.php index c124c08bf..9670fa32c 100644 --- a/Application/Admin/Controller/GameMarginController.class.php +++ b/Application/Admin/Controller/GameMarginController.class.php @@ -45,17 +45,12 @@ class GameMarginController extends AdminController if (isset($_REQUEST['export']) && $_REQUEST['export']==1){ $is_export = true; - $this->export($info); - $this->assign("percent",''); + $this->marginExport($info); }else{ $is_export= false; $this->marginCount($info); - $this->assign("percent",'%'); } - - $this->assign("year", $info['count_year']); - $this->assign("month", $info['count_month']); $this->assign("id", $id); $this->assign("is_export",$is_export); $this->display(); @@ -105,10 +100,13 @@ class GameMarginController extends AdminController $count['jh_pay_amount'] += $v['jh_pay_amount']; $count['jh_statement_amount'] += $v['jh_statement_amount']; $count['jh_margin_amount'] += $v['jh_margin_amount']; - + $v['year'] = $info['count_year']; + $v['month'] = $info['count_month']; $this->sprintfCell($v); } // $count['cp_ratio'] = round( $count['cp_statement_amount']/$count['pay_amount'] ,4)*100; + $count['year'] = $info['count_year']; + $count['month'] = $info['count_month']; $count['pu_ratio'] = round( $count['pu_statement_amount']/$count['pu_pay_amount'] ,4)*100; $count['pu_margin_ratio'] = round( $count['pu_margin_amount']/$count['pu_pay_amount'] ,4)*100; @@ -125,6 +123,154 @@ class GameMarginController extends AdminController $this->assign("data",$marginInfo); $this->assign("count",$count); } + private function marginExport($info) + { + header("Content-type: text/html; charset=utf-8"); + error_reporting(E_ALL); + ini_set('display_errors', TRUE); + ini_set('display_startup_errors', TRUE); + + define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '
'); + + Vendor("PHPExcel.PHPExcel"); + $objReader = \PHPExcel_IOFactory::createReader('excel2007'); + //设置模板文件 + $objPHPExcel = $objReader->load("Public/Admin/excel/gamemargin.xlsx"); + $marginInfo = json_decode($info['margin_info'],true); + $line = 3; + $objPHPExcel->getActiveSheet()->insertNewRowBefore($line+1,count($marginInfo)-1); + + foreach ($marginInfo as &$v) { + // $v["cp_ratio"] = "=ROUND(G{$line}/D{$line},4)"; + + if($v["pc_pay_amount"] > 0){ + $v["pc_ratio"] ="=ROUND(M{$line}/K{$line},2)"; + $v["pc_margin_amount"] = "=ROUND((K{$line}*(1-E{$line})*(1-F{$line}-H{$line}-L{$line})),2)"; + $v["pc_margin_ratio"] ="=ROUND(N{$line}/K{$line},3)"; + } + if ($v["pu_pay_amount"] > 0) { + $v["pu_ratio"] ="=ROUND(R{$line}/P{$line},2)"; + $v["pu_margin_amount"] = "=ROUND((P{$line}-P{$line}*(1-E{$line})*(F{$line}+H{$line})-R{$line}),2)"; + $v["pu_margin_ratio"] = "=ROUND(S{$line}/P{$line},3)"; + } + $v['platform_margin_ratio'] = "=ROUND((D{$line}-V{$line}-G{$line}-I{$line}-J{$line}-M{$line}-R{$line})/(D{$line}-V{$line}),3)"; + + if($v['jh_pay_amount'] > 0){ + $v["jh_ratio"] ="=ROUND(X{$line}/V{$line},2)"; + $v["jh_margin_amount"] = "=ROUND((X{$line}-V{$line}*(1-E{$line})*(F{$line}+H{$line})),2)"; + $v["jh_margin_ratio"] = "=ROUND(Y{$line}/V{$line},3)"; + } + + $v['margin_amount'] = "=ROUND((D{$line}-G{$line}-I{$line}-J{$line}-M{$line}-R{$line}+X{$line}),2)"; + $v['margin_ratio'] = "=ROUND(AB{$line}/D{$line},3)"; + + + $objPHPExcel->getActiveSheet() + ->setCellValue('A'.$line, $info['count_year']) + ->setCellValue('B'.$line, $info['count_month']) + ->setCellValue('C'.$line, $v['relation_game_name']) + ->setCellValue('D'.$line, $v['pay_amount']) + ->setCellValue('E'.$line, $v['cp_promote_ratio']/100) + ->setCellValue('F'.$line, $v['cp_ratio']/100) + ->setCellValue('G'.$line, $v['cp_statement_amount']) + ->setCellValue('H'.$line, $v['cp_rebate_ratio']) + ->setCellValue('I'.$line, $v['cp_rebate_amount']) + ->setCellValue('J'.$line, $v['cp_other_amount']) + ->setCellValue('K'.$line, $v['pc_pay_amount']) + ->setCellValue('L'.$line, $v['pc_ratio']) + ->setCellValue('M'.$line, $v['pc_statement_amount']) + ->setCellValue('N'.$line, $v['pc_margin_amount']) + ->setCellValue('O'.$line, $v['pc_margin_ratio']) + ->setCellValue('P'.$line, $v['pu_pay_amount']) + ->setCellValue('Q'.$line, $v['pu_ratio']) + ->setCellValue('R'.$line, $v['pu_statement_amount']) + ->setCellValue('S'.$line, $v['pu_margin_amount']) + ->setCellValue('T'.$line, $v['pu_margin_ratio']) + ->setCellValue('U'.$line, $v['platform_margin_ratio']) + ->setCellValue('V'.$line, $v['jh_pay_amount']) + ->setCellValue('W'.$line, $v['jh_ratio']) + ->setCellValue('X'.$line, $v['jh_statement_amount']) + ->setCellValue('Y'.$line, $v['jh_margin_amount']) + ->setCellValue('Z'.$line, $v['jh_margin_ratio']) + ->setCellValue('AA'.$line, $v['margin_ratio']) + ->setCellValue('AB'.$line, $v['margin_amount']); + $line ++; + } + + $countLine = $line; + $line--; + + $count = [ + "pay_amount"=>"=SUM(D3:D{$line})", + // "cp_ratio"=>"=ROUND(G{$countLine}/D{$countLine},4)", + "cp_statement_amount"=>"=SUM(G3:G{$line})", + "cp_rebate_amount"=>"=SUM(I3:I{$line})", + "cp_other_amount"=>"=SUM(J3:J{$line})", + + "pc_pay_amount"=>"=SUM(K3:K{$line})", + "pc_ratio"=>"=ROUND(M{$countLine}/K{$countLine},4)", + "pc_statement_amount"=>"=SUM(M3:M{$line})", + "pc_margin_amount"=>"=SUM(N3:N{$line})", + "pc_margin_ratio"=>"=ROUND(N{$countLine}/K{$countLine},4)", + + "pu_pay_amount"=>"=SUM(P3:P{$line})", + "pu_statement_amount"=>"=SUM(R3:R{$line})", + "pu_ratio"=>"=ROUND(R{$countLine}/P{$countLine},4)", + "pu_margin_amount"=>"=SUM(S3:S{$line})", + "pu_margin_ratio"=>"=ROUND(S{$countLine}/P{$countLine},4)", + + "platform_margin_ratio"=>"=ROUND((D{$countLine}-V{$countLine}-G{$countLine}-I{$countLine}-J{$countLine}-M{$countLine}-R{$countLine})/(D{$countLine}-V{$countLine}),4)", + + "jh_pay_amount"=>"=SUM(V3:V{$line})", + "jh_statement_amount"=>"=SUM(X3:X{$line})", + "jh_ratio"=>"=ROUND(X{$countLine}/V{$countLine},4)", + "jh_margin_amount"=>"=SUM(Y3:Y{$line})", + "jh_margin_ratio"=>"=ROUND(Y{$countLine}/V{$countLine},4)", + "margin_ratio"=>"=ROUND(AB{$countLine}/D{$countLine},4)", + "margin_amount"=>"=SUM(AB3:AB{$line})", + + ]; + + $line ++; + $objPHPExcel->getActiveSheet() + ->setCellValue('A'.$line, $info['count_year']) + ->setCellValue('B'.$line, $info['count_month']) + ->setCellValue('D'.$line, $count['pay_amount']) + ->setCellValue('G'.$line, $count['cp_statement_amount']) + ->setCellValue('I'.$line, $count['cp_rebate_amount']) + ->setCellValue('J'.$line, $count['cp_other_amount']) + ->setCellValue('K'.$line, $count['pc_pay_amount']) + ->setCellValue('L'.$line, $count['pc_ratio']) + ->setCellValue('M'.$line, $count['pc_statement_amount']) + ->setCellValue('N'.$line, $count['pc_margin_amount']) + ->setCellValue('O'.$line, $count['pc_margin_ratio']) + ->setCellValue('P'.$line, $count['pu_pay_amount']) + ->setCellValue('Q'.$line, $count['pu_ratio']) + ->setCellValue('R'.$line, $count['pu_statement_amount']) + ->setCellValue('S'.$line, $count['pu_margin_amount']) + ->setCellValue('T'.$line, $count['pu_margin_ratio']) + ->setCellValue('U'.$line, $count['platform_margin_ratio']) + ->setCellValue('V'.$line, $count['jh_pay_amount']) + ->setCellValue('W'.$line, $count['jh_ratio']) + ->setCellValue('X'.$line, $count['jh_statement_amount']) + ->setCellValue('Y'.$line, $count['jh_margin_amount']) + ->setCellValue('Z'.$line, $count['jh_margin_ratio']) + ->setCellValue('AA'.$line, $count['margin_ratio']) + ->setCellValue('AB'.$line, $count['margin_amount']); + + $fileName = "{$info['count_year']}-{$info['count_month']}毛利分析表"; + ob_end_clean();//清除缓冲区,避免乱码 + header('pragma:public'); + header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$fileName.'".xlsx'); + header("Content-Disposition:attachment;filename={$fileName}.xlsx");//attachment新窗口打印inline本窗口打印 + $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'excel2007'); + $objWriter->save('php://output'); + exit; + + + } + + private function export($info) { $marginInfo = json_decode($info['margin_info'],true); diff --git a/Application/Admin/View/GameMargin/marginView.html b/Application/Admin/View/GameMargin/marginView.html index 5ff4d7f17..7bb392f23 100644 --- a/Application/Admin/View/GameMargin/marginView.html +++ b/Application/Admin/View/GameMargin/marginView.html @@ -157,8 +157,8 @@
- {$year} - {$month} + {$margin["year"]} + {$margin["month"]} {$margin["relation_game_name"]} {$margin["pay_amount"]} {$margin["cp_promote_ratio"]}% @@ -193,8 +193,8 @@ - {$year} - {$month} + {$count["year"]} + {$count["month"]} 小计 {$count["pay_amount"]} diff --git a/Public/Admin/excel/gamemargin.xlsx b/Public/Admin/excel/gamemargin.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4899d84d7b68a56097052cb77c16c2616ffca86b GIT binary patch literal 11877 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 literal 0 HcmV?d00001 From 736e818bd5da0d373b564eeb35d2d05f4abd1679 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Tue, 25 May 2021 17:56:45 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Public/Admin/excel/gamemargin.xlsx | Bin 11877 -> 11948 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Public/Admin/excel/gamemargin.xlsx b/Public/Admin/excel/gamemargin.xlsx index 4899d84d7b68a56097052cb77c16c2616ffca86b..7f84aeed74e24f9d45df2b1608714f670fdf2c7d 100644 GIT binary patch delta 5302 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 IDgXcg0QWG>f&c&j delta 5216 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