ApiController.php 2.7 KB

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