|
@@ -655,6 +655,7 @@ exit;
|
|
|
}';*/
|
|
|
|
|
|
$input = json_decode($input,true);
|
|
|
+ $roomId = $input['EventInfo']['RoomId'];
|
|
|
//房间事件组
|
|
|
if($input['EventGroupId'] == 1){
|
|
|
if($input['EventType'] == 101){
|
|
@@ -664,19 +665,77 @@ exit;
|
|
|
//没有UserId
|
|
|
}elseif($input['EventType'] == 103){
|
|
|
//进入房间,主播role=20 观众role=21
|
|
|
+ $redis = new Redis();
|
|
|
+ $redisconfig = config("redis");
|
|
|
+ $redis->connect($redisconfig["host"], $redisconfig["port"]);
|
|
|
+
|
|
|
+ $userId = $input['EventInfo']['UserId'];
|
|
|
+ $redis->hSet("online_" . $roomId, $userId, $userId);
|
|
|
+
|
|
|
+ // 记录在线用户在房间情况
|
|
|
+ $redis->hSet("livingUser",$userId,$roomId);
|
|
|
+
|
|
|
+ // 更新房间在线状态
|
|
|
+ $partyInfo = $redis->get("party_" . $roomId);
|
|
|
+ if ($partyInfo) {
|
|
|
+ $partyInfo = json_decode($partyInfo, true);
|
|
|
+ if ($partyInfo["is_online"] != 1) {
|
|
|
+ $partyInfo["is_online"] = 1;
|
|
|
+ $redis->set("party_" . $roomId, json_encode($partyInfo));
|
|
|
+ \app\common\model\Party::update(["is_online" => 1], ["id" => $roomId]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新房间在线状态
|
|
|
+ $liveInfo = $redis->get("livebc_" . $roomId);
|
|
|
+ if ($liveInfo) {
|
|
|
+ $liveInfo = json_decode($liveInfo, true);
|
|
|
+ if ($liveInfo["is_online"] != 1 && $input['EventInfo']['Role'] == 20) {
|
|
|
+ $liveInfo["is_online"] = 1;
|
|
|
+ $redis->set("livebc_" . $roomId, json_encode($liveInfo));
|
|
|
+ \app\common\model\Party::update(["is_online" => 1], ["id" => $roomId]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}elseif($input['EventType'] == 104){
|
|
|
//退出房间,主播role=20 观众role=21
|
|
|
- if($input['EventInfo']['Role'] == 20){
|
|
|
- $user_id = $input['EventInfo']['UserId'];
|
|
|
- $live_bc = Db::name('livebc')->where('user_id',$input['EventInfo']['UserId'])->update(['is_online'=>0]);
|
|
|
- $rs_user = Db::name('user')->where('id',$input['EventInfo']['UserId'])->update(['is_livebc'=>0]);
|
|
|
- //清空房间排行榜
|
|
|
- $redis = new Redis();
|
|
|
- $redisconfig = config("redis");
|
|
|
- $redis->connect($redisconfig["host"], $redisconfig["port"]);
|
|
|
- $redis->del('livebc_jewel_to_' . $user_id);
|
|
|
- $redis->hDel("livebc_jewel_top3",$user_id);
|
|
|
+ $redis = new Redis();
|
|
|
+ $redisconfig = config("redis");
|
|
|
+ $redis->connect($redisconfig["host"], $redisconfig["port"]);
|
|
|
+
|
|
|
+ $userId = $input['EventInfo']['UserId'];
|
|
|
+ $redis->HDel("online_" . $roomId, $userId);
|
|
|
+
|
|
|
+ // 扣除在线用户在房间情况
|
|
|
+ $redis->hDel("livingUser",$userId);
|
|
|
+
|
|
|
+ // 更新房间在线状态
|
|
|
+ $partyInfo = $redis->get("party_" . $roomId);
|
|
|
+ if ($partyInfo) {
|
|
|
+ $partyInfo = json_decode($partyInfo, true);
|
|
|
+ $memCount = count($redis->hGetAll("online_" . $roomId));
|
|
|
+ if ($memCount <= 0) {
|
|
|
+ $partyInfo["is_online"] = 0;
|
|
|
+ $redis->set("party_" . $roomId, json_encode($partyInfo));
|
|
|
+ \app\common\model\Party::update(["is_online" => 0], ["id" => $roomId]);
|
|
|
+ }
|
|
|
}
|
|
|
+ //
|
|
|
+ $liveInfo = $redis->get("livebc_" . $roomId);
|
|
|
+ if ($liveInfo) {
|
|
|
+ $liveInfo = json_decode($liveInfo, true);
|
|
|
+ if($input['EventInfo']['Role'] == 20){
|
|
|
+ $liveInfo["is_online"] = 0;
|
|
|
+ $redis->set("livebc_" . $roomId, json_encode($liveInfo));
|
|
|
+ \app\common\model\Party::update(["is_online" => 0], ["id" => $roomId]);
|
|
|
+ $rs_user = Db::name('user')->where('id',$userId)->update(['is_livebc'=>0]);
|
|
|
+
|
|
|
+ //清空房间排行榜
|
|
|
+ $redis->del('livebc_jewel_to_' . $roomId);
|
|
|
+ $redis->hDel("livebc_jewel_top3",$roomId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}elseif($input['EventGroupId'] == 2){
|
|
|
|