进入房间 签约信息

This commit is contained in:
2025-11-27 16:32:41 +08:00
parent 1c84efb0a1
commit 1fac081547
4 changed files with 82 additions and 16 deletions

View File

@@ -28,10 +28,11 @@ class Sign extends BaseCom
public function start_sign() public function start_sign()
{ {
$room_id = input('room_id', 0); $room_id = input('room_id', 0);
if ($room_id <= 0) { $user_id = input('user_id', 0);
if ($room_id <= 0 || $user_id <= 0) {
return ['code' => 0, 'msg' => '参数错误']; return ['code' => 0, 'msg' => '参数错误'];
} }
$reslut = model('Sign')->start_sign($this->uid, $room_id); $reslut = model('Sign')->start_sign($this->uid, $room_id, $user_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']); return V($reslut['code'], $reslut['msg'], $reslut['data']);
} }

View File

@@ -921,6 +921,29 @@ class Room extends Model
}else{ }else{
$hour_open = 0;//关闭 $hour_open = 0;//关闭
} }
//签约房间信息
if($room_info['type_id'] != 10){
$sign_info = null;
}else{
$room_sign = db::name('vs_room_sign')->where('room_id', $room_id)->order('id desc')->find();
if($room_sign){
$sign_info = [
'sign_status' => $room_sign['sign_type'],
'sign_day' => $room_sign['sign_day'],
'current_body_value' => db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value'),
'end_time' => $room_sign['end_time']
];
}else{
$sign_info = [
'sign_status' => 0,
'sign_day' => 0,
'current_body_value' => 0,
'end_time' => 0
];
}
}
return ['code' => 1, return ['code' => 1,
'msg' => '成功', 'msg' => '成功',
'data' => ['room_info' => $room_info, 'data' => ['room_info' => $room_info,
@@ -936,6 +959,7 @@ class Room extends Model
'gift_cycle' => $xlh_info, 'gift_cycle' => $xlh_info,
'hour_ranking_open' => $hour_open, 'hour_ranking_open' => $hour_open,
'singer_info' => $singer_info, 'singer_info' => $singer_info,
'sign_info' => $sign_info
] ]
]; ];
} }
@@ -2221,6 +2245,28 @@ class Room extends Model
$hour_open = 0;//关闭 $hour_open = 0;//关闭
} }
//签约房间信息
if($room_info['type_id'] != 10){
$sign_info = null;
}else{
$room_sign = db::name('vs_room_sign')->where('room_id', $room_id)->order('id desc')->find();
if($room_sign){
$sign_info = [
'sign_status' => $room_sign['sign_type'],
'sign_day' => $room_sign['sign_day'],
'current_body_value' => db::name('user')->where('id', $room_sign['sign_user_id'])->value('market_value'),
'end_time' => $room_sign['end_time']
];
}else{
$sign_info = [
'sign_status' => 0,
'sign_day' => 0,
'current_body_value' => 0,
'end_time' => 0
];
}
}
return ['code' => 1, return ['code' => 1,
'msg' => '成功', 'msg' => '成功',
'data' => ['room_info' => $room_info, 'data' => ['room_info' => $room_info,
@@ -2236,6 +2282,7 @@ class Room extends Model
'gift_cycle' => $xlh_info, 'gift_cycle' => $xlh_info,
'hour_ranking_open' => $hour_open, 'hour_ranking_open' => $hour_open,
'singer_info' => $singer_info, 'singer_info' => $singer_info,
'sign_info' => $sign_info
] ]
]; ];
} }

View File

