|
@@ -15,6 +15,7 @@ use Exception;
|
|
|
use Psr\Http\Message\ResponseInterface;
|
|
|
use Slim\Http\Response;
|
|
|
use Slim\Http\ServerRequest;
|
|
|
+use function json_encode;
|
|
|
use function trim;
|
|
|
|
|
|
final class NodeController extends BaseController
|
|
@@ -28,6 +29,7 @@ final class NodeController extends BaseController
|
|
|
'type' => '状态',
|
|
|
'sort' => '类型',
|
|
|
'traffic_rate' => '倍率',
|
|
|
+ 'is_dynamic_rate' => '是否启用动态流量倍率',
|
|
|
'node_class' => '等级',
|
|
|
'node_group' => '组别',
|
|
|
'node_bandwidth_limit' => '流量限制/GB',
|
|
@@ -40,6 +42,11 @@ final class NodeController extends BaseController
|
|
|
'name',
|
|
|
'server',
|
|
|
'traffic_rate',
|
|
|
+ 'is_dynamic_rate',
|
|
|
+ 'max_rate',
|
|
|
+ 'max_rate_time',
|
|
|
+ 'min_rate',
|
|
|
+ 'min_rate_time',
|
|
|
'info',
|
|
|
'node_group',
|
|
|
'node_speedlimit',
|
|
@@ -88,6 +95,11 @@ final class NodeController extends BaseController
|
|
|
$name = $request->getParam('name') ?? '';
|
|
|
$server = trim($request->getParam('server'));
|
|
|
$traffic_rate = $request->getParam('traffic_rate') ?? 1;
|
|
|
+ $is_dynamic_rate = $request->getParam('is_dynamic_rate') === 'true' ? 1 : 0;
|
|
|
+ $max_rate = $request->getParam('max_rate') ?? 1;
|
|
|
+ $max_rate_time = $request->getParam('max_rate_time') ?? 0;
|
|
|
+ $min_rate = $request->getParam('min_rate') ?? 1;
|
|
|
+ $min_rate_time = $request->getParam('min_rate_time') ?? 0;
|
|
|
$custom_config = $request->getParam('custom_config') ?? '{}';
|
|
|
$info = $request->getParam('info') ?? '';
|
|
|
$type = $request->getParam('type') === 'true' ? 1 : 0;
|
|
@@ -117,7 +129,15 @@ final class NodeController extends BaseController
|
|
|
$node = new Node();
|
|
|
$node->name = $name;
|
|
|
$node->server = $server;
|
|
|
+
|
|
|
$node->traffic_rate = $traffic_rate;
|
|
|
+ $node->is_dynamic_rate = $is_dynamic_rate;
|
|
|
+ $node->dynamic_rate_config = json_encode([
|
|
|
+ 'max_rate' => $max_rate,
|
|
|
+ 'max_rate_time' => $max_rate_time,
|
|
|
+ 'min_rate' => $min_rate,
|
|
|
+ 'min_rate_time' => $min_rate_time,
|
|
|
+ ]);
|
|
|
|
|
|
if ($custom_config !== '') {
|
|
|
$node->custom_config = $custom_config;
|
|
@@ -191,6 +211,15 @@ final class NodeController extends BaseController
|
|
|
$id = $args['id'];
|
|
|
$node = Node::find($id);
|
|
|
|
|
|
+ $dynamic_rate_config = json_decode($node->dynamic_rate_config);
|
|
|
+ $node->max_rate = $dynamic_rate_config?->max_rate;
|
|
|
+ $node->max_rate_time = $dynamic_rate_config?->max_rate_time;
|
|
|
+ $node->min_rate = $dynamic_rate_config?->min_rate;
|
|
|
+ $node->min_rate_time = $dynamic_rate_config?->min_rate_time;
|
|
|
+
|
|
|
+ $node->node_bandwidth = Tools::flowToGB($node->node_bandwidth);
|
|
|
+ $node->node_bandwidth_limit = Tools::flowToGB($node->node_bandwidth_limit);
|
|
|
+
|
|
|
return $response->write(
|
|
|
$this->view()
|
|
|
->assign('node', $node)
|
|
@@ -213,6 +242,13 @@ final class NodeController extends BaseController
|
|
|
$node->node_group = $request->getParam('node_group');
|
|
|
$node->server = trim($request->getParam('server'));
|
|
|
$node->traffic_rate = $request->getParam('traffic_rate');
|
|
|
+ $node->is_dynamic_rate = $request->getParam('is_dynamic_rate') === 'true' ? 1 : 0;
|
|
|
+ $node->dynamic_rate_config = json_encode([
|
|
|
+ 'max_rate' => $request->getParam('max_rate') ?? 1,
|
|
|
+ 'max_rate_time' => $request->getParam('max_rate_time') ?? 0,
|
|
|
+ 'min_rate' => $request->getParam('min_rate') ?? 1,
|
|
|
+ 'min_rate_time' => $request->getParam('min_rate_time') ?? 0,
|
|
|
+ ]);
|
|
|
$node->info = $request->getParam('info');
|
|
|
$node->node_speedlimit = $request->getParam('node_speedlimit');
|
|
|
$node->type = $request->getParam('type') === 'true' ? 1 : 0;
|