From 58c405e9142db87debea8e293f132046abccec7c Mon Sep 17 00:00:00 2001
From: chenzhi <“chenzhi063@qq.com>
Date: Tue, 5 Nov 2019 09:01:27 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B4=A2=E5=8A=A1?=
 =?UTF-8?q?=E8=81=9A=E5=90=88=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../SpendCountSetController.class.php         | 229 +++++++-----------
 1 file changed, 86 insertions(+), 143 deletions(-)

diff --git a/Application/Admin/Controller/SpendCountSetController.class.php b/Application/Admin/Controller/SpendCountSetController.class.php
index eb0dd284b..6d8f3709f 100644
--- a/Application/Admin/Controller/SpendCountSetController.class.php
+++ b/Application/Admin/Controller/SpendCountSetController.class.php
@@ -23,6 +23,7 @@ class SpendCountSetController extends \Think\Controller
         $this->model =M("spend_count",'tab_');
         $this->usermodel =M("spend_user_count",'tab_');
         $this->monthmodel =M("spend_month_count",'tab_');
+        $this->gamemodel =M("spend_count",'tab_');
 
     }
     /**
@@ -101,147 +102,89 @@ class SpendCountSetController extends \Think\Controller
         $this->getRoot();
         # code...
     }
-    //获取游戏现金流水
-    protected function getCashData()
-    {
-        if(!$this->continue){
-            die("api error");
-        }
-        $map = array(
-            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
-            "spend.pay_status"=>1,
-            "pay_way"=>array("GT",0)
-        );
-        $field = "IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
-                  spend.promote_id,spend.promote_account,spend.game_id,spend.game_name,
-                  IFNULL(promote.parent_id,0) parent_id,promote.parent_name,sum(pay_amount) cash_count,
-                  '{$this->date}' as count_date,'{$this->nowdata}' as create_time";
-        //获取现金
-        $cashRes = M()
-        ->table("tab_spend spend")
-        ->field($field)
-        ->where($map)
-        ->join("tab_promote promote ON spend.promote_id = promote.id","left")
-        ->join("tab_game game ON spend.game_id = game.id","left")
-        ->join("tab_partner partner ON partner.id = game.partner_id","left")
-        ->group('spend.promote_id,spend.game_id')
-        ->select();
-        if(!empty($cashRes)){
-            $dbres = $this->model->addAll($cashRes);
-            if(!$dbres){
-                $this->model->rollback();
-                die("error");
-            }
-        }
-        # code...
-    }
-    //获取平台币聚合
-    protected function getBalanceData()
-    {
-        if(!$this->continue){
-            die("api error");
-        }
-        $map = array(
-            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
-            "spend.pay_status"=>1,
-            "pay_way"=> array("EQ",0)
-        );
-        $field = "IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
-                spend.promote_id,spend.promote_account,spend.game_id,spend.game_name,
-                IFNULL(promote.parent_id,0) parent_id,promote.parent_name,sum(pay_amount) balance_coin_count,
-                '{$this->date}' as count_date,'{$this->nowdata}' as create_time";
-        $balanceRes = M()
-        ->table("tab_spend spend")
-        ->field($field)
-        ->where($map)
-        ->join("tab_promote promote ON spend.promote_id = promote.id","left")
-        ->join("tab_game game ON spend.game_id = game.id","left")
-        ->join("tab_partner partner ON partner.id = game.partner_id","left")
-        ->group('spend.promote_id,spend.game_id')
-        ->select();
-        //集中两个表
-        if(!empty($balanceRes)){
-            
-            for ($i=0; $i < count($balanceRes); $i++) { 
-                # code...
-                $tempmap = array(
-                    "game_id"=>$balanceRes[$i]['game_id'],
-                    "promote_id"=>$balanceRes[$i]['promote_id'],
-                    "count_date"=>$this->date
-                );
-                $dbres = $this->model->where($tempmap)->find();
-                if(!$dbres){
-                    //不存在
-                    $tempdbres = $this->model->add($balanceRes[$i]);
-                    if(!$tempdbres){
-                        $this->model->rollback();
-                        die("error");
-                    }
-                }else{
-                    $dbres["balance_coin_count"] =   $balanceRes[$i]['balance_coin_count'];
-                    $tempdbres = $this->model->save($dbres);
-                    if(!$tempdbres){
-                        $this->model->rollback();
-                        die("error");
-                    }
-                }
-            }
-        }
-        # code...
-    }
-    //获取绑定币充值
-    protected function getInsideData()
-    {
-        if(!$this->continue){
-            die("api error");
-        }
-        $map = array(
-            "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
-            "spend.pay_status"=>1,
-            "pay_way"=> array("LT",0)
-        );
-        $field = "IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
-                spend.promote_id,spend.promote_account,spend.game_id,spend.game_name,
-                IFNULL(promote.parent_id,0) parent_id,promote.parent_name,sum(pay_amount) inside_cash_count,
-                '{$this->date}' as count_date,'{$this->nowdata}' as create_time";
-        $balanceRes = M()
-        ->table("tab_spend spend")
-        ->field($field)
-        ->where($map)
-        ->join("tab_promote promote ON spend.promote_id = promote.id","left")
-        ->join("tab_game game ON spend.game_id = game.id","left")
-        ->join("tab_partner partner ON partner.id = game.partner_id","left")
-        ->group('spend.promote_id,spend.game_id')
-        ->select();
-        //集中两个表
-        if(!empty($balanceRes)){
-            
-            for ($i=0; $i < count($balanceRes); $i++) { 
-                # code...
-                $tempmap = array(
-                    "game_id"=>$balanceRes[$i]['game_id'],
-                    "promote_id"=>$balanceRes[$i]['promote_id'],
-                    "count_date"=>$this->date
-                );
-                $dbres = $this->model->where($tempmap)->find();
-                if(!$dbres){
-                    //不存在
-                    $tempdbres = $this->model->add($balanceRes[$i]);
-                    if(!$tempdbres){
-                        $this->model->rollback();
-                        die("error");
-                    }
-                }else{
-                    $dbres["inside_cash_count"] =   $balanceRes[$i]['inside_cash_count'];
-                    $tempdbres = $this->model->save($dbres);
-                    if(!$tempdbres){
-                        $this->model->rollback();
-                        die("error");
-                    }
-                }
-            }
-        }
-    }
+   //获取游戏现金流水
+   protected function getCashData()
+   {
+       $this->createGameCount("cash_count");
+   }
+   //获取平台币聚合
+   protected function getBalanceData()
+   {
+       $this->createGameCount("balance_coin_count");
+   }
+   //获取绑定币充值
+   protected function getInsideData()
+   {
+       $this->createGameCount("inside_cash_count");
+       
+   }
+    protected function createGameCount($type)
+   {
+       $map = array(
+           "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
+           "spend.pay_status"=>1
+       );
+       
+       if($type == "cash_count"){
+           //现金统计
+           $map['pay_way'] = array("GT",0);
+       }elseif($type == "balance_coin_count"){
+           $map['pay_way']= array("EQ",0);
+       }elseif($type == "inside_cash_count"){
+           $map['pay_way']= array("LT",0);
+       }
+       $field = "IFNULL(game.partner_id,0) partner_id,partner.partner partner_name,
+               spend.promote_id,spend.promote_account,spend.game_id,spend.game_name,sum(pay_amount) {$type},
+                IFNULL(promote.parent_id,0) parent_id,promote.parent_name,
+               '{$this->date}' as count_date,'{$this->nowdata}' as create_time";
+       $spendRes = M()
+       ->table("tab_spend spend")
+       ->field($field)
+       ->where($map)
+       ->join("tab_promote promote ON spend.promote_id = promote.id","left")
+       ->join("tab_game game ON spend.game_id = game.id","left")
+       ->join("tab_partner partner ON partner.id = game.partner_id","left")
+       ->group('spend.promote_id,spend.game_id')
+       ->select();
+       if(empty($spendRes)){
+           return ;
+       }
+       //集中两个表
+       if($type == "cash_count"){
+           $dbres = $this->gamemodel->addAll($spendRes);
+           if(!$dbres){
+               $this->model->rollback();
+               die("error");
+           }
+       }else{
+           for ($i=0; $i < count($spendRes); $i++) { 
+               $spendRes[$i][$type] || $spendRes[$i][$type]=0;
+               # code...
+               $tempmap = array(
+                   "game_id"=>$spendRes[$i]['game_id'],
+                   "promote_id"=>$spendRes[$i]['promote_id'],
+                   "count_date"=>$this->date
+               );
+               $dbres = $this->gamemodel->where($tempmap)->find();
+               if(!$dbres){
+                   //不存在
+                   $tempdbres = $this->gamemodel->add($spendRes[$i]);
+                   if(!$tempdbres){
+                       $this->model->rollback();
+                       die("error");
+                   }
+               }else{
+                   $dbres[$type] = $dbres[$type]-0+$spendRes[$i][$type];
+                   $tempdbres = $this->gamemodel->save($dbres);
+                   if($tempdbres === false){
+                       $this->model->rollback();
+                       die("error");
+                   }
+               }
+           }
+       }
+       # code...
+   }
 
     protected function getRoot()
     {
@@ -252,7 +195,7 @@ class SpendCountSetController extends \Think\Controller
             "parent_id"=>array("GT",0),
             "count_date"=>$this->date
         );
-        $user = $this->model->field("parent_id,promote_id")->where($map)->group("promote_id")->select();
+        $user = $this->gamemodel->field("parent_id,promote_id")->where($map)->group("promote_id")->select();
         $Promote=M("promote","tab_");
         for ($i=0; $i < count($user); $i++) { 
             # code...
@@ -267,7 +210,7 @@ class SpendCountSetController extends \Think\Controller
                 "promote_id"=>$user[$i]['promote_id'],
                 "count_date"=>$this->date
             );
-            $tempdbres = $this->model->where($where)->save($root);
+            $tempdbres = $this->gamemodel->where($where)->save($root);
             if(!$tempdbres){
                 $this->model->rollback();
                 die("setRoot error");

From 0ae24bf2cd7a444a33136bbc5fe131f5e18ac35e Mon Sep 17 00:00:00 2001
From: chenzhi <“chenzhi063@qq.com>
Date: Tue, 5 Nov 2019 10:02:50 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B4=A2=E5=8A=A1?=
 =?UTF-8?q?=E8=81=9A=E5=90=88=E6=8E=A5=E5=8F=A32?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../SpendCountSetController.class.php         | 55 +++++++++++++------
 Data/update.sql                               |  7 +++
 2 files changed, 45 insertions(+), 17 deletions(-)

diff --git a/Application/Admin/Controller/SpendCountSetController.class.php b/Application/Admin/Controller/SpendCountSetController.class.php
index 6d8f3709f..2ed4f922c 100644
--- a/Application/Admin/Controller/SpendCountSetController.class.php
+++ b/Application/Admin/Controller/SpendCountSetController.class.php
@@ -239,19 +239,22 @@ class SpendCountSetController extends \Think\Controller
         $month = $this->date;
         $from = "
             (
-            SELECT root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE root_id > 0 and count_date='{$month}' group by root_id
+            SELECT root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count FROM tab_spend_count WHERE root_id > 0 and count_date='{$month}' group by root_id
             UNION ALL
-            SELECT promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count  FROM tab_spend_count WHERE parent_id = 0 and count_date='{$month}' group by promote_id 
+            SELECT promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count  FROM tab_spend_count WHERE parent_id = 0 and count_date='{$month}' group by promote_id 
             UNION ALL
-            SELECT parent_id,parent_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id > 0 and root_id = 0 and count_date='{$month}' group by parent_id 
+            SELECT parent_id,parent_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count FROM tab_spend_count WHERE parent_id > 0 and root_id = 0 and count_date='{$month}' group by parent_id 
             )
         ";
         $subQueryAll = M()->table($from." a")
-                ->field('root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count')
+                ->field('root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(bind_coin_count) bind_coin_count')
                 ->group("a.root_id")
                 // ->having("cash_count > 0 OR balance_coin_count > 0")
                 ->select();
         for ($i=0; $i<count($subQueryAll); $i++) { 
+            $subQueryAll[$i]['bind_coin_count'] || $subQueryAll[$i]['bind_coin_count']=0;
+            $subQueryAll[$i]['cash_count'] || $subQueryAll[$i]['cash_count']=0;
+            $subQueryAll[$i]['balance_coin_count'] || $subQueryAll[$i]['balance_coin_count']=0;
             $adddata = array(
                 "promote_id"=>$subQueryAll[$i]['root_id'],
                 "promote_account"=>$subQueryAll[$i]['root_name'],
@@ -261,7 +264,8 @@ class SpendCountSetController extends \Think\Controller
                 "root_name"=>'官方渠道',
                 "cash_count"=>$subQueryAll[$i]['cash_count'],
                 "balance_coin_count"=>$subQueryAll[$i]['balance_coin_count'],
-                "all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count'],
+                "bind_coin_count"=>$subQueryAll[$i]['bind_coin_count'],
+                "all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count']-0+$subQueryAll[$i]['bind_coin_count'],
                 "count_date"=>$this->date,
                 "create_time"=>$this->nowdata
             );
@@ -281,17 +285,20 @@ class SpendCountSetController extends \Think\Controller
         //获取数据
         $from = "
             (
-            SELECT parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE root_id > 0 and count_date='{$month}' group by parent_id
+            SELECT parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count FROM tab_spend_count WHERE root_id > 0 and count_date='{$month}' group by parent_id
             UNION 
-            SELECT promote_id,promote_account,parent_id,parent_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id >0 and root_id = 0 and count_date='{$month}' group by promote_id 
+            SELECT promote_id,promote_account,parent_id,parent_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count FROM tab_spend_count WHERE parent_id >0 and root_id = 0 and count_date='{$month}' group by promote_id 
             )
         ";
         $subQueryAll = M()->table($from." a")
-                    ->field('parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count')
+                    ->field('parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(bind_coin_count) bind_coin_count')
                     ->group("a.parent_id")
                     // ->having("cash_count > 0 or balance_coin_count > 0 ")
                     ->select();
         for ($i=0; $i<count($subQueryAll); $i++) { 
+            $subQueryAll[$i]['bind_coin_count'] || $subQueryAll[$i]['bind_coin_count']=0;
+            $subQueryAll[$i]['cash_count'] || $subQueryAll[$i]['cash_count']=0;
+            $subQueryAll[$i]['balance_coin_count'] || $subQueryAll[$i]['balance_coin_count']=0;
             $adddata = array(
                 "promote_id"=>$subQueryAll[$i]['parent_id'],
                 "promote_account"=>$subQueryAll[$i]['parent_name'],
@@ -301,7 +308,8 @@ class SpendCountSetController extends \Think\Controller
                 "root_name"=>'官方渠道',
                 "cash_count"=>$subQueryAll[$i]['cash_count'],
                 "balance_coin_count"=>$subQueryAll[$i]['balance_coin_count'],
-                "all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count'],
+                "bind_coin_count"=>$subQueryAll[$i]['bind_coin_count'],
+                "all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count']-0+$subQueryAll[$i]['bind_coin_count'],
                 "count_date"=>$this->date,
                 "create_time"=>$this->nowdata
             );
@@ -321,7 +329,7 @@ class SpendCountSetController extends \Think\Controller
         //获取数据
         $from = "
             (
-                SELECT promote_id,promote_account,parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count FROM tab_spend_count WHERE parent_id > 0 and root_id > 0  and count_date='{$month}' group by promote_id 
+                SELECT promote_id,promote_account,parent_id,parent_name,root_id,root_name,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count FROM tab_spend_count WHERE parent_id > 0 and root_id > 0  and count_date='{$month}' group by promote_id 
             )
         ";
         $subQueryAll = M()->table($from." a")
@@ -330,6 +338,9 @@ class SpendCountSetController extends \Think\Controller
                     // ->having("cash_count > 0 or balance_coin_count > 0")
                     ->select();
         for ($i=0; $i<count($subQueryAll); $i++) { 
+            $subQueryAll[$i]['bind_coin_count'] || $subQueryAll[$i]['bind_coin_count']=0;
+            $subQueryAll[$i]['cash_count'] || $subQueryAll[$i]['cash_count']=0;
+            $subQueryAll[$i]['balance_coin_count'] || $subQueryAll[$i]['balance_coin_count']=0;
             $adddata = array(
                 "promote_id"=>$subQueryAll[$i]['promote_id'],
                 "promote_account"=>$subQueryAll[$i]['promote_account'],
@@ -339,7 +350,8 @@ class SpendCountSetController extends \Think\Controller
                 "root_name"=>$subQueryAll[$i]['root_name'],
                 "cash_count"=>$subQueryAll[$i]['cash_count'],
                 "balance_coin_count"=>$subQueryAll[$i]['balance_coin_count'],
-                "all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count'],
+                "bind_coin_count"=>$subQueryAll[$i]['bind_coin_count'],
+                "all_count"=>$subQueryAll[$i]['cash_count']-0+$subQueryAll[$i]['balance_coin_count']-0+$subQueryAll[$i]['bind_coin_count'],
                 "count_date"=>$this->date,
                 "create_time"=>$this->nowdata
             );
@@ -390,20 +402,20 @@ class SpendCountSetController extends \Think\Controller
             "parent_id"=>0,
             "root_id"=>0,
             "inside_cash_count"=>$inside_cash_count,
-            "all_count"=>$inside_cash_count,
+            // "all_count"=>$inside_cash_count,
             "count_date"=>$this->date,
             "create_time"=>$this->nowdata
         );
         $tempparentarr=array(
             "root_id"=>0,
             "inside_cash_count"=>$inside_cash_count,
-            "all_count"=>$inside_cash_count,
+            // "all_count"=>$inside_cash_count,
             "count_date"=>$this->date,
             "create_time"=>$this->nowdata
         );
         $temppromotearr=array(
             "inside_cash_count"=>$inside_cash_count,
-            "all_count"=>$inside_cash_count,
+            // "all_count"=>$inside_cash_count,
             "count_date"=>$this->date,
             "create_time"=>$this->nowdata
         );
@@ -516,7 +528,8 @@ class SpendCountSetController extends \Think\Controller
             "count_date"=>$this->date
         );
         $dbres = M("spend_user_count","tab_")->where($tempmap)->find();
-        $savedata = array("inside_cash_count"=>$inside_cash_count-0+$dbres['inside_cash_count'],"all_count"=>$inside_cash_count-0+$dbres['all_count']);
+        // $savedata = array("inside_cash_count"=>$inside_cash_count-0+$dbres['inside_cash_count'],"all_count"=>$inside_cash_count-0+$dbres['all_count']);
+        $savedata = array("inside_cash_count"=>$inside_cash_count-0+$dbres['inside_cash_count']);
         $tempdbres = $this->usermodel->where($tempmap)->save($savedata);
         if($tempdbres === false){
             $this->usermodel->rollback();
@@ -526,13 +539,21 @@ class SpendCountSetController extends \Think\Controller
     }
 
     /** --------以下为设定月份聚合---------- **/
