|
|
|
@ -62,7 +62,10 @@ class TestingResourceController extends BaseController
|
|
|
|
|
|
|
|
|
|
list($roles, $pagination, $count) = $this->paginate($query);
|
|
|
|
|
|
|
|
|
|
$roleIds = array_column($roles, 'id');
|
|
|
|
|
$bindingOrWhere = [];
|
|
|
|
|
foreach ($roles as $role) {
|
|
|
|
|
$bindingOrWhere[] = '(role_id="' . $role['role_id'] . '" and game_id=' . $role['game_id'] . ')';
|
|
|
|
|
}
|
|
|
|
|
$userIds = array_unique(array_column($roles, 'user_id'));
|
|
|
|
|
|
|
|
|
|
$users = [];
|
|
|
|
@ -71,25 +74,44 @@ class TestingResourceController extends BaseController
|
|
|
|
|
if (count($roles) > 0) {
|
|
|
|
|
$users = M('user', 'tab_')->field(['id', 'phone'])->where(['id' => ['in', $userIds]])->select();
|
|
|
|
|
$uesrs = index_by_column('id', $users);
|
|
|
|
|
$bindings = M('testing_binding', 'tab_')->where(['role_id' => ['in', $roleIds]])->select();
|
|
|
|
|
$bindings = index_by_column('role_id', $bindings);
|
|
|
|
|
$bindingRoleIds = array_column($bindings, 'bind_role_id');
|
|
|
|
|
$bindingRows = M('testing_binding', 'tab_')->where(['_string' => implode(' or ', $bindingOrWhere)])->select();
|
|
|
|
|
$bindingRoleIds = [];
|
|
|
|
|
foreach ($bindingRows as $bindingRow) {
|
|
|
|
|
$bindings[$this->getGameRoleId($bindingRow['game_id'], $bindingRow['role_id'])] = $bindingRow;
|
|
|
|
|
$bindingRoleIds[] = $this->getGameRoleId($bindingRow['game_id'], $bindingRow['bind_role_id']);
|
|
|
|
|
}
|
|
|
|
|
if (count($bindings) > 0) {
|
|
|
|
|
$bindingRoles = M('user_play_info', 'tab_')->field(['id', 'role_id', 'role_name', 'user_account'])->where(['id' => ['in', $bindingRoleIds]])->select();
|
|
|
|
|
$bindingRoles = index_by_column('id', $bindingRoles);
|
|
|
|
|
$bindingRoles = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id', 'role_name', 'user_account', 'game_id', 'game_role_id'])
|
|
|
|
|
->where(['game_role_id' => ['in', $bindingRoleIds]])
|
|
|
|
|
->select();
|
|
|
|
|
$bindingRoles = index_by_column('game_role_id', $bindingRoles);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$spendItems = [];
|
|
|
|
|
if (count($bindingRoles) > 0) {
|
|
|
|
|
M('spend', 'tab_')->where();
|
|
|
|
|
$spendOrWhere = [];
|
|
|
|
|
foreach ($bindingRoles as $bindingRole) {
|
|
|
|
|
$spendOrWhere[] = '(game_player_id="' . $bindingRole['role_id'] . '" and game_id=' . $bindingRole['game_id'] . ')';
|
|
|
|
|
}
|
|
|
|
|
$spendCondition = [
|
|
|
|
|
'pay_status' => 1,
|
|
|
|
|
'_string' => '(' . implode(' or ', $spendOrWhere) . ')',
|
|
|
|
|
];
|
|
|
|
|
$spendList = M('spend', 'tab_')->field('sum(pay_amount) amount, game_id, game_player_id')->where($spendOrWhere)->group('game_id,game_player_id')->select();
|
|
|
|
|
foreach ($spendList as $item) {
|
|
|
|
|
$spendItems[$this->getGameRoleId($item['game_id'], $item['game_player_id'])] = $item['amount'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($roles as $role) {
|
|
|
|
|
$user = $users[$role['user_id']] ?? null;
|
|
|
|
|
$binding = $bindings[$role['id']] ?? null;
|
|
|
|
|
$bindingRole = $binding && $bindingRoles[$binding['bind_role_id']] ? $bindingRoles[$binding['bind_role_id']] : null;
|
|
|
|
|
$binding = $bindings[$role['game_role_id']] ?? null;
|
|
|
|
|
$bindingRole = null;
|
|
|
|
|
if ($binding) {
|
|
|
|
|
$bindGameRoleId = $this->getGameRoleId($binding['game_id'], $binding['bind_role_id']);
|
|
|
|
|
$bindingRole = $bindingRoles[$bindGameRoleId] ? $bindingRoles[$bindGameRoleId] : null;
|
|
|
|
|
}
|
|
|
|
|
$records[] = [
|
|
|
|
|
'id' => $role['id'],
|
|
|
|
|
'game_name' => $role['game_name'],
|
|
|
|
@ -103,7 +125,7 @@ class TestingResourceController extends BaseController
|
|
|
|
|
'bind_role_name' => $bindingRole ? $bindingRole['role_name'] : '',
|
|
|
|
|
'base_quota' => $binding ? $binding['base_quota'] : 0,
|
|
|
|
|
'other_quota' => $binding ? $binding['other_quota'] : 0,
|
|
|
|
|
'quota' => 0,
|
|
|
|
|
'quota' => $bindingRole && isset($spendItems[$bindingRole['game_role_id']]) ? $spendItems[$bindingRole['game_role_id']] : 0,
|
|
|
|
|
'verify_amount' => 0,
|
|
|
|
|
'provide_amount' => 0,
|
|
|
|
|
'today_amount' => 0,
|
|
|
|
@ -119,6 +141,11 @@ class TestingResourceController extends BaseController
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function getGameRoleId($gameId, $roleId)
|
|
|
|
|
{
|
|
|
|
|
return $gameId . '#' . $roleId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function addTestingUsers()
|
|
|
|
|
{
|
|
|
|
|
$loginPromote = $this->getLoginPromote();
|
|
|
|
@ -175,8 +202,12 @@ class TestingResourceController extends BaseController
|
|
|
|
|
$loginPromote = $this->getLoginPromote();
|
|
|
|
|
$promoteService = new PromoteService();
|
|
|
|
|
|
|
|
|
|
$subSql = M('user', 'tab_')
|
|
|
|
|
->where('id=tab_testing_resource_batch.user_id and promote_id in (' . $promoteService->subInSql($loginPromote) . ')')
|
|
|
|
|
->select(false);
|
|
|
|
|
|
|
|
|
|
$conditions = [
|
|
|
|
|
'_string' => 'promote_id in (' . $promoteService->subInSql($loginPromote) . ')',
|
|
|
|
|
'_string' => 'exists (' . $subSql . ')'
|
|
|
|
|
];
|
|
|
|
|
if ($verifyTimeStart) {
|
|
|
|
|
$conditions['verify_time'] = ['egt', strtotime($verifyTimeStart . ' 00:00:00')];
|
|
|
|
@ -195,28 +226,60 @@ class TestingResourceController extends BaseController
|
|
|
|
|
if ($user) {
|
|
|
|
|
$conditions['user_id'] = $user['id'];
|
|
|
|
|
} else {
|
|
|
|
|
$conditions['_string'] = '1<>1';
|
|
|
|
|
$conditions['_string'] .= ' and 1<>1';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$query = M('testing_resource_batch', 'tab_')->where($conditions)->order('create_time desc')->select();
|
|
|
|
|
$query = M('testing_resource_batch', 'tab_')->where($conditions)->order('create_time desc');
|
|
|
|
|
list($batches, $pagination, $count) = $this->paginate($query);
|
|
|
|
|
|
|
|
|
|
$roles = [];
|
|
|
|
|
$applyPromotes = [];
|
|
|
|
|
$users = [];
|
|
|
|
|
$promotes = [];
|
|
|
|
|
if (count($batches) > 0) {
|
|
|
|
|
$gameRoleIds = [];
|
|
|
|
|
foreach ($batches as $batch) {
|
|
|
|
|
$gameRoleIds[] = $this->getGameRoleId($batch['game_id'], $batch['role_id']);
|
|
|
|
|
}
|
|
|
|
|
$roles = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'game_name', 'server_name', 'role_name', 'game_role_id', 'user_account'])
|
|
|
|
|
->where(['game_role_id' => ['in', $gameRoleIds]])
|
|
|
|
|
->select();
|
|
|
|
|
$roles = index_by_column('game_role_id', $roles);
|
|
|
|
|
|
|
|
|
|
$users = M('user', 'tab_')->field(['id', 'account', 'phone', 'promote_id'])->where(['id' => ['in', array_column($batches, 'user_id')]])->select();
|
|
|
|
|
$users = index_by_column('id', $users);
|
|
|
|
|
|
|
|
|
|
$applyPromotes = M('promote', 'tab_')->field(['id', 'account'])->where(['id' => ['in', array_column($batches, 'apply_promote_id')]])->select();
|
|
|
|
|
$applyPromotes = index_by_column('id', $applyPromotes);
|
|
|
|
|
|
|
|
|
|
if (count($users) > 0) {
|
|
|
|
|
$promotes = M('promote', 'tab_')->field(['id', 'account'])->where(['id' => ['in', array_column($users, 'promote_id')]])->select();
|
|
|
|
|
$promotes = index_by_column('id', $promotes);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$records = [];
|
|
|
|
|
foreach ($batches as $batch) {
|
|
|
|
|
$roleKey = $this->getGameRoleId($batch['game_id'], $batch['role_id']);
|
|
|
|
|
$role = isset($roles[$roleKey]) ? $roles[$roleKey] : null;
|
|
|
|
|
$user = $users[$batch['user_id']] ?? null;
|
|
|
|
|
$applyPromote = $applyPromotes[$batch['apply_promote_id']] ?? null;
|
|
|
|
|
$promote = $user && isset($promotes[$user['promote_id']]) ? $promotes[$user['promote_id']] : null;
|
|
|
|
|
$records[] = [
|
|
|
|
|
'id' => $batch['id'],
|
|
|
|
|
'batch_no' => $batch['batch_no'],
|
|
|
|
|
'batch_no' => substr($batch['batch_no'], 14),
|
|
|
|
|
'create_time' => date('Y-m-d H:i:s', $batch['create_time']),
|
|
|
|
|
'game_name' => $batch['game_id'],
|
|
|
|
|
'server_name' => $batch['server_id'],
|
|
|
|
|
'role_name' => $batch['role_id'],
|
|
|
|
|
'user_account' => $batch['user_id'],
|
|
|
|
|
'user_phone' => $batch['batch_no'],
|
|
|
|
|
'creator_account' => $batch['batch_no'],
|
|
|
|
|
'game_name' => $role ? $role['game_name'] : '--',
|
|
|
|
|
'server_name' => $role ? $role['server_name'] : '--',
|
|
|
|
|
'role_name' => $role ? $role['role_name'] : '--',
|
|
|
|
|
'user_account' => $role ?$role['user_account'] : '--',
|
|
|
|
|
'user_phone' => $user ? $user['phone'] : '',
|
|
|
|
|
'apply_promote_account' => $applyPromote ? $applyPromote['account'] : '',
|
|
|
|
|
'promote_account' => $promote['account'],
|
|
|
|
|
'history_provide_amount' => 0.00,
|
|
|
|
|
'apply_amount' => $batch['apply_amount'],
|
|
|
|
|
'provide_amount' => $batch['provide_amount'],
|
|
|
|
|
'remark' => $batch['remark'],
|
|
|
|
|
'verify_status_text' => $batch['verify_status'],
|
|
|
|
|
'verify_time' => date('Y-m-d H:i:s', $batch['verify_time']),
|
|
|
|
|
'status_text' => $batch['status'],
|
|
|
|
@ -249,22 +312,38 @@ class TestingResourceController extends BaseController
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function getRemainQuota($gameId, $bindRoleId, $testingRoleId)
|
|
|
|
|
{
|
|
|
|
|
$totalQuota = M('spend', 'tab_')
|
|
|
|
|
->where(['game_id' => $gameId, 'game_player_id' => $bindRoleId])
|
|
|
|
|
->group('game_id,game_player_id')
|
|
|
|
|
->sum('pay_amount');
|
|
|
|
|
$usedQuota = M('testing_resource_batch', 'tab_')->where(['game_id' => $gameId, 'role_id' => $testingRoleId])->sum('provide_amount');
|
|
|
|
|
return round(floatval($totalQuota) - floatval($usedQuota), 2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function apply()
|
|
|
|
|
{
|
|
|
|
|
$roleId = I('role_id', 0);
|
|
|
|
|
$id = I('id', 0);
|
|
|
|
|
|
|
|
|
|
$role = null;
|
|
|
|
|
if ($roleId > 0) {
|
|
|
|
|
$role = M('user_play_info', 'tab_')->field(['id', 'role_id', 'user_id', 'game_id', 'server_id', 'user_account', 'role_name'])->where(['id' => $roleId])->find();
|
|
|
|
|
if ($id != 0) {
|
|
|
|
|
$role = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id', 'user_id', 'game_id', 'server_id', 'user_account', 'role_name'])
|
|
|
|
|
->where(['id' => $id])
|
|
|
|
|
->find();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$servers = [];
|
|
|
|
|
$bindingRole = null;
|
|
|
|
|
if ($role) {
|
|
|
|
|
$servers = M('server', 'tab_')->field('id,server_name,server_id')->where(['game_id' => $role['game_id']])->order('server_id asc')->select();
|
|
|
|
|
$binding = M('testing_binding', 'tab_')->where(['role_id' => $roleId])->find();
|
|
|
|
|
$binding = M('testing_binding', 'tab_')->where(['game_id' => $role['game_id'], 'role_id' => $role['role_id']])->find();
|
|
|
|
|
if ($binding) {
|
|
|
|
|
$bindingRole = M('user_play_info', 'tab_')->field(['id', 'role_id', 'user_id', 'game_id', 'server_id', 'user_account', 'role_name'])->where(['id' => $binding['bind_role_id']])->find();
|
|
|
|
|
$bindingRole = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id', 'user_id', 'game_id', 'server_id', 'user_account', 'role_name'])
|
|
|
|
|
->where(['game_id' => $binding['game_id'], 'role_id' => $binding['bind_role_id']])
|
|
|
|
|
->find();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -276,13 +355,14 @@ class TestingResourceController extends BaseController
|
|
|
|
|
$this->assign('servers', $servers);
|
|
|
|
|
$this->assign('bindingRole', $bindingRole);
|
|
|
|
|
$this->assign('role', $role);
|
|
|
|
|
$this->assign('quota', $this->getRemainQuota($bindingRole['game_id'], $bindingRole['role_id'], $role['role_id']));
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function doApply()
|
|
|
|
|
{
|
|
|
|
|
$gameId = I('game_id', 0);
|
|
|
|
|
$roleId = I('role_id', 0);
|
|
|
|
|
$roleId = I('role_id', '');
|
|
|
|
|
$serverId = I('server_id', 0);
|
|
|
|
|
$userAccount = I('user_account', '');
|
|
|
|
|
$records = I('records', []);
|
|
|
|
@ -292,10 +372,17 @@ class TestingResourceController extends BaseController
|
|
|
|
|
/**
|
|
|
|
|
* @todo 目前仅限游戏猫
|
|
|
|
|
*/
|
|
|
|
|
if (!in_array($gameId, [229, 230])) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '该游戏不可申请资源']);
|
|
|
|
|
if ($gameId == 229) {
|
|
|
|
|
$resources = $this->getGameCatResources('android');
|
|
|
|
|
} elseif ($gameId == 230) {
|
|
|
|
|
$resources = $this->getGameCatResources('ios');
|
|
|
|
|
} else {
|
|
|
|
|
$resources = $this->getGameCatResources();
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '该游戏不可申请资源']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$binding = M('testing_binding', 'tab_')->where(['game_id' => $gameId, 'role_id' => $roleId])->find();
|
|
|
|
|
if (is_null($binding)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '该角色未绑定玩家角色']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = M('user', 'tab_')->field(['id', 'promote_id'])->where(['account' => $userAccount])->find();
|
|
|
|
@ -312,14 +399,36 @@ class TestingResourceController extends BaseController
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '区服不存在']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$promoteService = new PromoteService();
|
|
|
|
|
|
|
|
|
|
$role = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id'])
|
|
|
|
|
->where(['user_id' => $user['id'], 'game_id' => $gameId, 'server_id' => $server['server_id']])
|
|
|
|
|
->field(['id', 'role_id', 'promote_id'])
|
|
|
|
|
->where(['user_id' => $user['id'], 'game_id' => $gameId, 'server_id' => $server['server_id'], 'role_id' => $roleId])
|
|
|
|
|
->find();
|
|
|
|
|
if (is_null($role)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '角色不存在']);
|
|
|
|
|
}
|
|
|
|
|
$testPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $role['promote_id']])->find();
|
|
|
|
|
if (is_null($testPromote) || !$promoteService->isSubOrSelf($testPromote, $loginPromote)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '测试角色所属推广员异常']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$bindingRole = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id', 'user_id', 'promote_id'])
|
|
|
|
|
->where(['game_id' => $gameId, 'role_id' => $binding['bind_role_id']])
|
|
|
|
|
->find();
|
|
|
|
|
if (is_null($bindingRole)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '绑定玩家角色不存在']);
|
|
|
|
|
}
|
|
|
|
|
$bindPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $bindingRole['promote_id']])->find();
|
|
|
|
|
if (is_null($bindPromote) || !$promoteService->isSubOrSelf($bindPromote, $loginPromote)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '绑定角色所属推广员异常']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($testPromote['id'] != $bindPromote['id']) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '测试账号与玩家账号所属推广员不同']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$amount = 0;
|
|
|
|
|
foreach ($records as $key => $record) {
|
|
|
|
|
if (isset($resources[$record['resource_id']])) {
|
|
|
|
@ -332,6 +441,11 @@ class TestingResourceController extends BaseController
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$remainQuota = $this->getRemainQuota($bindingRole['game_id'], $bindingRole['role_id'], $role['role_id']);
|
|
|
|
|
if ($amount > $remainQuota) {
|
|
|
|
|
// return $this->ajaxReturn(['status' => 0, 'message' => '额度不足']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$batchNo = date('YmdHis') . substr(md5($loginPromote['id'] . strval(microtime(true)) . rand(0, 9999)), 8, 16);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
@ -339,21 +453,19 @@ class TestingResourceController extends BaseController
|
|
|
|
|
$model->startTrans();
|
|
|
|
|
|
|
|
|
|
$batch = [
|
|
|
|
|
'batch_id' => $batchId,
|
|
|
|
|
'batch_no' => $batchNo,
|
|
|
|
|
'user_id' => $testingUser['user_id'],
|
|
|
|
|
'game_id' => $gameId,
|
|
|
|
|
'role_id' => $roleId,
|
|
|
|
|
'server_id' => $serverId,
|
|
|
|
|
'promote_id' => $loginPromote['id'],
|
|
|
|
|
'amount' => $amount,
|
|
|
|
|
'status' => 0,
|
|
|
|
|
'apply_promote_id' => $loginPromote['id'],
|
|
|
|
|
'apply_amount' => $amount,
|
|
|
|
|
'provide_status' => 0,
|
|
|
|
|
'verify_status' => 0,
|
|
|
|
|
'remark' => $record['remark'],
|
|
|
|
|
'create_time' => time(),
|
|
|
|
|
'update_time' => time(),
|
|
|
|
|
];
|
|
|
|
|
$batchId = M('testing_resource_batch')->add($batch);
|
|
|
|
|
$batchId = M('testing_resource_batch', 'tab_')->add($batch);
|
|
|
|
|
$i = 1;
|
|
|
|
|
foreach ($records as $record) {
|
|
|
|
|
$orderNo = $batchNo . '_' . $i;
|
|
|
|
@ -366,24 +478,29 @@ class TestingResourceController extends BaseController
|
|
|
|
|
'amount' => $record['num'] * $record['value'],
|
|
|
|
|
'remark' => $record['remark'],
|
|
|
|
|
];
|
|
|
|
|
M('testing_resource_order')->add($order);
|
|
|
|
|
M('testing_resource_order', 'tab_')->add($order);
|
|
|
|
|
}
|
|
|
|
|
$model->commit();
|
|
|
|
|
return $this->ajaxReturn(['status' => 1, 'message' => '申请成功,等待审核']);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$model->rollback();
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '系统异常']);
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '系统异常' . $e->getMessage()]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function bindRole()
|
|
|
|
|
{
|
|
|
|
|
$testingRoleId = I('testing_role_id', 0);
|
|
|
|
|
$bindRoleId = I('bind_role_id', 0);
|
|
|
|
|
$gameId = I('game_id', 0);
|
|
|
|
|
$testingRoleId = I('testing_role_id', '');
|
|
|
|
|
$bindRoleId = I('bind_role_id', '');
|
|
|
|
|
$loginPromote = $this->getLoginPromote();
|
|
|
|
|
|
|
|
|
|
$testingGameRoleId = $this->getGameRoleId($gameId, $testingRoleId);
|
|
|
|
|
$bindGameRoleId = $this->getGameRoleId($gameId, $bindRoleId);
|
|
|
|
|
|
|
|
|
|
$testingRole = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id', 'user_id'])
|
|
|
|
|
->where(['id' => $testingRoleId])
|
|
|
|
|
->field(['id', 'role_id', 'user_id', 'game_id', 'promote_id'])
|
|
|
|
|
->where(['game_role_id' => $testingGameRoleId])
|
|
|
|
|
->find();
|
|
|
|
|
if (is_null($testingRole)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '测试账号角色不存在']);
|
|
|
|
@ -394,34 +511,50 @@ class TestingResourceController extends BaseController
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '测试账号不存在']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$promoteService = new PromoteService();
|
|
|
|
|
$testPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $testingRole['promote_id']])->find();
|
|
|
|
|
if (is_null($testPromote) || !$promoteService->isSubOrSelf($testPromote, $loginPromote)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '测试角色所属推广员异常']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$bindRole = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_id', 'user_id'])
|
|
|
|
|
->where(['id' => $bindRoleId])
|
|
|
|
|
->field(['id', 'role_id', 'user_id', 'promote_id'])
|
|
|
|
|
->where(['game_role_id' => $bindGameRoleId])
|
|
|
|
|
->find();
|
|
|
|
|
if (is_null($bindRole)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '玩家角色不存在']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$bindPromote = M('promote', 'tab_')->field(['id', 'chain'])->where(['id' => $bindRole['promote_id']])->find();
|
|
|
|
|
if (is_null($bindPromote) || !$promoteService->isSubOrSelf($bindPromote, $loginPromote)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '玩家账号所属推广员异常']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($testPromote['id'] != $bindPromote['id']) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '玩家账号与测试账号非同一推广员']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$bindIsTesting = M('testing_user', 'tab_')->where(['user_id' => $bindRole['user_id']])->find();
|
|
|
|
|
if ($bindIsTesting) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '该玩家账号为测试账号,无法绑定']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$existBind = M('testing_binding', 'tab_')->field(['id'])->where(['bind_role_id' => $bindRoleId])->find();
|
|
|
|
|
$existBind = M('testing_binding', 'tab_')->field(['id'])->where(['game_id' => $gameId, 'bind_role_id' => $bindRoleId])->find();
|
|
|
|
|
if ($existBind) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '该玩家角色已被绑定']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$testExistBind = M('testing_binding', 'tab_')->field(['id'])->where(['role_id' => $testingRoleId])->find();
|
|
|
|
|
$testExistBind = M('testing_binding', 'tab_')->field(['id'])->where(['game_id' => $gameId, 'role_id' => $testingRoleId])->find();
|
|
|
|
|
if ($testExistBind) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '该测试账号角色已绑定有角色']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
M('testing_binding', 'tab_')->add([
|
|
|
|
|
'game_id' => $testingRole['game_id'],
|
|
|
|
|
'user_id' => $testingRole['user_id'],
|
|
|
|
|
'role_id' => $testingRole['id'],
|
|
|
|
|
'role_id' => $testingRole['role_id'],
|
|
|
|
|
'bind_user_id' => $bindRole['user_id'],
|
|
|
|
|
'bind_role_id' => $bindRole['id'],
|
|
|
|
|
'bind_role_id' => $bindRole['role_id'],
|
|
|
|
|
'create_time' => time(),
|
|
|
|
|
'update_time' => time()
|
|
|
|
|
]);
|
|
|
|
@ -485,11 +618,16 @@ class TestingResourceController extends BaseController
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '区服不存在']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user = M('user', 'tab_')->field(['id', 'promote_id'])->where(['account' => $userAccount])->find();
|
|
|
|
|
if (is_null($user)) {
|
|
|
|
|
return $this->ajaxReturn(['status' => 0, 'message' => '账号不存在']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$testingUser = M('testing_user', 'tab_')->where(['user_account' => $userAccount])->find();
|
|
|
|
|
$isTestingAccount = is_null($testingUser) ? false : true;
|
|
|
|
|
|
|
|
|
|
$roles = M('user_play_info', 'tab_')
|
|
|
|
|
->field(['id', 'role_name'])
|
|
|
|
|
->field(['id', 'role_id', 'role_name'])
|
|
|
|
|
->where(['user_account' => $userAccount, 'game_id' => $gameId, 'server_id' => $server['server_id']])
|
|
|
|
|
->select();
|
|
|
|
|
return $this->ajaxReturn(['status' => 1, 'message' => '获取成功', 'data' => ['roles' => $roles, 'is_testing_account' => $isTestingAccount]]);
|
|
|
|
@ -497,6 +635,14 @@ class TestingResourceController extends BaseController
|
|
|
|
|
|
|
|
|
|
private function getGameCatResources($deviceType)
|
|
|
|
|
{
|
|
|
|
|
/* return [
|
|
|
|
|
1 => ['ref_id' => 1, 'name' => '礼包钻石6', 'amount' => 6],
|
|
|
|
|
2 => ['ref_id' => 2, 'name' => '礼包钻石18', 'amount' => 18],
|
|
|
|
|
3 => ['ref_id' => 3, 'name' => '礼包钻石30', 'amount' => 30],
|
|
|
|
|
4 => ['ref_id' => 4, 'name' => '礼包钻石98', 'amount' => 98],
|
|
|
|
|
5 => ['ref_id' => 5, 'name' => '礼包钻石128', 'amount' => 128],
|
|
|
|
|
6 => ['ref_id' => 6, 'name' => '礼包钻石648', 'amount' => 648],
|
|
|
|
|
]; */
|
|
|
|
|
$resources = [];
|
|
|
|
|
$gameCatClient = new GameCatClient();
|
|
|
|
|
$result = $gameCatClient->api('get-pay-type', ['device_type' => $deviceType]);
|
|
|
|
|