195 lines
8.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +----------------------------------------------------------------------
// | 作者:修缘 联系QQ278896498 QQ群1054861244
// | 声明:未经作者许可,禁止倒卖等商业运营,违者必究
// | 另接php业务网站制作、代理后台、gm后台、支付对接等
// +----------------------------------------------------------------------
// | 创建时间: 2022/1/5 13:08
// +----------------------------------------------------------------------
namespace app\admin\controller;
use app\common\model\GameConfiguration;
use app\common\model\GameGm;
use app\common\validate\GameGmValidate;
use think\Db;
use think\facade\Config;
use think\Request;
class GameGmController extends Controller
{
public function index(Request $request, GameGm $model, GameGmValidate $validate)
{
if ($request->isPost()) {
$param = $request->param();
$validate->scene('password')->check($param) or admin_error($validate->getError());
if (!password_verify($param['password'], base64_decode(Config::get('game.gm.password')))) {
admin_error(lang('gm_password_error'));
}
switch ($param['type']) {
case 'create_robot' :
$validate->scene('robot')->check($param) or admin_error($validate->getError());
try {
$result = $model::create_robot((int)$param['server_id'], (int)$param['robot_num']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'clear_robot' :
$validate->scene('robot')->check($param) or admin_error($validate->getError());
try {
$result = $model::clear_robot((int)$param['server_id'], (int)$param['robot_num']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'open_gold' :
$validate->scene('open_gold')->check($param) or admin_error($validate->getError());
try {
$result = GameConfiguration::configuration(1,(int)$param['server_id'],(int)$param['quota'],(int)$param['maxQuota']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'close_gold' :
$validate->scene('close_gold')->check($param) or admin_error($validate->getError());
try {
$result = GameConfiguration::configuration(0,(int)$param['server_id']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'not_speek':
$validate->scene('speek')->check($param) or admin_error($validate->getError());
try {
$result = $model::not_speak((int)$param['role_id'], (int)$param['server_id']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'can_speek' :
$validate->scene('speek')->check($param) or admin_error($validate->getError());
try {
$result = $model::can_speak((int)$param['role_id'], (int)$param['server_id']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'add_jade' :
$validate->scene('add_jade')->check($param) or admin_error($validate->getError());
try {
$result = $model::add_jade((int)$param['role_id'], (int)$param['jade_num']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'add_exp' :
$validate->scene('add_exp')->check($param) or admin_error($validate->getError());
try {
$result = $model::add_exp((int)$param['role_id'], (int)$param['exp_num']);
} catch(\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'add_item' :
$validate->scene('add_item')->check($param) or admin_error($validate->getError());
try {
$result = $model::add_item((int)$param['role_id'], (int)$param['item_id'], (int)$param['item_num']);
} catch(\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'frozen_ip' :
$validate->scene('frozen_ip')->check($param) or admin_error($validate->getError());
try {
$result = $model::frozen_ip($param['ip_address']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'unfrozen_ip' :
$validate->scene('frozen_ip')->check($param) or admin_error($validate->getError());
try {
$result = $model::unfrozen_ip($param['ip_address']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'frozen_mac' :
$validate->scene('frozen_mac')->check($param) or admin_error($validate->getError());
try {
$result = $model::frozen_mac($param['account']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
// case 'unfrozen_mac' :
// $validate->scene('frozen_mac')->check($param) or admin_error($validate->getError());
// try {
// $result = $model::unfrozen_mac($param['account']);
// } catch (\Exception $e) {
// admin_error($e->getMessage());
// }
// break;
case 'inform' :
$validate->scene('inform')->check($param) or admin_error($validate->getError());
try {
$result = $model::sys_notice($param);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'set_comment' :
$validate->scene('set_comment')->check($param) or admin_error($validate->getError());
try {
$result = $model::set_comment($param['server_id'], $param['notice_content']);
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'server_mail' :
$validate->scene('server_mail')->check($param) or admin_error($validate->getError());
try {
$result = $model::send_mail($param,'S');
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
case 'role_mail' :
$validate->scene('role_mail')->check($param) or admin_error($validate->getError());
try {
$result = $model::send_mail($param,'R');
} catch (\Exception $e) {
admin_error($e->getMessage());
}
break;
}
if (isset($result) && array_key_exists('code', $result) && $result['code'] == 0) {
admin_success($result['msg'] ?? lang('success'));
} else {
admin_error(lang('gm_api_error'));
}
}
$this->assign([
'item_list' => $model::get_item_list(),
]);
return $this->fetch();
}
}