auction_end_notice();//拍卖房结束提醒 echo "\n"; echo "Pk房连线中倒计时结束操作PK结束:\n"; $this->pk_start_end(); echo "\n"; echo "Pk房PK进行中倒计时结束操作PK结束:\n"; $this->pk_end(); echo "\n"; echo "Pk房PK结束惩罚倒计时结束断开操作:\n"; $this->pk_close(); echo "\n"; echo "pk发起10秒后无应答拒绝:\n"; $this->pk_start_refuse(); echo "\n"; // echo "提现云账号订单状态查询:\n"; // $this->withdraw_order_status(); // echo "\n"; } //拍卖房结束提醒 protected function auction_end_notice() { $auction_list = db::name('vs_room_auction')->where(['status'=>2,'duration' => ['<',time()]])->select(); $data_count = 0; if($auction_list){ foreach ($auction_list as &$value){ model('api/RoomAuction')->room_auction_end($value['room_id'],$value['auction_id']); $data_count++; } } echo "拍卖结束提醒完成-共" . $data_count . "条数据\n"; } //pk发起10秒后无应答拒绝 protected function pk_start_refuse() { $pk_list = db::name('vs_room_pk')->where(['status'=>1])->select(); $data_count = 0; if($pk_list){ foreach ($pk_list as &$value){ if($value['createtime'] + 10 <= time()){ //pk发起10秒后无应答拒绝 model('api/RoomPk')->accept_pk($value['pk_id'],2); $data_count++; } } } echo "pk发起10秒后无应答拒绝-共". $data_count . "条数据\n"; } //Pk房连线中倒计时结束操作PK结束 protected function pk_start_end() { $pk_list = db::name('vs_room_pk')->where(['status'=>2])->select(); $data_count = 0; if($pk_list){ foreach ($pk_list as &$value){ if($value['updatetime'] + 300 <= time()){ //pk结束 model('api/RoomPk')->end_pk($value['pk_id'],4); } $data_count++; } } echo "Pk房连线中倒计时结束操作PK结束-共". $data_count . "条数据\n"; } //Pk房PK进行中倒计时结束操作PK结束 protected function pk_end() { $pk_list = db::name('vs_room_pk')->where(['status'=>3])->select(); $data_count = 0; if($pk_list){ foreach ($pk_list as &$value){ if($value['start_time'] + $value['pk_times'] * 60 <= time()){ //pk结束 model('api/RoomPk')->end_pk($value['pk_id']); } $data_count++; } } echo "Pk房PK进行中倒计时结束操作PK结束-共". $data_count . "条数据\n"; } //Pk房PK结束惩罚倒计时结束断开操作 protected function pk_close() { $pk_list = db::name('vs_room_pk')->where(['status'=>['in',[4,7]]])->select(); $data_count = 0; if($pk_list){ foreach ($pk_list as &$value){ if($value['updatetime'] + 300 <= time()){ //断开操作 model('api/RoomPk')->end_pk($value['pk_id'],2); } $data_count++; } } echo "Pk房PK结束惩罚倒计时结束断开操作-共". $data_count . "条数据\n"; } /* * 提现云账号订单状态查询 */ public function withdraw_order_status(){ //一个月内的数据 $time = time() - 7 * 86400; $withdrawal = db::name('vs_user_withdrawal')->where(['deal_type'=>2,'status'=>['in',[4,5]]])->where(['submit_yun_time'=>['>=',$time]])->select(); echo "提现云账号订单状态查询条数(".count($withdrawal)."):\n"; foreach ($withdrawal as $key => $value) { if($value['status'] == 5){ if((time()-$value['pay_time']) >= 3600){ continue; } } echo "提现订单查询:".$value['order_sn']."\n"; $yun_pay = new YunPay($value['order_sn'], "", "", "", "",""); $result = $yun_pay->queryOrder($value['type']); if($result['code'] == 1){ if($result['data']['code']==0){ db::name('vs_user_withdrawal')->where('order_sn',$value['order_sn'])->update([ 'status' => 6, 'pay_time' => time(), 'pay_message' => $result['data']['msg'], 'updatetime' => time() ]); }else{ db::name('vs_user_withdrawal')->where('order_sn',$value['order_sn'])->update([ 'status' => 5, 'pay_time' => time(), 'pay_message' => $result['data']['msg'], 'updatetime' => time() ]); } echo "提现订单查询成功:".$result['msg']."\n"; }else{ echo "提现订单查询失败:".$result['msg']."\n"; } } } //清除交友房过期未结束数据 public function clearFriendingEndRoom() { //清除交友房过期数据 $room_list = UserRoom::where(['label_id'=>108])->whereIn('step', [2,3]) ->select(['id','room_name','cover_picture','step','status'])->get()->toArray(); if(!empty($room_list)){ foreach ($room_list as $room) { //查询交友信息 $friending_info = UserFriending::where('room_id', $room['id'])->where('status', 1)->orderBy('id', 'desc')->first(); 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']."成功 "; } } } } //清除私密小屋过期数据 $where = [ ['state', '=', 1], ['label_id', '=', 200], ]; $room_list = UserRoom::where($where) ->select(['id','room_name','pid_room_id','private_room_end_time'])->get()->toArray(); 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']."退出成功"; } } } } } }