2025-08-13 10:43:56 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace app\cron\controller;
|
|
|
|
|
|
|
|
|
|
|
|
use think\Db;
|
|
|
|
|
|
use Yzh\YunPay;
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
* 定时任务,每秒执行的方法
|
|
|
|
|
|
*/
|
|
|
|
|
|
class PerformPerSecond
|
|
|
|
|
|
{
|
|
|
|
|
|
/*
|
|
|
|
|
|
* 运行函数
|
|
|
|
|
|
*/
|
|
|
|
|
|
function index()
|
|
|
|
|
|
{
|
|
|
|
|
|
echo "拍卖房结束提醒:\n";
|
|
|
|
|
|
$this->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";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-21 15:22:03 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//清除交友房过期未结束数据
|
|
|
|
|
|
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']."退出成功";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-13 10:43:56 +08:00
|
|
|
|
}
|