From 5eaadd974a49effccb96324fdcb34c906a086cff Mon Sep 17 00:00:00 2001 From: chenzhi Date: Wed, 5 Feb 2020 16:54:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=88=86=E7=B1=BB=E6=B1=87?= =?UTF-8?q?=E6=80=BB-=E6=8C=89=E6=94=B6=E5=85=A5=E7=B1=BB=E5=9E=8B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinancialSummarySetController.class.php | 322 +----------------- 1 file changed, 3 insertions(+), 319 deletions(-) diff --git a/Application/Admin/Controller/FinancialSummarySetController.class.php b/Application/Admin/Controller/FinancialSummarySetController.class.php index 438ddc116..5cee8525f 100644 --- a/Application/Admin/Controller/FinancialSummarySetController.class.php +++ b/Application/Admin/Controller/FinancialSummarySetController.class.php @@ -161,10 +161,10 @@ class FinancialSummarySetController extends \Think\Controller //获取会长充值的平台币 $map1= array( "pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)), - "order_status"=>1 + "order_status"=>array("EGT",1) ); $COMoney= $this->CoinPayOrderModel->field("IFNULL(sum(pay_amount),0) pay_amount")->where($map1)->find()['pay_amount']; - $temparr['sum_money'] = $temparr['sum_money']-0+$COMoney; + $temparr['sum_money'] = number_format(($temparr['sum_money']*100+$COMoney*100)/100, 2, '.', ''); ; $this->adddata[]=$temparr; } //超级签购买收入 @@ -191,321 +191,5 @@ class FinancialSummarySetController extends \Think\Controller - - - /** - * 获取游戏聚合 - */ - public function setGameCount() - { - if(!$this->continue){ - die("api error"); - } - $this->getCashData(); - $this->getBalanceData(); - $this->getInsideData(); - # code... - } - //获取游戏现金流水 - 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.level,0) level,IFNULL(promote.chain,'/') chain, - '{$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(empty($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... - } - - /** --------以下为设定角色聚合---------- **/ - - /** - * 获取角色聚合 - */ - public function setUserCount() - { - //获取会长信息 - $adddata=array(); - $userarr = array(); - $this->getUserCountInit($adddata,$userarr); - $this->getUserInsideData($adddata,$userarr); - $this->addUserDb($adddata); - } - //用户聚合 - public function getUserCountInit(&$adddata,&$userarr) - { - - $gameres = $this->gamemodel->field("sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(inside_cash_count) bind_coin_count,chain,level,promote_id,promote_account") - ->where("count_date='{$this->date}'")->group("promote_id")->select(); - if(empty($gameres)){ - return; - } - $count = count($gameres); - $adddata=array(); - $userarr = array(); - //执行 - for ($i=0; $i < $count; $i++) { - $d = $gameres[$i]; - if($d['level'] < 2){ - $adddata[$d['promote_id']] = $d; - $userarr[] =$d['promote_id']; - }else{ - //获取所有链路 - $chain = trim($d['chain'],"/"); - $pid = explode("/", $chain); - $pid[] = $d['promote_id'];//添加自己 - for ($k=0; $k getChain($pid[$k]); - $temp['cash_count'] = $d['cash_count']; - $temp['balance_coin_count'] = $d['balance_coin_count']; - $temp['bind_coin_count'] = $d['bind_coin_count']; - - $adddata[$pid[$k]] = $temp; - $userarr[] =$pid[$k]; - } - } - } - } - } - //获取chain - protected function getChain($id){ - return M("Promote","tab_")->field("id promote_id,account promote_account,chain,level")->where("id='".$id."'")->find(); - } - //渠道角色统计仅计算推广员的平台币发放与收回 - protected function getUserInsideData(&$adddata,&$userarr) - { - $insideRes = M() - ->table("tab_promote_coin") - ->field("*") - ->where(array( - "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)), - "source_id"=>0, - "status"=>1 - )) - ->select(); - if(!empty($insideRes)){ - for ($i=0; $i < count($insideRes); $i++) { - # code... - if($insideRes[$i]['type'] > 1){ - $insideRes[$i]['num'] = ( 0- $insideRes[$i]['num']); - } - //获取链路 - $d = $this->getChain($insideRes[$i]['promote_id']); - - $chain = trim($d['chain'],"/"); - $pid = explode("/", $chain); - $pid[] = $d['promote_id'];//添加自己 - if($d['level'] < 2){ - if(in_array($d["promote_id"], $userarr)){ - //存在 - $adddata[$pid[$k]]["inside_cash_count"] += $insideRes[$i]['num']; - }else{ - $d['inside_cash_count'] = $insideRes[$i]['num']; - $adddata[$d['promote_id']] = $d; - $userarr[] =$d['promote_id']; - } - }else{ - for ($k=0; $k getChain($pid[$k]); - $temp['inside_cash_count'] = $insideRes[$i]['num']; - - $adddata[$pid[$k]] = $temp; - $userarr[] =$pid[$k]; - } - } - } - } - } - - } - //添加用户统计表 - protected function addUserDb(&$adddata){ - $count = count($adddata); - if($count < 1){return;} - foreach ($adddata as $k => $v) { - isset($v["cash_count"]) || $v["cash_count"]=0; - isset($v["balance_coin_count"]) || $v["balance_coin_count"]=0; - isset($v["bind_coin_count"]) || $v["bind_coin_count"]=0; - isset($v["inside_cash_count"]) || $v["inside_cash_count"]=0; - //设定时间 - $v["count_date"] = $this->date; - $v["create_time"] = $this->nowdata; - //聚合不含内充流水 - $v['all_count'] = $v["cash_count"]-0+$v["balance_coin_count"]-0+$v["bind_coin_count"]; - $tempdbres = $this->usermodel->add($v); - if($tempdbres === false){ - $this->model->rollback(); - die("addUserDb error"); - } - } - } - - /** --------以下为设定月份聚合---------- **/ - /** - * @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["balance_coin_deposit"] = $deposit; - $initdata["all_count"] = $initdata["inside_cash_count"]-0+$initdata["cash_count"]-0+$deposit; - $initdata["count_date"] = $this->date; - $initdata["create_time"] = $this->nowdata; - $tempdbres = $this->monthmodel->add($initdata); - if($tempdbres === false){ - $this->model->rollback(); - die("setMonthCount error"); - } - # code... - } - //获取除了内充的 - protected function getMonthInit() - { - $tempmap = array( - "count_date"=>$this->date, - "level"=>array("LT",2) - ); - return $this->usermodel->field("sum(cash_count) cash_count,sum(balance_coin_count) balance_coin_count,sum(bind_coin_count) bind_coin_count,sum(inside_cash_count) inside_cash_count")->where($tempmap)->find(); - } - //获取平台币充值流水 - protected function getBalanceDeposit() - { - $map = array( - "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)), - "pay_status"=>1 - ); - $deposit = M("deposit","tab_")->field("SUM(pay_amount) pay_amount")->where($map)->find()['pay_amount']; - $deposit || $deposit=0; - return $deposit; - } - //设置 后台发放平台币给玩家 及 回收玩家 的最终值 - protected function getBalanceUser() - { - $map = array( - "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)), - "status"=>1 - ); - $add = M("provide_user","tab_")->field("sum(amount) amount")->where($map)->find()['amount']; - $add || $add=0; - - $jq = M("user_coin","tab_")->field("sum(num) num")->where(array( - "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)) - ))->find()['num']; - $jq || $jq=0; - return $add-$jq; - } - //设置 后台发放绑币给玩家 及 回收玩家绑币 的最终值 - protected function getBindUser() - { - $map = array( - "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)), - "status"=>1 - ); - $add = M("provide","tab_")->field("sum(amount) amount")->where($map)->find()['amount']; - $add || $add=0; - - - $jq = M("deduct_bind_record","tab_")->field("sum(quantity) quantity")->where(array( - "create_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)) - ))->find()['quantity']; - $jq || $jq=0; - return $add-$jq; - } - + }