1
0

NodeController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Controllers\Mod_Mu;
  3. use App\Controllers\BaseController;
  4. use App\Models\NodeOnlineLog;
  5. use App\Models\NodeInfoLog;
  6. use App\Models\Node;
  7. class NodeController extends BaseController
  8. {
  9. public function info($request, $response, $args)
  10. {
  11. $node_id = $args['id'];
  12. $load = $request->getParam('load');
  13. $uptime = $request->getParam('uptime');
  14. $log = new NodeInfoLog();
  15. $log->node_id = $node_id;
  16. $log->load = $load;
  17. $log->uptime = $uptime;
  18. $log->log_time = time();
  19. if (!$log->save()) {
  20. $res = [
  21. "ret" => 0,
  22. "data" => "update failed",
  23. ];
  24. return $this->echoJson($response, $res);
  25. }
  26. $res = [
  27. "ret" => 1,
  28. "data" => "ok",
  29. ];
  30. return $this->echoJson($response, $res);
  31. }
  32. public function get_info($request, $response, $args)
  33. {
  34. $node_id = $args['id'];
  35. $node = Node::find($node_id);
  36. if ($node == null) {
  37. $res = [
  38. "ret" => 0
  39. ];
  40. return $this->echoJson($response, $res);
  41. }
  42. $res = [
  43. "ret" => 1,
  44. "data" => [
  45. "node_group" => $node->node_group,
  46. "node_class" => $node->node_class,
  47. "node_speedlimit" => $node->node_speedlimit,
  48. "traffic_rate" => $node->traffic_rate,
  49. "mu_only" => $node->mu_only,
  50. "sort" => $node->sort
  51. ],
  52. ];
  53. return $this->echoJson($response, $res);
  54. }
  55. public function get_all_info($request, $response, $args)
  56. {
  57. $nodes = Node::where('node_ip', '<>', null)->where(
  58. function ($query) {
  59. $query->where("sort", "=", 0)
  60. ->orWhere("sort", "=", 10);
  61. }
  62. )->get();
  63. $res = [
  64. "ret" => 1,
  65. "data" => $nodes
  66. ];
  67. return $this->echoJson($response, $res);
  68. }
  69. }