进入房间 签约信息

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()
{
$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' => '参数错误'];
}
$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']);
}

View File

@@ -921,6 +921,29 @@ class Room extends Model
}else{
$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,
'msg' => '成功',
'data' => ['room_info' => $room_info,
@@ -936,6 +959,7 @@ class Room extends Model
'gift_cycle' => $xlh_info,
'hour_ranking_open' => $hour_open,
'singer_info' => $singer_info,
'sign_info' => $sign_info
]
];
}
@@ -2221,6 +2245,28 @@ class Room extends Model
$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,
'msg' => '成功',
'data' => ['room_info' => $room_info,
@@ -2236,6 +2282,7 @@ class Room extends Model
'gift_cycle' => $xlh_info,
'hour_ranking_open' => $hour_open,
'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 $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();
$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_time' => $sign_time,
'end_time' => time() + 60 * 5,//签约时长5分钟
'sign_user_id' => $sign_user_id,
'createtime' => time()
]);
if($result){
@@ -151,16 +152,19 @@ class Sign extends Model
* @param int $sign_time 签约场次
* @param int $sign_user_id 签约麦的用户id
*/
public function end_sign($user_id,$room_id,$sign_time,$sign_user_id){
//权限判断主持及以上才可操作
$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();
if(!$owner && !$host){
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
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();
if(!$owner && !$host){
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
}
}
//根据场次判断是否结束
$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];
}
//查询签约用户的身份 是否是第一次被签 是否当前有签
@@ -171,6 +175,7 @@ class Sign extends Model
//第一次被签平台抽成
$sign_app_ratio = get_system_config_value('first_sign_app_ratio');
$sign_user_type = 0;
$sign_times = get_system_config_value('first_sign_times');
}else{
//不是第一次被签平台抽成
$sign_app_ratio = get_system_config_value('sign_app_ratio');
@@ -181,6 +186,7 @@ class Sign extends Model
$sign_user_type = 2;
$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();
@@ -193,8 +199,8 @@ class Sign extends Model
'parent_user_id' => $max_sign_user['user_id'],
'sign_user_id' => $max_sign_user['sign_user_id'],
'sign_user_type' => $sign_user_type,
'sign_times' => get_system_config_value('sign_times')*24*60*60,
'end_time' => time() + get_system_config_value('sign_times')*24*60*60,
'sign_times' => $sign_times*24*60*60,
'end_time' => time() + $sign_times*24*60*60,
'createtime' => time(),
];
$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])
->update([
'type' => 0,
'sign_type' => 0,
'end_time' => time()
]);
if(!$res1 || !$res2){

View File

@@ -36,12 +36,13 @@ class PerformPerSecond
echo "房间红包清退:\n";
$this->processExpiredRedpackets();
echo "\n";
// echo "房间火热值更新:\n";
// $this->room_hot_update();
// echo "\n";
echo "提现云账号订单状态查询:\n";
$this->withdraw_order_status();
echo "\n";
echo "签约房时间结束处理:\n";
$this->sign_room_time_end();
echo "\n";
}
@@ -327,4 +328,15 @@ class PerformPerSecond
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);
}
}
}
}
}