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

master
ELF 5 years ago
commit 50c17baf8e

3
.gitignore vendored

@ -6,4 +6,5 @@ Application/Common/Conf/pay_config.php
Application/Sdk/OrderNo/
.idea/
Uploads/
.vscode
.vscode
vendor/

@ -541,4 +541,15 @@ function getPartnerList($id = 0)
function getPartnerName($id = 0)
{
return M('Partner', 'tab_')->where(array('id' => intval($id)))->getField('partner');
}
}
function getGameByName($game_name=null, $sdk_version=null)
{
$map = [];
if ($game_name) {
$map['relation_game_name'] = $game_name;
}
if ($sdk_version) {
$map['server_version'] = $sdk_version;
}
return D("Game")->where($map)->select();
}

@ -34,7 +34,11 @@ class AjaxController extends ThinkController{
* @param $game_id
*/
public function getServer($game_id=""){
$data = M('server','tab_')->where(['game_id'=>$game_id])->select();
$map = [];
if (!empty($game_id)) {
$map['game_id'] = $game_id;
}
$data = M('server','tab_')->where($map)->select();
$this->AjaxReturn($data);
}
@ -42,7 +46,7 @@ class AjaxController extends ThinkController{
*获取充值游戏区服
* @param game_id
*/
public function getSpendServer($game_id="",$type=1){
public function getSpendServer($game_id="",$type=1, $game_type='', $game_name=''){
if($type==2){
$game = M('Game','tab_')->field('id')->where(['game_name'=>$game_id])->find();
$game_id = $game['id'];
@ -66,7 +70,26 @@ class AjaxController extends ThinkController{
$map['server_name'] = array('neq','');
$data = M('UserPlayInfo','tab_')->field('server_name')->where($map)->group('server_name')->select();
$this->AjaxReturn($data);
}
public function getGmeServer($game_name="", $sdk_version="")
{
$game_map = [];
if ($game_name) {
$game_map['relation_game_name'] = $game_name;
}
if ($sdk_version) {
$map['server_version'] = $game_map['sdk_version'] = $sdk_version;
}
$game = M("Game", 'tab_')->where($game_map)->getField('id', true);
// 获取版本信息
$map = [];
if ($game) {
$map['game_id'] = ['in', $game];
}
$data = M('Server', 'tab_')->field('id, server_name, server_id')->where($map)->select();
$this->AjaxReturn($data);
}
/**
@ -132,4 +155,41 @@ class AjaxController extends ThinkController{
{
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>(new PromoteModel)->getPromotersByLevel($level)]);
}
public function getGameList($type=0, $sdk_type=0)
{
$game = M("game","tab_");
if(MODULE_NAME == 'Admin') {
$map['game_status'] = array('in','0,1');
} else {
$map['game_status'] = 1;
}
if(!empty($type)){
/*$map['developers'] = $type == 1? array('EQ',0):array('GT',0);*/
/* $map['game_status'] = $type == 1? 1:array('in','0,1'); */
switch($type) {
case 1:
$map['developers'] = array('EQ',0);
break;
case 2:
$map['developers'] = array('EGT',0);
break;
default:
$map['developers'] = array('GT',0);
}
}else{
$map['apply_status'] = 1;
$map['online_status'] = 1;
}
if (empty($sdk_type)) {
$lists = $game->field('id,game_name,sdk_version,relation_game_name,icon,relation_game_id,game_status,display_site,dow_num')->where($map)->group('relation_game_name')->order("id asc")->select();
} else {
$map['sdk_version'] = $sdk_type;
$lists = $game->field('id,game_name,sdk_version,relation_game_name,icon,relation_game_id,game_status,display_site,dow_num')->where($map)->order("id asc")->select();
}
$this->ajaxReturn(['code'=>1, 'msg'=>'获取成功', 'data'=>$lists]);
}
}

@ -13,7 +13,6 @@ class MemberController extends ThinkController
*/
public function user_info($p = 0)
{
$hav = '';
if ($_REQUEST['promote_id'] != '') {
if($_REQUEST['promote_id']=='UC'){
@ -109,6 +108,19 @@ class MemberController extends ThinkController
$map['lock_status'] = $_REQUEST['status'];
unset($_REQUEST['status']);
}
$game_map = "";
// if (isset($_REQUEST['game_type'])) {
// $game_map .= " and tab_user_play.sdk_version = {$_REQUEST['game_type']}";
// }
if (isset($_REQUEST['game_name'])) {
$game_map .= " and tab_user_play.game_id in (".implode(',', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')).")";
}
$game_play_map = '';
if (isset($_REQUEST['server_name'])) {
$game_play_map .= " and tab_user_play_info.server_name = '{$_REQUEST['server_name']}' ";
}
if (isset($_REQUEST['viplevel'])) {
@ -164,26 +176,28 @@ class MemberController extends ThinkController
$data = $usermodel->table('('.$sql1.') as a ')->field('a.id,a.device_number,a.age_status,a.account,a.balance,a.gold_coin,a.alipay,a.promote_id,a.register_type,a.promote_account,a.register_time,a.lock_status,a.register_way,a.register_type,a.register_ip,a.login_time,(a.deposit_total+IFNULL(sum(ss.pay_amount),0)) as recharge_total,check_status')
->join('left join tab_spend as ss on ss.user_id=a.id AND ss.pay_status = 1')
->join(isset($_REQUEST['game_id']) ? "tab_user_play as up on up.user_id = a.id and up.game_id = {$_REQUEST['game_id']} " : false)
->join($game_map ? "tab_user_play on tab_user_play.user_id = a.id $game_map" : false)
->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = a.id $game_play_map" : false)
->page($page, $row)
->having($havs)
->group('a.id')
->order($order)
->select();
// var_dump($data);die;
//var_dump($usermodel->getLastSql());die;
//计数
$sql = M('user', 'tab_')->field('tab_user.id,(IFNULL(sum(b.pay_amount),0) + IFNULL(sum(ss.pay_amount),0)) AS recharge_total')
->join('left join tab_deposit AS b ON tab_user.id = b.user_id AND b.pay_status = 1')
->join('left join tab_spend as ss on ss.user_id=tab_user.id AND ss.pay_status = 1')
->join(isset($_REQUEST['game_id']) ? "tab_user_play as up on up.user_id = tab_user.id and up.game_id = {$_REQUEST['game_id']} " : false)
->join($game_map ? "tab_user_play on tab_user_play.user_id = tab_user.id $game_map" : false)
->join($game_play_map ? "tab_user_play_info on tab_user_play_info.user_id = tab_user.id $game_play_map" : false)
->where($map)
->group('tab_user.id')
->where($hav)
->having($havs)->select(false);
// var_dump($sql);die;
$jcount = M('User','tab_')->field('count(a.id) as count')->table('('.$sql.') as a')->select();
$jcount = M('User','tab_')->field('count(a.id) as count')->table('('.$sql.') as a')->select();
$count = $jcount[0]['count'];
$model = M('Model')->getByName('user');
@ -336,7 +350,18 @@ class MemberController extends ThinkController
$this->display();
}
}
public function role_list($p=1, $user_id='', $row=10)
{
$limit = ($p-1)*$row . ", $row";
$list = M("user_play_info", 'tab_')->where(['user_id'=>$user_id])->limit($limit)->order('play_time desc')->select();
$count = M("user_play_info", 'tab_')->where(['user_id'=>$user_id])->count();
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->assign('list', $list);
$this->display();
}
/**
* 公用账户
@ -640,9 +665,13 @@ class MemberController extends ThinkController
public function login_record($p = 1)
{
if (isset($_REQUEST['game_name'])) {
$extend['game_name'] = $_REQUEST['game_name'];
$map['game_name'] = ['like', $_REQUEST['game_name']."%"];
unset($_REQUEST['game_name']);
}
if (isset($_REQUEST['game_type'])) {
$map['sdk_version'] = $_REQUEST['game_type'];
unset($_REQUEST['game_type']);
}
if (isset($_REQUEST['login_ip'])) {
$map['login_ip'] = $_REQUEST['login_ip'];
unset($_REQUEST['login_ip']);
@ -667,6 +696,10 @@ class MemberController extends ThinkController
$map['user_account'] = array('like', '%' . trim($_REQUEST['account']) . '%');
unset($_REQUEST['account']);
}
if (isset($_REQUEST['server_name'])) {
$map['server_name'] = $_REQUEST['server_name'];
unset($_REQUEST['server_name']);
}
// $map['type'] = 1;
$map['login_time'] = array('neq', 0);
$extend = array();
@ -717,7 +750,7 @@ class MemberController extends ThinkController
*/
public function lock_status($id, $lock_status)
{
$map['id'] = $id;
$map['id'] = ['in', explode(',', $id)];
$res = M('user', 'tab_')->where($map)->setField(['lock_status' => $lock_status]);
if ($res) {
\Think\Log::actionLog('Member/lock_status','Member',$id);
@ -1082,4 +1115,46 @@ class MemberController extends ThinkController
}
}
public function device_bans_list($row=10, $type='', $tag='', $p=1)
{
$map = [];
if (!empty($type)) {
$map['type'] = $type;
}
if (!empty($tag)) {
$map['tag'] = $tag;
}
$list = M('device_bans', 'tab_')->where($map)->page($p, $row)->select();
$count = M('device_bans', 'tab_')->where($map)->count();
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->assign('list_data', $list);
$this->display();
}
public function save_device_bans($id='', $type='', $tag='')
{
if (empty($id)) {
if (IS_GET) {
return $this->display('device_bans_edit');
} else {
$map = [];
if (empty($type) || empty($tag)) {
return $this->error("请填写完整信息");
}
$map['type'] = $type;
$map['tag'] = $tag;
$item = M('device_bans', 'tab_')->where($map)->find();
if ($item) {
return $this->error("该禁用已经存在(ID{$item['id']})");
}
M('device_bans', 'tab_')->add(['type'=>$type, 'tag'=>$tag, 'create_time'=>time(), 'operator_id'=>is_login()]);
}
return $this->success("新增成功");
} else {
M('device_bans', 'tab_')->where(['id'=>$id])->delete();
return $this->success("解除成功");
}
}
}

@ -32,7 +32,6 @@ class PublicController extends \Think\Controller
$Member = D('Member');
if ($Member->login($uid)) { //登录用户
//TODO:跳转到登录前页面
$this->success('登录成功!', U('Index/index'));
} else {

@ -35,9 +35,17 @@ class RechargeSumController extends ThinkController{
$rmap['register_time'] = $map['register_time'] = array('BETWEEN',array($startDate,$endDate));
$map['play_time'] = array('BETWEEN',array($startDate,$endDate));
$map['pay_time'] = array('BETWEEN',array($startDate,$endDate));
if(!empty($_REQUEST['game_id'])){
$map['game_id'] = $_REQUEST['game_id'];
$rmap['fgame_id'] = $_REQUEST['game_id'];
if(!empty($_REQUEST['game_type'])){
$map['sdk_version'] = $_REQUEST['game_type'];
$rmap['sdk_version'] = $_REQUEST['game_type'];
}
if(!empty($_REQUEST['game_name'])){
$rmap['game_id'] = $map['game_id'] = ['in', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')];
}
if (!empty($_REQUEST['server_name'])) {
$rmap['server_name'] = $map['server_name'] = $_REQUEST['server_name'];
}
if($_REQUEST['bindcoin']==1) {
@ -68,7 +76,8 @@ class RechargeSumController extends ThinkController{
}
//当天注册人数
$registerNum = D('User')->where(array_merge($rmap,array('puid'=>0)))->getField("id",true);
$registerNum = D('User')->where(array_merge($rmap,array('puid'=>0)))->join("tab_user_play on tab_user.id = tab_user_play.user_id and tab_user.fgame_id = tab_user_play.game_id")->field("tab_user.id")->select();
$registerNum = $registerNum ? array_column($registerNum, 'id') : [];
//当天活跃人数
$livenNum = D('UserPlay')->where($map)->count("id");
@ -81,7 +90,8 @@ class RechargeSumController extends ThinkController{
}
$map['pay_status'] = 1;
$newAddPay = D('Spend')->where(array_merge($map,array('_string'=>'( small_id = 0 or small_id = user_id)')))->sum('pay_amount');
$newAddPay = D('Spend')->where(array_merge($map,array('_string'=>'( small_id = 0 or small_id = user_id)')))->sum('pay_amount');
//当天累计付费
unset($map['user_id']);
$accumulated = D('Spend')->where($map)->sum('pay_amount');

@ -42,7 +42,7 @@ class SpendController extends ThinkController {
if($_REQUEST['game_name']=='全部'){
unset($_REQUEST['game_name']);
}else{
$map['tab_spend.game_name']=$_REQUEST['game_name'];
$map['tab_spend.game_id']= ['in', array_column(getGameByName($_REQUEST['game_name'], $_REQUEST['game_type']), 'id')];
unset($_REQUEST['game_name']);
}
}

@ -77,10 +77,9 @@ class MemberModel extends Model {
'username' => $user['nickname'],
'last_login_time' => $user['last_login_time'],
);
session('user_auth', $auth);
session('user_auth_sign', data_auth_sign($auth));
setcookie(session_name(),session_id(),time()+3600);
}
public function getNickName($uid){

@ -0,0 +1,36 @@
<extend name="Public/base" />
<!-- 管理员用户组新增和编辑页面 -->
<block name="body">
<form action="{:U('Member/save_device_bans')}" enctype="application/x-www-form-urlencoded" method="POST"
class="form-horizontal form_info_ml">
<div class="formtitle"><span>新增风控</span></div>
<ul class="form_info ">
<input type="hidden" name="id" value="{$auth_group.id}" />
<li>
<label>类型</label>
<select id="type" name="type" class="select_gallery">
<option value="1">设备号</option>
<option value="2">IP</option>
</select>
</li>
<li>
<label>详情</label><input type="text" name="tag" class="" placeholder="风控标识" value="{:I('tag')}">
</li>
<li>
<label>&nbsp;</label><input type="submit" id="submit" value="确认保存" target-form="form-horizontal" class="form_btn ajax-post">
</li>
</ul>
</form>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="AuthManager/index">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
</block>

@ -0,0 +1,221 @@
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css"/>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
</style>
<!-- 标题栏 -->
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">风控管理</h3>
<p class="description_text">说明此处显示设备、IP等风控记录</p>
</div>
<div class="cf top_nav_list">
<!-- <div class="fl button_list">
<a class="confirm ajax-post" id="dtnn" target-form="ids" url="{:U('Member/delprovide')}"><span class="button_icon button_icon2 "></span>批量删除</a>
</div> -->
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="type" name="type" class="select_gallery">
<option value="">类型</option>
<option value="1" <?php echo I('type') == 1 ? "selected" : "" ?> >设备号</option>
<option value="2" <?php echo I('type') == 2 ? "selected" : "" ?> >IP</option>
</select>
</div>
<div class="input-list">
<input type="text" name="tag" class="" placeholder="风控标识" value="{:I('tag')}">
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search"
url="{:U('Member/device_bans_list','model='.$model['name'] . '&row=' . I('row'),false)}">
搜索
</a>
</div>
<div class="input-list">
<a class="sch-btn" href="{:U('Member/save_device_bans')}">
新增
</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<!-- <th class="">
<input class="check-all" type="checkbox">
</th> -->
<th>ID</th>
<th>类型</th>
<th>标识</th>
<th>操作人</th>
<th>操作时间</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name="list_data">
<td colspan="8" class="text-center">aOh! 暂时还没有内容!</td>
<else/>
<volist name="list_data" id="data">
<tr>
<!-- <td><input class="ids" type="checkbox" value="{$data['id']}" name="ids"></td> -->
<td>{$data.id}</td>
<td><?php echo $data['type'] == 1 ? "设备号" : "IP";?></td>
<td>{$data.tag}</td>
<td>{:get_admin_nickname($data['operator_id'])}</td>
<td>{$data.create_time|date='Y-m-d H:i:s',###}</td>
<td>
<a class="confirm ajax-post" href="{:U('Member/save_device_bans',array('id'=>$data['id']))}">解除</a>
</td>
</tr>
</volist>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page|default=''}
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="Member/login_record">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '
<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
';
</php>
<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 src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript">
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('Member/login_record')}");
$(function () {
<volist name = ":I('get.')" id = "vo" > Think.setValue('{$key}', "{$vo}");
</volist >
$(".select_gallery").select2();
//搜索功能
$("#search").click(function () {
var url = $(this).attr('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;
}
var start = $("#time-start").val();
var end = $("#time-end").val();
if (start !='' && end != ''){
if (Date.parse(start) > Date.parse(end)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function (event) {
if (event.keyCode === 13) {
$("#search").click();
}
});
$('#time-start').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left'
})
$(".drop-down2").on('click', function (event) {
var navlist = $(this).find('.i_list_li');
if (navlist.hasClass('hidden')) {
navlist.removeClass('hidden');
$('#i_list_id').focus().val('');
} else {
navlist.addClass('hidden');
}
$(document).one("click", function () {
navlist.addClass('hidden');
});
event.stopPropagation();
});
var a = $('.i_list_li li a');
$('#i_list_id').on('keyup', function (event) {
var val = $.trim($(this).val()).toLowerCase();
$('#i_list_idh').val(val);
});
$("#i_list_li").find("a").each(function () {
$(this).click(function () {
var text = $.trim($(this).text()).toLowerCase();
$("#i_list_id").val(text);
$('#i_list_idh').val(text);
})
});
})
</script>
</block>

@ -204,7 +204,13 @@
<span class="notice-text">此处显示该玩家的金币提现记录</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">角色信息</td>
<td class="r">
<span id="role" class="table_click table_btn player_table_btn"><span class="table_click_text">点击查看</span></span>
<span class="notice-text">点击查看该用户游戏角色信息</span>
</td>
</tr>
<tr>
<td class="l noticeinfo">游戏登录记录</td>
<td class="r">
@ -297,6 +303,17 @@
content: [url + 'admin.php?s=/Member/chax/id/' + id + '' , 'no']
});
});
$("#role").click(function () {
layer.open({
type: 2,
title: "【游戏付费记录】列表",
shadeClose: true,
shade: 0.8,
area: ['70%', '80%'],
content: [url + 'admin.php?s=/Member/role_list/user_id/' + id + '' , 'no']
});
});
$('#tixian').click(function() {
layer.open({

@ -58,13 +58,25 @@
</div>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_id" class="select_gallery">
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.game_name}</option>
</volist>
</select>
</div>
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1">安卓</option>
<option value="2">苹果</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<!-- <volist name=":get_game_list(null, $_GET['game_type'])" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.game_name}</option>
</volist> -->
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="server_name" name="server_name" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
</select>
</div>
<div class="input-list">
<input type="text" name="login_ip" class="" placeholder="登录IP" value="{:I('login_ip')}">
</div>
@ -230,6 +242,51 @@
})
});
var game_name = "{:I('game_name')}";
$("#game_type").change(function(){
$.ajax({
url:"{:U('Ajax/getGameList')}",
type:"get",
data:{sdk_type:$("#game_type option:selected").val()},
dataType:'json',
success:function(response){
str = '<option value="">游戏名称</option>';
// $.each(response.data, function(index, item){
// console.log(item.id);
// str += '<option value="'+item.id+' '+(promote_id && item.id == promote_id?'selected':'')+'">'+item.nickname+'</option>';
// });
data = response.data;
for (var i in data){
str += "<option value='"+data[i].relation_game_name+"' "+(game_name && data[i].relation_game_name == game_name?'selected':'')+">"+data[i].relation_game_name+"</option>"
}
$("#game_name").empty();
$("#game_name").append(str);
$("#game_name").select2();
$("#game_name").change();
}
})
});
$("#game_type").change();
var game_server = "{:I('server_name')}";
$("#game_name").change(function(){
$.ajax({
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_name").empty();
$("#server_name").append(str);
$("#server_name").select2();
}
})
});
})
</script>
</block>

