签约结束
This commit is contained in:
@@ -580,46 +580,50 @@ class Room extends Model
|
||||
}
|
||||
|
||||
//用户是否在其他房间
|
||||
$room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id desc')->value('room_id');
|
||||
if (isset($room_user) && $room_user != $room_id && $room_user != 0) {
|
||||
//根据所在房间状态判断是否要退出房间并且下麦
|
||||
$roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find();
|
||||
if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 1){
|
||||
//退出其他房间
|
||||
$this->quit_room($user_id, $room_user,$user_id);
|
||||
}elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 2){//k歌
|
||||
//他的点歌列表
|
||||
$song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select();
|
||||
if(count($song_list) > 0){
|
||||
foreach ($song_list as $value){
|
||||
if($value['status'] == 2 && $value['times_status'] == 1){
|
||||
//切歌
|
||||
model('api/RoomSong')->change_song($room_id,$value['did']);
|
||||
}
|
||||
if($value['status'] == 1){
|
||||
db::name('vs_room_song')->where(['did' => $value['did']])->update(['status' => 3]);
|
||||
}
|
||||
}
|
||||
}
|
||||
//记录用户退出房
|
||||
$this->quit_room($user_id, $room_user,$user_id);
|
||||
}elseif($roomInfo['type_id'] == 2){
|
||||
//是否在拍卖位
|
||||
$pitNumber = Cache::get('auction_user_'.$room_user);
|
||||
if(isset($pitNumber) && $pitNumber == $user_id){
|
||||
//用户在竞拍位 退出且不下麦
|
||||
//记录用户退出房
|
||||
db::name('vs_room_visitor')->where(['room_id' => $room_user, 'user_id' => $user_id])->delete();
|
||||
$nickname = db::name('user')->where('id', $user_id)->value('nickname');
|
||||
$text['text'] = '用户 ' . $nickname .' 退出了房间';
|
||||
model('api/Chat')->sendMsg(1002,$room_user,$text,$user_id);
|
||||
}else{
|
||||
//退出其他房间
|
||||
$this->quit_room($user_id, $room_user,$user_id);
|
||||
}
|
||||
}
|
||||
// $room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id desc')->value('room_id');
|
||||
// if (isset($room_user) && $room_user != $room_id && $room_user != 0) {
|
||||
// //根据所在房间状态判断是否要退出房间并且下麦
|
||||
// $roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find();
|
||||
// if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 1){
|
||||
// //退出其他房间
|
||||
// $this->quit_room($user_id, $room_user,$user_id);
|
||||
// }elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 2){//k歌
|
||||
// //他的点歌列表
|
||||
// $song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select();
|
||||
// if(count($song_list) > 0){
|
||||
// foreach ($song_list as $value){
|
||||
// if($value['status'] == 2 && $value['times_status'] == 1){
|
||||
// //切歌
|
||||
// model('api/RoomSong')->change_song($room_id,$value['did']);
|
||||
// }
|
||||
// if($value['status'] == 1){
|
||||
// db::name('vs_room_song')->where(['did' => $value['did']])->update(['status' => 3]);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// //记录用户退出房
|
||||
// $this->quit_room($user_id, $room_user,$user_id);
|
||||
// }elseif($roomInfo['type_id'] == 2){
|
||||
// //是否在拍卖位
|
||||
// $pitNumber = Cache::get('auction_user_'.$room_user);
|
||||
// if(isset($pitNumber) && $pitNumber == $user_id){
|
||||
// //用户在竞拍位 退出且不下麦
|
||||
// //记录用户退出房
|
||||
// db::name('vs_room_visitor')->where(['room_id' => $room_user, 'user_id' => $user_id])->delete();
|
||||
// $nickname = db::name('user')->where('id', $user_id)->value('nickname');
|
||||
// $text['text'] = '用户 ' . $nickname .' 退出了房间';
|
||||
// model('api/Chat')->sendMsg(1002,$room_user,$text,$user_id);
|
||||
// }else{
|
||||
// //退出其他房间
|
||||
// $this->quit_room($user_id, $room_user,$user_id);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
//用户是否在其他房间(重构)
|
||||
//1:其他房间游戏中不让退出 给前端返回房间ID,
|
||||
//2:允许退出,强行退出……
|
||||
|
||||
//K歌模式下获取歌曲信息
|
||||
$song_pit_list = null;
|
||||
|
||||
@@ -35,12 +35,14 @@ class Sign extends Model
|
||||
'sign_type' => 1,//签约房状态:0-等待开始,1-进行中
|
||||
'updatetime' => time()
|
||||
]);
|
||||
$market_value = db::name('user')->where('id', $sign_user_id)->value('market_value');
|
||||
$res = db::name('vs_room_sign')->insertGetId([
|
||||
'room_id' => $room_id,
|
||||
'sign_type' => 1,
|
||||
'end_time' => time() + 60 * 5,//签约时长5分钟
|
||||
'sign_user_id' => $sign_user_id,
|
||||
'sign_day' => $sign_times,
|
||||
'market_value' => $market_value,
|
||||
'createtime' => time()
|
||||
]);
|
||||
if($res){
|
||||
@@ -48,7 +50,7 @@ class Sign extends Model
|
||||
$text['text'] = '开始签约';
|
||||
$text['sign_id'] = $res;
|
||||
$text['sign_day'] = $sign_times;
|
||||
$text['current_body_value'] = db::name('user')->where('id', $sign_user_id)->value('market_value');
|
||||
$text['current_body_value'] = $market_value;
|
||||
$text['end_time'] = time() + 60 * 5;//签约时长5分钟
|
||||
model('api/Chat')->sendMsg(1090,$room_id,$text);
|
||||
|
||||
@@ -219,11 +221,48 @@ class Sign extends Model
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
//签约
|
||||
if($sign_user_type == 2 && $before_sign_user == $max_sign_user['user_id']){
|
||||
$resultt = db::name('vs_user_sign')
|
||||
->where(['id' => $is_sign['id']])
|
||||
->update(['end_time' => time() + $sign_times*24*60*60,'sign_user_type' => $sign_user_type,'type'=>3]);
|
||||
if(!$resultt){
|
||||
//根据被签约的用户类型计算给响应用户的金额
|
||||
//减去平台抽成 剩余的给相应的人
|
||||
$sign_user_cion = $max_sign_user['sign_value'] * (100 - $sign_app_ratio) / 100;//金币数
|
||||
//计算收益
|
||||
$shouyizs = coin_earning($sign_user_cion,100);
|
||||
|
||||
//签过没过期
|
||||
if($sign_user_type == 2){
|
||||
//本次签的还是上次的师傅
|
||||
if($before_sign_user == $max_sign_user['user_id']){
|
||||
$resultt = db::name('vs_user_sign')
|
||||
->where(['id' => $is_sign['id']])
|
||||
->update(['end_time' => time() + $sign_times*24*60*60,'sign_user_type' => $sign_user_type]);
|
||||
if(!$resultt){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}else{
|
||||
$result5 = db::name('vs_user_sign')->where(['id' => $is_sign['id']])
|
||||
->update(['end_time' => time(),'type' => 3]);
|
||||
if(!$result5){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
$data = [
|
||||
'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' => $sign_times*24*60*60,
|
||||
'end_time' => time() + $sign_times*24*60*60,
|
||||
'createtime' => time(),
|
||||
];
|
||||
$result11 = db::name('vs_user_sign')->insert($data);
|
||||
if(!$result11){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
//签过没过期 给上任签约者
|
||||
$result4 = model('api/GiveGift') -> change_user_cion_or_earnings_log($before_sign_user,$shouyizs,$room_id,2,54,'解约补偿');
|
||||
if(!$result4){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
@@ -241,6 +280,33 @@ class Sign extends Model
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
|
||||
if($sign_user_type == 0){
|
||||
//首次签约 给被签约的人
|
||||
$result4 = model('api/GiveGift') -> change_user_cion_or_earnings_log($max_sign_user['sign_user_id'],$shouyizs,$room_id,2,52,'被首次签约成功收入');
|
||||
if(!$result4){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}elseif ($sign_user_type == 1){
|
||||
//签过 给被签约的人分七天给他
|
||||
// 数据插入 循环插入7条数据 day 取值是今天开始连续七天 的每一天的值 到天
|
||||
for ($i = 0; $i < 7; $i++){
|
||||
$data1 = [
|
||||
'user_id' => $max_sign_user['sign_user_id'],
|
||||
'value' => round($shouyizs/7, 4),
|
||||
'day' => date('Y-m-d', strtotime("+$i days")), // 从今天开始连续七天的日期
|
||||
'times' => $i+1,
|
||||
'createtime' => time()
|
||||
];
|
||||
// 插入数据库
|
||||
$result[$i] = db::name('vs_user_sign_task')->insert($data1);
|
||||
if(!$result[$i]){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//查看当前出价用户是否创建家族
|
||||
@@ -287,68 +353,6 @@ class Sign extends Model
|
||||
}
|
||||
}
|
||||
|
||||
//根据被签约的用户类型计算给响应用户的金额
|
||||
//减去平台抽成 剩余的给相应的人
|
||||
$sign_user_cion = $max_sign_user['sign_value'] * (100 - $sign_app_ratio) / 100;//金币数
|
||||
//计算收益
|
||||
$shouyizs = coin_earning($sign_user_cion,100);
|
||||
if($sign_user_type == 0){
|
||||
//首次签约 给被签约的人
|
||||
$result4 = model('api/GiveGift') -> change_user_cion_or_earnings_log($max_sign_user['sign_user_id'],$shouyizs,$room_id,2,52,'被首次签约成功收入');
|
||||
if(!$result4){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}elseif ($sign_user_type == 1){
|
||||
//签过 给被签约的人分七天给他
|
||||
// 数据插入 循环插入7条数据 day 取值是今天开始连续七天 的每一天的值 到天
|
||||
for ($i = 0; $i < 7; $i++){
|
||||
$data1 = [
|
||||
'user_id' => $max_sign_user['sign_user_id'],
|
||||
'value' => round($shouyizs/7, 4),
|
||||
'day' => date('Y-m-d', strtotime("+$i days")), // 从今天开始连续七天的日期
|
||||
'times' => $i+1,
|
||||
'createtime' => time()
|
||||
];
|
||||
// 插入数据库
|
||||
$result[$i] = db::name('vs_user_sign_task')->insert($data1);
|
||||
if(!$result[$i]){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}
|
||||
}elseif ($sign_user_type == 2){
|
||||
////签过没过期 本次签的还是上次的师傅
|
||||
if($before_sign_user == $max_sign_user['user_id']){
|
||||
//这里需要确定给徒弟给多少
|
||||
|
||||
|
||||
|
||||
$sign_user_c = $max_sign_user['sign_value'] * (100 - get_system_config_value('first_sign_app_ratio')) / 100;//金币数
|
||||
$money = coin_earning($sign_user_c,100);
|
||||
$result4 = model('api/GiveGift') -> change_user_cion_or_earnings_log($max_sign_user['sign_user_id'],$money,$room_id,2,54,'解约补偿');
|
||||
if(!$result4){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}else{
|
||||
//签过没过期 给上任签约者
|
||||
$result4 = model('api/GiveGift') -> change_user_cion_or_earnings_log($before_sign_user,$shouyizs,$room_id,2,54,'解约补偿');
|
||||
if(!$result4){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
//上任签约信息修改
|
||||
if($is_sign){
|
||||
$result5 = db::name('vs_user_sign')->where(['id' => $is_sign['id']])
|
||||
->update(['end_time' => time(),'type' => 3]);
|
||||
if(!$result5){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//修改房间信息
|
||||
$res1 = db::name('vs_room')->where('id',$room_id)->update([
|
||||
'sign_type' => 0,
|
||||
@@ -371,8 +375,8 @@ class Sign extends Model
|
||||
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
|
||||
}
|
||||
|
||||
//获取用户的身价
|
||||
$market_value = db::name('user')->where('id',$sign_user_id)->value('market_value');
|
||||
//获取用户签约开始的身价
|
||||
$market_value = $sign['market_value'];
|
||||
$sign_values = $max_sign_user['sign_value'] - $market_value;
|
||||
//更新用户的身价并且添加记录 此时增长的身价是出价 这个出价就是身价溢价
|
||||
$dd = model('api/MarketValue')->change($sign_user_id,$sign_values,3);
|
||||
|
||||
Reference in New Issue
Block a user