ApiController.php 2.5 KB

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