Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	Data/update.sql
master
chenxiaojun 5 years ago
commit 59de455dea

@ -3,10 +3,125 @@
namespace Home\Controller;
use Home\Model\SupportModel;
class TestResourceController extends BaseController
{
public function test(){
echo 'test1';
}
public function supportNumberList($p = 1) {
$page = intval($p);
$page = $page ? $page : 1; //默认显示第一页数据
$row=10;
if(isset($_REQUEST['row'])) {$row = $_REQUEST['row'];}else{$row = 10;}
$map = [];
if(!empty(I('server_name'))){
$map['server_name']=I('server_name');
}
if(!empty(I('game_name'))){
$map['game_name']=I('game_name');
}
if(!empty(I('role_name'))){
$map['tab_support.role_name']=['like','%'.I('role_name').'%'];
}
if(!empty(I('user_account'))){
$map['user_account']=I('user_account');
}
if(!empty(I('promote_name'))){
$map['tab_support.promote_account']=I('promote_name');
}
$data = M('support','tab_')
->field('tab_support.id,tab_support.role_name,tab_support.game_name,tab_support.promote_account,tab_support.create_time,user_account,role_name,server_name,freeze,user.device_number')
->join('left join tab_user as user on tab_support.user_id = user.id')
->where($map)
->page($page,$row)
->select();
foreach ($data as $key => $value) {
$data[$key]['create_time'] = date('Y-m-d H:m:i',$value['create_time']);
}
$count = M('support','tab_')
->field('tab_support.role_name,tab_support.game_id,tab_support.promote_id,tab_support.create_time,user_account,role_name,server_name,freeze,user.device_number')
->join('left join tab_user as user on tab_support.user_id = user.id')
->where($map)
->select();
$count = count($count);
$page = set_pagination($count,$row);
if($page) {$this->assign('_page', $page);}
$this->assign('data',$data);
// var_dump($data);
$this->display();
}
public function freezeSupport() {
$supportId = I('support_id', 0);
if ($supportId == 0) {
$this->ajaxReturn(['status'=>0,'msg'=>"参数错误"]);
}
$isFreeze = D('support')->froze($supportId);
if ($isFreeze) {
$this->ajaxReturn(['status'=>1, 'msg'=> '冻结成功']);
} else {
$this->ajaxReturn(['status'=>0, 'msg'=> '冻结失败']);
}
}
public function unfreezeSupport() {
$supportId = I('support_id', 0);
if ($supportId == 0) {
$this->ajaxReturn(['status'=>0,'msg'=>"参数错误"]);
}
$isFreeze = D('support')->unfreeze($supportId);
if ($isFreeze) {
$this->ajaxReturn(['status'=>1, 'msg'=> '启用成功']);
} else {
$this->ajaxReturn(['status'=>0, 'msg'=> '启用失败']);
}
}
public function rechangePassward() {
$supportId = I('support_id', 0);
if ($supportId == 0) {
$this->ajaxReturn(['status'=>0,'msg'=>"参数错误"]);
}
$passward = D('support')->rechangePassward($supportId);
if ($passward) {
$this->ajaxReturn(['status'=>1, 'msg'=> '新密码:'.$passward]);
} else {
$this->ajaxReturn(['status'=>0, 'msg'=> '重置密码失败']);
}
}
/**
* 获取区服列表
* @param $game_id
*/
public function getServer($game_id=""){
$map['game_id']=$game_id;
$map['start_time']=['lt',time()];
if(I('status')==2){
$map['show_status']=1;
}
$data = M('server','tab_')
->field('tab_server.server_name,support_quota')
->where($map)
->join('join tab_game tg ON tg.id=tab_server.game_id')
->select();
$this->AjaxReturn($data);
}
}

@ -0,0 +1,107 @@
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------
namespace Home\Model;
use Think\Model;
/**
* 分类模型
*/
class SupportModel extends Model{
protected $_validate = array(
);
protected $_auto = array(
);
/**
* 构造函数
* @param string $name 模型名称
* @param string $tablePrefix 表前缀
* @param mixed $connection 数据库连接信息
*/
public function __construct($name = '', $tablePrefix = '', $connection = '') {
/* 设置默认的表前缀 */
$this->tablePrefix ='tab_';
/* 执行构造方法 */
parent::__construct($name, $tablePrefix, $connection);
}
/**
* 按照时间分组统计注册总数
* @param integer $id 数据库表行id
*/
public function froze($id) {
$data = [
'freeze' => 0
];
return $this->where("id=".$id)->save($data);
}
/**
* 按照时间分组统计注册总数
* @param integer $id 数据库表行id
*/
public function unfreeze($id)
{
$data = [
'freeze' => 1
];
return $this->where("id=".$id)->save($data);
}
public function rechangePassward($id) {
$passward = $this->getRandomPassword(6);
$data = [
'user_password' => base64_encode($passward)
];
if ($this->where("id=".$id)->save($data)) {
return $passward;
} else {
return false;
}
}
private function getRandomPassword($length, $special = true){
$chars = array(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2',
'3', '4', '5', '6', '7', '8', '9'
);
if($special){
$chars = array_merge($chars, array(
'!', '@', '#', '$', '?', '|', '{', '/', ':', ';',
'%', '^', '&', '*', '(', ')', '-', '_', '[', ']',
'}', '<', '>', '~', '+', '=', ',', '.'
));
}
$charsLen = count($chars) - 1;
shuffle($chars);
$password = '';
for($i=0; $i<$length; $i++){
$password .= $chars[mt_rand(0, $charsLen)];
}
return $password;
}
}

