交友房 房间内送礼 增加结束时间 定时任务处理到期未操作数据(交友结束,私密房到期退出)
This commit is contained in:
@@ -80,24 +80,25 @@ class Friend extends Model
|
||||
}
|
||||
|
||||
//交友结束(结束牵手良缘)
|
||||
public function end_friend($user_id,$room_id,$id){
|
||||
// 判断用户是否在主持麦
|
||||
$host = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9,'user_id' => $user_id])->find();
|
||||
if(!$host){
|
||||
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
|
||||
}
|
||||
|
||||
public function end_friend($user_id,$room_id,$id,$is_system = 0){
|
||||
if (!$id || !$room_id) {
|
||||
return ['code' => 0, 'msg' => '参数有误!', 'data' => null];
|
||||
}
|
||||
|
||||
if($is_system == 0){
|
||||
// 判断用户是否在主持麦
|
||||
$host = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9,'user_id' => $user_id])->find();
|
||||
if(!$host){
|
||||
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
|
||||
}
|
||||
}
|
||||
|
||||
// 获取心动值最高的
|
||||
$originalPairs = db::name('vs_user_friending_heart')
|
||||
->where(['room_id'=>$room_id,'friend_id'=>$id ,'status' =>1])
|
||||
->order('heart_value DESC')->find();
|
||||
$friend_heart_value = get_system_config_value('friend_heart_value');
|
||||
if($originalPairs && $originalPairs['heart_value'] >= $friend_heart_value){
|
||||
$return['is_cp'] = 1;//卡关系
|
||||
$step = 3;//结束进入牵手良缘卡关系
|
||||
//心动值达到伐值 返回用户信息与关系列表
|
||||
$return['user1_id'] =$originalPairs['user1_id'];
|
||||
@@ -109,8 +110,6 @@ class Friend extends Model
|
||||
$return['heart_value'] = $originalPairs['heart_value'];
|
||||
$return['heart_id'] = $originalPairs['id'];
|
||||
}else{
|
||||
$return = [];
|
||||
$return['is_cp'] = 0;//不卡关系
|
||||
$step = 1;//结束下一轮
|
||||
//所有人下麦
|
||||
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => ['<',7],'user_id' => ['<>',0]])->select();
|
||||
@@ -119,6 +118,7 @@ class Friend extends Model
|
||||
model('RoomPit')->DownPit($pit['user_id'], $room_id,$pit['pit_number']);
|
||||
}
|
||||
}
|
||||
$return = null;
|
||||
}
|
||||
|
||||
//结束交友游戏
|
||||
@@ -128,6 +128,7 @@ class Friend extends Model
|
||||
//推送给前端消息
|
||||
$text['text'] = $step == 1 ? '交友结束' : '牵手良缘';
|
||||
$text['step'] = $step;//1 等待邂逅 2 心动连线 3 牵手良缘
|
||||
$text['friend_user'] = $return;
|
||||
model('api/Chat')->sendMsg(1049,$room_id,$text);
|
||||
// 修改当前交友阶段
|
||||
db::name('vs_room')->where(['id' => $room_id])->setField('step', $step);
|
||||
@@ -157,6 +158,20 @@ class Friend extends Model
|
||||
if($room_id['code'] != 1){
|
||||
return ['code' => 0, 'msg' => 'cp电影房创建失败,请联系管理员','data' => null];
|
||||
}
|
||||
|
||||
//记录小房间
|
||||
$datda = [
|
||||
'room_id' => $room_id['data'],
|
||||
'relation_id' => $friending_config_id,
|
||||
'user_id' => $user1,
|
||||
'user_id1' => $user2,
|
||||
'time_day' => get_system_config_value('friend_heart_time_day'),
|
||||
'createtime' => time(),
|
||||
'status' => 1,
|
||||
'type' => 1
|
||||
];
|
||||
db::name('vs_room_cp_movie')->insert($datda);
|
||||
|
||||
if($room_id['data']){
|
||||
$text['text'] = '交友结束并创建房间';
|
||||
$text['relation_name'] = $relation;
|
||||
|
||||
@@ -573,6 +573,24 @@ class GiveGift extends Model
|
||||
Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->setInc('hot_value',$gift_totalaa);
|
||||
Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->setInc('today_hot_value',$gift_totalaa);
|
||||
|
||||
$roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id');
|
||||
if($roomtype == 6){
|
||||
//推送消息 交友房创建的私密房 倒计时增加
|
||||
$value = db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)
|
||||
->value('time_day');
|
||||
if($value){
|
||||
db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)
|
||||
->setInc('time_day', $gift_total);
|
||||
$text111 = [
|
||||
'room_id' => $from_id,
|
||||
'time_day' => db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)->value('time_day'),
|
||||
'text' => '房间结束时间变化'
|
||||
];
|
||||
//聊天室推送系统消息
|
||||
model('Chat')->sendMsg(1052,$from_id,$text111);
|
||||
}
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
return ['code' => 1, 'msg' => '送礼成功', 'data' => ['gift_total' => $gift_total]];
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@ class PerformPerSecond
|
||||
// echo "提现云账号订单状态查询:\n";
|
||||
// $this->withdraw_order_status();
|
||||
// echo "\n";
|
||||
echo "清除交友房过期未结束数据:\n";
|
||||
$this->clearFriendingEndRoom();
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
|
||||
@@ -169,106 +172,25 @@ class PerformPerSecond
|
||||
public function clearFriendingEndRoom()
|
||||
{
|
||||
//清除交友房过期数据
|
||||
$room_list = UserRoom::where(['label_id'=>108])->whereIn('step', [2,3])
|
||||
->select(['id','room_name','cover_picture','step','status'])->get()->toArray();
|
||||
$room_list = db::name('vs_room')->where(['type_id'=>7])->whereIn('step', [2,3])
|
||||
->field(['id','room_name','room_cover','step'])->select();
|
||||
if(!empty($room_list)){
|
||||
foreach ($room_list as $room) {
|
||||
//查询交友信息
|
||||
$friending_info = UserFriending::where('room_id', $room['id'])->where('status', 1)->orderBy('id', 'desc')->first();
|
||||
$friending_info = db::name('vs_user_friending')->where('room_id', $room['id'])->where('status', 1)->order('id', 'desc')->find();
|
||||
if($friending_info){
|
||||
//判断结束时间是否到期
|
||||
if($friending_info['end_time'] < time()){
|
||||
//获取心动值
|
||||
$originalPairs = app('model_user_friending_heart')
|
||||
->where(['room_id' => $room['id'], 'status' => 1,'contact_end_time'=>0,'friend_id'=>$friending_info['id']])
|
||||
->orderBy('heart_value', 'desc')
|
||||
->first();
|
||||
$is_end = 1;
|
||||
if($originalPairs && $originalPairs['heart_value'] >= 9999){
|
||||
//结束时间超过五分钟
|
||||
if($room['step'] ==3 && (time() - $friending_info['end_time']) > 300 ){
|
||||
//卡无关系
|
||||
//剩余天数 10000心动值等于3天
|
||||
$friendendtime = time() + $originalPairs['heart_value'] / 10000 * 3 * 86400;
|
||||
//更新关系结束时间
|
||||
app('model_user_friending_heart')->where(['id'=>$originalPairs['id']])->update(['contact_end_time'=>$friendendtime,'friend_config_id'=>1,'status' => 3]);
|
||||
}else{
|
||||
if($room['status']==1){
|
||||
//给客户端推送-让客户端调用拉起卡关系接口
|
||||
$push = new PushService(0, $room['id']);
|
||||
$push->friendGameOver(['room_id'=>$room['id'],'friend_id'=>$friending_info['id'],'heart_value'=>$originalPairs['heart_value'],'user1_id'=>$originalPairs['user1_id'],'user2_id'=>$originalPairs['user2_id']]);
|
||||
$push->stage($room['id'],3);//1 等待邂逅 2 心动连线 3 牵手良缘
|
||||
// 修改当前交友阶段 (用原相亲房已进行到第几步字段-step)
|
||||
UserRoom::where(['id' => $room['id']])->update(['step' => 3,'status'=>2]);
|
||||
$is_end = 0;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
for($i=1;$i<=6;$i++){
|
||||
$pit_info = app('model_room_pit')->getRoomPitUser($room['id'], $i);
|
||||
if($pit_info){
|
||||
if($pit_info->user_id){
|
||||
RedisService::setPit($room['id'], $pit_info->pit_number, 0);
|
||||
app('model_room_pit')->getDownPit($room['id'],$pit_info->user_id, $pit_info->pit_number);
|
||||
}
|
||||
}
|
||||
}
|
||||
//结束交友游戏
|
||||
if($is_end){
|
||||
UserFriending::where(['id' => $friending_info['id']])->update(['status' => 2]);
|
||||
// 修改当前交友阶段 (用原相亲房已进行到第几步字段-step)
|
||||
UserRoom::where(['id' => $room['id']])->update(['step' => 1,'status'=>1]);
|
||||
}
|
||||
$push = new PushService(0, $room['id']);
|
||||
$push->stage($room['id'],1);//1 等待邂逅 2 心动连线 3 牵手良缘
|
||||
echo "结束交友游戏房 ".$room['room_name'].$room['id']."成功 ";
|
||||
if($friending_info['end_time'] <= time()){
|
||||
model('Friend')->end_friend(0,$room['id'],$friending_info['id'],1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//清除私密小屋过期数据
|
||||
$where = [
|
||||
['state', '=', 1],
|
||||
['label_id', '=', 200],
|
||||
];
|
||||
$room_list = UserRoom::where($where)
|
||||
->select(['id','room_name','pid_room_id','private_room_end_time'])->get()->toArray();
|
||||
$room_list = db::name('vs_room_cp_movie')->where(['type'=>1,'time_day' =>['<',time()]])->select();
|
||||
if(!empty($room_list)){
|
||||
foreach ($room_list as $room) {
|
||||
if($room['private_room_end_time']< time()){
|
||||
$heart = app('model_user_friending_heart')->where(['room_id' => $room['pid_room_id'], 'status' => 3,'contact_end_time'=>0])->get();
|
||||
foreach ($heart as $value) {
|
||||
//剩余天数 10000心动值等于3天
|
||||
$friendendtime = time() + $value['heart_value'] / 10000 * 3 * 86400;
|
||||
//更新关系结束时间
|
||||
app('model_user_friending_heart')->where(['id'=>$value['id']])->update(['contact_end_time'=>$friendendtime]);
|
||||
//退出房间
|
||||
$push = new PushService(0, $room['id']);
|
||||
$user_room_join = app('model_room_join')->where(['room_id' => $room['id']])->select();
|
||||
foreach ($user_room_join as $k=>$v){
|
||||
//退出房间
|
||||
app('repo_room')->quitRoomAction($room['id'],$v['user_id'],3);
|
||||
}
|
||||
$num = UserRoom::where(['label_id'=>200,'state'=>1,'pid_room_id'=>$room['pid_room_id']])->count();
|
||||
$push->blackRoom($room['pid_room_id'],$user_room_join,2,$num-1,$value['id'],$value['heart_value']);
|
||||
//注销房间
|
||||
// $emchat = new Emchat();
|
||||
// $emchat->deleteChatRoom($room['chatrooms']);
|
||||
UserRoom::where(["id"=>$room['id']])->update(['state'=>0]);
|
||||
//查找这一对是否有cp(送大金表)
|
||||
$user1 = min($value['user1_id'], $value['user2_id']);
|
||||
$user2 = max($value['user1_id'], $value['user2_id']);
|
||||
$cp = D('user_cp')->where(['user1_id'=>$user1,'user2_id'=>$user2])->find();
|
||||
if($cp){
|
||||
//给cp表加心动值
|
||||
$cp['heart_value'] += $value['heart_value'];
|
||||
D('user_cp')->where(['id'=>$cp['id']])->save(['heart_value'=>$cp['heart_value']]);
|
||||
}
|
||||
|
||||
echo "私密小屋".$room['room_name']." ID:".$room['id']."退出成功";
|
||||
}
|
||||
}
|
||||
model('Friend')->outRoom(0,$room['room_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user