Sport.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Constants\HttpStatus;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Sport as SportModel;
  6. use App\Services\FixtureService;
  7. use Illuminate\Http\JsonResponse;
  8. use Exception;
  9. use Illuminate\Validation\ValidationException;
  10. class Sport extends Controller
  11. {
  12. /**
  13. * 赛事列表
  14. * @return JsonResponse
  15. */
  16. public function index(): JsonResponse
  17. {
  18. $date = request()->input('date', date('Y-m-d'));
  19. $start = strtotime($date);
  20. $end = strtotime("+1 day", $start);
  21. $list = SportModel::where("game_time", ">=", $start)
  22. ->where("game_time", "<", $end)
  23. ->get()->makeHidden(['id']);
  24. return $this->success(['list' => $list]);
  25. }
  26. /**
  27. * 赛前赔率
  28. * @param string $data_id 赛事ID
  29. * @return JsonResponse
  30. */
  31. public function odds(): JsonResponse
  32. {
  33. try {
  34. request()->validate([
  35. 'data_id' => ['required', 'string', 'min:1'],
  36. ]);
  37. $dataId = request()->input('data_id');
  38. $res = FixtureService::odds($dataId);
  39. } catch (ValidationException $e) {
  40. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  41. } catch (Exception $e) {
  42. return $this->error($e->getCode());
  43. }
  44. return $this->success($res);
  45. }
  46. /**
  47. * 实时赔率 (滚球)
  48. * @param string $data_id 赛事ID
  49. * @return JsonResponse
  50. */
  51. public function oddsLive(): JsonResponse
  52. {
  53. try {
  54. request()->validate([
  55. 'data_id' => ['required', 'string', 'min:1'],
  56. ]);
  57. $dataId = request()->input('data_id');
  58. $res = FixtureService::oddsLive($dataId);
  59. } catch (ValidationException $e) {
  60. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  61. } catch (Exception $e) {
  62. return $this->error($e->getCode());
  63. }
  64. return $this->success($res);
  65. }
  66. }