@ -0,0 +1,442 @@
<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/data.css" rel="stylesheet">
<link href="__CSS__/20180207/manager.css" rel="stylesheet" >
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
<style>
.page-list .trunk-search{
padding-top: 20px;
}
</style>
</block>
<block name="body">
<div class="page-list normal_list apply-app_apply-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>测试资源管理></span><span>扶持号管理</span></div>
</div>
<img src="__IMG__/20180207/icon_chongzhi.png">
<span class="title_main">扶持号管理</span>
<span class="details">说明:扶持号管理</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix">
<!-- <br><br><br>-->
<div id="form1">
<div class="form-group normal_space fl">
<select id="game_id" name="game_name" class="reselect select_gallery" >
<option game-id="0" value="">请选择游戏</option>
<volist name=":get_game_list()" id="vo">
<option game-id="{$vo.id}" value="{$vo.game_name}" <if condition="$_GET['game_name'] eq $vo['game_name']">selected="selected"</if>>{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="form-group normal_space fl">
<span id="server_js">
<select id="server_id" name="server_name" class="reselect select_gallery" style="width:101px">
<option game-id="0" value="">请选择区服</option>
<volist name=":getServer_name_on($_GET['game_name'])" id="vo">
<option value="{$vo.server_name}" <if condition="$_GET['server_name'] eq $vo['server_name']">selected="selected"</if>>{$vo.server_name}</option>
</volist>
</select>
</span>
</div>
<div class="form-group normal_space fl">
<input type="text" name="role_name" class="txt normal_txt" style="width:110px;" placeholder="角色名" value="{:I('role_name')}" onKeyDown="webchat_chkkeysend(event);">
</div>
<div class="form-group normal_space fl">
<input type="text" name="user_account" class="txt normal_txt" style="width:110px;" placeholder="测试账号" value="{:I('user_account')}" onKeyDown="webchat_chkkeysend(event);">
</div>
<div class="form-group normal_space fl">
<input type="text" name="promote_name" class="txt normal_txt" style="width:110px;" placeholder="推广员" value="{:I('promote_name')}" onKeyDown="webchat_chkkeysend(event);">
</div>
<div class="form-group normal_space fl">
<input type="submit" class="submit" id='submit' value="查询" url="{:U('supportNumberList',['type'=>I('type')])}" style="cursor:pointer;">
</div>
<!-- <div class="form-group normal_space fl" style="margin-left: 9px;">-->
<!-- <label class="form-title select-title" style="margin-right: 9px;">至</label>-->
<!-- <div class="select-time">-->
<!-- <input type="text" id="edate" class="txt" name="end" placeholder="结束时间" value="{:I('end')}">-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="form-group normal_space fl">-->
<!-- <label class="form-title select-title">申请时间:</label>-->
<!-- <div class="select-time">-->
<!-- <input type="text" id="sdate" class="txt" name="start" placeholder="开始时间" value="{:I('start')}" >-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="form-group normal_space fl">-->
<!-- <input type="text" name="user_account" class="txt normal_txt" id="uid" style="width:110px;" placeholder="请输入玩家账号" value="{:I('user_account')}" onKeyDown="webchat_chkkeysend(event);">-->
<!-- </div>-->
</div>
</div>
</div>
<div class="page-list apply-app_apply-list query-recharge-list">
<div class="trunk-content article">
<div class="tabcon trunk-list">
<table class="table normal_table zwm_tab">
<tr class="odd zwm_tr">
<th>产品名称</th>
<th>区服</th>
<th>测试账号</th>
<th>所属推广员</th>
<th>角色名称</th>
<th>设备信息</th>
<th>状态</th>
<th>创建时间</th>
<th>操作</th>
</tr>
<empty name="data">
<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="data" id="s" mod="2">
<tr data-id="{$s.id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$s.game_name}</td>
<td>{$s.server_name}</td>
<td>{$s.user_account}</td>
<td>{$s.promote_account}</td>
<td>{$s.role_name}</td>
<td>
<if condition="$s['device_number'] eq ''">尚未登录,无设备号
<else/>{$s.device_number}
</if>
</td>
<td>
<if condition="$s['freeze'] eq 0">冻结
<else/>启用
</if>
</td>
<td>{$s.create_time}</td>
<td>
<if condition="$s['freeze'] eq 1">
<a href="javascript:;" class="froze-btn editbtn">冻结</a>
<else/>
<a href="javascript:;" class="unfroze-btn editbtn">启用</a>
</if>
<a href="javascript:;" class="changePassward-btn editbtn">重置密码</a>
</td>
</tr>
</volist>
</empty>
</table>
<div class="pagenation clearfix">{$_page}</div>
</div>
</div>
</div>
</div>
</block>
<block name="script">
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript">
$().ready(function(){
setValue('row','{:I("get.row",10)}');
$("#pagehtml a").on("click",function(event){
event.preventDefault();//使a自带的方法失效即无法调整到href中的URL(http://www.baidu.com)
var geturl = $(this).attr('href');
$('#data_form').attr('action',geturl);
$('#data_form').submit();
});
$('#sdate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
timepicker:false
});
$('#add').click(function(){
var url = $(this).attr('url');
window.location.href = url;
});
$('.apply').click(function(){
var id = $(this).attr('data-id');
var url = "{:U('apply','','')}"+'/id/'+id;
window.location.href = url;
});
$('.open_edit').click(function(){
var account=$(this).attr('data-account');
var password=$(this).attr('data-password');
var game_name=$(this).attr('data-game_name');
var server_name=$(this).attr('data-server_name');
var role_name=$(this).attr('data-role_name');
var support_id=$(this).attr('data-support_id');
$('#i_account').val(account);
$('#i_password').val(password);
$('#i_game_name').val(game_name);
$('#i_server_name').val(server_name);
$('#i_role_name').val(role_name);
$('#i_support_id').val(support_id);
var id_editor= '.div_editor';
//页面层
layer.open({
type: 1,
title: '新增扶持-修改',
closeBtn: 1,
area: ['600px','580px'],
//skin: 'layui-layer-bgwhite', //白色背景色
shadeClose: true,
content: $(id_editor),
})
});
$('.i_save').click(function () {
var id = $('#i_support_id').val();
var role_name =$('#i_role_name').val();
var user_password = $('#i_password').val();
if(role_name==''){
layer.msg('角色名不能为空');
return false;
}
if(user_password==''){
layer.msg('密码不能为空');
return false;
}
$.ajax({
async: false,
url:"{:U('support_edit')}",
type:"POST",
dataType:"json",
data:{id:id,role_name:role_name,user_password:user_password},
success:function(result){
if(result.status==0){
layer.msg(result.msg,{icon: 2});
}else{
layer.msg('修改成功');
setTimeout(function(){
location.reload();
},1000);
}
},
error:function(){
}
});
});
$('.i_cancel').click(function () {
location.reload();
});
$(".select_gallery").select2();
$('#edate').datetimepicker({
lang:'ch',
format:'Y-m-d',
formatDate:'Y-m-d',
timepicker:false
});
});
</script>
<script type="text/javascript">
$("#submit").click(function(){
var sdate =$('#sdate').val();
var edate =$('#edate').val();
if(Date.parse(sdate) > Date.parse(edate)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
var url = $(this).attr('url');
var query = $('#form1').find('input').serialize();
query += "&"+$('#form1').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
$("#game_id").change(function(){
$.ajax({
url:"{:U('getServer')}",
type:"post",
data:{game_id:$("#game_id option:selected").attr('game-id')},
dataType:'json',
success:function(data){
console.log(data);
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_name+"'>"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
})
$("#server_js").click(function(event) {
var game_id=$("#game_id").val();
if(game_id==0){
layer.msg('请先选择游戏');
}
});
function webchat_chkkeysend(event)
{
if (event.keyCode==13) {
$('#submit').click();
}
}
$('.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('TestResource/freezeSupport')}",
data: {support_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfroze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认启用帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('TestResource/unfreezeSupport')}",
data: {support_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfroze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认启用帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('TestResource/unfreezeSupport')}",
data: {support_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.changePassward-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认重置账号密码?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('TestResource/rechangePassward')}",
data: {support_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
console.log(response)
layer.confirm(response.msg, {icon: 3, title:'提示'}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
</script>
</block>

@ -74,5 +74,7 @@ ALTER TABLE `tab_game` ADD COLUMN `detail_content` MEDIUMTEXT NULL DEFAULT NULL
-- ----------------------------
ALTER TABLE `tab_promote` ADD COLUMN `child_game_permission` tinyint(2) NOT NULL DEFAULT 0 COMMENT '下级游戏添加权限 0-本账号已添加游戏 1-所有游戏' AFTER `idcard`;
-- 2019-10-11 cxj
ALTER TABLE `tab_apply` ADD COLUMN `bale_sort` int(5) NOT NULL DEFAULT 0 COMMENT '打包顺序' AFTER `offline_status`;
-- ----------------------------
-- 2019-10-11 zyx
-- ----------------------------
ALTER TABLE `tab_support` ADD COLUMN `freeze` tinyint(2) NOT NULL DEFAULT 1 COMMENT '0-冻结 1-启用' AFTER `notice_status`;
Loading…
Cancel
Save