Merge branch 'release-1.0.0' into dev

master
zhengchanglong 5 years ago
commit 484972e9f2

@ -44,15 +44,10 @@ function get_promote_list_by_id($id=0) {
if(is_numeric($id) && $id>=0) {
$map['parent_id'] = $id;
$list = $query->where($map)->select();
} elseif(is_array($id)) {
$map['parent_id'] = array('in',$id);
$list = $query->where($map)->select();
} elseif(is_numeric($id) && $id<0){
$list = $query->where($map)->select();
} else {
$list = '';
}
$list = $query->where($map)->select();
return $list;
}
@ -1557,9 +1552,9 @@ function getAdminData ($uid) {
->join('left join sys_auth_group on sys_auth_group_access.group_id=sys_auth_group.id')
->where(array('uid'=>$uid))->find();
$promoteData = M('promote','tab_')->field('id')->where(array('admin_id'=>$uid))->select();
$promoteData = implode(',',array_column($promoteData,'id'));
$adminData['data_president'] = $adminData['data_president'].','.$promoteData;
// $promoteData = M('promote','tab_')->field('id')->where(array('admin_id'=>$uid))->select();
// $promoteData = implode(',',array_column($promoteData,'id'));
// $adminData['data_president'] = $adminData['data_president'].','.$promoteData;
return $adminData;
}
@ -1590,7 +1585,8 @@ function getPowerPromoteIds()
if ($myPromote_ids) {
if ($userAuth['data_empower_type'] == 2) {//部分会长加上自己创建的会长
$userAuth['data_president'] .= "," . $myPromote_ids;
// $userAuth['data_president'] .= "," . $myPromote_ids;
} elseif ($userAuth['data_empower_type'] == 3) {//自己创建的会长和底下推广员
$userAuth['data_president'] = $myPromote_ids;
}
@ -1598,6 +1594,7 @@ function getPowerPromoteIds()
if (!empty($userAuth['data_president'])) {//查询有权限查看的会长以及底下的推广员
$map = array();
//查询会长底下的推广员(首个斜杆之间的数字)
$userAuth['data_president']= trim($userAuth['data_president'], ",");
$where['SUBSTRING_INDEX(SUBSTRING_INDEX(`chain`,"/",2),"/",-1)'] = array('exp',"IN({$userAuth['data_president']})");
$where['id'] = array('in', $userAuth['data_president']);//会长本身
$where['_logic'] = 'or';
@ -1619,11 +1616,17 @@ function getPowerPromoteIds()
return $promoteIds;
}
/**
* 为数据权限添加筛选参数
* @param array $map 查询条件
* @param string $column 字段名默认为promote_id
* @return mixed
*/
function setPowerPromoteIds(&$map, $column = 'promote_id') {
//为数据权限添加
$promoteIds = getPowerPromoteIds();
if (empty($promoteIds)) {
$map[$column] = -1;
$map[$column] = -1;//没权限时将promote_id置为-1
} elseif ($promoteIds != 'all') {
if (isset($map[$column])) {
if (isset($map['_string'])) {//查询字段中已存在promote_id不覆盖此条件而处理
@ -1697,4 +1700,19 @@ function get_admin_listOther()
if(empty($list)){return false;}
return $list;
}
/**
* 根据会长id底下的推广员id
* @param $promote_id
* @return mixed
*/
function getOffspringByPromoteId($promote_id) {
$promote_ids = M('promote', 'tab_')
->where(['chain' => ['like', "%/{$promote_id}/%"]])
->field('group_concat(id) as promote_ids')
->find();
return $promote_ids['promote_ids'];
}
?>

@ -16,7 +16,6 @@ use Admin\Model\AuthGroupModel;
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
class AdminController extends Controller {
/**
* 后台控制器初始化
*/
@ -49,9 +48,14 @@ class AdminController extends Controller {
if ( false === $access ) {
$this->error('403:禁止访问');
}elseif(null === $access ){
if(CONTROLLER_NAME !== "Ajax"){//ajax放行
//检测访问权限
$rule = strtolower(MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME);
if ( !$this->checkRule($rule,array('in','1,2')) ){
if($rule == "admin/statistics/overview"){//第一级菜单单独判断
$this->strictCheckRule($rule);
}elseif ( !$this->checkRule($rule,array('in','1,2')) ){
if ($rule == "admin/index/index"){
//如果首页没有访问权限 自动检测有访问权限的页面然后跳转过去
@ -63,7 +67,8 @@ class AdminController extends Controller {
D('Member')->logout();
session('[destroy]');
}
$where['id'] = substr($qx[0]['rules'],0,1);;
$where['id'] = substr($qx[0]['rules'],0,strpos($qx[0]['rules'], ','));
//$where['id'] = substr($qx[0]['rules'],0,1)
$dz = M("auth_rule")->field('name')->where($where)->find();
$red = substr($dz['name'],6);
redirect(U("$red"));
@ -80,6 +85,8 @@ class AdminController extends Controller {
}
}
}
}
$map2['uid'] = session("user_auth.uid");
$res = M('auth_group_access','sys_')->field('uid,group_id')->where($map2)->find();
$map1['id'] = $res['group_id'];
@ -89,7 +96,49 @@ class AdminController extends Controller {
$this->assign('__MENU__', $this->getMenus());
}
/**
* 大菜单存在两个及以上的同方法菜单,需要进行多级菜单确认
*/
protected function strictCheckRule($rule)
{
$flag =false;
$id= 0;
$ruleres = M("auth_rule")->field("id,type")->where("name LIKE '%{$rule}%'")->select();
foreach ($ruleres as $k => $v) {
$checkRule = $this->checkRule($rule,array('eq',$v['type']));
if(!$checkRule){
$flag = true;
}else{
$id = $v['id'];
}
}
if($flag){ //不通过
//获取菜单下的
$rulearr = explode("/",$rule);
$where = array();
$where['pid'] = 0;
$where['hide'] = 0;
$where['url'] = array("like",$rulearr[1]."/".$rulearr[2]);
$second_id = M('Menu')->where($where)->field('id')->find()['id'];
$where2['pid'] = $second_id;
$where2['hide'] = 0;
$menu = M('Menu')->where($where2)->field('id,url')->order('sort asc')->select();
foreach ($menu as $k=>$v) {
$to_check_url = $v['url'];
if( stripos($to_check_url,MODULE_NAME)!==0 ){
$trule = MODULE_NAME.'/'.$to_check_url;
}else{
$trule = $to_check_url;
}
if($this->checkRule($trule, AuthRuleModel::RULE_URL,null)){
redirect(U("$trule"));
}
}
}
# code...
}
/**
* 权限检测
* @param string $rule 检测的规则

@ -78,6 +78,7 @@ class BehaviorLogController extends ThinkController
$this->assign('startDate', $startDate);
$this->assign('endDate', $endDate);
$this->assign('data', $data);
$this->assign("is_admin",is_administrator());
$this->display('index');
}

@ -104,7 +104,7 @@ class DepositController extends ThinkController {
$this->m_title = '平台币充值';
$this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Deposit/lists','status'=>1])->find());
$this->assign("is_admin",is_administrator());
parent::lists(self::model_name,$_GET["p"],$map);
}

@ -3,6 +3,7 @@
namespace Admin\Controller;
use Sdk\Controller\AgeController;
use Think\Log;
use User\Api\MemberApi as MemberApi;
use Org\WeixinSDK\Weixin;
@ -937,11 +938,31 @@ class MemberController extends ThinkController
}
}
public function changeprelname()
{
if (preg_match('/^([\xe4-\xe9][\x80-\xbf]{2}){2,4}$/', $_POST['real_name'])) {
//重复判断
$map['id'] = $_POST['id'];
$pro = M("User", "tab_")
->where($map)
->setField('real_name', $_POST['real_name']);
if ($pro !== false) {
$this->ajaxReturn(array("status" => 1, "msg" => "真实姓名修改成功"));
} else {
$this->ajaxReturn(array("status" => 0, "msg" => "真实姓名修改失败"));
}
} else {
$this->ajaxReturn(array("status" => 0, "msg" => "真实姓名输入错误"));
}
}
public function changepidcard()
{
if (preg_match('/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/', $_POST['idcard'])) {
//重复判断
$where['idcard'] = $_POST['idcard'];
//$where['idcard'] = $_POST['idcard'];
/*$user = M('User', 'tab_')->where($where)->field('id,account')->find();
if ($user) {
$this->ajaxReturn(array("status" => 0, "msg" => "该身份证号码已被" . $user['account'] . "(" . $user['id'] . ")绑定"));
@ -1049,17 +1070,26 @@ class MemberController extends ThinkController
setPowerPromoteIds($map,'promote_id');
if (isset($_REQUEST['promote_id'])) {
if (I('promote_level') ==1) {
$promote_ids = getOffspringByPromoteId($_REQUEST['promote_id']);
if (empty($promote_ids)) {
$promote_ids = -1;
}
$map['promote_id'] = ['exp', "in($promote_ids)"];
} else {
$map['promote_id'] = $_REQUEST['promote_id'];
}
unset($_REQUEST['promote_id']);
}
// $map['type'] = 1;
// $map['login_time'] = ['exp', 'login_time<>0'];
$extend = array();
$extend['map'] = $map;
$count = M('UserLoginRecord','tab_')->field('user_id')->where($extend['map'])->group('user_id')->select(false);
$sql = "select count(user_id) as count from ({$count})t";
$count = M('UserLoginRecord','tab_')->query($sql);
// var_dump($sql);die();
$this->m_title = '登录记录';
$this->assign('user_count',$count[0]['count']);

@ -200,6 +200,16 @@ class PromoteController extends ThinkController
parent::lists('SiteApply', $p, $map);
}
private function accountExist($account, $id = null)
{
$res = M('promote', 'tab_')->where(['account' => $account])->field('id')->find();
if ($res) {
return $id != $res['id'];
} else {
return false;
}
}
public function add($account=null, $password=null, $second_pwd=null, $real_name=null, $email=null,
$mobile_phone=null, $bank_name=null, $bank_card=null, $admin=null, $status=null, $ba_id = null, $company_id = null)
{
@ -207,6 +217,9 @@ class PromoteController extends ThinkController
if (C('PROMOTE_AUTO_AUDIT') == 1) {
$status = 1;
}
if ($this->accountExist($account)) {
$this->error('该账号已存在');
}
$data = array('account'=>$account,'password'=>$password,'second_pwd'=>$second_pwd,'real_name'=>$real_name,
'email'=>$email,'mobile_phone'=>$mobile_phone,'bank_name'=>$bank_name,'bank_card'=>$bank_card,
'admin_id'=>session('user_auth')['uid'],'status'=>$status,'ba_id'=>$ba_id, 'company_id' => $company_id);
@ -225,7 +238,7 @@ class PromoteController extends ThinkController
session('user_auth_promote_ids', null);
$this->success("添加成功", U('lists'));
} else {
$this->error($res);
$this->error('添加失败');
}
} else {
$this->meta_title ='新增渠道信息';
@ -265,7 +278,9 @@ class PromoteController extends ThinkController
$data['account'] = I('post.account');
$map1['id'] = array('neq',$_POST['id']);
$map1['account'] = $data['account'];
if ($this->accountExist($data['account'])) {
$this->error('该账号已存在');
}
$pdata = D('Promote')->where($map1)->find();
if ($pdata) {

@ -674,6 +674,7 @@ class UserController extends AdminController
$this->m_title = '角色查询';
$this->assign('commonset', M('Kuaijieicon')->where(['url' => 'User/rolelist', 'status' => 1])->find());
$this->assign("is_admin",is_administrator());
$this->display();

@ -139,10 +139,22 @@
<tr>
<td>{$vo.extend}</td>
<td>{:set_show_time($vo['create_time'])}</td>
<td>{$vo.user_account}</td>
<td>
<if condition="$is_admin eq true ">
{$vo.user_account}
<else />
{$vo.user_account|encryptStr}
</if>
</td>
<td>{$vo.game_name}</td>
<td>{$vo.server_name}</td>
<td>{$vo.promote_account}</td>
<td>
<if condition="$is_admin eq true ">
{$vo.promote_account}
<else />
{$vo.promote_account|encryptStr}
</if>
</td>
<td>{$vo.game_player_id}</td>
<td>{$vo.game_player_name}</td>
<td>{$vo.price}</td>

@ -123,8 +123,25 @@
<volist name="list_data" id="data">
<tr>
<td>{:$data['pay_order_number']}</td>
<td>{$data.user_account}</td>
<td><if condition="$data['promote_account'] eq '自然注册'">官方渠道<else/>{$data.promote_account}</if></td>
<td>
<if condition="$is_admin eq true ">
{$data.user_account}
<else />
{$data.user_account|encryptStr}
</if>
</td>
<td>
<if condition="$data['promote_account'] eq '自然注册'">
官方渠道
<else/>
<if condition="$is_admin eq true ">
{$data.promote_account}
<else />
{$data.promote_account|encryptStr}
</if>
</if>
</td>
<td><span>{$data.pay_amount}</span></td>
<td>{:get_pay_way($data['pay_way'])}</td>
<td>{$data.pay_ip}</td>

@ -25,10 +25,6 @@
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
.select2-dropdown {
z-index: 1;
}
</style>
<!-- 标题栏 -->
<div class="cf main-place top_nav_list navtab_list">

@ -99,19 +99,21 @@
<case value="3">未成年</case>
<default />意外数据
</switch>
</span>
<span class="notice-text">需玩家认证真实姓名和身份证号码</span>
</td>
</span><span class="notice-text">需玩家认证真实姓名和身份证号码</span></td>
</tr>
<tr>
<td class="l">真实姓名</td>
<td class="r">
<if condition="$data['real_name'] eq null">
<input type="text" class="txt" name="real_name" value="">
<input type="text" class="txt" value="" readonly>
<else/>
<if condition="$is_admin eq true ">
<input type="text" class="txt" value="{$data['real_name']}" readonly>
<else />
<input type="text" class="txt" name="real_name" value="{$data['real_name']}">
<input type="text" class="txt" value="{$data['real_name']|encryptRealName}" readonly>
</if>
</if>
<span id="relname" class="table_click"><span class="table_click_text inner-click-text">点击修改</span></span>
</td>
</tr>
<tr>
@ -366,6 +368,41 @@
});
});
$("#relname").click(function () {
layer.prompt({
formType: 3,
title: "请输入真实姓名",
value: ''
}, function (real_name) {
var jsid = $('#selfid').val();
var realName = /^[\u4E00-\u9FA5]{2,4}$/;
if(!realName.test(real_name)){
layer.msg("真实姓名填写有误");
return false;
}
$.ajax({
url: '{:U("changeprelname")}',
type: 'post',
dataType: 'json',
data: {real_name:real_name,id:jsid},
success: function (data) {
if (data.status > 0) {
layer.msg(data.msg);
setTimeout(function(){
self.location.reload(true);
},1500);
} else {
layer.msg(data.msg)
}
},
error: function () {
alert("服务器故障!");
}
});
});
});
$("#idcard").click(function () {
layer.prompt({
formType: 3,

@ -154,7 +154,12 @@
<td>{$data.register_time|date='Y-m-d H:i:s',###}</td>
<td>{$data.register_ip}</td>
<td>
<if condition="$is_admin eq true ">
{:get_promote_parent_acc($data['promote_id'])}
<else />
{:encryptStr(get_promote_parent_acc($data['promote_id']))}
</if>
</td>
<td>
{:get_business_affairs_account($data['ba_id'])}

@ -224,14 +224,22 @@
<td>{:set_show_time($data['create_time'])}</td>
<td>{:set_show_time($data['last_login_time'])}</td>
<td>{:get_promote_levels($data['id'])}</td>
<td>{:getTopPromote($data['id'])['account']}</td>
<td>
<if condition="$is_admin eq true ">
{:getTopPromote($data['id'])['account']}
<else />
{:encryptStr(getTopPromote($data['id'])['account'])}
</if>
</td>
<td>{:get_business_affairs_account($data['ba_id'])}</td>
<td><if condition="$data['status'] eq 0">
<span class="preview_status">{:get_info_status($data['status'],3)}</span>
<td>
<?php $status_str = get_info_status($data['status'],3); $status_str = $status_str ?: '待审核';?>
<if condition="$data['status'] eq 0">
<span class="preview_status">{$status_str}</span>
<elseif condition="$data['status'] eq 2 " />
<span class="disabled_status">{:get_info_status($data['status'],3)}</span>
<span class="disabled_status">{$status_str}</span>
<else/>
{:get_info_status($data['status'],3)}
{$status_str}
</if>
</td>
<td>
@ -599,7 +607,8 @@
jsgameid();
}else{
alert('请求失败');
var tip_msg = res.info ? res.info : '操作失败';
layer.msg(tip_msg);
}
});
});

@ -186,7 +186,13 @@
{$data.promote_account|encryptStr}
</if>
</td>
<td>{:get_promote_parent_acc($data['promote_id'])}</td>
<td>
<if condition="$is_admin eq true ">
{:get_promote_parent_acc($data['promote_id'])}
<else />
{:encryptStr(get_promote_parent_acc($data['promote_id']))}
</if>
</td>
<td>
<if condition="$is_admin eq true ">
{$data.user_account}

@ -134,7 +134,13 @@
<volist name="list" id="data">
<tr>
<td>{$data.create_time|date='Y-m-d H:i:s',###}</td>
<td>{$data.user_account} </td>
<td>
<if condition="$is_admin eq true ">
{$data.user_account}
<else />
{$data.user_account|encryptStr}
</if>
</td>
<?php $gamename = trim($data['game_name']);
$servername = trim($data['server_name']);
$rolename = trim($data['role_name']);?>
@ -144,7 +150,13 @@
<td><span class="badge">{$data['role_id']}</span></td>
<td><notempty name="rolename">{$rolename}<else /></notempty></td>
<td>{$data.role_level}</td>
<td>{$data.promote_account}</td>
<td>
<if condition="$is_admin eq true ">
{$data.promote_account}
<else />
{$data.promote_account|encryptStr}
</if>
</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> -->

@ -934,7 +934,6 @@ class PromoteService {
'mobile_phone' => $params['mobile_phone'],
'bank_name' => $params['bank_name'] ?? '',
'bank_card' => $params['bank_card'],
// 'status' => 1,
'parent_id' => $parent ? $parent['id'] : 0,
'parent_name' => $parent ? $parent['account'] : '官方渠道',
'admin_id' => $params['admin_id'] ?? 0,

@ -18,7 +18,7 @@
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
z-index: 10;
display: none;
float: left;
min-width: 160px;

@ -7,7 +7,7 @@
.select2-container .select2-search--inline{float:left;}
.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;margin-top:5px;border:none;font-size:100%;}
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}
.select2-dropdown{position:absolute;left:-100000px;z-index:1051;display:block;box-sizing:border-box;width:100%;border:1px solid #aaa;border-radius:4px;background-color:#fff;}
.select2-dropdown{position:absolute;left:-100000px;z-index:10;display:block;box-sizing:border-box;width:100%;border:1px solid #aaa;border-radius:4px;background-color:#fff;}
.select2-results{display:block;}
.select2-results__options{margin:0;padding:0;list-style:none;}
.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none;}

@ -17,7 +17,7 @@ body{
position: fixed;
top: 0;
left: 0;
z-index: 1000;
z-index: 9999;
width: 100%;
/* height: 50px;
line-height: 50px; */

Loading…
Cancel
Save