Merge branch 'dev' of 47.111.118.107:/srv/git/platform into dev

master
Your Name 5 years ago
commit dac383b78d

1
.gitignore vendored

@ -2,4 +2,5 @@
Runtime/
Uploads/
Application/Common/Conf/env.php
Application/Common/Conf/pay_config.php
.idea/

@ -549,6 +549,7 @@ function think_ucenter_md5($str, $key = 'ThinkUCenter'){
public function rolelist()
{
$map = [];
if (isset($_REQUEST['game_name'])) {
$map['game_name'] = trim($_REQUEST['game_name']);
unset($_REQUEST['game_name']);
@ -562,7 +563,7 @@ function think_ucenter_md5($str, $key = 'ThinkUCenter'){
unset($_REQUEST['role_name']);
}
empty(I('user_account')) || $map['user_account'] = ['like',"%".I('user_account')."%"];
$list = $this->lists(M('user_play_info', 'tab_'), $map);
$list = $this->lists(M('user_play_info', 'tab_'), $map, 'play_time desc');
$this->assign('list', $list);
$this->meta_title = '角色数据';

@ -306,7 +306,7 @@ class SourceEvent extends Controller
//$ossClient->multiuploadFile($bucket, $url, $file, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . ": initiateMultipartUpload FAILED\n");
$this -> error($e -> getMessage() . "\n");
$this -> error('1' . $e -> getMessage() . "\n");
return;
}
/*

@ -108,7 +108,7 @@
<td><span class="badge">{$data['role_id']}</span></td>
<td><notempty name="rolename">{$rolename}<else /></notempty></td>
<td>{$data.role_level}</td>
<td>{$data.play_time|date='Y-m-d H:i:s',###}</td>
<td><?= date('Y-m-d H:i:s', $data['play_time']) ?></td>
<td>{$data.play_ip}</td>
<!-- <td><a class="ajax-get" href="{:U('user_update',['ids'=>$data['id']])}">更新</a></td> -->
</tr>

@ -217,4 +217,10 @@ class BaseController extends HomeController{
}
return $records;
}
public function getLoginPromote()
{
$promoteId = session('promote_auth.pid');
return M('promote', 'tab_')->where(['id' => $promoteId])->find();
}
}

File diff suppressed because it is too large Load Diff

@ -1158,23 +1158,268 @@ class QueryController extends BaseController
$this->display('view_role');
}
public function userPlayers($p = 0)
public function users()
{
$promote = $this->getLoginPromote();
$promoteId = $promote['id'];
$map = [
'_logic' => 'or',
'id' => $promoteId,
'parent_id' => $promoteId,
'grand_id' => $promoteId,
];
$ids = M('promote', 'tab_')->where($map)->getField('id', true);
$promotes = [];
$groupPromotes = [];
if ($promote['parent_id'] == 0) {
$groupPromotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promoteId])->select();
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['grand_id' => $promoteId])->select();
}
if ($promote['parent_id'] > 0 && $promote['grand_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promoteId])->select();
}
$fields = [
'id', 'account', 'promote_account', 'promote_id', 'device_number', 'register_time', 'register_ip', 'login_time', 'login_ip', 'device_type'
];
$query = M('user', 'tab_')->field($fields)->where(['promote_id' => ['in', $ids]]);
list($records, $pagination, $count) = $this->paginate($query);
$this->assign('promotes', $promotes);
$this->assign('groupPromotes', $groupPromotes);
$this->assign('records', $records);
$this->assign('pagination', $pagination);
$this->assign('count', $count);
$this->display();
}
public function userRoles()
{
$gameId = I('game_id', 0);
$serverId = I('server_id', 0);
$isSelf = I('is_self', 0);
$roleName = I('role_name', '');
$userAccount = I('user_account', '');
$promoteId = I('promote_id', 0);
$sdkVersion = I('sdk_version', 0);
$roleLevelBegin = intval(I('role_level_begin', 0));
$roleLevelEnd = intval(I('role_level_end', 0));
$headmanPromoteId = I('headman_promote_id', 0);
$playTime = I('play_time', '');
$promote = $this->getLoginPromote();
$map = [
'_logic' => 'or',
'id' => $promote['id'],
'parent_id' => $promote['id'],
'grand_id' => $promote['id'],
];
$ids = M('promote', 'tab_')->where($map)->getField('id', true);
$promotes = $this->getGroupPromotes($promote);
$groupPromotes = $this->getGroupPromotes($promote);
$map = [];
if (isset($_REQUEST['game_name'])) {
$map['game_name'] = trim($_REQUEST['game_name']);
unset($_REQUEST['game_name']);
$map = ['promote_id' => ['in', $ids]];
if ($gameId != 0) {
$map['game_id'] = $gameId;
}
if (isset($_REQUEST['server_id'])) {
$map['server_id'] = trim($_REQUEST['server_id']);
unset($_REQUEST['server_id']);
if ($serverId != 0) {
$map['serverId'] = $serverId;
}
if ($roleName != '') {
$map['role_name'] = ['like', '%' . $roleName . '%'];
}
if ($userAccount != '') {
$map['user_acount'] = ['like', '%' . $userAccount . '%'];
}
if ($sdkVersion != 0) {
$map['sdk_version'] = $sdkVersion;
}
if ($roleLevelBegin != 0 && $roleLevelEnd == 0) {
$map['role_level'] = ['egt', $roleLevelBegin];
} elseif ($roleLevelEnd != 0 && $roleLevelBegin == 0) {
$map['role_level'] = ['elt', $roleLevelEnd];
} elseif ($roleLevelEnd != 0 && $roleLevelBegin != 0) {
$map['role_level'] = ['between', [$roleLevelBegin, $roleLevelEnd]];
}
if ($playTime != '') {
$playTimeRow = explode(' 至 ', $playTime);
$playTimeBegin = 0;
$playTimeEnd = 0;
if (count($playTimeRow) == 2) {
$playTimeBegin = strtotime($playTimeRow[0] . ' 00:00:00');
$playTimeEnd = strtotime($playTimeRow[1] . ' 23:59:59');
} else {
$playTimeBegin = strtotime($playTimeRow[0] . ' 00:00:00');
$playTimeEnd = strtotime($playTimeRow[0] . ' 23:59:59');
}
$map['play_time'] = ['between', [$playTimeBegin, $playTimeEnd]];
}
if ($isSelf) {
$map['promote_id'] = $promote['id'];
} else {
if ($headmanPromoteId != 0) {
$map['promote_id'] = $headmanPromoteId;
} elseif ($promoteId != 0) {
$map['promote_id'] = $promoteId;
}
}
$query = M('user_play_info', 'tab_')->where($map);
list($records, $pagination, $count) = $this->paginate($query);
$games = $this->getGamesByPromote($promote);
$this->assign('games', $games);
$this->assign('records', $records);
$this->assign('pagination', $pagination);
$this->assign('count', $count);
$this->display('userRoles');
}
public function userRecharges()
{
$gameId = I('game_id', 0);
$serverId = I('server_id', 0);
$isSelf = I('is_self', 0);
$roleName = I('role_name', '');
$userAccount = I('user_account', '');
$promoteId = I('promote_id', 0);
$sdkVersion = I('sdk_version', 0);
$headmanPromoteId = I('headman_promote_id', 0);
$promote = $this->getLoginPromote();
$map = [
'_logic' => 'or',
'id' => $promote['id'],
'parent_id' => $promote['id'],
'grand_id' => $promote['id'],
];
$ids = M('promote', 'tab_')->where($map)->getField('id', true);
$promotes = $this->getGroupPromotes($promote);
$groupPromotes = $this->getGroupPromotes($promote);
$map = $spendMap = ['promote_id' => ['in' => $ids]];
if ($gameId != 0) {
$map['game_id'] = $gameId;
}
if ($serverId != 0) {
$map['serverId'] = $serverId;
}
if (isset($_REQUEST['role_name'])) {
$map['role_name'] = trim($_REQUEST['role_name']);
unset($_REQUEST['role_name']);
if ($roleName != '') {
$map['role_name'] = ['like', '%' . $roleName . '%'];
}
$map['promote_id'] = session("promote_auth.pid");
$this->data_lists($p, 'UserPlayInfo', ['map' => $map]);
if ($userAccount != '') {
$map['user_acount'] = ['like', '%' . $userAccount . '%'];
}
if ($sdkVersion != 0) {
$map['sdk_version'] = $sdkVersion;
}
if ($isSelf) {
$map['promote_id'] = $promote['id'];
$spendMap['promote_id'] = $promote['id'];
} else {
if ($headmanPromoteId != 0) {
$map['promote_id'] = $headmanPromoteId;
$spendMap['promote_id'] = $headmanPromoteId;
} elseif ($promoteId != 0) {
$map['promote_id'] = $promoteId;
$spendMap['promote_id'] = $promoteId;
}
}
$query = M('user_play_info', 'tab_')->where($map);
list($roles, $pagination, $count) = $this->paginate($query);
$roleIds = array_column($roles, 'role_id');
$spendMap['pay_status'] = 1;
$spendMap['pay_game_status'] = 1;
if (count($roleIds) > 0) {
$spendMap['game_player_id'] = ['in', $roleIds];
} else {
$spendMap['_string'] = '1<>1';
}
$allRecharges = M('spend', 'tab_')->field('count(*) count, sum(cost) cost, game_player_id')->where($gameMap)->group('game_player_id')->select();
$allRecords = [];
foreach ($allRecharges as $recharge) {
$allRecords[$recharge['game_player_id']] = $recharge;
}
$map['pay_time'] = ['between', [strtotime(date('Y-m-d 00:00:00')), strtotime(date('Y-m-d 23:59:59'))]];
$todayRecharges = M('spend', 'tab_')->field('sum(cost) cost, game_player_id')->where($map)->group('game_player_id')->select();
$todayRecords = [];
foreach ($todayRecharges as $recharge) {
$todayRecords[$recharge['game_player_id']] = $recharge;
}
$records = [];
foreach ($roles as $role) {
$records[] = [
'user_account' => $role['user_account'],
'game_name' => $role['game_name'],
'role_name' => $role['role_name'],
'role_id' => $role['role_id'],
'role_level' => $role['role_level'],
'server_id' => $role['server_id'],
'server_name' => $role['server_name'],
'recharge_cost' => isset($allRecords[$role['role_id']]) ? round(floatval($allRecords[$role['role_id']]['cost']), 2) : 0,
'recharge_count' => isset($allRecords[$role['role_id']]) ? $allRecords[$role['role_id']]['count'] : 0,
'recharge_cost_today' =>isset($todayRecords[$role['role_id']]) ? round(floatval($todayRecords[$role['role_id']]['cost']), 2) : 0,
'play_time' => $role['play_time'],
'play_ip' => $role['play_ip'],
'promote_id' => $role['promote_id'],
'promote_account' => $role['promote_account'],
'sdk_version' => $role['sdk_version'],
'unlogin_day' => intval((strtotime(date('Y-m-d 00:00:00')) - strtotime(date('Y-m-d 00:00:00', $role['play_time']))) / (24*3600) )
];
}
$games = $this->getGamesByPromote($promote);
$this->assign('games', $games);
$this->assign('promotes', $promotes);
$this->assign('groupPromotes', $groupPromotes);
$this->assign('records', $records);
$this->assign('pagination', $pagination);
$this->assign('count', $count);
$this->display('userRecharges');
}
private function getGamesByPromote($promote)
{
return M('apply', 'tab_')->field(['game_id', 'game_name'])->where(['promote_id' => $promote['id']])->select();
}
private function getGroupPromotes($promote)
{
$promotes = [];
if ($promote['parent_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promote['id']])->select();
}
return $promotes;
}
private function getNormalPromotes($promote)
{
$promotes = [];
if ($promote['parent_id'] > 0 && $promote['grand_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['parent_id' => $promote['id']])->select();
} elseif ($promote['parent_id'] == 0) {
$promotes = M('promote', 'tab_')->field(['id', 'account', 'real_name'])->where(['grand_id' => $promote['id']])->select();
}
return $promotes;
}
public function getGameServers()
{
$gameId = I('game_id', 0);
$servers = M('server', 'tab_')->field(['id', 'server_name'])->where(['game_id' => $gameId])->select();
$this->ajaxReturn([
'status' => 1,
'msg' => '成功',
'data' => ['servers' => $servers]
]);
}
/**

@ -930,7 +930,7 @@ class UserEvent extends BaseEvent {
public function arpu_analysis_data() {
public function arpu_analysis_data() {
if ($_REQUEST['time_start'] && $_REQUEST['time_end']) {
$request = $_REQUEST;
$game_id = $request['game_id'];

@ -1,44 +1,204 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/manager.css" rel="stylesheet" ><style>.article-title {width:83%;}</style>
<link href="__CSS__/index/index.new.css?v=1" rel="stylesheet" >
</block>
<block name="body">
<div class="page-overview promote-index-overview index-overview clearfix">
<ul>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi1.png"/></span></div><div class="text text2"><p>今日充值</p><span>¥{$today}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi2.png"/></span></div><div class="text text1"><p>昨日充值</p><span>¥{$yesterday}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi3.png"/></span></div><div class="text text3"><p>本月充值</p><span>¥{$month}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi5.png"/></span></div><div class="text text5"><p>上月充值</p><span>¥{$lastmonth}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi4.png"/></span></div><div class="text text4"><p>总计充值</p><span>¥{$total}</span></div></li>
</ul>
<div class="page-overview promote-index-overview index-overview clearfix poll">
<ul>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi1.png"/></span></div><div class="text text2"><p>推广总用户</p><span>{$user_count}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi2.png"/></span></div><div class="text text1"><p>推广总充值</p><span>¥{$total_money}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi3.png"/></span></div><div class="text text3"><p>当日新增用户充值</p><span>¥{$today_add_user_money}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi5.png"/></span></div><div class="text text5"><p>当月新增用户充值</p><span>¥{$month_add_user_money}</span></div></li>
</ul>
<ul style="margin-top: 10px">
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi1.png"/></span></div><div class="text text2"><p>昨日注册用户</p><span>{$yesterday_user_regist_count}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi2.png"/></span></div><div class="text text1"><p>昨日充值金额</p><span>¥{$yesterday_total_money}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi3.png"/></span></div><div class="text text3"><p>今日注册用户</p><span>{$yesterday_regist_user_count}</span></div></li>
<li><div class="icon"><span class="placeholder-graphic"><img src="__IMG__/20180207/icon_chongzhi5.png"/></span></div><div class="text text5"><p>今日充值金额</p><span>¥{$yesterday_total_money}</span></div></li>
</ul>
</div>
<div class="index-tab-list">
<ul>
<li>
<div class="qcl-box">
<div class="qcl-box-hand"><span class="qcl-tit">快捷菜单</span><span class="more"><a href="{:U('quick_menu_list')}">自定义></a></span></div>
<div class="qcl-bnt">
<empty name="menu_list">
暂无数据
<else/>
<ul>
<volist name="menu_list" id="menu">
<li>
<a href="{$menu.url}">
<span><img src="https://fileuc.37376.com/180912-80cfe5b6e68941f4bfe4cd697765abb4.png"></span>
<span>{$menu.name}</span>
</a>
</li>
</volist>
</ul>
</empty>
</div>
</div>
</li>
<li>
<div class="fxui-tab">
<div class="fxui-tab-hand"><span class="fxui-tab-tit">公告</span> <span class="fxui-tab-tit">消息</span> <span class="fxui-tab-tit">游戏活动</span><span class="more"><a href="{:U('msg_list')}">查看更多></a></span></div>
<div class="fxui-tab-nav">
<empty name="gg_list">
暂无公告
<else/>
<volist name="gg_list" id="gg">
<p>
<span class="title"><a href="index.php?s=/Home/Article/detail/id/{$gg.id}.html">{$gg.title}</a></span>
<span class="time">{$gg.update_time|date="Y/m/d",###}</span>
</p>
</volist>
</empty>
</div>
<div class="fxui-tab-nav">
<empty name="xx_list">
暂无消息
<else/>
<volist name="xx_list" id="xx">
<p>
<span class="title"><a href="index.php?s=/Home/Article/detail/id/{$xx.id}.html">{$xx.title}</a></span>
<span class="time">{$xx.update_time|date="Y/m/d",###}</span>
</p>
</volist>
</empty>
</div>
<div class="fxui-tab-nav">
<empty name="zx_list">
暂无活动信息
<else/>
<volist name="zx_list" id="zx">
<p>
<span class="title"><a href="index.php?s=/Home/Article/detail/id/{$zx.id}.html">{$zx.title}</a></span>
<span class="time">{$zx.update_time|date="Y/m/d",###}</span>
</p>
</volist>
</empty>
</div>
</div>
</li>
</ul>
</div>
<div class="page-list promote-index-list promote-index-list-news">
<div class="trunk-title-main"><span>开服信息</span></div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<div class="tab-bnt">
<div class="curr" rel="0">
<p>今日开服</p>
</div>
<div rel="1">
<p>开服预告</p>
</div>
</div>
<div class="form-group normal_space fr">
<input type="button" class="submit"onclick="seach()" value="查询">
</div>
<div class="form-group fr">
<label class="form-title select-title">游戏名称:</label>
<select name="game_id" class="reselect select_gallery" style="width:265px;">
<option value="">--请选择--</option>
<volist name="game_list" id="game">
<option value="{$game.id}" title="{$game.game_name}">{$game.game_name}</option>
</volist>
</select>
</div>
<input type="hidden" name="type" value="0">
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>游戏ICON</th>
<th>游戏名称</th>
<th>平台</th>
<th>开服时间</th>
<th>服务器信息</th>
</tr>
<empty name="today_open_server_list">
<tr><td colspan="8" style="text-align: center;height: 38vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="today_open_server_list" id="data">
<tr>
<td><img src="{$data.icon|get_cover='path'}"></td>
<td>{$data.game_name}</td>
<td><if condition="$data.pay_type eq 0">安卓、iOS<elseif condition="$data.pay_type eq 1">安卓<else />iOS</if></td>
<td>{$data.start_time|date="m-d H:i",###}</td>
<td>{$data.server_name}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
{$_page}
</div>
</div>
<div class="page-list promote-index-list promote-index-list-news">
<div class="trunk-title-main"><img src="__IMG__/20180207/icon_normal_new.png"><span>新闻公告</span></div>
<div class="trunk-content article">
<ul>
<article:list name="article" category="56" limit="10" child="true" page="2">
<li>
<span class="article-type"><img src="__IMG__/20180207/icon_normal_gonggao.png"/></span>
<span >
<a title="{$article['title']}" class="article-title" target="_blank" href="{:U('Home/Article/detail?id='.$article['id'])}">{:msubstr2($article['title'],0,270)}</a>
</span>
<span class="article-time fr">{$article.update_time|date='Y-m-d',###}</span>
</li>
</article:list>
</ul>
<div class="pagenation clearfix">{$_page}</div>
</div>
</div>
<script>
$(function(){
$('.icon').each(function() {
var that = $(this),rotate = that.attr('data-rotate'),half=parseInt(rotate/2);
if (rotate<=0) {return ;}
that.count = 0;
});
</div>.
<script type="text/javascript" src="__JS__/jquery.min.js"></script>
<script type="text/javascript" src="__JS__/index/jquery.fxTab.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script>
$(function(){
$(".select_gallery").select2();
$('.icon').each(function() {
var that = $(this),rotate = that.attr('data-rotate'),half=parseInt(rotate/2);
if (rotate<=0) {return ;}
that.count = 0;
});
$('.fxui-tab').fxuiTab();
$(".tab-bnt div").bind("click",function () {
$(".tab-bnt div").removeClass("curr");
$(this).addClass("curr");
$("input[name=type]").val($(this).attr("rel"));
seach();
})
});
function seach() {
var game_id = $("select[name=game_id]").val();
var type = $("input[name=type]").val();
jQuery.ajax({
type: 'POST',
url:'index.php?s=/Home/Promote/home_read_data.html',
data: {
'type':type,
'game_id':game_id,
},
dataType: 'JSON',
cache: false,
success: function (result) {
if (result.status==1){
var show = '<tr><td colspan="8" style="text-align: center;height: 38vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>';
$(".odd").nextAll().remove();
$.each(result.data, function (index, item) {
if(index==0){
show="<tr>" +
"<td><img src='"+item.icon+"'></td>" +
"<td>"+item.game_name+"</td>" +
"<td>"+item.pay_type+"</td>" +
"<td>"+item.start_time+"</td>" +
"<td>"+item.server_name+"</td>" +
"</tr>"
}else{
show+="<tr>" +
"<td><img src='"+item.icon+"'></td>" +
"<td>"+item.game_name+"</td>" +
"<td>"+item.pay_type+"</td>" +
"<td>"+item.start_time+"</td>" +
"<td>"+item.server_name+"</td>" +
"</tr>"
}
});
$(".odd").after(show);
}
}
});
</script>
}
</script>
</block>

@ -0,0 +1,36 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/index/index.new.css?v=1" rel="stylesheet" >
</block>
<block name="body">
<div class="page-search normal_list charge-agentPay-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>后台首页></span><span>公告列表</span></div>
</div>
</div>
<div class="trunk-content article">
<div class="fxui-tab">
<div class="fxui-tab-hand" style="border-bottom: none">
<span class="fxui-tab-tit <if condition="$type==56">curr</if>"><a href="{:U('msg_list')}&type=56">公告</a></span>
<span class="fxui-tab-tit <if condition="$type==50">curr</if>"><a href="{:U('msg_list')}&type=50">消息</a></span>
<span class="fxui-tab-tit <if condition="$type==51">curr</if>"><a href="{:U('msg_list')}&type=51">游戏活动</a></span></div>
<div class="fxui-tab-nav">
<empty name="data_list">
暂无信息
<else/>
<volist name="data_list" id="data">
<p>
<span class="title"><a href="index.php?s=/Home/Article/detail/id/{$data.id}.html">{$data.title}</a></span>
<span class="time">{$data.update_time|date="Y/m/d",###}</span>
</p>
</volist>
</empty>
</div>
</div>
</div>
</div>
</block>
<block name="script">
</block>

@ -0,0 +1,68 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/index/index.new.css?v=1" rel="stylesheet" >
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/platform.css" rel="stylesheet">
</block>
<block name="body">
<div class="page-search normal_list charge-agentPay-search">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>后台首页></span><span>快捷菜单</span></div>
</div>
</div>
<div class="trunk-content article">
<div class="trunk-list list_normal" style="margin-top: 20px">
<table class="table normal_table">
<tr class="odd">
<th>图标</th>
<th>模块名称</th>
<th>是否添加</th>
<th>操作</th>
</tr>
<empty name="data_list">
<tr><td colspan="8" style="text-align: center;height: 38vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="data_list" id="data">
<tr>
<td><img src="{$data.icon|get_cover='path'}"></td>
<td>{$data.name}</td>
<td><if condition="$data.exist_id neq ''">已添加<else/>未添加</if></td>
<td><a href="javascript:operation('{$data.id}')"><if condition="$data.exist_id neq ''">移除<else/>添加</if></a></td>
</tr>
</volist>
</empty>
</table>
</div>
</div>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<script type="text/javascript" src="__JS__/jquery.min.js"></script>
<script>
function operation(menu_id) {
jQuery.ajax({
type: 'POST',
url:'index.php?s=/Home/Promote/quick_menu_set.html',
data:{
'menu_id':menu_id
},
dataType: 'JSON',
cache: false,
success: function (result) {
layer.alert(result.info,{},function (idex) {
parent.layer.close(idex);
if (result.status==1){
location.reload()
}
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
layer.alert(errorThrown);
},
});
}
</script>
</block>

@ -54,7 +54,8 @@
<a href="{:U('Query/register')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq register '>active</if> ">注册明细</a>
<a href="{:U('Query/arpu_analysis')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq arpu_analysis '>active</if> ">ARPU统计</a>
<a href="{:U('Query/retention_analysis')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq retention_analysis '>active</if> ">留存统计</a>
<a href="{:U('Query/userPlayers')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq userPlayers '>active</if> ">角色查询</a>
<a href="{:U('Query/userRoles')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq userRoles '>active</if> ">角色查询</a>
<a href="{:U('Query/userRecharges')}" class="<if condition='CONTROLLER_NAME eq Query and ACTION_NAME eq userRecharges '>active</if> ">充值玩家</a>
</div>
<!-- <div class="subNav jssubNav"><i class="prev_icon icon_caiwu"></i><span>财务管理</span><i class="arrow_icon"></i></div> -->
<!-- <div class="navContent jsnavContent"> -->

@ -1,162 +0,0 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>角色查询</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">角色查询</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Promote/mychlid',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group fr">
<input type="submit" class="submit normal_space" value="查询">
</div>
<div class="form-group fr normal_space">
<input type="text" name="real_name" class="txt normal_txt" id="uid" placeholder="请输入姓名" value="{:I('real_name')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="mobile" class="txt normal_txt" id="uid" placeholder="请输入手机号" value="{:I('mobile')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="idcard" class="txt normal_txt" id="uid" placeholder="请输入身份证" value="{:I('idcard')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="account" class="txt normal_txt" id="uid" placeholder="请输入帐号" value="{:I('account')}">
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家帐号</th>
<th>推广账号</th>
<th>游戏名称</th>
<th>平台</th>
<th>游戏区服</th>
<th>角色名</th>
<th>等级</th>
<th>创建时间</th>
</tr>
<empty name="lists_data">
<tr><td colspan="8" 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="lists_data" id="vo" mod="2">
<tr data-id="{$vo.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$vo.user_account}</td>
<td>{$vo.promote_account}</td>
<td>{$vo.game_name}</td>
<td>{:getSDKTypeName($vo['sdk_version'])}</td>
<td>{$vo.server_name}</td>
<td>{$vo.role_name}</td>
<td>{$vo.role_level}</td>
<td>{$vo.play_time|date='Y-m-d H:i:s',###}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".select_gallery").select2();
$('.reset-password-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认重置密码?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/resetPassword')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.close(index)
if (response.status == 1) {
layer.open({
content: '重置密码成功,您的新密码为:' + response.data.password
})
} else {
layer.msg(response.msg)
}
}
})
})
}
})
$('.froze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认冻结帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/froze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfreeze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认解冻帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/unfreeze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.shift-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.open({
title: '渠道迁移',
type: 1,
content: $('#shift-box'),
area: ['600px', '400px']
})
}
})
})
</script>
</block>

@ -0,0 +1,229 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
<style>
.form-group {
float: left;
margin-bottom: 10px;
}
.form-group label {
line-height: 34px;
height: 34px;
}
</style>
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>玩家充值</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">玩家充值</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/userRecharges',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group normal_space">
<select name="game_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择游戏</option>
<volist name="games" id="game">
<option value="{$game.game_id}">{$game.game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择区服</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="sdk_version" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择设备类型</option>
<option value="1" <if condition="I('sdk_version') === '1'">selected</if>>Andriod</option>
<option value="2" <if condition="I('sdk_version') === '2'">selected</if>>IOS</option>
</select>
</div>
<if condition="$grand_id eq 0">
<div class="form-group normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广员</option>
<volist name="promotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<if condition="$parent_id eq 0">
<div class="form-group normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择组长</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<div class="form-group normal_space">
<input type="text" name="role_name" class="txt normal_txt" id="uid" placeholder="请输入角色名" value="{:I('role_name')}">
</div>
<div class="form-group normal_space">
<input type="text" name="user_account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号" value="{:I('user_account')}">
</div>
<!-- <div class="form-group normal_space">
<input type="text" name="device_sn" class="txt normal_txt" id="uid" placeholder="请输入设备号" value="{:I('device_sn')}">
</div> -->
<div class="form-group normal_space fr">
<label>充值总额:</label>
<input type="text" class="txt" name="cost_begin" style="width: 50px" value="{:I('cost_begin')}" >
<label> ~ </label>
<input type="text" class="txt" name="cost_end" style="width: 50px" value="{:I('cost_end')}" >
</div>
<div class="form-group normal_space">
<input type="submit" class="submit" value="查询">
</div>
<div class="form-group normal_space">
<label><input name="is_self" value="1" type="checkbox"> 本账号推广</label>
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家账号</th>
<th>游戏名称</th>
<th>平台</th>
<th>游戏区服</th>
<th>角色名</th>
<th>等级</th>
<th>充值总额</th>
<th>充值次数</th>
<th>今日充值</th>
<th>未登录天数</th>
<th>最后登录时间</th>
<th>组长|推广员</th>
</tr>
<empty name="records">
<tr><td colspan="12" 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="records" id="record" mod="2">
<tr data-id="{$vo.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.user_account}</td>
<td>{$record.game_name}</td>
<td>{:getSDKTypeName($record['sdk_version'])}</td>
<td>{$record.server_name}</td>
<td>{$record.role_name}</td>
<td>{$record.role_level}</td>
<td>{$record.recharge_cost}</td>
<td>{$record.recharge_count}</td>
<td>{$record.recharge_cost_today}</td>
<td>{$record.unlogin_day}</td>
<td>{$record.play_time|date='Y-m-d H:i:s',###}</td>
<td>{$record.promote_account}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".select_gallery").select2();
$('.reset-password-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认重置密码?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/resetPassword')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.close(index)
if (response.status == 1) {
layer.open({
content: '重置密码成功,您的新密码为:' + response.data.password
})
} else {
layer.msg(response.msg)
}
}
})
})
}
})
$('.froze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认冻结帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/froze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfreeze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认解冻帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/unfreeze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.shift-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.open({
title: '渠道迁移',
type: 1,
content: $('#shift-box'),
area: ['600px', '400px']
})
}
})
})
</script>
</block>

@ -0,0 +1,157 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
<style>
.form-group {
float: left;
margin-bottom: 10px;
}
.form-group label {
line-height: 34px;
height: 34px;
}
</style>
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>角色查询</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">角色查询</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Query/userRoles',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group normal_space">
<select name="game_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择游戏</option>
<volist name="games" id="game">
<option value="{$game.game_id}" <if condition="I('game_id') === $game['id']">selected</if>>{$game.game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="server_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择区服</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
<div class="form-group normal_space">
<select name="sdk_version" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择设备类型</option>
<option value="1" <if condition="I('sdk_version') === '1'">selected</if>>Andriod</option>
<option value="2" <if condition="I('sdk_version') === '2'">selected</if>>IOS</option>
</select>
</div>
<div class="form-group normal_space">
<input type="text" name="role_name" class="txt normal_txt" id="uid" placeholder="请输入角色名" value="{:I('role_name')}">
</div>
<div class="form-group normal_space">
<input type="text" name="user_account" class="txt normal_txt" id="uid" placeholder="请输入玩家账号" value="{:I('user_account')}">
</div>
<if condition="$grand_id eq 0">
<div class="form-group normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广员</option>
<volist name="promotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}" <if condition="I('promote_id') === $promote['id']">selected</if>>{$promote.account}</option>
</volist>
</select>
</div>
</if>
<if condition="$parent_id eq 0">
<div class="form-group normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择组长</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}" <if condition="I('promote_id') === $promote['id']">selected</if>>{$promote.account}</option>
</volist>
</select>
</div>
</if>
<div class="form-group normal_space fr">
<label>创建时间:</label>
<input type="text" class="txt range-date" name="play_time" placeholder="创建时间" value="{:I('play_time')}" >
</div>
<div class="form-group normal_space fr">
<label>玩家等级:</label>
<input type="text" class="txt" name="role_level_begin" style="width: 50px" value="{:I('role_level_begin')}" >
<label> ~ </label>
<input type="text" class="txt" name="role_level_end" style="width: 50px" value="{:I('role_level_end')}" >
</div>
<div class="form-group">
<input type="submit" class="submit normal_space" value="查询">
</div>
<div class="form-group normal_space">
<label><input name="is_self" value="1" type="checkbox"> 本账号推广</label>
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家帐号</th>
<th>推广账号</th>
<th>游戏名称</th>
<th>平台</th>
<th>游戏区服</th>
<th>角色名</th>
<th>等级</th>
<th>创建时间</th>
</tr>
<empty name="records">
<tr><td colspan="8" 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="records" id="record" mod="2">
<tr data-id="{$vo.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.user_account}</td>
<td>{$record.promote_account}</td>
<td>{$record.game_name}</td>
<td>{:getSDKTypeName($record['sdk_version'])}</td>
<td>{$record.server_name}</td>
<td>{$record.role_name}</td>
<td>{$record.role_level}</td>
<td>{$record.play_time|date='Y-m-d H:i:s',###}</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" href="__STATIC__/flatpickr/flatpickr.min.css">
<script src="__STATIC__/flatpickr/flatpickr.min.js"></script>
<script src="__STATIC__/flatpickr/l10n/zh.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function() {
$('.range-date').flatpickr({
mode: 'range',
locale: 'zh',
})
$('.select_gallery').select2();
})
</script>
</block>

@ -0,0 +1,121 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>数据中心></span><span>注册明细</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_game.png">
<span class="title_main">注册明细</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<form action="{:U('Promote/mychlid',array('row'=>I('get.row')))}" method="post" enctype="multipart/form-data">
<div class="form-group fr">
<input type="submit" class="submit normal_space" value="查询">
</div>
<div class="form-group fr normal_space">
<input type="text" name="account" class="txt normal_txt" placeholder="请输入玩家帐号" value="{:I('account')}">
</div>
<div class="form-group fr normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择设备类型</option>
<volist name="subPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
<if condition="$grand_id eq 0">
<div class="form-group fr normal_space">
<select name="promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广员</option>
<volist name="promotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<if condition="$parent_id eq 0">
<div class="form-group fr normal_space">
<select name="headman_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择组长</option>
<volist name="groupPromotes" id="promote">
<option ba-id="{$promote.id}" value="{$promote.id}">{$promote.account}</option>
</volist>
</select>
</div>
</if>
<div class="form-group normal_space fr">
<label>注册时间:</label>
<input type="text" id="search-play-time" class="txt" name="register_time" placeholder="注册时间" value="{:I('register_time')}" >
</div>
</form>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>玩家帐号</th>
<th>推广账号</th>
<th>设备IMIE/IDFA</th>
<th>设备类型</th>
<th>注册时间</th>
<th>注册IP</th>
<th>最近登录时间</th>
<th>最近登陆IP</th>
<th>操作</th>
</tr>
<empty name="records">
<tr><td colspan="8" 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="records" id="record" mod="2">
<tr data-id="{$record.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.account}</td>
<td>{$record.promote_account}</td>
<td>{$record.device_number}</td>
<td></td>
<td>{$record.register_time|date='Y-m-d H:i:s',###}</td>
<td>{$record.register_ip}</td>
<td>{$record.login_time|date='Y-m-d H:i:s',###}</td>
<td>{$record.login_ip}</td>
<td><a href="{:U('Query/userRoles', ['id' => $record['id']])}">查看角色</a></td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<a class="sch-btn" href="{:U('Export/child',array(
'p'=>I('p'),
'account'=>I('account'),'xlsname'=>'管理中心_'.get_pro_grade_name(PRO_GRADE,1),'row'=>I('request.row')
))}" >导出</a>
{$_page}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" href="__STATIC__/flatpickr/flatpickr.min.css">
<script src="__STATIC__/flatpickr/flatpickr.min.js"></script>
<script src="__STATIC__/flatpickr/l10n/zh.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script type="text/javascript">
$(function(){
$('#search-play-time').flatpickr({
mode: 'range',
locale: 'zh',
})
$('.select_gallery').select2();
})
</script>
</block>

@ -21,9 +21,9 @@ class SsgController extends BaseController {
public function login(){
$user = session("user_auth");
if ($user) {
/*if ($user) {
redirect(U("ssg/index"));
}
}*/
$this->display();
}
@ -146,6 +146,11 @@ class SsgController extends BaseController {
$this->display();
}
public function clear(){
\Think\Log::record('缓存清理业务触发');
session(null);
}
public function timediffs($begin_time, $end_time) {
if ($begin_time < $end_time) {
$starttime = $begin_time;

@ -108,6 +108,21 @@
</script>
</div>
<script src="__JS__/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="__JS__/ssg/common.js" type="text/javascript"></script>
<script src="__JS__/ssg/common.js?v=1.12" type="text/javascript"></script>
<!--<script type="text/javascript">
var READYTOPROCESS = false;
window.onbeforeunload = function closeWindow(e)
{
if (!READYTOPROCESS)
{
//message to be returned to the popup box.
var message = '你确定要关闭吗?',
e = e || window.event;
if (e)
e.returnValue = message; // IE
return message; // Safari
}
};
</script>-->
</body>
</html>

@ -12,7 +12,7 @@
* @param sting $idcard 身份证号码
* @author 鹿文学
*/
function is_adult($idcard) {
function is_adult($idcard, $adult=16) {
$id = substr($idcard,6,8);
$year = substr($id,0,4);
@ -21,7 +21,7 @@ function is_adult($idcard) {
$old = (time()-strtotime($year.'-'.$month.'-'.$day))/31536000;
if(intval($old)>=16) {
if(intval($old)>=$adult) {
return true;
} else {
return false;
@ -29,6 +29,33 @@ function is_adult($idcard) {
}
/* 支付验证 当前只有未成年
* return: array code 1成功 0失败 msg :错误消息
*/
function pay_check($user_id) {
$ret = array(
'code' => 1,
'msg' => '',
);
$idcard = M("user", "tab_")->where(array('id' => $user_id))->getField("idcard");
if (!$idcard) {
$ret['code'] = 1;
$ret['msg'] = '身份证不存在';
return $ret;
}
if (is_adult($idcard, 18)) {
$ret['code'] = 1;
$ret['msg'] = '';
return $ret;
} else {
$ret['code'] = 0;
$ret['msg'] = '未成年,不能充值!';
return $ret;
}
}
/* //获取支付方式 */
function get_pay_way($id=null)
{

@ -12,47 +12,7 @@ use Qiniu\json_decode;
class AppleController extends BaseController{
/**
* 'MerNo' => $data['merno'],
'Amount'=>$data['amount'],
'BillNo'=>$data['order_no'],
'TranCode'=>"SMZF012",
'PayType'=> "SMZF",
'PaymentType'=> $data['paymenttype'],//"UNION","ZFBZF",
'MerRemark' => 'MerRemark',
'subject' => $data['subject'],
'NotifyURL' => $data['notifyurl'],
'ReturnURL' => $data['returnurl'],
'mchAppId' => $data['mchAppId'],
'mchAppName' => $data['mchAppName'],
'deviceInfo' => $data['deviceInfo'],
'clientIp' => $data['clientIp'],
*/
public function test() {
$sqpay=new Sqpay();
$returl = C('pay_header'). "/sdk.php/Spend/pay_success/orderno/".$request['pay_order_number'].'/game_id/'.$request['game_id'];
$data['secret'] = C("sqpay.key");
$data['merno'] = C("sqpay.partner");
$data['amount'] = 0.01;
$data['order_no'] = '111111';
$data['paymenttype'] = "ZFBZF";
$data['MerRemark'] = "mark";
$data['subject'] = "subject";
$data['notifyurl'] = C('pay_header')."/callback.php/Notify/sq_callback";//通知
$data['returnurl'] = $returl;
$data['mchAppId'] = "wmtxkj.com";
$data['mchAppName'] = "mchAppName";
$data['deviceInfo'] = "AND_WAP";
$data['clientIp'] = get_client_ip();
$ret = $sqpay->sq_pay($data);
$ret = json_decode($ret, true);
pp($ret);
$json_data['url']=$ret[0]['payHtml'];
echo ($json_data['url']);
exit();
}
/**
*ios移动支付
*/
@ -70,6 +30,11 @@ class AppleController extends BaseController{
if(!is_array(find_uc_account($request['account']))){
$this->set_message(0,"fail","Uc用户暂不支持");
}
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id'],'pay_status'=>1))->find();
if($extend_data){
@ -126,9 +91,18 @@ class AppleController extends BaseController{
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
C(api('Config/lists'));
if (empty($request)) {
echo json_encode(['code'=>0,'msg'=>'登录数据不能为空']);exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
echo json_encode(['code'=>0,'msg'=> $payCheck['msg']]);exit;
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
echo json_encode(['code'=>0,'msg'=>'该游戏暂时无法充值,请联系客服!']);exit;
@ -152,7 +126,10 @@ class AppleController extends BaseController{
$request['payway'] = 1;
$request['title']=$request['price'];
$request['body']=$request['price'];
$request['callback'] = 'http://'.$_SERVER['HTTP_HOST']. "/sdk.php/Spend/pay_success/orderno/".$request['pay_order_number'].'/game_id/'.$request['game_id'];
$request['notifyurl'] = 'http://'.$_SERVER['HTTP_HOST']. "/callback.php/Notify/notify/apitype/alipay/method/notify";
$pay_url=$this->pay($request);
//echo $pay_url['url'];die;
//redirect($pay_url['url']);
echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>$pay_url['url'],'wap'=>1]]);exit;
} else {/* app */
@ -339,6 +316,8 @@ class AppleController extends BaseController{
->setGameName(get_game_name($param['game_id']))
->setGameAppid($param['game_appid'])
->setServerId(0)
->setCallback($param['callback'])
->setNotifyUrl($param['notifyurl'])
->setGameplayerName($param['game_player_name'])
->setServerName($param['server_name'])
->setUserId($param['user_id'])
@ -366,10 +345,23 @@ class AppleController extends BaseController{
{
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
/*$request['user_id'] = 1;
$request['game_id'] = 1;
$request['price'] = 0.01;
$request['extend'] = 21111177;
$request['pay_order_number'] = 21111177;
$request['code'] =1;
*/
if (empty($request)) {
// $this->set_message(0, "fail", "登录数据不能为空");
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=> $payCheck['msg'])));exit;
}
C(api('Config/lists'));
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
@ -400,6 +392,7 @@ class AppleController extends BaseController{
if (get_wx_pay_type() == 0) {
$weixn = new Weixin();
$is_pay = json_decode($weixn->weixin_pay("充值", $request['pay_order_number'], $pay_amount, 'MWEB'), true);
if($is_pay['status']==1){
if($request['code']==1){
$this->add_spend($request,1);
@ -550,6 +543,11 @@ class AppleController extends BaseController{
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>$payCheck['msg'])));exit;
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'该游戏暂时无法充值,请联系客服!')));exit;
@ -628,6 +626,11 @@ class AppleController extends BaseController{
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'参数错误')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=> $payCheck['msg'])));exit;
}
C(api('Config/lists'));
$user_info = get_user_entity($request['user_id']);
if($user_info['lock_status'] == 0 || $user_info['check_status'] == 0){

@ -378,6 +378,7 @@ class BaseController extends RestController{
$data_spned['selle_ratio'] = get_game_selle_ratio($param["game_id"]);
$data_spned['server_id'] = $param["server_id"];
$data_spned['server_name'] = $param["server_name"];
$data_spned['game_player_id'] = $param["game_player_id"];
$data_spned['game_player_name'] = $param["game_player_name"];
$data_spned['promote_id'] = $user_entity["promote_id"];
$data_spned['promote_account'] = $user_entity["promote_account"];

@ -10,6 +10,7 @@ use Com\WechatAuth;
use App\Model\UserModel;
use App\Model\PointShopRecordModel;
use Qiniu\json_decode;
use Think\Log;
class UserController extends BaseController
{
@ -836,7 +837,7 @@ class UserController extends BaseController
$request = json_decode(base64_decode(file_get_contents("php://input")), true);
$user = get_user_entity($request['user_id']);
if($user['lock_status'] == 0 || $user['check_status'] == 0){
$this->set_message(0,"fail","账号被禁用,无法充值,请联系客服!");
$this->set_message(0,"fail","账号被禁用,无法充值,请联系客服!2");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
@ -1186,20 +1187,15 @@ class UserController extends BaseController
$data["sdk_version"] = $request["sdk_version"];
$data['play_ip'] = get_client_ip();
$data['pipuid'] = $user_data['puid'];
if ($res['id']>0) {
$user_play -> save($data);
Log::write('save_user_play_info:' . date('Y-m-d H:i:s') . ' ---- ' . json_encode($data), 'INFO');
if ($res['id']>0) {
$user_play->save($data);
$this->updateLoginRecord($data);
} else {
$user_play -> add($data);
$user_play->add($data);
$this->updateLoginRecord($data);
}
$this -> set_message(200, "success", "成功");
@ -1215,7 +1211,6 @@ class UserController extends BaseController
*
*/
private function updateLoginRecord($userPlay) {
//var_dump($userPlay);die;
$map = array(
'game_id' => $userPlay['game_id'],
'user_id' => $userPlay['user_id'],
@ -1235,8 +1230,7 @@ class UserController extends BaseController
'id'=>$userLoginRecordData['id']
);
$userLoginRecordModel->save($data);
return $userLoginRecordModel->save($data);
}
@ -1981,7 +1975,7 @@ class UserController extends BaseController
$cardd = M('User', 'tab_') -> where(array('idcard' => $data['idcard'])) -> find();
if ($cardd) {
$this -> set_message(1087, "fail", "身份证号码已被使用!");
// $this -> set_message(1087, "fail", "身份证号码已被使用!"); // 去掉身份证唯一验证
}
@ -1990,9 +1984,9 @@ class UserController extends BaseController
if (C('tool_age.status') == 0) {
if (is_adult($data['idcard'])) {
$data['age_status'] = 2;
$data['age_status'] = 2; // 成年
} else {
$data['age_status'] = 3;
$data['age_status'] = 3; // 未成年
}
} else {

@ -12,6 +12,7 @@ use Org\SqpaySDK\Sqpay;
use Qiniu\json_decode;
use Think\Log;
class WapPayController extends BaseController{
private function pay($param=array()){
$table = $param['code'] == 1 ? "spend" : "deposit";
$user = get_user_entity($param['user_id']);
@ -91,19 +92,23 @@ class WapPayController extends BaseController{
*/
public function alipay_pay(){
$request = json_decode(base64_decode(file_get_contents("php://input")),true);
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
file_put_contents(dirname(__FILE__) . '/alipay_paywap.txt',json_encode($request));
C(api('Config/lists'));
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){die('a');
if($game['pay_status'] == 0){
$this->set_message(0,"fail","该游戏暂时无法充值,请联系客服!");
}
if($request['code'] == 1){
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'pay_status'=>1,'game_id'=>$request['game_id']))->find();
if($extend_data){die('a');
if($extend_data){
$this->set_message(1089,"fail","订单号重复,请关闭支付页面重新支付");
}
}
@ -256,6 +261,12 @@ Log::write(serialize($request), Log::DEBUG);
$this->error("参数有误", '', true);
}
// 支付验证 是否让支付
$payCheck = pay_check($param['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$payInfo = M('pay_info', 'tab_')->where(array(
'user_id' => $param['user_id'],
'game_id' => $param['game_id']
@ -460,6 +471,11 @@ Log::write(serialize($request), Log::DEBUG);
$request = json_decode(base64_decode(file_get_contents("php://input")), true);
file_put_contents("./Application/Sdk/OrderNo/".$request['user_id']."-".$request['game_id'].".txt",think_encrypt(json_encode($request)));
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$user_id = $request['user_id'];
$game_id = $request['game_id'];
$data = array(
@ -483,16 +499,22 @@ Log::write(serialize($request), Log::DEBUG);
$file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
$request = json_decode(think_decrypt($file),true);
Log::write(serialize($request), Log::DEBUG);
$request['user_id'] = 232;
/* $request['user_id'] = 232;
$request['game_id'] = 78;
$request['price'] = 0.02;
$request['code'] = 1;
$request['extend'] = "SP_522992339581";
$request['pay_order_number'] = "SP_24522992339581";
$request['pay_order_number'] = "SP_24522992339581"; */
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
if($game['pay_status'] == 0){
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'该游戏暂时无法充值,请联系客服!')));exit;
@ -541,11 +563,11 @@ Log::write(serialize($request), Log::DEBUG);
'status' => 'normal',
'create_time' => time(),
));
/* if($request['code']==1){
if($request['code']==1){
$this->add_spend($request,1);
}else{
$this->add_deposit($request);
} */
}
}
$this->assign("pay_amount", $request['actual_amount']);
@ -566,6 +588,11 @@ Log::write(serialize($request), Log::DEBUG);
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
C(api('Config/lists'));
if($request['price']*1<=0){
$this->set_message(1011,"fail","充值金额有误");
@ -817,6 +844,12 @@ Log::write(serialize($request), Log::DEBUG);
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
C(api('Config/lists'));
if($request['price']<0){
$this->set_message(1011,"fail","充值金额有误");
@ -860,6 +893,12 @@ Log::write(serialize($request), Log::DEBUG);
$request['extend'] = "11212452299229";
$request['pay_order_number'] = "11212452299229"; */
// 支付验证 是否让支付
$payCheck = pay_check($request['user_id']);
if (!$payCheck['code']) {
$this->set_message(1088, "fail", $payCheck['msg']);
}
if (empty($request)) {
$this->set_message(1001, "fail","登录数据不能为空");
}

@ -0,0 +1,60 @@
-- 推广员后台首页快捷菜单 ZCL
DROP TABLE IF EXISTS `tab_quick_menu`;
CREATE TABLE `tab_quick_menu` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '文档ID',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '菜单名称',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '链接地址',
`icon` varchar(50) DEFAULT '0' COMMENT '菜单ICON',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态',
PRIMARY KEY (`id`),
KEY `status` (`status`)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tab_quick_menu
-- ----------------------------
INSERT INTO `tab_quick_menu` VALUES ('1', '账户信息', '/index.php?s=/Home/Promote/base_info.html', '11', '0');
INSERT INTO `tab_quick_menu` VALUES ('2', '组长管理', '/index.php?s=/Home/Promote/mychlid.html', '12', '0');
INSERT INTO `tab_quick_menu` VALUES ('3', '推广员管理', '/index.php?s=/Home/Promote/mygrand.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('4', '数据汇总', '/index.php?s=/Home/Query/summary.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('5', '充值明细', '/index.php?s=/Home/Query/recharge.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('6', '注册明细', '/index.php?s=/Home/Query/register.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('7', 'ARPU统计', '/index.php?s=/Home/Query/arpu_analysis.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('8', '留存统计', '/index.php?s=/Home/Query/retention_analysis.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('9', '角色查询', '/index.php?s=/Home/Query/userPlayers.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('10', '专服管理', '/index.php?s=/Home/Apply/index.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('11', '扶持申请', '/index.php?s=/Home/Support/index.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('12', '扶持记录', '/index.php?s=/Home/Support/lists.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('13', '扶持额度', '/index.php?s=/Home/Support/quota.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('14', '我的平台币', '/index.php?s=/Home/PromoteCoin/myCoin.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('15', '平台币转移', '/index.php?s=/Home/PromoteCoin/record.html', '0', '0');
INSERT INTO `tab_quick_menu` VALUES ('16', '平台币充值', '/index.php?s=/Home/CoinOrder/order_list.html', '0', '0');
-- 推广员后台首页快捷菜单关联表 ZCL
DROP TABLE IF EXISTS `tab_promote_quick_menu`;
CREATE TABLE `tab_promote_quick_menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`promote_id` int(11) DEFAULT NULL COMMENT '推广员ID',
`quick_menu_id` int(11) DEFAULT NULL COMMENT '快捷菜单ID',
`create_time` int(11) DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of tab_promote_quick_menu
-- ----------------------------
INSERT INTO `tab_promote_quick_menu` VALUES ('4', '1', '3', '1569719823');
INSERT INTO `tab_promote_quick_menu` VALUES ('6', '1', '5', '1569719828');
INSERT INTO `tab_promote_quick_menu` VALUES ('7', '1', '6', '1569719830');
INSERT INTO `tab_promote_quick_menu` VALUES ('8', '1', '7', '1569719832');
INSERT INTO `tab_promote_quick_menu` VALUES ('9', '1', '14', '1569719835');
INSERT INTO `tab_promote_quick_menu` VALUES ('10', '1', '15', '1569719839');
INSERT INTO `tab_promote_quick_menu` VALUES ('11', '1', '12', '1569719849');
INSERT INTO `tab_promote_quick_menu` VALUES ('12', '1', '13', '1569719852');
INSERT INTO `tab_promote_quick_menu` VALUES ('14', '1', '8', '1569719866');
INSERT INTO `tab_promote_quick_menu` VALUES ('15', '1', '9', '1569719870');
INSERT INTO `tab_promote_quick_menu` VALUES ('16', '1', '10', '1569719877');
INSERT INTO `tab_promote_quick_menu` VALUES ('18', '1', '1', '1569720739');

@ -0,0 +1,132 @@
/* index */
.promote-index-overview ul{width: 100%;float:left;}
.promote-index-overview li {background:#FFF;border-radius:3px;float:left;width:23.33%;height:120px;position: relative;border: 1px solid #E3E8EC;}
.promote-index-overview li~li{margin-left:2%;}
.promote-index-overview .index-user {text-align:center;}
.promote-index-overview .index-user img {border-radius:100%;width:66px;height:66px;padding-top:12px;}
.promote-index-overview .index-user p {margin:8px 0 0;}
.promote-index-overview .icon {width:40px;height:40px;position:absolute;top:50%;margin-top:-34px;left: 22%;}
.promote-index-overview .icon img{width: 100%;height: 100%;}
.promote-index-overview .text {font-size:16px;color:#555;/* text-align:center; */padding-top:33px;padding-left: 140px;}
.promote-index-overview .text p {margin-bottom:6px;color: #6A7082;}
.promote-index-overview .text span {font-size:18px;color: #99B1CB;}
.promote-index-list{background: #fff;margin-top: 2.4vh;border-radius: 3px;padding: 10px;height: auto;position: relative;border: 1px solid #E3E8EC;}
.promote-index-list .trunk-title-main{font-size: 16px;color: #6A7082;font-weight: 600;height: 40px;border-bottom: 1px solid #ddd;}
.promote-index-list .trunk-title-main span{vertical-align: middle;}
.promote-index-list .trunk-content{padding-top: 1%;}
.promote-index-list .trunk-content ul{min-height: 44vh;}
.promote-index-list .trunk-content ul li{border-top: 1px solid #F3F5F9;padding: 1vh;}
.promote-index-list .trunk-content ul li:nth-child(2n-1){background: #FAFAFC;}
.index-tab-list ul{width: 100%;position: relative;column-count:1;margin-top: 20px;}
.index-tab-list li {background:#FFF;border-radius:3px;width:48.8%;height:350px;position: relative;border: 1px solid #E3E8EC;display: inline-block;vertical-align: middle}
.index-tab-list li:last-child{margin-left:1.7%;}
.trunk-content article {margin-top:0!important;}
.trunk-content{margin-top: 0!important;}
.qcl-box{font-size: 14px;}
.qcl-box-hand{height: 45px;line-height: 35px;margin: 10px;border-bottom: 1px solid #ddd}
.qcl-tit{font-size: 16px;color: #6A7082;font-weight: 600}
.qcl-bnt{text-align: center;margin-top: -10px}
.qcl-bnt ul{width: 100%;float:left;}
.qcl-bnt li {background:#FFF;border-radius:3px;float:left;width:17%;height:115px;position: relative;border: 0;margin-bottom: 20px}
.qcl-bnt li{margin-left:2%;}
.qcl-bnt li span{display: block;}
.qcl-bnt li span:first-child{height: 80px;width: 80px;margin: auto}
.qcl-bnt li span:first-child img{height: 80px;width: 80px}
.qcl-bnt li span:last-child{height: 30px;line-height: 30px}
.more{display: block;float: right;padding-top: 10px;font-size: 14px;color: #4A90F0}
.more:hover{color:#26C7DB}
.fxui-tab {font-size: 14px;}
.fxui-tab-hand{height: 45px;line-height: 35px;margin: 10px;border-bottom: 1px solid #ddd}
.fxui-tab-tit {display: block;float: left;font-size: 14px;height: 28px;line-height: 28px;padding: 2px 20px ;cursor: pointer;border: 1px solid #ddd}
.fxui-tab-tit:first-child{border-bottom-left-radius:3px;border-top-left-radius: 3px}
.fxui-tab-tit:last-child{border-bottom-right-radius:3px;border-top-right-radius: 3px}
.fxui-tab-hand .curr {background: #26C7DB;color: #fff;border: 1px solid #26C7DB}
.fxui-tab-nav {padding: 15px;height: 280px;margin-top: -10px}
.fxui-tab-nav p{height: 50px;line-height: 50px;border-bottom: 1px solid #ddd}
.fxui-tab-nav p span:first-child{width: 80%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;display: inline-block}
.fxui-tab-nav p span:last-child{float: right;width: 15%;display: inline-block}
/*.article-type{vertical-align: middle;padding-right: 10px;}
.article-title{width: 400px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;vertical-align: middle;color: #515974;font-size: 13px;}
.article-title:hover{color: #26c7db;}
.article-time{vertical-align: middle;font-size: 13px;color: #a5a6bb;}*/
.page-overview{width: 100%;}
@media screen and (max-width: 1440px) {
.promote-index-overview .icon {left: 12%;}
.promote-index-overview li{width:23.33%;}
}
@media screen and (max-width: 1430px) {
.promote-index-overview .icon {left: 12%;}
.promote-index-overview li{width:48.7%;;margin-bottom: 20px}
.promote-index-overview li:nth-of-type(odd){ margin-left: 0;margin-right: 2%}
.promote-index-overview li:nth-of-type(even){margin-left: 0;margin-right: 0}
.promote-index-overview li:nth-child(3){margin-bottom: 0}
.promote-index-overview li:nth-child(4){margin-bottom: 0}
}
@media screen and (max-width: 900px) {
.promote-index-overview .icon {left: 12%;}
.promote-index-overview li{width:48.7%;margin-bottom: 20px}
.promote-index-overview li:nth-of-type(odd){ margin-left: 0;margin-right: 2%}
.promote-index-overview li:nth-of-type(even){margin-left: 0;margin-right: 0}
.promote-index-overview li:nth-child(3){margin-bottom: 20px!important;}
.promote-index-overview li:nth-child(4){margin-bottom: 0}
}
.promote-index-overview ul{width: 100%;float:left;}
.promote-index-overview li {background:#FFF;border-radius:3px;float:left;width:23.33%;height:120px;position: relative;border: 1px solid #E3E8EC;}
.promote-index-overview li~li{margin-left:2%;}
.page-list .trunk-search .tab a{display: inline-block;width: 140px;height: 40px;text-align: center;line-height: 40px;font-size: 14px;background:#F6F7F9;color: #535875;}
.tab-bnt{clear:both;display: flex;}
.tab-bnt div{width: 100px;height: 35px;line-height: 35px;display: inline-block;border: 1px solid #ddd;text-align: center;cursor:pointer}
.tab-bnt div:first-child{border-top-left-radius: 3px;border-bottom-left-radius: 3px;}
.tab-bnt div:last-child{border-top-right-radius: 3px;border-bottom-right-radius: 3px;}
.tab-bnt .curr{background: #26C7DB;color: #fff;border: 1px solid #26C7DB;}
.page-list .trunk-search .tab td {border:1px solid #ddd;display: inline-block;margin-right: -5px;}
.page-list .trunk-search .tab td.first_border{border-top-left-radius: 3px;border-bottom-left-radius: 3px;}
.page-list .trunk-search .tab td.last_border{border-top-right-radius: 3px;border-bottom-right-radius: 3px;}
.page-list .trunk-search .tab td.current {border-color:#26C7DB;}
.page-list .trunk-search .tab td.current a{background: #26C7DB;color:#FFF;}
.page-list .tabpan {display:none;}
.page-list .tabpan.current {display:block;}
.baseInfo{margin-top: 1%;}
.trunk-list .table2 tr{height: 54px;}
.trunk-list .table2 .l {text-align:right;color: #8B8CA0;width: 95px;}
.trunk-list .table2 .l .req {color:red;display:inline-block;width:10px;text-align:center;}
.trunk-list .table2 .r {padding-left:15px;color: #535875;}
.trunk-list .table2 .r .formtxt {padding:0 10px;}
.trunk-list .table2 .r input[type=text] {width: 230px;height: 32px;padding-left: 10px; border: 1px solid #E5E5E5;border-radius: 4px;line-height: 32px;color: #535875;}
.trunk-list .table2 .r input[type=password] {width: 230px;height: 32px;padding-left: 10px; border: 1px solid #E5E5E5;border-radius: 4px;line-height: 32px;color: #535875;}
.trunk-list .table2 .r .radio-item {margin-right: 10px;}
.trunk-list .table2 .r .tj{width: 118px;height: 36px;line-height:36px;background: #26C7DB;color: #fff;border-radius: 4px;border: none;padding: 0;}
.trunk-list .table2 .r .tj:hover{background: #2bd8ed;}
.trunk-list .table2 .r .tj.disabled {background:#CCC;}
.trunk-list .table2 .r .back_btn{width: 118px;height: 36px;line-height:36px;background: #E5E5E5;color: #8B8CA0;border-radius: 4px;display: inline-block;text-align: center;margin-left: 20px;}
.table2 .form-radio label {position:relative;margin-right:20px;cursor:pointer;}
.table2 .form-radio input {cursor:pointer;width:14px;height:14px;display:inline-block;position:absolute;top:0;left:0;margin:0;margin-top:2px;opacity:0;}
.table2 .form-radio i {width:14px;height:14px;display:inline-block;vertical-align:middle;margin-top:-2px;margin-right:5px;background:url(../../images/20180207/icon_normal_weixuanze.png) ;}
.table2 .form-radio i.current {background-image:url(../../images/20180207/icon_xuanze.png);}
.page-list .trunk-search {padding-bottom: 20px;}
.promote-mychlid-list form a.btn {display:inline-block;width:135px;height:36px;line-height: 36px; text-align:center;background: #3A97FF;color: #fff;border-radius: 4px;}
.promote-mychlid-list form a.btn:hover{background: #449DFF;}
.promote-mychlid-list form a .add_qudao{width: 20px;height: 20px;display: inline-block;vertical-align: middle;margin-right: 5px;background: url(../../images/20180207/icon_normal_tianjia.png) no-repeat;}
.promote-mychlid-list .form-group .txt{width: 180px;height: 34px;}
.border_normal{border-top: 1px dashed #E3E3E3;}
.border_normal .desccontent span{color: #6a7082;}
.border_normal .desccontent p{color: #ADAEC2;padding-top: 1.5%;}
.promote-mychlid-list .table .editbtn {color:#4A90F0;}
.promote-mychlid-list .table .editbtn:hover {color:#4ACDDF;}

@ -0,0 +1,27 @@
/*
Author : guosheng
QQ : 9169775
Email: cff20@sina.com
Date : 2013-07-25
*/
$.fn.extend({
fxuiTab:function(opt){
//做插件首先是传进来的对象也就是this进行each这样子一个页面上多个区块都可以使用啦
return this.each(function() {
//说说Var的事变量之前肯定是用var的这样子就不会变成全局变量和别的方法冲突了然后最只用一个Var,然后用","分开即可。
var t = $(this),//t就是$(this)因为Jquery里$(this)很多我们可以把这个t选存起来后面好多地方可以用。
o = opt || {}, //如果使用者没有参给o设一个空的对象。
tit = o.tit || t.find('.fxui-tab-tit'), //标签点击的对象。
nav = o.nav || t.find('.fxui-tab-nav'), //内容显示的对象。
evt = o.evt || 'click',//事件可以为click,hover或是mouseover。
eq = o.eq || 0; //初始化的时候可以默认显示第几块。不传值显示第一个。
tit.bind(evt,function(){ //通过bind 传这个evt,事件就可以变动了不一定只是click事件了。
$(this).addClass('curr').siblings(tit).removeClass('curr');//处理标签头加当前的Class样式通过css改变
nav.eq(tit.index($(this))).show().siblings('.fxui-tab-nav').hide();//内容块显示。
}).hover(function(){
$(this).addClass('fxui-tab-hover').siblings(tit).removeClass('fxui-tab-hover'); //标签的tit移上去的时候加一个样式这样子这个标签头可以有默认hover和curr三种状态。
});
evt === 'click' ? tit.eq(eq).click() :tit.eq(eq).mouseover(); //初始化,当前是第几个
})
}
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,68 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = global || self, factory(global.zh = {}));
}(this, function (exports) { 'use strict';
var fp = typeof window !== "undefined" && window.flatpickr !== undefined
? window.flatpickr
: {
l10ns: {}
};
var Mandarin = {
weekdays: {
shorthand: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
longhand: [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
]
},
months: {
shorthand: [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月",
],
longhand: [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月",
]
},
rangeSeparator: " 至 ",
weekAbbreviation: "周",
scrollTitle: "滚动切换",
toggleTitle: "点击切换 12/24 小时时制"
};
fp.l10ns.zh = Mandarin;
var zh = fp.l10ns;
exports.Mandarin = Mandarin;
exports.default = zh;
Object.defineProperty(exports, '__esModule', { value: true });
}));
Loading…
Cancel
Save