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_show'] = $_POST['withdraw_show'];
$data['withdraw_done'] = $_POST['withdraw_done']; $data['withdraw_done'] = $_POST['withdraw_done'];
$data['can_view_recharge'] = $_POST['can_view_recharge']; $data['can_view_recharge'] = $_POST['can_view_recharge'];
$data['ts_over_apply'] = $_POST['ts_over_apply'] ?? 0;
if (empty($pwd)) { if (empty($pwd)) {
unset($data['password']); unset($data['password']);
} }

@ -332,6 +332,22 @@
</span> </span>
</td> </td>
</tr> </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> <tr>
<td class="l">备注:</td> <td class="l">备注:</td>
<td class="r table_textarea" > <td class="r table_textarea" >

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

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

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

Loading…
Cancel
Save