LiveUser.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\wap\model\live;
  12. /**
  13. * 直播间用户表
  14. */
  15. use basic\ModelBasic;
  16. use traits\ModelTrait;
  17. class LiveUser extends ModelBasic
  18. {
  19. use ModelTrait;
  20. public static function setLiveUser($uid,$live_id,$lastCd=3600)
  21. {
  22. $liveUser = self::where(['uid'=>$uid,'live_id'=>$live_id])->find();
  23. $ip = \think\Request::instance()->ip();
  24. if($liveUser){
  25. if($liveUser->is_open_ben && $liveUser->open_ben_time > time()) return self::setErrorInfo('您已被禁止访问此直播间!');
  26. $liveUser->last_ip = $ip;
  27. $liveUser->visit_num = ($liveUser->last_time + $lastCd) < time() ? $liveUser->visit_num++ : $liveUser->visit_num;
  28. $liveUser->last_time = time();
  29. if($liveUser->is_ban && $liveUser->ban_time && $liveUser->ban_time < time()){
  30. $liveUser->is_ban = 0;
  31. $liveUser->ban_time = 0;
  32. }
  33. $liveUser->save();
  34. return $liveUser;
  35. }else{
  36. $data = [
  37. 'uid'=>$uid,
  38. 'live_id'=>$live_id,
  39. 'add_time'=>time(),
  40. 'last_time'=>time(),
  41. 'visit_num'=>1,
  42. 'last_ip'=>$ip,
  43. 'add_ip'=>$ip,
  44. 'is_ban'=>0,
  45. ];
  46. return self::set($data);
  47. }
  48. }
  49. /**
  50. * 设置用户上下线
  51. * @param int $live_id 直播间号
  52. * @param int $uid 用户id
  53. * @param int $is_online 上下线
  54. * @return object
  55. * */
  56. public static function setLiveUserOnline($live_id,$uid,$is_online =1 )
  57. {
  58. if(self::be(['live_id'=>$live_id,'uid'=>$uid,'is_online'=>$is_online])) return true;
  59. return self::where(['live_id'=>$live_id,'uid'=>$uid])->update(['is_online'=>$is_online]);
  60. }
  61. }