2
0

ApiController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Redis;
  5. class ApiController extends Controller
  6. {
  7. /**
  8. * Display a listing of the resource.
  9. *
  10. * @return \Illuminate\Http\Response
  11. */
  12. public function index()
  13. {
  14. //
  15. }
  16. /**
  17. * Store a newly created resource in storage.
  18. *
  19. * @param \Illuminate\Http\Request $request
  20. * @return \Illuminate\Http\Response
  21. */
  22. public function store(Request $request)
  23. {
  24. //
  25. }
  26. /**
  27. * Display the specified resource.
  28. *
  29. * @param int $id
  30. * @return \Illuminate\Http\Response
  31. */
  32. public function show(Request $request, $id)
  33. {
  34. //
  35. $times = $id;
  36. $currTime = time();
  37. $key = "pref-s/";
  38. $begin = $currTime - $times - 1;
  39. $value = 0;
  40. for ($i = $begin; $i <= $currTime; $i++) {
  41. $keyApi = $key . $request->input('api', 'all') . "/" . $i;
  42. if (!empty(Redis::get($keyApi . '/delay'))) {
  43. if ($request->input('item') === 'average') {
  44. $value += intval(Redis::get($keyApi . '/delay') / Redis::get($keyApi . '/count'));
  45. } else {
  46. $value += (int)Redis::get($keyApi . '/' . $request->input('item'));
  47. }
  48. }
  49. }
  50. $value = $value / $times;
  51. return $this->ok($value);
  52. }
  53. /**
  54. * Update the specified resource in storage.
  55. *
  56. * @param \Illuminate\Http\Request $request
  57. * @param int $id
  58. * @return \Illuminate\Http\Response
  59. */
  60. public function update(Request $request, $id)
  61. {
  62. //
  63. $currMinute = intval(time() / 60);
  64. $key = "pref-m/";
  65. $begin = $currMinute - 60;
  66. $output = [];
  67. for ($i = $begin; $i <= $currMinute; $i++) {
  68. $value = 0;
  69. $keyApi = $key . $request->input('api', 'all') . "/" . $i;
  70. if (!empty(Redis::get($keyApi . '/delay'))) {
  71. if ($request->input('item') === 'average') {
  72. $value += intval(Redis::get($keyApi . '/delay') / Redis::get($keyApi . '/count'));
  73. } else {
  74. $value += (int)Redis::get($keyApi . '/' . $request->input('item'));
  75. }
  76. } else {
  77. $value = 0;
  78. }
  79. $time = date("H:i:s", $i);
  80. $output[] = ['date' => $time, 'value' => $value];
  81. }
  82. return $this->ok($output);
  83. }
  84. /**
  85. * Remove the specified resource from storage.
  86. *
  87. * @param int $id
  88. * @return \Illuminate\Http\Response
  89. */
  90. public function destroy($id)
  91. {
  92. //
  93. }
  94. }