|
|
@ -161,10 +161,10 @@ class FinancialSummarySetController extends \Think\Controller
|
|
|
|
//获取会长充值的平台币
|
|
|
|
//获取会长充值的平台币
|
|
|
|
$map1= array(
|
|
|
|
$map1= array(
|
|
|
|
"pay_time"=> array('BETWEEN',array($this->beginThismonth, $this->endThismonth)),
|
|
|
|
"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'];
|
|
|
|
$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;
|
|
|
|
$this->adddata[]=$temparr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//超级签购买收入
|
|
|
|
//超级签购买收入
|
|
|
@ -192,320 +192,4 @@ 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 <count($pid); $k++) {
|
|
|
|
|
|
|
|
if(in_array($pid[$k], $userarr)){
|
|
|
|
|
|
|
|
//存在
|
|
|
|
|
|
|
|
$adddata[$pid[$k]]["cash_count"] += $d['cash_count'];
|
|
|
|
|
|
|
|
$adddata[$pid[$k]]["balance_coin_count"] += $d['balance_coin_count'];
|
|
|
|
|
|
|
|
$adddata[$pid[$k]]["bind_coin_count"] += $d['bind_coin_count'];
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
//不存在
|
|
|
|
|
|
|
|
//获取链路
|
|
|
|
|
|
|
|
$temp = $this->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 <count($pid); $k++) {
|
|
|
|
|
|
|
|
if(in_array($pid[$k], $userarr)){
|
|
|
|
|
|
|
|
//存在
|
|
|
|
|
|
|
|
$adddata[$pid[$k]]["inside_cash_count"] += $insideRes[$i]['num'];
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
//不存在
|
|
|
|
|
|
|
|
//获取链路
|
|
|
|
|
|
|
|
$temp = $this->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;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|