签约延时

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

@@ -7,7 +7,7 @@ use think\Db;
class Sign extends BaseCom class Sign extends BaseCom
{ {
//签约出价列表 //签约出价价格列表
public function sign_coin_list() public function sign_coin_list()
{ {
$user_id = input('user_id', 0);//签约麦 用户id $user_id = input('user_id', 0);//签约麦 用户id
@@ -42,7 +42,7 @@ class Sign extends BaseCom
$user_id = input('user_id', 0); $user_id = input('user_id', 0);
$sign_value = input('sign_value', 0); $sign_value = input('sign_value', 0);
$room_id = input('room_id', 0); $room_id = input('room_id', 0);
$sign_time = input('sign_time', 0); $sign_time = input('sign_id', 0);
if ($sign_value <= 0 || $user_id <= 0 || $room_id <= 0) { if ($sign_value <= 0 || $user_id <= 0 || $room_id <= 0) {
return ['code' => 0, 'msg' => '参数错误']; return ['code' => 0, 'msg' => '参数错误'];
} }
@@ -55,7 +55,7 @@ class Sign extends BaseCom
//签约结束 //签约结束
public function end_sign() public function end_sign()
{ {
$sign_time = input('sign_time', 0); $sign_time = input('sign_id', 0);
$room_id = input('room_id', 0); $room_id = input('room_id', 0);
$user_id = input('user_id', 0); $user_id = input('user_id', 0);
if ($sign_time <= 0 || $room_id <= 0) { if ($sign_time <= 0 || $room_id <= 0) {
@@ -66,6 +66,19 @@ class Sign extends BaseCom
} }
//签约延时
public function sign_delay()
{
$sign_id = input('sign_id', 0);
$room_id = input('room_id', 0);
if ($sign_id <= 0 || $room_id <= 0) {
return ['code' => 0, 'msg' => '参数错误'];
}
$reslut = model('Sign')->sign_delay($this->uid, $room_id, $sign_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
//免费续约 //免费续约
public function free_re_sign() public function free_re_sign()
{ {

View File

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

View File

@@ -21,16 +21,23 @@ class Sign extends Model
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null]; 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([ $result = db::name('vs_room')->where('id',$room_id)->update([
'sign_type' => 1, 'sign_type' => 1,
'sign_time' => $sign_time, // 'sign_time' => $sign_time,
'updatetime' => 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){ if($result){
//给前端推送数据 //给前端推送数据
$text['text'] = '开始签约'; $text['text'] = '开始签约';
$text['sign_time'] = $sign_time; $text['sign_id'] = $res;
model('api/Chat')->sendMsg(1090,$room_id,$text); model('api/Chat')->sendMsg(1090,$room_id,$text);
return ['code' => 1, 'msg' => '成功','data' => $sign_time]; return ['code' => 1, 'msg' => '成功','data' => $sign_time];
@@ -131,7 +138,7 @@ class Sign extends Model
$text['text'] = '签约出价最高用户'; $text['text'] = '签约出价最高用户';
$text['FromUserInfo'] = $FromUserInfo; $text['FromUserInfo'] = $FromUserInfo;
$text['sign_value'] = $sign_user['sign_value']; $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); model('api/Chat')->sendMsg(1091,$room_id,$text);
return ['code' => 1, 'msg' => '成功','data' => null]; return ['code' => 1, 'msg' => '成功','data' => null];
} }
@@ -152,13 +159,9 @@ class Sign extends Model
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null]; return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
} }
//根据场次判断是否结束 //根据场次判断是否结束
$sign = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time])->select(); $sign = db::name('vs_room_sign')->where( ['id' => $sign_time])->find();
if($sign){ if($sign['sign_type'] != 1 || $sign['end_time'] < time()){
foreach ($sign as $k => $v){ return ['code' => 0, 'msg' => '该场次签约已结束', 'data' => null];
if($v['type'] == 1){
return ['code' => 0, 'msg' => '该场次签约已结束', 'data' => null];
}
}
} }
//查询签约用户的身份 是否是第一次被签 是否当前有签 //查询签约用户的身份 是否是第一次被签 是否当前有签
$is_first_sign = db::name('vs_user_sign')->where('sign_user_id',$sign_user_id)->count(); $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(); db::commit();
//给前端推送 //给前端推送
$FromUserInfo = db::name('user')->where('id',$max_sign_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find(); $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 * @param $user_id 用户id