@ -0,0 +1,76 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<title>游戏角色列表|----软件管理平台</title>
<link href="http://admin.vlcms.com/Public/icon.ico" type="image/x-icon" rel="shortcut icon">
<link rel="stylesheet" type="text/css" href="__CSS__/base.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/common.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/module.css">
<link rel="stylesheet" type="text/css" href="__CSS__/style.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/default_color.css" media="all">
<script type="text/javascript" src="__STATIC__/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="__JS__/jquery.mousewheel.js"></script>
</head>
<style>
html{width:100%;min-width: auto;}
body {
padding: 0px;
}
</style>
<body>
<div id="main" class="main" style="min-height: 342px;width: 97%;">
<!-- 数据列表 -->
<div class="data_list box_mt">
<div class="" s>
<table>
<!-- 表头 -->
<thead>
<tr>
<th>玩家账号</th>
<th>游戏名称</th>
<th>游戏区服</th>
<th>角色ID</th>
<th>角色名</th>
<th>游戏等级</th>
<th>所属推广员</th>
<th>最后登陆时间</th>
<th>最后登陆IP</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<volist name="list" id="data">
<tr>
<td>{$data.user_account}</td>
<td>{$data.game_name}</td>
<td>{$data.server_name}</td>
<td>{$data.role_id}</td>
<td>{$data.role_name}</td>
<td>{$data.role_level}</td>
<td>{$data.promote_account}</td>
<td>{$data.play_time|date='Y-m-d H:i:s',###}</td>
<td>{$data.play_ip}</td>
</tr>
</volist>
<!-- <tr class="data_summary">
<td>汇总</td>
<td colspan="8">
当页提现:{:null_to_0(array_sum(array_column($list_data,'coin')))}
今日提现:{$ttotal|default='0.00'}
累计提现:{$total|default='0.00'}
累计手续费:{$poundage|default='0.00'}
</td>
</tr> -->
</tbody>
</table>
</div>
</div>
<div class="page">
{$_page}
</div>
</div>
</body>
</html>

@ -113,13 +113,26 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_id" class="select_gallery" >
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1">安卓</option>
<option value="2">苹果</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<!-- <volist name=":get_game_list(null, $_GET['game_type'])" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.game_name}</option>
</volist>
</volist> -->
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="server_name" name="server_name" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
</select>
</div>
<br>
<div class="input-list search_item input-list-gamenoticestatus">
<select name="promote_level" style="color:#444" class="select_gallery" id="promote_level">
<option value="">请选择推广员等级</option>
@ -149,6 +162,10 @@
<!-- <div class="input-list">
<a class="sch-btn" href="{:U('Export/expUser',array_merge(['id'=>3],I('get.')))}">导出</a>
</div> -->
<div class="fl button_list">
<a target-form="ids" onclick="shenhe(0)"><span class="button_icon button_icon5 "></span>批量锁定</a>
<a id="dtnn" target-form="ids" onclick="shenhe(1)"><span class="button_icon button_icon9 "></span>批量开启</a>
</div>
</div>
</div>
@ -160,6 +177,9 @@
<!-- 表头 -->
<thead>
<tr>
<th class="" style="width: 50px;">
<input class="check-all" type="checkbox">
</th>
<th>账号ID</th>
<if condition="I('type') eq 2">
<th>第三方来源</th>
@ -212,6 +232,7 @@
<else/>
<volist name="list_data" id="data">
<tr>
<td ><input class="ids" type="checkbox" value="{$data.id}" name="ids[]"></td>
<td >{$data.id}</td>
<if condition="I('type') eq 2">
<td >{:get_registertype($data['register_type'])}</td>
@ -424,22 +445,70 @@ $(function(){
});
$("#promote_level").change();
})
function shenhe(){
var game_name = "{:I('game_name')}";
$("#game_type").change(function(){
$.ajax({
url:"{:U('Ajax/getGameList')}",
type:"get",
data:{sdk_type:$("#game_type option:selected").val()},
dataType:'json',
success:function(response){
str = '<option value="">游戏名称</option>';
// $.each(response.data, function(index, item){
// console.log(item.id);
// str += '<option value="'+item.id+' '+(promote_id && item.id == promote_id?'selected':'')+'">'+item.nickname+'</option>';
// });
data = response.data;
for (var i in data){
str += "<option value='"+data[i].relation_game_name+"' "+(game_name && data[i].relation_game_name == game_name?'selected':'')+">"+data[i].relation_game_name+"</option>"
}
$("#game_name").empty();
$("#game_name").append(str);
$("#game_name").select2();
$("#game_name").change();
}
})
});
$("#game_type").change();
var game_server = "{:I('server_name')}";
$("#game_name").change(function(){
$.ajax({
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_name").empty();
$("#server_name").append(str);
$("#server_name").select2();
}
})
});
function shenhe(status){
var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) {
return $(elem).val();
}).get().join(',');
console.log(text);
$.ajax({
cache: true,
type: "POST",
url:"{:U('Member/age_check')}",
data:{id:text},// 你的formid
url:"{:U('Member/lock_status')}",
data:{id:text, lock_status:status},// 你的formid
async: false,
error: function(data) {
layer.alert("服务器故障,请稍后重试!",{icon: 2});
},
success: function(data) {
var obj = JSON.parse(data);
layer.alert(obj.info,{icon:obj.status})
// var obj = JSON.parse(data);
// layer.alert(obj.info,{icon:obj.status})
layer.alert(data.info,{icon:data.status})
window.location.reload()
}
});
}

