2025-10-20 10:02:41 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
|
|
|
|
|
|
use think\Controller;
|
|
|
|
|
|
use think\Db;
|
|
|
|
|
|
use think\Log;
|
|
|
|
|
|
|
|
|
|
|
|
use app\common\controller\BaseCom;
|
|
|
|
|
|
|
|
|
|
|
|
class Xintiao extends BaseCom
|
|
|
|
|
|
{
|
|
|
|
|
|
|
2025-12-02 19:08:07 +08:00
|
|
|
|
//房间内保持心跳
|
|
|
|
|
|
public function keep_room_heartbeat()
|
2025-10-20 10:02:41 +08:00
|
|
|
|
{
|
2025-12-02 19:08:07 +08:00
|
|
|
|
$room_id = input('room_id');
|
2025-12-02 19:32:46 +08:00
|
|
|
|
if(!$room_id){
|
|
|
|
|
|
return V(0, '参数错误', null);
|
|
|
|
|
|
}
|
2025-10-20 10:02:41 +08:00
|
|
|
|
$user_id = $this->uid;
|
2025-12-02 19:08:07 +08:00
|
|
|
|
$is_xintiao = db::name('vs_room_heartbeat')->where(['user_id' => $user_id, 'room_id' => $room_id])->find();
|
2025-10-20 10:02:41 +08:00
|
|
|
|
if($is_xintiao){
|
2025-12-02 19:28:24 +08:00
|
|
|
|
db::name('vs_room_heartbeat')->where('id' , $is_xintiao['id'])->update(['updatetime' => time()]);
|
2025-10-20 10:02:41 +08:00
|
|
|
|
}else{
|
2025-12-02 19:08:07 +08:00
|
|
|
|
db::name('vs_room_heartbeat')->insert([
|
2025-10-20 10:02:41 +08:00
|
|
|
|
'user_id' => $user_id,
|
2025-12-02 19:32:10 +08:00
|
|
|
|
'room_id' => $room_id,
|
2025-10-20 10:02:41 +08:00
|
|
|
|
'createtime' => time(),
|
|
|
|
|
|
'updatetime' => time()
|
2025-12-02 19:08:07 +08:00
|
|
|
|
]);
|
2025-10-20 10:02:41 +08:00
|
|
|
|
}
|
2025-12-11 09:00:56 +08:00
|
|
|
|
//任务:18-每日在线时长 5 分钟
|
|
|
|
|
|
model('Tasks')->tasks_complete($user_id,18);
|
|
|
|
|
|
//任务:19-每日在线时长 10 分钟
|
|
|
|
|
|
model('Tasks')->tasks_complete($user_id,19);
|
|
|
|
|
|
//任务:20-每日在线时长 15 分钟
|
|
|
|
|
|
model('Tasks')->tasks_complete($user_id,20);
|
|
|
|
|
|
|
|
|
|
|
|
//获取房间的类型
|
|
|
|
|
|
$room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id');
|
|
|
|
|
|
//查询徒弟是否是首签的徒弟 sign_user_type:被签用户的类型:0-首次被签,1-签约过期,2-违约签
|
2025-12-11 16:34:26 +08:00
|
|
|
|
$user_sign = db::name('vs_user_sign')
|
|
|
|
|
|
->where(['sign_user_id' => $user_id,'sign_user_type' => 0,'end_time' => ['>',time()]])->field('parent_user_id,sign_user_id')->select();
|
|
|
|
|
|
if($user_sign){
|
|
|
|
|
|
foreach ($user_sign as $v){
|
|
|
|
|
|
if($room_type == 2){
|
|
|
|
|
|
//查询徒弟在不在房间
|
|
|
|
|
|
$is_room = db::name('vs_room_visitor')
|
|
|
|
|
|
->where(['user_id' => $v['sign_user_id'], 'room_id' => $room_id])->find();
|
|
|
|
|
|
if($is_room){
|
|
|
|
|
|
//任务:21-邀请徒弟在拍卖房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物)
|
|
|
|
|
|
model('Tasks')->tasks_complete($v['parent_user_id'], 21, 1,$v['sign_user_id']);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if($room_type == 7){
|
|
|
|
|
|
//查询徒弟在不在房间
|
|
|
|
|
|
$is_room = db::name('vs_room_visitor')
|
|
|
|
|
|
->where(['user_id' => $v['sign_user_id'], 'room_id' => $room_id])->find();
|
|
|
|
|
|
if($is_room){
|
|
|
|
|
|
//任务:23-邀请徒弟在交友房停留(0/5)分钟,并送给徒弟(0/1 ,特殊礼物)
|
|
|
|
|
|
model('Tasks')->tasks_complete($v['parent_user_id'], 23, 1,$v['sign_user_id']);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-11 09:00:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-02 14:30:43 +08:00
|
|
|
|
return V(1, '成功', null);
|
2025-10-20 10:02:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|