优化推广员累计注册

master
chenzhi 4 years ago
parent 7a876e01ab
commit a6f9d82245

@ -36,9 +36,9 @@ class PlatformController extends ThinkController
if($companyBelong > -1){
$companyMap .= " AND company_belong = {$companyBelong}";
}
if(isset($_REQUEST['company_name'])){
$companyId = $_REQUEST['company_name'];
$companyMap .= " AND company_name like '%{$companyId}%' ";
if(isset($_REQUEST['company_id'])){
$companyId = $_REQUEST['company_id'];
$companyMap .= " AND id = '{$companyId}' ";
}
$promoteCompany = M("promote_company","tab_");
@ -81,6 +81,7 @@ class PlatformController extends ThinkController
$th = array_keys(self::setYearList($year));
$this->assign('th', $th);
$this->assign('list_data', $sendData);
$this->assign("companyList",D("PromoteCompany")->getList());
$this->getYearList();
$page = set_pagination($count, $row);
@ -627,7 +628,60 @@ class PlatformController extends ThinkController
$this->assign("is_admin",is_administrator());
$this->display();
}
function promote_statistics1($p = 0)
{
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$arraypage = $page;
if (isset($_REQUEST['row'])) {
$row = $_REQUEST['row'];
} else {
$row = 10;
}
$user = M('User', 'tab_');
if (!empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['register_time'] = ['between', array(strtotime($_REQUEST['timestart']), strtotime($_REQUEST['timeend']) + 86399)];
unset($_REQUEST['timestart']);
unset($_REQUEST['timeend']);
} elseif (!empty($_REQUEST['timestart']) && empty($_REQUEST['timeend'])) {
$map['register_time'] = ['between', array(strtotime($_REQUEST['timestart']), time())];
unset($_REQUEST['timestart']);
} elseif (empty($_REQUEST['timestart']) && !empty($_REQUEST['timeend'])) {
$map['register_time'] = ['elt', strtotime($_REQUEST['timeend']) + 86399];
unset($_REQUEST['timeend']);
}
$data = M("User u","tab_")
->field("count(u.id) as count,CASE when (fgame_name is null or fgame_name = '') THEN '无' ELSE left(fgame_name,char_length(fgame_name)-5) END fgame_name,promote_id,promote_account,admin_id,company_name,s.real_name")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join("tab_promote_company pc on promote.company_id = pc.id", 'left')
->join('sys_member s on promote.admin_id = s.uid', 'left')
->where($map)
->group('fgame_name,promote_id')
->page($page,$row)
->order("count desc")
->select();
$sql = M("User u","tab_")->field("count(u.id) as count,CASE when (fgame_name is null or fgame_name = '') THEN '无' ELSE left(fgame_name,char_length(fgame_name)-5) END fgame_name,promote_id")->where($map)->group('fgame_name,promote_id')->select(false);
$count = M()->table("(".$sql.") c")->count();
$page = set_pagination($count, $row);
if ($page) {
$this->assign('_page', $page);
}
$this->assign('list_data', $data);
$this->display();
// dd($data);
}
function promote_statistics($p = 0)
{
$page = intval($p);
@ -678,12 +732,24 @@ class PlatformController extends ThinkController
$week = total(2);
$mounth = total(3);
if (isset($_REQUEST['promote_id'])) {
$promoter_ids = D("Promote")->where("chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']}")->field('id')->select();
if (isset($_REQUEST['promote_id']) || isset($_REQUEST['company_id'])) {
$pwhere = "1";
if(isset($_REQUEST['promote_id'])){
$pwhere .= " and (chain like '%/{$_REQUEST['promote_id']}/%' or id={$_REQUEST['promote_id']})";
}
if(isset($_REQUEST['company_id'])){
$pwhere .= " and company_id={$_REQUEST['company_id']}";
}
$promoter_ids = D("Promote")->where($pwhere)->field('id')->select();
if ($promoter_ids) {
$map['u.promote_id'] = ['in', implode(',', array_column($promoter_ids, 'id'))];
}
}
$promoteTableMap = '';
if (isset($_REQUEST['company_belong'])){
$promoteTableMap .= " and promote.company_belong = {$_REQUEST['company_belong']}";
}
// 如果是市场专员那么只能看自己的会长信息
@ -698,15 +764,15 @@ class PlatformController extends ThinkController
$data = M("User u","tab_")
->field("
count(u.id) as count,
tab_game.relation_game_id,
tab_game.relation_game_name,
IFNULL(tab_game.relation_game_id,0) relation_game_id,
IFNULL(tab_game.relation_game_name,'其他渠道') relation_game_name,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',
u.promote_id,
substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join($play_map ? "tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id')
->join("tab_promote promote ON u.promote_id = promote.id {$promoteTableMap}")
->join($play_map ? "left join tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "left join tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id',"left")
->where($map)
->group('tab_game.relation_game_id, id')
->order('count desc, register_time')
@ -731,9 +797,10 @@ class PlatformController extends ThinkController
->field("count(IF(register_time {$today},1,null)) as today,
count(IF(register_time {$week},1,null)) as week,
count(IF(register_time {$mounth},1,null)) as mounth,
tab_game.relation_game_id,tab_game.relation_game_name,
IFNULL(tab_game.relation_game_id,0) relation_game_id,
IFNULL(tab_game.relation_game_name,'其他渠道') relation_game_name,
IFNULL(if(substring_index(substring_index(promote.`chain`,'/',2),'/',-1)='',u.promote_id,substring_index(substring_index(promote.`chain`,'/',2),'/',-1)),0) id")
->join("tab_promote promote ON u.promote_id = promote.id","left")
->join("tab_promote promote ON u.promote_id = promote.id {$promoteTableMap}")
->join($play_map ? "tab_user_play as up on up.user_id = u.id " . $play_map : false)
->join($play_info_map ? "tab_user_play_info as upi on upi.user_id = u.id " . $play_info_map : false)
->join('tab_game on u.fgame_id = tab_game.id')
@ -839,6 +906,7 @@ class PlatformController extends ThinkController
$this->assign("is_admin",is_administrator());
$this->assign('list_data', $data);
$this->assign('admin_users', M('member')->field('uid,nickname')->select());
$this->assign("companyList",D("PromoteCompany")->getList());
$this->assign('total', $total);
$this->display();
}

@ -64,8 +64,13 @@
</select>
</div>
<div class="input-list">
<input style="width: 200px;" type="text" name="company_name" class="search-input" value="" placeholder="请输入公司名称搜索">&nbsp;
<div class="input-list input-list-promote search_label_rehab">
<select id="company_id" name="company_id" class="select_gallery" >
<option value="">请选择公司</option>
<volist name="companyList" id="vo">
<option value="{$vo.id}" <if condition="$vo.id eq I('company_id')">selected</if> >{$vo.company_name}</option>
</volist>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">

@ -54,7 +54,22 @@
</div>
</div>
<div class="input-list input-list-promote search_label_rehab">
<label>会长账号</label>
<select id="company_id" name="company_id" class="select_gallery" >
<option value="">请选择公司</option>
<volist name="companyList" id="vo">
<option value="{$vo.id}" <if condition="$vo.id eq I('company_id')">selected</if> >{$vo.company_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="company_belong" name="company_belong" class="select_gallery" >
<option value="">请选择内外团</option>
<volist name=":getCompanyBlong()" id="vo">
<option value="{$vo.id}" <if condition="isset($_GET['company_belong']) && $vo.company_belong eq I('company_belong')">selected</if> >下游{$vo.name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="promote_id" name="promote_id" class="select_gallery" style="width:150px;">
<option value="">会长账号</option>
<volist name=":get_all_toppromote()" id="vo">
@ -91,6 +106,7 @@
<option value="">区服名称</option>
</select>
</div>
<br>
<input type="hidden" name="" value="" class="sortBy">
<div class="input-list">

Loading…
Cancel
Save