@ -84,7 +84,7 @@
<empty name='show_status'>
<div class="input-list input-list-parent search_label_rehab">
<select id="parent_id" name="parent_id" class="select_gallery" >
<option value="">上线推广员</option>
<option value="">会长信息</option>
<volist name=":get_all_toppromote()" id="vo">
<option parent-id="{$vo.id}" value="{$vo.id}">{$vo.account}</option>
</volist>

@ -65,13 +65,25 @@
</volist>
</select>
</div> -->
<div class="input-list input-list-promote search_label_rehab">
<select id="game_id" name="game_id" class="select_gallery" >
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1">安卓</option>
<option value="2">苹果</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option value="{$vo.id}">{$vo.game_name}</option>
</volist>
</select>
<!-- <volist name=":get_game_list(null, $_GET['game_type'])" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.game_name}</option>
</volist> -->
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="server_name" name="server_name" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
</select>
</div>
<div class="input-list search_item input-list-gamenoticestatus">
<select name="promote_level" style="color:#444" class="select_gallery" id="promote_level">
@ -308,6 +320,51 @@ $(function(){
})
});
$("#promote_level").change();
var game_name = "{:I('game_name')}";
$("#game_type").change(function(){
$.ajax({
url:"{:U('Ajax/getGameList')}",
type:"get",
data:{sdk_type:$("#game_type option:selected").val()},
dataType:'json',
success:function(response){
str = '<option value="">游戏名称</option>';
// $.each(response.data, function(index, item){
// console.log(item.id);
// str += '<option value="'+item.id+' '+(promote_id && item.id == promote_id?'selected':'')+'">'+item.nickname+'</option>';
// });
data = response.data;
for (var i in data){
str += "<option value='"+data[i].relation_game_name+"' "+(game_name && data[i].relation_game_name == game_name?'selected':'')+">"+data[i].relation_game_name+"</option>"
}
$("#game_name").empty();
$("#game_name").append(str);
$("#game_name").select2();
$("#game_name").change();
}
})
});
$("#game_type").change();
var game_server = "{:I('server_name')}";
$("#game_name").change(function(){
$.ajax({
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_name").empty();
$("#server_name").append(str);
$("#server_name").select2();
}
})
});
})
</script>
</block>

