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");