diff --git a/Application/Admin/Controller/PromoteController.class.php b/Application/Admin/Controller/PromoteController.class.php
index 58900f04d..76e2b3537 100644
--- a/Application/Admin/Controller/PromoteController.class.php
+++ b/Application/Admin/Controller/PromoteController.class.php
@@ -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']);
}
diff --git a/Application/Admin/View/Promote/edit.html b/Application/Admin/View/Promote/edit.html
index 1e32f3003..d8d22e58e 100644
--- a/Application/Admin/View/Promote/edit.html
+++ b/Application/Admin/View/Promote/edit.html
@@ -332,6 +332,22 @@
+
+
备注: |
diff --git a/Application/Base/Repository/TestingResourceRepository.class.php b/Application/Base/Repository/TestingResourceRepository.class.php
index 8df219f71..54fb1a003 100644
--- a/Application/Base/Repository/TestingResourceRepository.class.php
+++ b/Application/Base/Repository/TestingResourceRepository.class.php
@@ -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();
diff --git a/Application/Base/Service/PromoteService.class.php b/Application/Base/Service/PromoteService.class.php
index 8bd829d15..0acc1b36d 100644
--- a/Application/Base/Service/PromoteService.class.php
+++ b/Application/Base/Service/PromoteService.class.php
@@ -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['level'] == 2 && $promote['ts_over_apply'] == 1) {
+ return $this->getTopPromote($promote);
+ }
+ return $promote;
+ }
}
\ No newline at end of file
diff --git a/Application/Base/Service/TestingResourceService.class.php b/Application/Base/Service/TestingResourceService.class.php
index 3ff9220af..08a0cc7ab 100644
--- a/Application/Base/Service/TestingResourceService.class.php
+++ b/Application/Base/Service/TestingResourceService.class.php
@@ -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('玩家账号所属推广员异常');
}
@@ -395,6 +397,7 @@ class TestingResourceService
}
$promoteService = new PromoteService();
+ $permissionPromote = $promoteService->getTSPermPromote($promote);
$role = M('user_play_info', 'tab_')
->field(['id', 'role_id', 'promote_id', 'game_id', 'testing_other_quota'])
@@ -418,7 +421,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 +436,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']) {
|