|
|
|
|
<extend name="Public/promote_base"/>
|
|
|
|
|
<block name="css">
|
|
|
|
|
<link href="__CSS__/20180207/data.css" rel="stylesheet">
|
|
|
|
|
<link href="__CSS__/20180207/manager.css" rel="stylesheet">
|
|
|
|
|
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
|
|
|
|
|
<link href="__STATIC__/icons_alibaba/iconfont.css?v=1.2" rel="stylesheet">
|
|
|
|
|
</block>
|
|
|
|
|
|
|
|
|
|
<block name="body">
|
|
|
|
|
<style>
|
|
|
|
|
@media screen and (max-width: 1500px) {
|
|
|
|
|
.normal_form {
|
|
|
|
|
padding-top: 45px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.trunk-search .normal_txt {
|
|
|
|
|
width: 100px
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.select2-container--default .select2-selection--single {
|
|
|
|
|
width: 125px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.trunk-search .select-time .txt {
|
|
|
|
|
width: 100px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.form-group .submit {
|
|
|
|
|
width: 55px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.selected-color {
|
|
|
|
|
color: #2bd8ed;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pointer-hand {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.icon-spend {
|
|
|
|
|
position: relative;
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
top: 3px;
|
|
|
|
|
float: right;
|
|
|
|
|
right: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.th-hide {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.form-group {
|
|
|
|
|
float: left;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
}
|
|
|
|
|
.form-group label {
|
|
|
|
|
line-height: 34px;
|
|
|
|
|
height: 34px;
|
|
|
|
|
}
|
|
|
|
|
.form-group .txt {
|
|
|
|
|
width: 180px;
|
|
|
|
|
height: 34px;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<div class="page-search normal_list query-recharge-search jssearch">
|
|
|
|
|
<div class="trunk-title">
|
|
|
|
|
<div class="location">
|
|
|
|
|
<div class="location-container">当前位置:<span>数据管理></span><span>数据汇总</span></div>
|
|
|
|
|
</div>
|
|
|
|
|
<img src="__IMG__/20180207/icon_chongzhi.png">
|
|
|
|
|
<span class="title_main">数据汇总</span>
|
|
|
|
|
<span class="details">说明:默认展示旗下各子渠道的全部数据</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="trunk-content article">
|
|
|
|
|
<div class="trunk-search clearfix">
|
|
|
|
|
<div class="tab normal_tab">
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <form action="{:U('Query/summary')}" method="get" enctype="multipart/form-data" class="normal_form"> -->
|
|
|
|
|
<include file="Public/promote_select" />
|
|
|
|
|
|
|
|
|
|
<div class="form-group normal_space">
|
|
|
|
|
<select id="relation_game_id" name="relation_game_id" class="reselect select_gallery">
|
|
|
|
|
<option value="0">请选择游戏</option>
|
|
|
|
|
<volist name=":get_promote_serach_game()" id="vo">
|
|
|
|
|
<option value="{$vo.relation_game_id}" title="{$vo.relation_game_name}">{$vo.relation_game_name}</option>
|
|
|
|
|
</volist>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group normal_space">
|
|
|
|
|
<select id="sdk_version" name="sdk_version" class="reselect select_gallery" style="width:215px;">
|
|
|
|
|
<option value="0">请选择设备类型</option>
|
|
|
|
|
<volist name=":getSDKType()" id="vo" key="k">
|
|
|
|
|
<option value="{$k}">{$vo}</option>
|
|
|
|
|
</volist>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group normal_space">
|
|
|
|
|
<select id="server_id" name="server_id" class=" reselect select_gallery">
|
|
|
|
|
<option value="0">请选择区服</option>
|
|
|
|
|
<volist name="serverData" id="vo">
|
|
|
|
|
<option value="{$vo.server_id}">{$vo.server_name}</option>
|
|
|
|
|
</volist>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group normal_space">
|
|
|
|
|
<label class="form-title select-title" style="position: relative;">起止时间:</label>
|
|
|
|
|
<div class="select-time">
|
|
|
|
|
<input type="text" readonly id="sdate" class="txt" name="begtime" placeholder="开始时间" value="{$initBegTime}">
|
|
|
|
|
</div>
|
|
|
|
|
<label class="form-title select-title zhi_color"> — </label>
|
|
|
|
|
<div class="select-time">
|
|
|
|
|
<input type="text" readonly id="edate" class="txt" name="endtime" placeholder="结束时间" value="{$initEndTime}">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group normal_space">
|
|
|
|
|
<input type="submit" class="submit" id='submit' url="{:U('Query/summary','model='.$model['name'],false)}"
|
|
|
|
|
value="查询">
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group normal_space" style="margin-left: 46px;">
|
|
|
|
|
<label style="line-height: 34px;cursor: pointer;" id="own">
|
|
|
|
|
<i class="iconfont {:empty($ownId)?'iconfangxingweixuanzhong':'iconfangxingxuanzhongfill selected-color'}" style="font-size: 1.5rem;position: relative;top: 3px;margin-right: 2px;"></i>本账号
|
|
|
|
|
<input type="checkbox" name="own_id" id="own_id" style="display: none;" value="1"
|
|
|
|
|
<if condition="$ownId eq 1"> checked="checked" </if> />
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <input type="hidden" name="version" value="{:I('version',1)}"> -->
|
|
|
|
|
<!-- </form> -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="page-list apply-app_apply-list query-recharge-list">
|
|
|
|
|
<div class="trunk-content article">
|
|
|
|
|
<div class="tabcon trunk-list">
|
|
|
|
|
<table class="table normal_table">
|
|
|
|
|
<tr class="odd">
|
|
|
|
|
<th>游戏名称</th>
|
|
|
|
|
<th>平台</th>
|
|
|
|
|
<th class="pointer-hand" title="创角数:统计时间范围内,成功创建角色数量(唯一)">创角数</th>
|
|
|
|
|
<th class="pointer-hand" title="创角用户:统计时间范围内,成功创角的用户数(去重)">创角用户</th>
|
|
|
|
|
<th class="pointer-hand" title="新创角用户:当日(24小时),首次创建角色的用户数;新创角设备:当日(24小时),首次创建角色设备总数(去重)">新创角用户|新创角设备
|
|
|
|
|
</th>
|
|
|
|
|
<th class="pointer-hand" title="新增创角IP:统计时间范围内,首次创建角色IP总数(去重)">新增创角IP</th>
|
|
|
|
|
<th class="pointer-hand" title="登录用户数:统计时间范围内,登录的用户数(去重)">登录用户数</th>
|
|
|
|
|
<?php if ($canViewUserRecharge) :?>
|
|
|
|
|
<th class="pointer-hand" title="充值人数:当日(24小时),在游戏内充值成功的订单的用户数(去重)">充值人数</th>
|
|
|
|
|
<th class="pointer-hand" title="充值次数:当日(24小时),在游戏内充值成功的订单数量">充值次数</th>
|
|
|
|
|
<th class="pointer-hand spend-btn" title="充值总额:当日(24小时),在游戏内充值成功的订单金额总和" style="width: 200px;">充值总额<i
|
|
|
|
|
class="iconfont iconplus-square icon-spend"></i></th>
|
|
|
|
|
<th class="pointer-hand spend-element th-hide" title="现金充值:统计时间范围内,在游戏内充值成功的订单,使用现金支付金额总和">现金充值</th>
|
|
|
|
|
<th class="pointer-hand spend-element th-hide" title="通用币充值:统计时间范围内,在游戏内充值成功的订单,使用通用币支付金额总和">通用币充值</th>
|
|
|
|
|
<th class="pointer-hand spend-element th-hide" title="绑定币充值:统计时间范围内,在游戏内充值成功的订单,使用绑定币支付金额总和">绑定币充值</th>
|
|
|
|
|
<th class="pointer-hand spend-element th-hide" title="折扣币充值:统计时间范围内,在游戏内充值成功的订单,使用折扣币支付金额总和,该部分不参与结算">
|
|
|
|
|
折扣币充值
|
|
|
|
|
</th>
|
|
|
|
|
<th class="pointer-hand spend-element th-hide" title="代金券使用:统计时间范围内,在游戏内充值成功的订单,使用代金券总和,该部分不参与结算">
|
|
|
|
|
代金劵使用
|
|
|
|
|
</th>
|
|
|
|
|
<?php endif ;?>
|
|
|
|
|
</tr>
|
|
|
|
|
<empty name="listData">
|
|
|
|
|
<tr class="num2">
|
|
|
|
|
<td colspan="15" style="text-align: center;height: 45vh;">
|
|
|
|
|
<img src="__IMG__/20180207/icon_wushujv2.png"/>
|
|
|
|
|
<p style="line-height: 40px;color: #A5A5A5;">暂无数据</p>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<else/>
|
|
|
|
|
<volist name="listData" id="vo">
|
|
|
|
|
<tr class="num2">
|
|
|
|
|
<td>{$vo.game_name}</td>
|
|
|
|
|
<td>{:getSDKTypeName($vo['sdk_version'],true)}</td>
|
|
|
|
|
<td><?=intval($vo['role_num'])?></td>
|
|
|
|
|
<td><?=intval($vo['user_num'])?></td>
|
|
|
|
|
<td><?=intval($vo['new_user_num']).'|'.intval($vo['new_device_num'])?></td>
|
|
|
|
|
<td><?=intval($vo['new_ip_num'])?></td>
|
|
|
|
|
<td><?=intval($vo['login_user_num'])?></td>
|
|
|
|
|
<?php if ($canViewUserRecharge) :?>
|
|
|
|
|
<td><?=intval($vo['spend_user_num'])?></td>
|
|
|
|
|
<td><?=intval($vo['spend_num'])?></td>
|
|
|
|
|
<td>{$vo.spend_all_amount|default=0}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$vo.spend_cash|default=0}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$vo.spend_generic|default=0}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$vo.spend_binding|default=0}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$vo.spend_discount|default=0}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$vo.spend_voucher|default=0}</td>
|
|
|
|
|
<?php endif ;?>
|
|
|
|
|
</tr>
|
|
|
|
|
</volist>
|
|
|
|
|
<tr class="num2">
|
|
|
|
|
<td>合计</td>
|
|
|
|
|
<td>--</td>
|
|
|
|
|
<td>{$allData.role_num}</td>
|
|
|
|
|
<td>{$allData.user_num}</td>
|
|
|
|
|
<td>{$allData.new_user_num}|{$allData.new_device_num}</td>
|
|
|
|
|
<td>{$allData.new_ip_num}</td>
|
|
|
|
|
<td>{$allData.login_user_num}</td>
|
|
|
|
|
<?php if ($canViewUserRecharge) :?>
|
|
|
|
|
<td>{$allData.spend_user_num}</td>
|
|
|
|
|
<td>{$allData.spend_num}</td>
|
|
|
|
|
<td>{$allData.spend_all_amount}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$allData.spend_cash}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$allData.spend_generic}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$allData.spend_binding}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$allData.spend_discount}</td>
|
|
|
|
|
<td class="spend-element th-hide">{$allData.spend_voucher}</td>
|
|
|
|
|
<?php endif ;?>
|
|
|
|
|
</tr>
|
|
|
|
|
</empty>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pagenation clearfix">
|
|
|
|
|
<?php if ($loginer['level'] !== 4) :?>
|
|
|
|
|
<a id="sch-btn" data-href="{:U('download/summary_data_export',array_merge(['xlsname'=>'ceshi'],I('get.')))}" class="ajax-get">导出</a>
|
|
|
|
|
<?php endif ;?>
|
|
|
|
|
{$_page}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</block>
|
|
|
|
|
<block name="script">
|
|
|
|
|
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
|
|
|
|
|
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
|
|
|
|
|
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
|
|
|
|
|
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
|
|
|
|
|
charset="UTF-8"></script>
|
|
|
|
|
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
|
|
|
|
|
<script src="__STATIC__/layer/layer.js"></script>
|
|
|
|
|
<script type="text/javascript" src="__JS__/common.js"></script>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$().ready(function () {
|
|
|
|
|
setValue('relation_game_id', {$Think.request.relation_game_id |default = '""'});
|
|
|
|
|
setValue('sdk_version', {$Think.request.sdk_version |default = '""'});
|
|
|
|
|
setValue('server_id', {$Think.request.server_id |default = '""'});
|
|
|
|
|
setValue('row', '{:I("get.row",10)}');
|
|
|
|
|
|
|
|
|
|
var promoteUrl = "{:U('Query/getSubPromotes')}"
|
|
|
|
|
initPromoteSelect(promoteUrl);
|
|
|
|
|
|
|
|
|
|
$('#own').on('click',function () {
|
|
|
|
|
var own = $('#own_id');
|
|
|
|
|
var checkBox = $(this).children('i');
|
|
|
|
|
|
|
|
|
|
if (own.is(':checked')) {
|
|
|
|
|
checkBox.removeClass('iconfangxingxuanzhongfill');
|
|
|
|
|
checkBox.removeClass('selected-color');
|
|
|
|
|
checkBox.addClass('iconfangxingweixuanzhong');
|
|
|
|
|
|
|
|
|
|
own.prop('checked', false);
|
|
|
|
|
} else {
|
|
|
|
|
checkBox.removeClass('iconfangxingweixuanzhong');
|
|
|
|
|
checkBox.addClass('iconfangxingxuanzhongfill');
|
|
|
|
|
checkBox.addClass('selected-color');
|
|
|
|
|
|
|
|
|
|
own.prop('checked', true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('.spend-btn').on('click', function () {
|
|
|
|
|
var element = $(this).find('i');
|
|
|
|
|
|
|
|
|
|
if (element.hasClass('iconplus-square')) {
|
|
|
|
|
element.removeClass('iconplus-square');
|
|
|
|
|
element.addClass('iconminus-square');
|
|
|
|
|
|
|
|
|
|
$('.spend-element').removeClass('th-hide');
|
|
|
|
|
} else {
|
|
|
|
|
element.removeClass('iconminus-square');
|
|
|
|
|
element.addClass('iconplus-square');
|
|
|
|
|
|
|
|
|
|
$('.spend-element').addClass('th-hide');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("#pagehtml a").on("click", function (event) {
|
|
|
|
|
event.preventDefault();//使a自带的方法失效,即无法调整到href中的URL(http://www.baidu.com)
|
|
|
|
|
var geturl = $(this).attr('href');
|
|
|
|
|
$('#data_form').attr('action', geturl);
|
|
|
|
|
$('#data_form').submit();
|
|
|
|
|
});
|
|
|
|
|
var date = "{$setdate}";
|
|
|
|
|
$('#sdate').datetimepicker({
|
|
|
|
|
format: 'yyyy-mm-dd',
|
|
|
|
|
language: "zh-CN",
|
|
|
|
|
minView: 2,
|
|
|
|
|
autoclose: true,
|
|
|
|
|
scrollMonth: false,
|
|
|
|
|
scrollTime: false,
|
|
|
|
|
scrollInput: false,
|
|
|
|
|
endDate: date
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#edate').datetimepicker({
|
|
|
|
|
format: 'yyyy-mm-dd',
|
|
|
|
|
language: "zh-CN",
|
|
|
|
|
minView: 2,
|
|
|
|
|
autoclose: true,
|
|
|
|
|
pickerPosition: 'bottom-left',
|
|
|
|
|
scrollMonth: false,
|
|
|
|
|
scrollTime: false,
|
|
|
|
|
scrollInput: false,
|
|
|
|
|
endDate: date
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#submit').click(function () {
|
|
|
|
|
var sdate = Date.parse($('#sdate').val()) / 1000;
|
|
|
|
|
var edate = Date.parse($('#edate').val()) / 1000;
|
|
|
|
|
|
|
|
|
|
if (sdate > edate) {
|
|
|
|
|
layer.msg('开始时间必须小于等于结束时间');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ((edate - sdate) > 2592000) {
|
|
|
|
|
layer.msg('时间间隔不能超过31天,请重新选择日期');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var url = $(this).attr('url');
|
|
|
|
|
console.log(url);
|
|
|
|
|
var query = $('.jssearch').find('input').serialize();
|
|
|
|
|
query += "&" + $('.jssearch').find('select').serialize();
|
|
|
|
|
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
|
|
|
|
|
query = query.replace(/^&/g, '');
|
|
|
|
|
if (url.indexOf('?') > 0) {
|
|
|
|
|
url += '&' + query;
|
|
|
|
|
} else {
|
|
|
|
|
url += '?' + query;
|
|
|
|
|
}
|
|
|
|
|
window.location.href = url;
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#relation_game_id').change(function () {
|
|
|
|
|
var relationGameId = $(this).val();
|
|
|
|
|
var sdkVersion = $('#sdk_version').val();
|
|
|
|
|
|
|
|
|
|
getServerList(relationGameId, sdkVersion);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#sdk_version').change(function () {
|
|
|
|
|
var sdkVersion = $(this).val();
|
|
|
|
|
var relationGameId = $('#relation_game_id').val();
|
|
|
|
|
|
|
|
|
|
if (relationGameId > 0) {
|
|
|
|
|
getServerList(relationGameId, sdkVersion);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function getServerList(relationGameId, sdkVersion)
|
|
|
|
|
{
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: "{:U('getServerAjax')}",
|
|
|
|
|
type: "post",
|
|
|
|
|
data: {relation_game_id: relationGameId,sdk_version:sdkVersion},
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
success: function (data) {
|
|
|
|
|
var html = "<option value='' selected>请选择区服</option>";
|
|
|
|
|
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var serverData = data.data;
|
|
|
|
|
|
|
|
|
|
if (serverData.length > 0) {
|
|
|
|
|
for (var i in serverData) {
|
|
|
|
|
html += "<option value='" + serverData[i]['server_id'] + "'>" + serverData[i]['server_name'] + "</option>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$("#server_id").empty();
|
|
|
|
|
$('#server_id').html(html);
|
|
|
|
|
$("#server_id").select2();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$(".select_gallery").select2();
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
</block>
|