+    /**
+     * @param 现金流水 cash_count 游戏中充值的现金
+     * @param 平台币流水 balance_coin_count 游戏中消耗的平台币
+     * @param 绑定币流水 bind_coin_count 游戏中绑定币的消耗
+     * @param 内充流水 inside_cash_count:(后台发放给玩家平台币-回收平台币 )+ (后台发放绑币给玩家 -回收的绑币)
+     * @param 平台币充值 balance_coin_deposit
+     * @return void
+     */
     public function setMonthCount()
     {
         $initdata = $this->getMonthInit();
         $balance  = $this->getBalanceUser();
         $bind  = $this->getBindUser();
         $deposit = $this->getBalanceDeposit();
-        $initdata["inside_cash_count"] = $initdata["inside_cash_count"]-0+$balance-0+$bind;
+        $initdata["inside_cash_count"] = $balance-0+$bind;
         $initdata["balance_coin_deposit"] = $deposit;
         $initdata["all_count"] = $initdata["inside_cash_count"]-0+$initdata["cash_count"]-0+$deposit;
         $initdata["count_date"] = $this->date;
@@ -547,7 +568,7 @@ class SpendCountSetController extends \Think\Controller
             "count_date"=>$this->date,
             "parent_id"=>0
         );
-        return  M("spend_user_count","tab_")->field("sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count")->where($tempmap)->find();
+        return  M("spend_user_count","tab_")->field("sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(bind_coin_count) bind_coin_count")->where($tempmap)->find();
     }
     //获取平台币充值流水
     protected function getBalanceDeposit()
