diff --git a/application/api/model/Chat.php b/application/api/model/Chat.php index bd28e6f..b01b347 100644 --- a/application/api/model/Chat.php +++ b/application/api/model/Chat.php @@ -133,10 +133,8 @@ class Chat extends Model // SongCountChange = 1072, //CP房间推送信息 - // CP房间表达心动信号 - // CPRoomExpression = 1080, - // CP组建成功 - // CPRoomBuildSuccess = 1081, + // CP进入房间触发特效 + // CPRoomEffect = 1080, diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 07d3843..ad77f86 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -860,6 +860,37 @@ class Room extends Model $text['FromUserInfo']['enter_image'] = $Nobility['enter_image']; $text['FromUserInfo']['enter_text'] = '欢迎 ' . $Nobility['nobility_name'] .' 进入房间'; model('api/Chat')->sendMsg(1001,$room_id,$text,$user_id); + + //当前用户不是隐身状态的时候触发CP特效 + //获取房间内的用户 和当前用户 查找是否有有效CPzone + $user_list = db::name('vs_room_visitor') + ->where(['room_id' => $room_id]) + ->column('user_id'); // 使用column直接获取一维数组 + + $cpzone_list = db::name('user_cp_zone') + ->where(['status' => 1]) + ->where(function($query) use ($user_id) { + $query->whereOr(['user_id1' => $user_id]) + ->whereOr(['user_id2' => $user_id]); + }) + ->select(); + + if ($cpzone_list) { + foreach ($cpzone_list as $cpzone) { + // 获取CP伙伴的用户ID + $partner_id = ($cpzone['user_id1'] == $user_id) ? $cpzone['user_id2'] : $cpzone['user_id1']; + + // 检查CP伙伴是否在房间内 + if (in_array($partner_id, $user_list)) { + // 推送CP特效 + $ttex['rights_icon'] = model('api/Decorate')->user_decorate_detail($user_id, 10); + $ttex['FromUserInfo'] = db::name('user')->where('id', $user_id)->field('id as user_id,nickname,avatar,sex')->find(); + $ttex['ToUserInfo'] = db::name('user')->where('id', $partner_id)->field('id as user_id,nickname,avatar,sex')->find(); + $ttex['text'] = 'CP特效'; + model('api/Chat')->sendMsg(1080, $room_id, $ttex); + } + } + } }else{ $text['FromUserInfo']['enter_image'] = ''; $text['FromUserInfo']['enter_text'] = '';