LiveStopCallback.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: ring
  5. * Date: 2019/8/11
  6. * Time: 上午11:49
  7. */
  8. namespace App\Hook;
  9. use App\Http\Controllers\Controller;
  10. use App\Models\AppSettings;
  11. use App\Models\Users;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\Cache;
  14. use App\Models\Rome;
  15. use App\Api\Util\IM;
  16. use App\Models\Live;
  17. use App\Models\LiveRome;
  18. use App\Models\MoreRome;
  19. use App\Models\LiveStatistics;
  20. class LiveStopCallback extends Controller
  21. {
  22. use IM;
  23. public function index(Request $request){
  24. $event_type=$request->get('event_type');
  25. $stream_id=$request->get('stream_id');
  26. info('xxxx='.$stream_id);
  27. $stream_id=substr($stream_id,strripos($stream_id,"_")+1);
  28. info('xxxx22='.$stream_id);
  29. if($event_type==0){//断流
  30. $rome= Rome::where('uid',$stream_id)->where('end',0)->first();
  31. if($rome){
  32. Rome::where('uid',$stream_id)->where('end',0)->update(['end'=>time()]);
  33. $ginfo=$this->closeGroup($rome->id,0);
  34. }
  35. $live= Live::where('uid',$stream_id)->where('status',0)->first();
  36. if($live){
  37. Live::where('uid',$stream_id)->where('status',0)->update(['status'=>1]);
  38. $ginfo=$this->closeGroup($live->id,1);
  39. }
  40. ///2
  41. $liverome= LiveRome::where('uid',$stream_id)->where('status',0)->first();
  42. if($liverome){
  43. LiveRome::where('uid',$stream_id)->where('status',0)->update(['status'=>1]);
  44. $ginfo=$this->closeGroup($liverome->id,2);
  45. }
  46. //7
  47. $more= MoreRome::where('uid',$stream_id)->where('status',0)->first();
  48. if($more){
  49. MoreRome::where('uid',$stream_id)->where('status',0)->update(['status'=>1]);
  50. $ginfo=$this->closeGroup($more->id,7);
  51. }
  52. LiveStatistics::where('end_time',0)->where('uid',$stream_id)->update(['end_time'=>time()]);
  53. }
  54. if($event_type==1){//开流
  55. $lid=$this->getMyInfo($stream_id)->lid;
  56. LiveStatistics::firstOrCreate(['lid'=>$lid,'uid'=>$stream_id, 'start_time'=>time(), 'end_time'=>0]);
  57. }
  58. return response()->json(['code'=>0]);
  59. }
  60. protected function getMyInfo($uid,$type=0){
  61. if($type){
  62. $info = Cache::rememberForever('My'.$uid,function() use ($uid){
  63. return Users::where('id',$uid)->first();
  64. });
  65. }else{
  66. $info = Cache::rememberForever('user'.$uid,function() use ($uid){
  67. return Users::where('id',$uid)->select('name', 'lid', 'avatar','sex','age','vip','trump','opt','type','rose','tuid')->first();
  68. });
  69. }
  70. return $info;
  71. }
  72. }