diff --git a/Data/update.sql b/Data/update.sql
index 97991b298..1ad199440 100644
--- a/Data/update.sql
+++ b/Data/update.sql
@@ -251,3 +251,10 @@ CREATE TABLE `tab_spend_month_count` (
 ALTER TABLE `tab_spend_month_count`
 MODIFY COLUMN `balance_coin_count`  decimal(10,2) NULL DEFAULT 0.00 COMMENT '平台币游戏支付流水' AFTER `cash_count`,
 ADD COLUMN `balance_coin_deposit`  decimal(10,2) NULL DEFAULT 0.00 COMMENT '平台币充值流水' AFTER `balance_coin_count`;
+
+-- 2019-11-05 chenzhi
+ALTER TABLE `tab_spend_month_count`
+ADD COLUMN `bind_coin_count`  decimal(10,2) NULL DEFAULT 0.00 COMMENT '绑币消耗' AFTER `balance_coin_deposit`;
+
+ALTER TABLE `tab_spend_user_count`
+ADD COLUMN `bind_coin_count`  decimal(10,2) NULL DEFAULT 0.00 COMMENT '绑定币消耗' AFTER `balance_coin_count`;
\ No newline at end of file

From 4dfec50ba58149d5d996301946abd2f2815b9577 Mon Sep 17 00:00:00 2001
From: zyx <as123498@qq.com>
Date: Tue, 5 Nov 2019 11:03:51 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E6=9C=88=E7=BB=93=E7=BB=9F=E8=AE=A1?=
 =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Controller/ExportController.class.php     |  2 ++
 .../Controller/FinanceController.class.php    | 24 +++++++++++--------
 .../Admin/View/Finance/gameFinance.html       |  4 ++--
 .../Admin/View/Finance/getParentUser.html     | 10 +++++---
 .../Admin/View/Finance/getPromoteUser.html    | 10 +++++---
 .../Admin/View/Finance/getRootUser.html       | 10 +++++---
 Application/Admin/View/Finance/index.html     |  4 ++++
 7 files changed, 43 insertions(+), 21 deletions(-)

diff --git a/Application/Admin/Controller/ExportController.class.php b/Application/Admin/Controller/ExportController.class.php
index 89918cb2a..392ec9170 100644
--- a/Application/Admin/Controller/ExportController.class.php
+++ b/Application/Admin/Controller/ExportController.class.php
@@ -5444,6 +5444,8 @@ if ($key == 'model'){
 
         foreach ($xlsData as $key => $value) {
             $xlsData[$key]['inside_cash_count'] = number_format($insideDataSum[$value['game_id']],2,'.','');
+            $xlsData[$key]['all_cash_count'] = number_format($insideDataSum[$value['game_id']]+$xlsData[$key]['all_cash_count'],2,'.','');
+
         }
 
         $sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
diff --git a/Application/Admin/Controller/FinanceController.class.php b/Application/Admin/Controller/FinanceController.class.php
index e0ca919c0..9f94d658c 100644
--- a/Application/Admin/Controller/FinanceController.class.php
+++ b/Application/Admin/Controller/FinanceController.class.php
@@ -85,7 +85,7 @@ class FinanceController extends ThinkController
 
         $order = "id DESC";
         $data = M('spend_month_count','tab_')
-            ->field("cash_count,balance_coin_count,inside_cash_count,all_count,count_date,balance_coin_deposit")
+            ->field("cash_count,balance_coin_count,inside_cash_count,all_count,count_date,balance_coin_deposit,bind_coin_count")
             ->where($map)
             ->page($page,$row)
             ->order($order)
@@ -98,7 +98,7 @@ class FinanceController extends ThinkController
             ->select();
 
         $sumData = M('spend_month_count','tab_')
-            ->field("sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count,sum(all_count) as all_count,count_date,sum(balance_coin_deposit) as balance_coin_deposit")
+            ->field("sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count,sum(all_count) as all_count,count_date,sum(balance_coin_deposit) as balance_coin_deposit,sum(bind_coin_count) as bind_coin_count")
             ->where($map)
             ->order($order)
             ->find();
@@ -202,6 +202,7 @@ class FinanceController extends ThinkController
 
         foreach ($data as $key => $value) {
             $data[$key]['inside_cash_count'] = number_format($insideDataSum[$value['game_id']],2,'.','');
+            $data[$key]['all_cash_count'] = number_format($insideDataSum[$value['game_id']]+$data[$key]['all_cash_count'],2,'.','');
         }
 
         $sumCash = D("spend_count")->sumSpendCountField($map,"cash_count");
@@ -328,14 +329,14 @@ class FinanceController extends ThinkController
         $map['parent_id'] = 0;
         $map['root_id'] = 0;
         $subQueryAll = M('spend_user_count','tab_')
-            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
+            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
             ->where($map)
             ->group('promote_id')
             ->page($page,$row)
             ->select();
 
         $sumData = M('spend_user_count','tab_')
-            ->field('sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
+            ->field('sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
             ->where($map)
             ->find();
 
@@ -395,7 +396,7 @@ class FinanceController extends ThinkController
 
 
         $subQueryAll = M('spend_user_count','tab_')
-            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
+            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
             ->where($map)
             ->group('promote_id')
             ->page($page,$row)
@@ -405,7 +406,7 @@ class FinanceController extends ThinkController
         }
 
         $sumData = M('spend_user_count','tab_')
-            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
+            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
             ->where($map)
             ->find();
         if (empty(I("root_name"))) {
@@ -413,6 +414,7 @@ class FinanceController extends ThinkController
             $sumData['balance_coin_count'] = number_format($sumData['balance_coin_count'] + $parentData[0]['balance_coin_count'], 2, '.', '');
             $sumData['inside_cash_count'] = number_format($sumData['inside_cash_count'] + $parentData[0]['inside_cash_count'], 2, '.', '');
             $sumData['all_count'] = number_format($sumData['all_count'] + $parentData[0]['all_count'], 2, '.', '');
+            $sumData['bind_coin_count'] = number_format($sumData['bind_coin_count'] + $parentData[0]['bind_coin_count'], 2, '.', '');
         }
 
         $count = M('spend_user_count','tab_')
@@ -466,7 +468,7 @@ class FinanceController extends ThinkController
 
 //        var_dump($map);die();
         $subQueryAll = M('spend_user_count','tab_')
-            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
+            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
             ->where($map)
             ->group('promote_id')
             ->page($page,$row)
@@ -475,13 +477,14 @@ class FinanceController extends ThinkController
         $subQueryAll = array_merge($parentData,$subQueryAll);
 
         $sumData = M('spend_user_count','tab_')
-            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
+            ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
             ->where($map)
             ->find();
         $sumData['cash_count'] = number_format($sumData['cash_count']+$parentData[0]['cash_count'],2,'.','');
         $sumData['balance_coin_count'] = number_format($sumData['balance_coin_count']+$parentData[0]['balance_coin_count'],2,'.','');
         $sumData['inside_cash_count'] = number_format($sumData['inside_cash_count']+$parentData[0]['inside_cash_count'],2,'.','');
         $sumData['all_count'] = number_format($sumData['all_count']+$parentData[0]['all_count'],2,'.','');
+        $sumData['bind_coin_count'] = number_format($sumData['bind_coin_count']+$parentData[0]['bind_coin_count'],2,'.','');
 
         $count = M('spend_user_count','tab_')
             ->field('promote_id,promote_account,sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) inside_cash_count, sum(all_count) as all_count')
@@ -544,19 +547,20 @@ class FinanceController extends ThinkController
             }
 
             $data = M('spend_user_count','tab_')
-                ->field('promote_id,promote_account, sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count, sum(cash_count+balance_coin_count+inside_cash_count) as all_count')
+                ->field('promote_id,promote_account, sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
                 ->where($map)->select();
 
             $map1['parent_id'] = $data[0]['promote_id'];
             $map1['count_date'] = $date;
             $sunData = M('spend_user_count','tab_')
-                ->field('promote_id,promote_account, sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count, sum(cash_count+balance_coin_count+inside_cash_count) as all_count')
+                ->field('promote_id,promote_account, sum(cash_count) as cash_count,sum(balance_coin_count) as balance_coin_count,sum(inside_cash_count) as inside_cash_count, sum(all_count) as all_count, sum(bind_coin_count) as bind_coin_count')
                 ->where($map1)->find();
 
             $data[0]['cash_count'] = number_format($data[0]['cash_count']-$sunData['cash_count'],2,'.','');
             $data[0]['balance_coin_count'] = number_format($data[0]['balance_coin_count']-$sunData['balance_coin_count'],2,'.','');
             $data[0]['inside_cash_count'] = number_format($data[0]['inside_cash_count']-$sunData['inside_cash_count'],2,'.','');
             $data[0]['all_count'] = number_format($data[0]['all_count']-$sunData['all_count'],2,'.','');
+            $data[0]['bind_coin_count'] = number_format($data[0]['bind_coin_count']-$sunData['bind_coin_count'],2,'.','');
 
 //            $map['inside_cash_count'] = ['neq',0];
 //            $insideData = D("spend_count")->getSpendCountData($map,"promote_id,inside_cash_count as count","promote_id,count_date");
diff --git a/Application/Admin/View/Finance/gameFinance.html b/Application/Admin/View/Finance/gameFinance.html
index 21ad29c6d..dec28f5a5 100644
--- a/Application/Admin/View/Finance/gameFinance.html
+++ b/Application/Admin/View/Finance/gameFinance.html
@@ -131,9 +131,9 @@
 
           <th ><div class="tooltip">平台币流水<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
 
-          <th ><div class="tooltip">内充消耗<span class="tooltiptext"><span style="margin-left: -10px">绑币消费所产生的流水</span></span></div></th>
+          <th ><div class="tooltip">公会内充支出<span class="tooltiptext"><span style="margin-left: -10px">绑币消费所产生的流水</span></span></div></th>
 
-          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币流水+内充消耗</span></span></div></th>
+          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币流水+公会内充支出</span></span></div></th>
 
           <th >操作</th>
         </tr>
diff --git a/Application/Admin/View/Finance/getParentUser.html b/Application/Admin/View/Finance/getParentUser.html
index bced194f8..ca0c96f48 100644
--- a/Application/Admin/View/Finance/getParentUser.html
+++ b/Application/Admin/View/Finance/getParentUser.html
@@ -112,11 +112,13 @@
 
           <th><div class="tooltip">游戏现金流水<span class="tooltiptext"><span style="margin-left: -10px">第三方支付(微信,支付宝,快捷)。</span></span></div></th>
 
-          <th ><div class="tooltip">平台币流水<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
+          <th ><div class="tooltip">平台币支出<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
 
-          <th ><div class="tooltip">内充发放<span class="tooltiptext"><span style="margin-left: -10px">平台直接下放给公会的平台币</span></span></div></th>
+          <th ><div class="tooltip">公会内充发放<span class="tooltiptext"><span style="margin-left: -10px">平台直接下放给公会的平台币</span></span></div></th>
 
-          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币流水+内充发放</span></span></div></th>
+          <th ><div class="tooltip">公会内充支出<span class="tooltiptext"><span style="margin-left: -10px">绑币消耗流水</span></span></div></th>
+
+          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币支出+公会内充支出=总流水</span></span></div></th>
 
           <th >操作</th>
 
@@ -141,6 +143,7 @@
               <td >{$data.cash_count}</td>
               <td >{$data.balance_coin_count}</td>
               <td >{$data.inside_cash_count}</td>
+              <td >{$data.bind_coin_count}</td>
               <td >{$data.all_count}</td>
               <td ><if condition="$data['promote_id'] neq $_GET['root_id']">
                 <a href="{:U('Finance/gameFinance',array('sign'=>1,'parent_id'=>$data['promote_id'],'root_id'=>$_GET['root_id'],'count_date'=>$_GET['count_date'],'from'=>'getParentUser'))}" >游戏查看</a>
@@ -154,6 +157,7 @@
             <td ><span>{$sumData.cash_count}</span></td>
             <td ><span>{$sumData.balance_coin_count}</span></td>
             <td ><span>{$sumData.inside_cash_count}</span></td>
+            <td ><span>{$sumData.bind_coin_count}</span></td>
             <td ><span>{$sumData.all_count}</span></td>
             <td >
               <a href="{:U('Finance/gameFinance',array('sign'=>1,'count_date'=>$_GET['count_date'],'root_id'=>$_GET['root_id'],'parent_id'=>$_GET['root_name']?$data['promote_id']:'','from'=>'getParentUser'))}" >游戏查看</a>
diff --git a/Application/Admin/View/Finance/getPromoteUser.html b/Application/Admin/View/Finance/getPromoteUser.html
index 74ae6d1dc..385bc2a95 100644
--- a/Application/Admin/View/Finance/getPromoteUser.html
+++ b/Application/Admin/View/Finance/getPromoteUser.html
@@ -103,11 +103,13 @@
 
           <th><div class="tooltip">游戏现金流水<span class="tooltiptext"><span style="margin-left: -10px">第三方支付(微信,支付宝,快捷)。</span></span></div></th>
 
-          <th ><div class="tooltip">平台币流水<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
+          <th ><div class="tooltip">平台币支出<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
 
-          <th ><div class="tooltip">内充发放<span class="tooltiptext"><span style="margin-left: -10px">平台直接下放给公会的平台币</span></span></div></th>
+          <th ><div class="tooltip">公会内充发放<span class="tooltiptext"><span style="margin-left: -10px">平台直接下放给公会的平台币</span></span></div></th>
 
-          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币流水+内充发放</span></span></div></th>
+          <th ><div class="tooltip">公会内充支出<span class="tooltiptext"><span style="margin-left: -10px">绑币消耗流水</span></span></div></th>
+
+          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币支出+公会内充支出=总流水/span></span></div></th>
 
           <th >操作</th>
 
@@ -132,6 +134,7 @@
               <td >{$data.cash_count}</td>
               <td >{$data.balance_coin_count}</td>
               <td >{$data.inside_cash_count}</td>
+              <td >{$data.bind_coin_count}</td>
               <td >{$data.all_count}</td>
               <td ><if condition="$data['promote_id'] neq $_GET['parent_id']">
                 <a href="{:U('Finance/gameFinance',array('promote_id'=>$data['promote_id'],'count_date'=>$_GET['count_date'],'from'=>'getPromoteUser'))}" >游戏查看</a>
@@ -144,6 +147,7 @@
             <td ><span>{$sumData.cash_count}</span></td>
             <td ><span>{$sumData.balance_coin_count}</span></td>
             <td ><span>{$sumData.inside_cash_count}</span></td>
+            <td ><span>{$sumData.bind_coin_count}</span></td>
             <td ><span>{$sumData.all_count}</span></td>
             <td ><a href="{:U('Finance/gameFinance',array('count_date'=>$_GET['count_date'],'parent_id'=>$_GET['parent_id'],'sign'=>3,'from'=>'getPromoteUser'))}" >游戏查看</a>
           </tr>
diff --git a/Application/Admin/View/Finance/getRootUser.html b/Application/Admin/View/Finance/getRootUser.html
index 956e0d3fd..76862520f 100644
--- a/Application/Admin/View/Finance/getRootUser.html
+++ b/Application/Admin/View/Finance/getRootUser.html
@@ -113,11 +113,13 @@
 
           <th><div class="tooltip">游戏现金流水<span class="tooltiptext"><span style="margin-left: -10px">第三方支付(微信,支付宝,快捷)。</span></span></div></th>
 
-          <th ><div class="tooltip">平台币流水<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
+          <th ><div class="tooltip">平台币支出<span class="tooltiptext"><span style="margin-left: -10px">平台币所支付的流水</span></span></div></th>
 
-          <th ><div class="tooltip">内充发放<span class="tooltiptext"><span style="margin-left: -10px">平台直接下放给公会的平台币</span></span></div></th>
+          <th ><div class="tooltip">公会内充发放<span class="tooltiptext"><span style="margin-left: -10px">平台直接下放给公会的平台币</span></span></div></th>
 
-          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币流水+内充发放</span></span></div></th>
+          <th ><div class="tooltip">公会内充支出<span class="tooltiptext"><span style="margin-left: -10px">绑币消耗流水</span></span></div></th>
+
+          <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币支出+公会内充支出=总流水</span></span></div></th>
 
           <th >操作</th>
 
@@ -142,6 +144,7 @@
               <td >{$data.cash_count}</td>
               <td >{$data.balance_coin_count}</td>
               <td >{$data.inside_cash_count}</td>
+              <td >{$data.bind_coin_count}</td>
               <td >{$data.all_count}</td>
               <td ><a href="{:U('Finance/gameFinance',array('root_id'=>$data['promote_id'],'count_date'=>$_GET['count_date'],'from'=>'getRootUser','sign'=>1))}" >游戏查看</a>
                 <a href="{:U('Finance/getParentUser',array('count_date'=>$_GET['count_date'],'root_id'=>$data['promote_id']))}" >组长渠道</a></td>
@@ -151,6 +154,7 @@
             <td ><span>{$sumData.cash_count}</span></td>
             <td ><span>{$sumData.balance_coin_count}</span></td>
             <td ><span>{$sumData.inside_cash_count}</span></td>
+            <td ><span>{$sumData.bind_coin_count}</span></td>
             <td ><span>{$sumData.all_count}</span></td>
             <td ><a href="{:U('Finance/gameFinance',array('count_date'=>$_GET['count_date'],'sign'=>1,'root_id'=>$_GET['root_name']?$data['promote_id']:'','from'=>'getRootUser'))}" >游戏查看</a>
 <!--              <a href="{:U('Finance/getParentUser',array('count_date'=>$_GET['count_date'],'root_name'=>$_GET['root_name'],'sign'=>1))}" >渠道查看</a></td>-->
diff --git a/Application/Admin/View/Finance/index.html b/Application/Admin/View/Finance/index.html
index 5c79e4f19..9573c7c43 100644
--- a/Application/Admin/View/Finance/index.html
+++ b/Application/Admin/View/Finance/index.html
@@ -137,6 +137,8 @@
 
           <th ><div class="tooltip">内充流水<span class="tooltiptext"><span style="margin-left: -10px">管理后台下发的所有平台币,绑定币流水(平台币订单-后台发放(玩家/推广员)),绑币订单-后台发放(玩家),平台币回收与绑币回收需要进行扣除</span></span></div></th>
 
+          <th ><div class="tooltip">内充支出<span class="tooltiptext"><span style="margin-left: -10px">绑定币流水</span></span></div></th>
+
           <th ><div class="tooltip">平台币支出<span class="tooltiptext"><span style="margin-left: -10px">指示为玩家充值消耗平台,不计入总流水</span></span></div></th>
 
           <th ><div class="tooltip">总流水<span class="tooltiptext"><span style="margin-left: -10px">游戏现金流水+平台币收入+内充流水</span></span></div></th>
@@ -163,6 +165,7 @@
               <td >{$data.cash_count}</td>
               <td >{$data.balance_coin_deposit}</td>
               <td >{$data.inside_cash_count}</td>
+              <td >{$data.bind_coin_count}</td>
               <td >{$data.balance_coin_count}</td>
               <td >{$data.all_count}</td>
               <td >
@@ -179,6 +182,7 @@
             <td ><span><if condition="$sumData.cash_count neq ''">{$sumData.cash_count}<else/>0</if></span></td>
             <td><if condition="$sumData.balance_coin_count neq ''">{$sumData.balance_coin_deposit}<else/>0</if></td>
             <td><if condition="$sumData.inside_cash_count neq ''">{$sumData.inside_cash_count}<else/>0</if></td>
+            <td><if condition="$sumData.balance_coin_count neq ''">{$sumData.bind_coin_count}<else/>0</if></td>
             <td><if condition="$sumData.balance_coin_count neq ''">{$sumData.balance_coin_count}<else/>0</if></td>
             <td><if condition="$sumData.all_count neq ''">{$sumData.all_count}<else/>0</if></td>
             <td>