签约延时

This commit is contained in:
2025-11-27 15:51:58 +08:00
parent 216a2c4010
commit 1c84efb0a1
3 changed files with 80 additions and 14 deletions

View File

@@ -143,6 +143,8 @@ class Chat extends Model
// SignRoomSignUser = 1091,
//签约房间结束
// SignRoomEnd = 1092,
//签约延时
// SignRoomDelay = 1093,

View File

@@ -21,16 +21,23 @@ class Sign extends Model
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
}
//修改房间状态
$sign_time = db::name('vs_room')->where('id',$room_id)->value('sign_time') + 1;
$sign_time = db::name('vs_room_sign')->where('room_id',$room_id)->order('id desc')->value('sign_time') + 1;
$result = db::name('vs_room')->where('id',$room_id)->update([
'sign_type' => 1,
'sign_time' => $sign_time,
// 'sign_time' => $sign_time,
'updatetime' => time()
]);
$res = db::name('vs_room_sign')->insertGetId([
'room_id' => $room_id,
'sign_type' => 1,
'sign_time' => $sign_time,
'end_time' => time() + 60 * 5,//签约时长5分钟
'createtime' => time()
]);
if($result){
//给前端推送数据
$text['text'] = '开始签约';
$text['sign_time'] = $sign_time;
$text['sign_id'] = $res;
model('api/Chat')->sendMsg(1090,$room_id,$text);
return ['code' => 1, 'msg' => '成功','data' => $sign_time];
@@ -131,7 +138,7 @@ class Sign extends Model
$text['text'] = '签约出价最高用户';
$text['FromUserInfo'] = $FromUserInfo;
$text['sign_value'] = $sign_user['sign_value'];
$text['sign_time'] = $sign_time;
$text['sign_id'] = $sign_time;
model('api/Chat')->sendMsg(1091,$room_id,$text);
return ['code' => 1, 'msg' => '成功','data' => null];
}
@@ -152,13 +159,9 @@ class Sign extends Model
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
}
//根据场次判断是否结束
$sign = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time])->select();
if($sign){
foreach ($sign as $k => $v){
if($v['type'] == 1){
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()){
return ['code' => 0, 'msg' => '该场次签约已结束', 'data' => null];
}
//查询签约用户的身份 是否是第一次被签 是否当前有签
$is_first_sign = db::name('vs_user_sign')->where('sign_user_id',$sign_user_id)->count();
@@ -285,6 +288,21 @@ class Sign extends Model
}
}
}
//修改房间信息
$res1 = db::name('vs_room')->where('id',$room_id)->update([
'sign_type' => 0,
'updatetime' => time()
]);
//修改签约信息
$res2 = db::name('vs_room_sign')->where(['id' => $sign_time])
->update([
'type' => 0,
'end_time' => time()
]);
if(!$res1 || !$res2){
db::rollback();
return ['code' => 0, 'msg' => '网络错误,请重试.!', 'data' => null];
}
db::commit();
//给前端推送
$FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();
@@ -314,6 +332,39 @@ class Sign extends Model
}
/*
* 签约延时
* @param $user_id 用户id
* @param $room_id 房间id
* @param $sign_id 签约场次id
*/
public function sign_delay($user_id,$room_id,$sign_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];
}
$sign_info = db::name('vs_room_sign')->where(['id' => $sign_id])->find();
if(!$sign_info || (!empty($sign_info) && $sign_info['type'] != 1)){
return ['code' => 0, 'msg' => '本场签约结束', 'data' => null];
}
$res = db::name('vs_room_sign')->where(['id' => $sign_id])
->update([
'end_time' => $sign_info['end_time'] + 300,//延时5分钟
]);
if(!$res){
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
}
//给前端推送
$text['text'] = '签约延时';
$text['end_time'] = $sign_info['end_time'] + 300;
model('api/Chat')->sendMsg(1093,$room_id,$text);
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}
/*
* 收礼检查是否有被签约和在合约期内 给上级返佣
* @param $user_id 用户id