优化公会统计

master
chenzhi 4 years ago
parent 7ca675b520
commit 3b447b70d0

@ -294,13 +294,12 @@ class FinancePromoteController extends AdminController
} }
$map['s.pay_status']=1; $map['s.pay_status']=1;
$map['s.is_check']=2; $map['s.is_check']=2;
D("Spend")->addSubsiteWhere($map,"s");
$field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count, $field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count, SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count, SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) p_id, IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) p_id,
IFNULL(company_id,0) company_id,company_name,develop_type,IFNULL(promote.company_belong,0) company_belong"; IFNULL(company_id,0) company_id,company_name,develop_type,IFNULL(promote.company_belong,0) company_belong";
$query = M() $query = SM()
->table("tab_spend s use index(promote_time)") ->table("tab_spend s use index(promote_time)")
->field($field) ->field($field)
->where($map) ->where($map)
@ -379,13 +378,12 @@ class FinancePromoteController extends AdminController
} }
$map['s.pay_status']=1; $map['s.pay_status']=1;
// $map['s.is_check']=1; // $map['s.is_check']=1;
D("Spend")->addSubsiteWhere($map,"s");
$field= "SUM(CASE WHEN pay_way > 0 and s.is_check=1 THEN pay_amount ELSE 0 END) as cash_count, $field= "SUM(CASE WHEN pay_way > 0 and s.is_check=1 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 and s.is_check=1 THEN pay_amount ELSE 0 END) as balance_coin_count, SUM(CASE WHEN pay_way = 0 and s.is_check=1 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 and s.is_check=1 THEN pay_amount ELSE 0 END) as bind_coin_count, SUM(CASE WHEN pay_way = -1 and s.is_check=1 THEN pay_amount ELSE 0 END) as bind_coin_count,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) p_id, IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',s.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) p_id,
IFNULL(company_id,0) company_id,company_name,develop_type,IFNULL(promote.company_belong,0) company_belong"; IFNULL(company_id,0) company_id,company_name,develop_type,IFNULL(promote.company_belong,0) company_belong";
$query = M() $query = SM()
->table("tab_spend s use index(promote_time)") ->table("tab_spend s use index(promote_time)")
->field($field) ->field($field)
->where($map) ->where($map)
@ -610,13 +608,12 @@ class FinancePromoteController extends AdminController
} }
$map['s.pay_status']=1; $map['s.pay_status']=1;
$map['s.is_check']=1; $map['s.is_check']=1;
D("Spend")->addSubsiteWhere($map,"s");
// dd($map); // dd($map);
$field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count, $field= "SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count, SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count, SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as bind_coin_count,
IFNULL(company_id,0) company_id,company_name,promote_id,promote.account promote_account,develop_type,IFNULL(promote.company_belong,0) company_belong"; IFNULL(company_id,0) company_id,company_name,promote_id,promote.account promote_account,develop_type,IFNULL(promote.company_belong,0) company_belong";
$query = M() $query = SM()
->table("tab_spend s use index(promote_time)") ->table("tab_spend s use index(promote_time)")
->field($field) ->field($field)
->where($map) ->where($map)
@ -895,9 +892,9 @@ class FinancePromoteController extends AdminController
$group = ""; $group = "";
$order = "pay_time DESC"; $order = "pay_time DESC";
if(isset($_REQUEST['export'])){ if(isset($_REQUEST['export'])){
$data = D('spend')->getSpendData($map,$field,$group,$order); $data = D('spend')->getSubSpendData($map,$field,$group,$order);
}else { }else {
$data = D('spend')->getSpendData($map,$field,$group,$order,$page,$row); $data = D('spend')->getSubSpendData($map,$field,$group,$order,$page,$row);
} }
$marketAdmins = []; $marketAdmins = [];
@ -965,7 +962,7 @@ class FinancePromoteController extends AdminController
$this->assign('sumInside', $sumInside); $this->assign('sumInside', $sumInside);
$this->assign('sumAll', null_to_0($sumAll)); $this->assign('sumAll', null_to_0($sumAll));
$count = D("spend")->getSpendData($map,$field,$group,$order); $count = D("spend")->getSubSpendData($map,$field,$group,$order);
$count = count($count); $count = count($count);
$page = set_pagination($count,$row); $page = set_pagination($count,$row);
@ -996,7 +993,7 @@ class FinancePromoteController extends AdminController
$map['s.pay_status']=1; $map['s.pay_status']=1;
$map['s.is_check']=1; $map['s.is_check']=1;
$query = M("spend","tab_")->alias("s") $query = SM("spend","tab_")->alias("s")
->field("s.game_id,s.game_name,s.sdk_version,p.partner as partner_name, ->field("s.game_id,s.game_name,s.sdk_version,p.partner as partner_name,
SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count, SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count, SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
@ -1039,7 +1036,7 @@ class FinancePromoteController extends AdminController
$map['s.market_admin_id'] = $adminId; $map['s.market_admin_id'] = $adminId;
} }
$query = M("spend","tab_")->alias("s") $query = SM("spend","tab_")->alias("s")
->field("SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count, ->field("SUM(CASE WHEN pay_way > 0 THEN pay_amount ELSE 0 END) as cash_count,
SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count, SUM(CASE WHEN pay_way = 0 THEN pay_amount ELSE 0 END) as balance_coin_count,
SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as inside_cash_count"); SUM(CASE WHEN pay_way = -1 THEN pay_amount ELSE 0 END) as inside_cash_count");
@ -1099,7 +1096,7 @@ class FinancePromoteController extends AdminController
$row = 10; $row = 10;
} }
$map['pay_status'] = 1; $map['pay_status'] = 1;
$map['is_check'] = 1; $map['tab_spend.is_check'] = 1;
if (!empty(I('user_account'))) { if (!empty(I('user_account'))) {
$map['tab_spend.user_account'] = array('like','%'.I("user_account").'%'); $map['tab_spend.user_account'] = array('like','%'.I("user_account").'%');
@ -1107,7 +1104,7 @@ class FinancePromoteController extends AdminController
if (!empty(I('user_nickname'))) { if (!empty(I('user_nickname'))) {
$map['tab_spend.game_player_name'] = array('like',I("user_nickname").'%'); $map['tab_spend.game_player_name'] = array('like',I("user_nickname").'%');
} }
D("Spend")->addSubsiteWhere($map,"s"); D("Spend")->addSubsiteWhere($map,"tab_spend");
$field = "pay_order_number,FROM_UNIXTIME(payed_time) as pay_time,tab_spend.user_account, $field = "pay_order_number,FROM_UNIXTIME(payed_time) as pay_time,tab_spend.user_account,
tab_spend.user_nickname,tab_spend.game_name,tab_spend.promote_account,spend_ip,tab_spend.server_name,tab_spend.sdk_version, tab_spend.user_nickname,tab_spend.game_name,tab_spend.promote_account,spend_ip,tab_spend.server_name,tab_spend.sdk_version,
game_player_name,pay_amount,cost,pay_way"; game_player_name,pay_amount,cost,pay_way";

@ -843,6 +843,19 @@ class SpendModel extends Model
} }
return $data; return $data;
} }
public function getSubSpendData($map = [], $field = '', $group = '', $order = '', $page = 0, $row = 0, $join = false)
{
$query = SM('spend',"tab_")->field($field)->where($map)->group($group)->order($order);
if ($join) {
$query = $query->join($join);
}
if ($row == 0) {
$data = $query->select();
} else {
$data = $query->page($page, $row)->select();
}
return $data;
}
public function sumSpend($map = [], $field = '') public function sumSpend($map = [], $field = '')
{ {
@ -850,6 +863,12 @@ class SpendModel extends Model
return $sum; return $sum;
} }
public function sumSubSpend($map = [], $field = '')
{
$sum = SM('spend',"tab_")->where($map)->sum($field);
return $sum;
}
private function getGameMapByGameStatMap($map) private function getGameMapByGameStatMap($map)
{ {

@ -85,7 +85,7 @@
<div class="cf main-place top_nav_list navtab_list"> <div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">公会统计</h3> <h3 class="page_title">公会统计</h3>
<p class="description_text">说明:公会相关统计</p> <p class="description_text">说明:公会相关统计<if condition="IS_SUBSITE">/ <span style="color: red;">支付信息仅统计已固定的订单数据</span></if></p>
<div class="question" style="float: right;margin-right: 20px;"> <div class="question" style="float: right;margin-right: 20px;">
<i class="question_mark">?</i> <i class="question_mark">?</i>
<ul class="question_content" style="right: -20px;left: auto;"> <ul class="question_content" style="right: -20px;left: auto;">
@ -241,7 +241,9 @@
<th class="tooltip">渠道游戏内充值合计 <span class="tooltiptext">游戏现金金额(游戏现金流水+平台币支出+公会内充支出=总流水)</span> <th class="tooltip">渠道游戏内充值合计 <span class="tooltiptext">游戏现金金额(游戏现金流水+平台币支出+公会内充支出=总流水)</span>
<th class="tooltip">渠道游戏内不结算充值合计 <span class="tooltiptext">游戏现金金额(游戏不结算现金流水)</span> <th class="tooltip">渠道游戏内不结算充值合计 <span class="tooltiptext">游戏现金金额(游戏不结算现金流水)</span>
</th> </th>
<th>操作</th> <if condition="!IS_SUBSITE">
<th>操作</th>
</if>
</tr> </tr>
</thead> </thead>
<!-- 列表 --> <!-- 列表 -->
@ -257,21 +259,33 @@
<td>{$data['company_belong']}</td> <td>{$data['company_belong']}</td>
<td>{$data['develop_type_text']}</td> <td>{$data['develop_type_text']}</td>
<td>{$data.cash_count}</td> <td>{$data.cash_count}</td>
<td class="coin-detail" data-pay_type="0" style="color: #0066cc;cursor: pointer" data-url="{:U('FinancePromote/gameCoinDetail',array_merge(I('get.'),['pay_way'=>0,'promote_type'=>1,'promote_id'=>$data['p_id'],p=>1,row=>10]))}"> <if condition="!IS_SUBSITE">
{$data.balance_coin_count} <td class="coin-detail" data-pay_type="0" style="color: #0066cc;cursor: pointer" data-url="{:U('FinancePromote/gameCoinDetail',array_merge(I('get.'),['pay_way'=>0,'promote_type'=>1,'promote_id'=>$data['p_id'],p=>1,row=>10]))}">
</td> {$data.balance_coin_count}
<td class="coin-detail" data-pay_type="-1" style="color: #0066cc;cursor: pointer" data-url="{:U('FinancePromote/gameCoinDetail',array_merge(I('get.'),['pay_way'=>-1,'promote_type'=>1,'promote_id'=>$data['p_id'],p=>1,row=>10]))}"> </td>
{$data.bind_coin_count} <td class="coin-detail" data-pay_type="-1" style="color: #0066cc;cursor: pointer" data-url="{:U('FinancePromote/gameCoinDetail',array_merge(I('get.'),['pay_way'=>-1,'promote_type'=>1,'promote_id'=>$data['p_id'],p=>1,row=>10]))}">
</td> {$data.bind_coin_count}
<td class="coin-detail" data-pay_type="-2" style="color: #0066cc;cursor: pointer" data-url="{:U('FinancePromote/insideCoinDetail',array_merge(I('get.'),['promote_type'=>1,'promote_id'=>$data['p_id'],p=>1,row=>10]))}"> </td>
{$data.inside_cash_count} <td class="coin-detail" data-pay_type="-2" style="color: #0066cc;cursor: pointer" data-url="{:U('FinancePromote/insideCoinDetail',array_merge(I('get.'),['promote_type'=>1,'promote_id'=>$data['p_id'],p=>1,row=>10]))}">
</td> {$data.inside_cash_count}
</td>
<else />
<td>
{$data.balance_coin_count}
</td>
<td>
{$data.bind_coin_count}
</td>
<td>
{$data.inside_cash_count}
</td>
</if>
<!-- <td><span class='ljzc' <!-- <td><span class='ljzc'
data-value="{$data['id']}"><a>{$data.inside_cash_count}</a></span></td> --> data-value="{$data['id']}"><a>{$data.inside_cash_count}</a></span></td> -->
<td>{$data.allcount}</td> <td>{$data.allcount}</td>
<td style="color: red;">{$data.unallcount}</td> <td style="color: red;">{$data.unallcount}</td>
<if condition="!IS_SUBSITE">
<td> <td>
<a <a
href="{:U('FinancePromote/gameStatistics',array_merge(['promote_id'=>$data['p_id'],'company_id'=>$data['company_id'],'promote_type'=>1],I('get.'),['p'=>1]))}">游戏查看</a> href="{:U('FinancePromote/gameStatistics',array_merge(['promote_id'=>$data['p_id'],'company_id'=>$data['company_id'],'promote_type'=>1],I('get.'),['p'=>1]))}">游戏查看</a>
@ -284,6 +298,7 @@
<a href="{:U('FinancePromote/promoteUser',array_merge(['promote_id'=>$data['p_id'],'company_id'=>$data['company_id']],I('get.'),['p'=>1]))}">渠道查看</a> <a href="{:U('FinancePromote/promoteUser',array_merge(['promote_id'=>$data['p_id'],'company_id'=>$data['company_id']],I('get.'),['p'=>1]))}">渠道查看</a>
</if> --> </if> -->
</td> </td>
</if>
</tr> </tr>
</volist> </volist>
</empty> </empty>
@ -295,11 +310,13 @@
<td style="text-align: center;">{$all_count['inside_cash_count']}</td> <td style="text-align: center;">{$all_count['inside_cash_count']}</td>
<td style="text-align: center;">{$all_count['all_count']}</td> <td style="text-align: center;">{$all_count['all_count']}</td>
<td style="text-align: center;color: red;">{$all_count['unallcount']}</td> <td style="text-align: center;color: red;">{$all_count['unallcount']}</td>
<td style="text-align: center;"> <if condition="!IS_SUBSITE">
<a <td style="text-align: center;">
href="{:U('FinancePromote/gameStatistics',array_merge(I('get.'),['promote_type'=>1,'p'=>1]))}">游戏查看</a> <a
<a href="{:U('FinancePromote/promoteUser',array_merge(I('get.'),['p'=>1]))}">渠道查看</a> href="{:U('FinancePromote/gameStatistics',array_merge(I('get.'),['promote_type'=>1,'p'=>1]))}">游戏查看</a>
</td> <a href="{:U('FinancePromote/promoteUser',array_merge(I('get.'),['p'=>1]))}">渠道查看</a>
</td>
</if>
</tr> </tr>
<tr class="data_summary"> <tr class="data_summary">
<td style="text-align: center;">内外团占比:</td> <td style="text-align: center;">内外团占比:</td>

Loading…
Cancel
Save