@@ -13,7 +13,7 @@ class Sign extends Model
* @param int $room_id 房间id * @param int $room_id 房间id
* @param int $sign_user_id 签约麦的用户id * @param int $sign_user_id 签约麦的用户id
*/ */
public function start_sign($user_id,$room_id){ public function start_sign($user_id,$room_id,$sign_user_id){
//权限判断主持及以上才可操作 //权限判断主持及以上才可操作
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find(); $owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find(); $host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
@@ -32,6 +32,7 @@ class Sign extends Model
'sign_type' => 1, 'sign_type' => 1,
'sign_time' => $sign_time, 'sign_time' => $sign_time,
'end_time' => time() + 60 * 5,//签约时长5分钟 'end_time' => time() + 60 * 5,//签约时长5分钟
'sign_user_id' => $sign_user_id,
'createtime' => time() 'createtime' => time()
]); ]);
if($result){ if($result){
@@ -151,16 +152,19 @@ class Sign extends Model
* @param int $sign_time 签约场次 * @param int $sign_time 签约场次
* @param int $sign_user_id 签约麦的用户id * @param int $sign_user_id 签约麦的用户id
*/ */
public function end_sign($user_id,$room_id,$sign_time,$sign_user_id){ public function end_sign($user_id,$room_id,$sign_time,$sign_user_id,$type = 1){
//权限判断主持及以上才可操作 if($type == 1){
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find(); //权限判断主持及以上才可操作
$host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find(); $owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
if(!$owner && !$host){ $host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null]; if(!$owner && !$host){
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
}
} }
//根据场次判断是否结束 //根据场次判断是否结束
$sign = db::name('vs_room_sign')->where( ['id' => $sign_time])->find(); $sign = db::name('vs_room_sign')->where( ['id' => $sign_time])->find();
if($sign['sign_type'] != 1 || $sign['end_time'] < time()){ if($sign['sign_type'] != 1){
return ['code' => 0, 'msg' => '该场次签约已结束', 'data' => null]; return ['code' => 0, 'msg' => '该场次签约已结束', 'data' => null];
} }
//查询签约用户的身份 是否是第一次被签 是否当前有签 //查询签约用户的身份 是否是第一次被签 是否当前有签
@@ -171,6 +175,7 @@ class Sign extends Model
//第一次被签平台抽成 //第一次被签平台抽成
$sign_app_ratio = get_system_config_value('first_sign_app_ratio'); $sign_app_ratio = get_system_config_value('first_sign_app_ratio');
$sign_user_type = 0; $sign_user_type = 0;
$sign_times = get_system_config_value('first_sign_times');
}else{ }else{
//不是第一次被签平台抽成 //不是第一次被签平台抽成
$sign_app_ratio = get_system_config_value('sign_app_ratio'); $sign_app_ratio = get_system_config_value('sign_app_ratio');
@@ -181,6 +186,7 @@ class Sign extends Model
$sign_user_type = 2; $sign_user_type = 2;
$before_sign_user = $is_sign['user_id']; $before_sign_user = $is_sign['user_id'];
} }
$sign_times = get_system_config_value('sign_times');
} }
//获取签约出价最高的 //获取签约出价最高的
$max_sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time])->order('sign_value desc')->find(); $max_sign_user = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time])->order('sign_value desc')->find();
@@ -193,8 +199,8 @@ class Sign extends Model
'parent_user_id' => $max_sign_user['user_id'], 'parent_user_id' => $max_sign_user['user_id'],
'sign_user_id' => $max_sign_user['sign_user_id'], 'sign_user_id' => $max_sign_user['sign_user_id'],
'sign_user_type' => $sign_user_type, 'sign_user_type' => $sign_user_type,
'sign_times' => get_system_config_value('sign_times')*24*60*60, 'sign_times' => $sign_times*24*60*60,
'end_time' => time() + get_system_config_value('sign_times')*24*60*60, 'end_time' => time() + $sign_times*24*60*60,
'createtime' => time(), 'createtime' => time(),
]; ];
$result1 = db::name('vs_user_sign')->insert($data); $result1 = db::name('vs_user_sign')->insert($data);
@@ -296,7 +302,7 @@ class Sign extends Model
//修改签约信息 //修改签约信息
$res2 = db::name('vs_room_sign')->where(['id' => $sign_time]) $res2 = db::name('vs_room_sign')->where(['id' => $sign_time])
->update([ ->update([
'type' => 0, 'sign_type' => 0,
'end_time' => time() 'end_time' => time()
]); ]);
if(!$res1 || !$res2){ if(!$res1 || !$res2){

View File

@@ -36,12 +36,13 @@ class PerformPerSecond
echo "房间红包清退:\n"; echo "房间红包清退:\n";
$this->processExpiredRedpackets(); $this->processExpiredRedpackets();
echo "\n"; echo "\n";
// echo "房间火热值更新:\n";
// $this->room_hot_update();
// echo "\n";
echo "提现云账号订单状态查询:\n"; echo "提现云账号订单状态查询:\n";
$this->withdraw_order_status(); $this->withdraw_order_status();
echo "\n"; echo "\n";
echo "签约房时间结束处理:\n";
$this->sign_room_time_end();
echo "\n";
} }
@@ -327,4 +328,15 @@ class PerformPerSecond
echo "处理过期红包-共". $processedCount . "条数据\n"; echo "处理过期红包-共". $processedCount . "条数据\n";
} }
//签约房时间结束处理
public function sign_room_time_end(){
$res = Db::name('vs_room_sign')->where('sign_type',1)->select();
if($res){
foreach ($res as $value){
if($value['end_time'] <= time()){
model('api/Sign')->end_sign(0,$value['room_id'],$value['id'],$value['sign_user_id'],0);
}
}
}
}
} }