CrontabController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use Illuminate\Routing\Controller as BaseController;
  4. use App\Http\Response\Response;
  5. use Illuminate\Http\Request as Req;
  6. use Illuminate\Support\Facades\DB;
  7. use App\Lib\Biz\Sport\Common as commonFunction;
  8. use App\Http\Model\StZqMatch as StMatchModel;
  9. use App\Models\SportsNoteList as SportsNoteListModel;
  10. use \App\Models\System_user;
  11. /**
  12. * 定时处理任务
  13. * Tank
  14. * 2019/10/31
  15. */
  16. class CrontabController extends BaseController{
  17. //是否启用 数据写入记录
  18. protected $isRecord;
  19. public function __construct()
  20. {
  21. $this->isRecord = config('record.isRecord');
  22. }
  23. /**
  24. * 定时执行 滚球投注危险球审核
  25. * 每分钟执行一次1
  26. */
  27. public function HandleOrder(Req $data){
  28. //验证token
  29. $user = new System_user;
  30. if (empty($data->token)) return Response::generate('未获取到token', Response::TOKEN_ERR);
  31. $token = $user::where(['token' => $data->token])->value('token');
  32. if (empty($token)) return Response::generate('token验证不通过', Response::TOKEN_ERR);
  33. try {
  34. //开启事务
  35. DB::beginTransaction();
  36. $time =60*5;
  37. //处理指定时间内的滚球待审核订单
  38. SportsNoteListModel::getOrderData($time);
  39. //提交事务
  40. DB::commit();
  41. //写请求数据 日志记录
  42. if ($this->isRecord) commonFunction::SET_SPORTS_RECORD('zq', [], 'HandleOrder', Response::success());
  43. return Response::success();
  44. } catch (\Exception $e) {
  45. //回滚事务
  46. DB::rollBack();
  47. //写请求数据 日志记录
  48. if ($this->isRecord) commonFunction::SET_SPORTS_RECORD('zq', [], 'HandleOrder', $e->getMessage());
  49. return $e->getMessage();
  50. }
  51. }
  52. /**
  53. * 定时执行 处理到时间应该开始而未开始的赛事
  54. * 每分钟执行一次
  55. */
  56. public function HandleMatch(Req $data){
  57. //验证token
  58. $user = new System_user;
  59. if (empty($data->token)) return Response::generate('未获取到token', Response::TOKEN_ERR);
  60. $token = $user::where(['token' => $data->token])->value('token');
  61. if (empty($token)) return Response::generate('token验证不通过', Response::TOKEN_ERR);
  62. try {
  63. //开启事务
  64. DB::beginTransaction();
  65. $time = 60*60*24;//60 秒
  66. //处理指定时间内的赛事
  67. StMatchModel::HandleMatch($time);
  68. //提交事务
  69. DB::commit();
  70. //写请求数据 日志记录
  71. if ($this->isRecord) commonFunction::SET_SPORTS_RECORD('all', [], 'HandleMatch', Response::success());
  72. return Response::success();
  73. } catch (\Exception $e) {
  74. //回滚事务
  75. DB::rollBack();
  76. //写请求数据 日志记录
  77. if ($this->isRecord) commonFunction::SET_SPORTS_RECORD('all', [], 'HandleMatch', $e->getMessage());
  78. return $e->getMessage();
  79. }
  80. }
  81. /**
  82. * 定时执行 处理时间段内赛事已取消的注单1
  83. */
  84. public function HandleOrderInvalid(Req $data){
  85. //验证token
  86. $user = new System_user;
  87. if (empty($data->token)) return Response::generate('未获取到token', Response::TOKEN_ERR);
  88. $token = $user::where(['token' => $data->token])->value('token');
  89. if (empty($token)) return Response::generate('token验证不通过', Response::TOKEN_ERR);
  90. try {
  91. //开启事务
  92. DB::beginTransaction();
  93. $time = 60*5;//5分钟
  94. //处理指定时间内已取消赛事的注单
  95. SportsNoteListModel::HandleOrderInvalid($time);
  96. //提交事务
  97. DB::commit();
  98. //写请求数据 日志记录
  99. if ($this->isRecord) commonFunction::SET_SPORTS_RECORD('all', [], 'HandleOrderInvalid', Response::success());
  100. return Response::success();
  101. } catch (\Exception $e) {
  102. //回滚事务
  103. DB::rollBack();
  104. //写请求数据 日志记录
  105. if ($this->isRecord) commonFunction::SET_SPORTS_RECORD('all', [], 'HandleOrderInvalid', $e->getMessage());
  106. return $e->getMessage();
  107. }
  108. }
  109. }