@ -58,13 +58,28 @@
</div>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1">安卓</option>
<option value="2">苹果</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<!-- <volist name=":get_game_list(null, $_GET['game_type'])" id="vo">
<option game-id="{$vo.id}" value="{$vo.id}">{$vo.game_name}</option>
</volist> -->
</select>
</div>
<!-- <div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_name" class="select_gallery" style="width:120px;">
<option value="">游戏名称</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.game_name}">{$vo.game_name}</option>
</volist>
</select>
</div>
</div> -->
<div class="input-list input-list-server search_label_rehab">
<select id="server_name" name="server_name" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
@ -131,6 +146,7 @@
<thead>
<tr>
<th>支付订单号</th>
<th>CP订单号</th>
<th><a class="paixu" data-order='pay_time'>
充值时间
@ -160,6 +176,7 @@
<volist name="list_data" id="data">
<tr>
<td>{$data.pay_order_number}</td>
<td>{$data.extend}</td>
<td>{:set_show_time($data['pay_time'])}</td>
<td>{$data.user_account}<gt name="data.small_id" value="0"><neq name="data.small_id" value="$data.user_id">{$data.small_account}</neq></gt></td>
<td>{$data.game_name}</td>
@ -460,27 +477,7 @@
})
$("#game_id").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_name").empty();
$("#server_name").append(str);
$("#server_name").select2();
}
})
});
var promote_id = "{:I('promote_id')}";
console.log(promote_id);
$("#promote_level").change(function(){
$.ajax({
url:"{:U('Ajax/getPromotersByLevel')}",
@ -505,13 +502,59 @@
});
$("#promote_level").change();
var game_id = "{:I('game_name')}";
var game_server = "{:I('server_name')}";
if(game_id){
// var game_id = "{:I('game_name')}";
// var game_server = "{:I('server_name')}";
// if(game_id){
// $.ajax({
// url:"{:U('Ajax/getSpendServer')}",
// type:"post",
// data:{game_id:game_id,type:2},
// dataType:'json',
// success:function(data){
// str = "<option value=''>请选择区服</option>";
// for (var i in data){
// str += "<option value='"+data[i].server_name+"' "+(game_server && data[i].server_name == game_server?'selected':'')+">"+data[i].server_name+"</option>"
// }
// $("#server_name").empty();
// $("#server_name").append(str);
// $("#server_name").select2();
// }
// })
// }
var game_name = "{:I('game_name')}";
$("#game_type").change(function(){
$.ajax({
url:"{:U('Ajax/getGameList')}",
type:"get",
data:{sdk_type:$("#game_type option:selected").val()},
dataType:'json',
success:function(response){
str = '<option value="">游戏名称</option>';
// $.each(response.data, function(index, item){
// console.log(item.id);
// str += '<option value="'+item.id+' '+(promote_id && item.id == promote_id?'selected':'')+'">'+item.nickname+'</option>';
// });
data = response.data;
for (var i in data){
str += "<option value='"+data[i].relation_game_name+"' "+(game_name && data[i].relation_game_name == game_name?'selected':'')+">"+data[i].relation_game_name+"</option>"
}
$("#game_name").empty();
$("#game_name").append(str);
$("#game_name").select2();
$("#game_name").change();
}
})
});
$("#game_type").change();
var game_server = "{:I('server_name')}";
$("#game_name").change(function(){
$.ajax({
url:"{:U('Ajax/getSpendServer')}",
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{game_id:game_id,type:2},
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
str = "<option value=''>请选择区服</option>";
@ -521,10 +564,9 @@
$("#server_name").empty();
$("#server_name").append(str);
$("#server_name").select2();
}
})
}
});
/**

@ -55,6 +55,9 @@
<div class="input-list">
<input type="text" name="user_account" class="" value="{:I('user_account')}" placeholder="玩家账号">&nbsp;&nbsp;&nbsp;
</div>
<div class="input-list">
<input type="text" name="role_name" class="" value="{:I('role_name')}" placeholder="角色名称">&nbsp;&nbsp;&nbsp;
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_id" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>

@ -868,6 +868,8 @@ function is_check_account($account){
}
if($sdk_type==2){
$map['sdk_version']=1;
} else if ($sdk_type == 3) {
$map['sdk_version']=2;
}
$lists = $game->field('id,game_name,sdk_version,relation_game_name,icon,relation_game_id,game_status,display_site,dow_num')->where($map)->select();
if(empty($lists)){return false;}

@ -88,8 +88,8 @@ class MemberModel extends Model{
'last_login_time' => $user['last_login_time'],
);
session('user_auth', $auth);
session('user_auth_sign', data_auth_sign($auth));
session(['name'=>'user_auth', 'expire'=>60*60], $auth);
session(['name'=>'user_auth_sign', 'expire'=>60*60], data_auth_sign($auth));
}

@ -260,4 +260,14 @@ ALTER TABLE `tab_spend_month_count`
ADD COLUMN `bind_coin_count` decimal(10,2) NULL DEFAULT 0.00 COMMENT '绑币消耗' AFTER `balance_coin_deposit`;
ALTER TABLE `tab_spend_user_count`
ADD COLUMN `bind_coin_count` decimal(10,2) NULL DEFAULT 0.00 COMMENT '绑定币消耗' AFTER `balance_coin_count`;
ADD COLUMN `bind_coin_count` decimal(10,2) NULL DEFAULT 0.00 COMMENT '绑定币消耗' AFTER `balance_coin_count`;
-- 2019-11-6 ylw 设备禁用信息表
CREATE TABLE `tab_device_bans` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '风控表ID',
`tag` varchar(255) NOT NULL COMMENT '风控标识',
`type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '类型 0未知 1设备号 2IP',
`operator_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '操作者ID',
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

Loading…
Cancel
Save