Merge branch 'master' of 8.136.139.249:wmtx/platform into feature/finance_payment_20210115

master
chenzhi 4 years ago
commit 9cfe8abe68

@ -443,7 +443,7 @@ class PromoteController extends ThinkController
$data['withdraw_show'] = $_POST['withdraw_show'];
$data['withdraw_done'] = $_POST['withdraw_done'];
$data['can_view_recharge'] = $_POST['can_view_recharge'];
$data['ts_over_apply'] = $_POST['ts_over_apply'] ?? 0;
if (empty($pwd)) {
unset($data['password']);
}

@ -332,6 +332,22 @@
</span>
</td>
</tr>
<?php if($data['level'] > 1):?>
<tr>
<td class="l">测试资源申请权限:</td>
<td class="r table_radio">
<span class="form_radio table_btn">
<label >
<input type="radio" value="1" name="ts_over_apply" class="withdraw_done" <if condition="$data['ts_over_apply'] eq 1">checked="checked"</if>> 开启
</label >
<label >
<input type="radio" value="0" name="ts_over_apply" class="withdraw_done" <if condition="$data['ts_over_apply'] eq 0">checked="checked"</if>> 锁定
</label>
</span>
<span class="notice-text">开启后该推广员有权限操作整个公会的测试资源查看与申请</span>
</td>
</tr>
<?php endif;?>
<tr>
<td class="l">备注:</td>
<td class="r table_textarea" >

@ -95,8 +95,9 @@ class TestingResourceRepository
if (!is_null($promote)) {
$promoteService = new PromoteService();
$permissionPromote = $promoteService->getTSPermPromote($promote);
$subSql = M('user', 'tab_')
->where('id=tab_testing_resource_batch.user_id and promote_id in (' . $promoteService->subInSql($promote) . ')')
->where('id=tab_testing_resource_batch.user_id and promote_id in (' . $promoteService->subInSql($permissionPromote) . ')')
->select(false);
$conditions['_string'] .= ' and exists (' . $subSql . ')';
@ -530,14 +531,15 @@ class TestingResourceRepository
$strCondition = '1=1';
$promoteService = new PromoteService();
if ($promote) {
$visibleGameIds = $promoteService->getVisibleGameIds($promote);
$permissionPromote = $promoteService->getTSPermPromote($promote);
if ($permissionPromote) {
$visibleGameIds = $promoteService->getVisibleGameIds($permissionPromote);
if (count($visibleGameIds) > 0) {
$strCondition .= ' and game_id in (' . implode(',', $visibleGameIds) . ')';
} else {
$strCondition .= ' and 1=0';
}
$strCondition .= ' and promote_id in (' . $promoteService->subInSql($promote) . ')';
$strCondition .= ' and promote_id in (' . $promoteService->subInSql($permissionPromote) . ')';
}
$gameIds = $this->getHadSettingGameIds();

@ -1337,4 +1337,18 @@ class PromoteService {
$siteConfig['keywords'] = C('channel_index.seo_keyword');
return $siteConfig;
}
/**
* 获取推广员实际拥有的测试资源数据操作范围(测试资源跨部门操作权限)
*/
public function getTSPermPromote($promote)
{
if (empty($promote)) {
return null;
}
if ($promote['ts_over_apply'] == 1) {
return $this->getTopPromote($promote);
}
return $promote;
}
}

@ -205,7 +205,8 @@ class TestingResourceService
$strCondition = '1=1';
if ($promote) {
$promoteService = new PromoteService();
$strCondition .= ' and promote_id in (' . $promoteService->subInSql($promote) . ')';
$permissionPromote = $promoteService->getTSPermPromote($promote);
$strCondition .= ' and promote_id in (' . $promoteService->subInSql($permissionPromote) . ')';
}
$users = M('user', 'tab_')->field(['id', 'account'])->where(['account' => ['in', $newAccounts], '_string' => $strCondition])->select();
@ -293,8 +294,9 @@ class TestingResourceService
}
$promoteService = new PromoteService();
$permissionPromote = $promoteService->getTSPermPromote($promote);
$testPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $testingRole['promote_id']])->find();
if (is_null($testPromote) || ($promote && !$promoteService->isSubOrSelf($testPromote, $promote))) {
if (is_null($testPromote) || ($permissionPromote && !$promoteService->isSubOrSelf($testPromote, $permissionPromote))) {
throw new \Exception('测试角色所属推广员异常');
}
@ -307,7 +309,7 @@ class TestingResourceService
}
$bindPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $bindRole['promote_id']])->find();
if (is_null($bindPromote) || ($promote && !$promoteService->isSubOrSelf($bindPromote, $promote))) {
if (is_null($bindPromote) || ($permissionPromote && !$promoteService->isSubOrSelf($bindPromote, $permissionPromote))) {
throw new \Exception('玩家账号所属推广员异常');
}
@ -357,7 +359,9 @@ class TestingResourceService
$userAccount = $params['user_account'] ?? '';
$records = $params['records'] ?? [];
if ($promote && $promote['level'] > 2) {
$promoteService = new PromoteService();
$permissionPromote = $promoteService->getTSPermPromote($promote);
if ($permissionPromote && $permissionPromote['level'] > 2) {
throw new \Exception('权限不足');
}
@ -394,8 +398,6 @@ class TestingResourceService
throw new \Exception('区服不存在');
}
$promoteService = new PromoteService();
$role = M('user_play_info', 'tab_')
->field(['id', 'role_id', 'promote_id', 'game_id', 'testing_other_quota'])
->where(['user_id' => $user['id'], 'game_id' => $gameId, 'server_id' => $server['server_id'], 'role_id' => $roleId])
@ -418,7 +420,7 @@ class TestingResourceService
}
$testPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $role['promote_id']])->find();
if (is_null($testPromote) || ($promote && !$promoteService->isSubOrSelf($testPromote, $promote))) {
if (is_null($testPromote) || ($permissionPromote && !$promoteService->isSubOrSelf($testPromote, $permissionPromote))) {
throw new \Exception('测试角色所属推广员异常');
}
@ -433,7 +435,7 @@ class TestingResourceService
}
$bindingRole['binding_time'] = $binding['create_time'];
$bindPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $bindingRole['promote_id']])->find();
if (is_null($bindPromote) || ($promote && !$promoteService->isSubOrSelf($bindPromote, $promote))) {
if (is_null($bindPromote) || ($permissionPromote && !$promoteService->isSubOrSelf($bindPromote, $permissionPromote))) {
throw new \Exception('绑定角色所属推广员异常');
}
/* if ($testPromote['id'] != $bindPromote['id']) {

@ -125,7 +125,7 @@
<?php endif;?>
<a href="{:U('Safe/promoteLogs')}" class="<?=is_active_class(['Safe'], ['promoteLogs'])?>">操作日志</a>
</div>
<?php if($loginer['level'] <= 2):?>
<?php if($loginer['level'] == 1 || $loginer['ts_over_apply'] == 1):?>
<div class="subNav jssubNav"><i class="prev_icon icon_fenbao"></i><span>测试资源</span><i class="arrow_icon"></i></div>
<div class="navContent jsnavContent">
<a href="{:U('TestingResource/index')}" class="<?=is_active_class(['TestingResource'], ['index'])?>">测试资源申请</a>

Loading…
Cancel
Save