From b46bef67df8ba6cf60699f499c79e322fe41d98c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Tue, 6 Jan 2026 20:44:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=92=E5=90=A7=E6=88=BF=20=E7=BA=A6?= =?UTF-8?q?=E4=BB=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/BarRoom.php | 28 ++++++++++++++++++- application/api/model/BarRoom.php | 37 ++++++++++++++++++++++++-- application/api/model/Chat.php | 2 ++ application/api/model/Room.php | 8 +++++- 4 files changed, 71 insertions(+), 4 deletions(-) diff --git a/application/api/controller/BarRoom.php b/application/api/controller/BarRoom.php index 180d11f2..94e2dcad 100644 --- a/application/api/controller/BarRoom.php +++ b/application/api/controller/BarRoom.php @@ -3,6 +3,7 @@ namespace app\api\controller; use app\common\controller\BaseCom; +use think\Cache; use think\Db; class BarRoom extends BaseCom @@ -65,8 +66,33 @@ class BarRoom extends BaseCom //约TA public function meeting_ta(){ + $key_name = "api:meeting:ta:" . $this->uid; + redis_lock_exits($key_name); $room_id = input('room_id', 0); - $reslut = model('BarRoom')->get_gift_info_ta_list($room_id); + $user_id =input('user_id', 0); + $gift_id =input('gift_id', 0); + if(!$room_id || !$user_id || !$gift_id){ + redis_unlocks($key_name); + return V(0, '参数错误'); + } + //获取缓存 + $meet_user_id = Cache::get('meeting_user_id_'.$user_id); + if($meet_user_id == $user_id){ + redis_unlocks($key_name); + return V(0, '佳人有约!'); + } + //设置缓存 + Cache::set('meeting_user_id_'.$user_id, $user_id); + + $reslut = model('BarRoom')->meeting_ta($this->uid,$room_id,$user_id,$gift_id); + if($reslut['code'] != 1){ + //删除缓存 + Cache::rm('meeting_user_id_'.$user_id); + }else{ + //给缓存添加有效 期 + Cache::set('meeting_user_id_'.$user_id, $user_id, 60); + } + redis_unlocks($key_name); return V($reslut['code'], $reslut['msg'], $reslut['data']); } } \ No newline at end of file diff --git a/application/api/model/BarRoom.php b/application/api/model/BarRoom.php index 057cd581..9f5248f4 100644 --- a/application/api/model/BarRoom.php +++ b/application/api/model/BarRoom.php @@ -122,7 +122,7 @@ class BarRoom extends Model $liao_ta_gif = $this->get_liao_ta_gift(); $liao_ta_gif_id = $liao_ta_gif['gid']??0; //调用送礼接口 - $re = model("api/send_gift")->send_gift($user_id,$to_user_id,$liao_ta_gif_id,1,1,$room_id); + $re = model("api/SendGift")->send_gift($user_id,$to_user_id,$liao_ta_gif_id,1,1,$room_id); if($re['code'] != 1){ return ['code' => 0, 'msg' => $re['msg'], 'data' => null]; } @@ -149,7 +149,7 @@ class BarRoom extends Model } $to_user_ids = implode(',',$to_user_ids); - $re = model("api/send_gift")->send_gift($user_id,$to_user_ids,$liao_ta_gif_id,1,1,$room_id); + $re = model("api/SendGift")->send_gift($user_id,$to_user_ids,$liao_ta_gif_id,1,1,$room_id); if($re['code'] != 1){ return ['code' => 0, 'msg' => $re['msg'], 'data' => null]; } @@ -179,4 +179,37 @@ class BarRoom extends Model return $gift_data; } + + //约TA + public function meeting_ta($user_id,$room_id,$meet_user_id,$gift_id){ + //走送礼流程 + $res = model("api/SendGift")->send_gift($user_id,$meet_user_id,$gift_id,1,1,$room_id); + if($res['code'] != 1){ + return ['code' => 0, 'msg' => $res['msg'], 'data' => null]; + } + //创建私密房间 并告知前端拉谁进入 + $room_ids = model('api/Room')->user_create_room($user_id,'酒吧私密房',get_system_config_value('web_site').'/data/avatar/head_pic.png','酒吧房产生的一次性房间',11); + if($room_ids['code'] != 1){ + return ['code' => 0, 'msg' => $room_ids['msg'], 'data' => null]; + }else{ + //记录小房间 + $datda = [ + 'room_id' => $room_ids['data'], + 'user_id' => $user_id, + 'meet_user_id' => $meet_user_id, + 'end_time' => time() + get_system_config_value('bar_room_timea') * 60, + 'createtime' => time(), + 'status' => 1 //1-正常,2-结束 + ]; + db::name('vs_room_bar_movie')->insert($datda); + + $text['text'] = '约TA并创建房间'; + $text['room_id'] = $room_ids['data'];//前端用来让用户跳转的房间id + $text['user_id'] = $user_id; + $text['meet_user_id'] = $meet_user_id; + model('api/Chat')->sendMsg(1201,$room_id,$text); + } + return ['code' => 1, 'msg' => '成功', 'data' => null]; + } + } \ No newline at end of file diff --git a/application/api/model/Chat.php b/application/api/model/Chat.php index aa4de3ad..9f4e7334 100644 --- a/application/api/model/Chat.php +++ b/application/api/model/Chat.php @@ -153,6 +153,8 @@ class Chat extends Model //酒吧房撩TA推送 // BarRoomLiaoTa = 1200, + //酒吧房开私密房 + // BarRoomOpenPrivateRoom = 1201, diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 13a16112..37444bff 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -61,12 +61,18 @@ class Room extends Model $data['is_open_blind_box_turntable'] = 1; } $data['label_id'] = 1; - }elseif ($type == 7){ + }elseif ($type == 7){//互娱房创建的私密电影屋 $data['room_number'] = $this->get_user_code(); $data['type_id'] = 6;//cp电影房 $room_intro = $room_intro.'('.$type.')'; $data['apply_status'] = 2; $data['label_id'] = 5; + }elseif ($type == 11){//酒吧房创建的私密房 + $data['room_number'] = $this->get_user_code(); + $data['type_id'] = 6;//cp电影房 + $room_intro = $room_intro.'('.$type.')'; + $data['apply_status'] = 2; + $data['label_id'] = 8; } else{//cp电影房 $data['room_number'] = $this->get_user_code();