Files
yusheng-php/application/api/controller/Xintiao.php

117 lines
5.2 KiB
PHP
Raw Normal View History

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-12 12:16:32 +08:00
//是否有在限时时间内的Cp任务
//查询是否已经存在Cp空间
$rees = Db::name('user_cp_zone')->where(['user_id1' => $user_id,'status' => 1])->find();
if(!$rees){
$rees = Db::name('user_cp_zone')->where(['user_id2' => $user_id,'status' => 1])->find();
}
if($rees){
2025-12-12 15:31:43 +08:00
//查询另一个 用户在不在 房间内
if($rees['user_id1'] == $user_id){
$UserId = $rees['user_id2'];
}else{
$UserId = $rees['user_id1'];
}
$is_room = db::name('vs_room_visitor')
->where(['user_id' => $UserId, 'room_id' => $room_id])->find();
if($is_room){
//成为Cp的天数
$createtime =Db::name('user_cp_zone')->where(['id' => $rees['id']])->value('createtime');
$days = floor((time() - $createtime) / 86400);
if($days <= 7){
2025-12-12 23:11:10 +08:00
$is_time = Db::name('vs_user_cp_task')->where(['user_id' => $rees['user_id1'],'status' => 0,'day' => date('Y-m-d', time()),'delete_time' => 0])->find();
$is_time2 = Db::name('vs_user_cp_task')->where(['user_id' => $rees['user_id2'],'status' => 0,'day' => date('Y-m-d', time()),'delete_time' => 0])->find();
2025-12-12 15:31:43 +08:00
if($is_time && $is_time['need_time_value'] > $is_time['time_value']){
$exo_value = ($is_time['time_value'] + 0.5) >= $is_time['need_time_value'] ? $is_time['need_time_value'] : ($is_time['time_value'] + 0.5);
$data_cp = [
'time_value' => $exo_value,
];
if($exo_value >= $is_time['need_time_value'] && $is_time['exp_value'] == $is_time['need_exp_value']){
$data_cp['status'] = 1;
}
Db::name('vs_user_cp_task')->where(['id' => $is_time['id']])->update($data_cp);
Db::name('vs_user_cp_task')->where(['id' => $is_time2['id']])->update($data_cp);
2025-12-12 12:16:32 +08:00
}
}
}
}
//返回任务未领取奖励数
$not_received_tasks_num = model('Tasks')->daily_tasks_unfinished_count($user_id);
$return_data = [
'not_received_tasks_num' => $not_received_tasks_num['data']['num']
];
return V(1, '成功', $return_data);
2025-10-20 10:02:41 +08:00
}
}