71 lines
2.6 KiB
PHP
71 lines
2.6 KiB
PHP
<?php
|
||
|
||
namespace app\dao;
|
||
|
||
use app\model\UserPhone;
|
||
use app\model\UserPhoneLog;
|
||
/**
|
||
* 手机号在线时长日志
|
||
*/
|
||
class UserPhoneLogDao{
|
||
/**
|
||
* 获取手机号 今天在线时长 单位秒
|
||
*/
|
||
public static function getOnlineTimeByPhoneToday($phone){
|
||
$today = date('Y-m-d');
|
||
$OnlineTime=UserPhoneLog::where('phone',$phone)->where('created_at', '>=', $today." 00:00:00")->sum('time');
|
||
return $OnlineTime;
|
||
}
|
||
/**
|
||
* 自动处理time
|
||
* phone 手机号
|
||
* status — 是否在线 1: 在线,0: 不在线
|
||
* currentTimestamp 考虑到运行性能差别 使用传递过来的时间戳
|
||
*/
|
||
public static function setOnlineTimeByPhone($phone,$status,$currentTimestamp){
|
||
//这里因为和api的返回是反的所以需要这样
|
||
$status=$status==0?1:0;
|
||
$today = date('Y-m-d');
|
||
// $UserPhoneLog=UserPhoneLog::where('phone',$phone)->where('created_at', '>=', $today." 00:00:00")->limit(2)->orderByDesc('id')->get();
|
||
$UserPhoneLog=UserPhoneLog::where('phone',$phone)->where('created_at', '>=', $today." 00:00:00")->orderBy('id', 'desc')->first();
|
||
if(empty($UserPhoneLog)){
|
||
echo("kong");
|
||
$new_UserPhoneLog=new UserPhoneLog();
|
||
$new_UserPhoneLog->status=$status;
|
||
$new_UserPhoneLog->phone=$phone;
|
||
$new_UserPhoneLog->time=0;
|
||
$new_UserPhoneLog->save();
|
||
return;
|
||
}
|
||
if($UserPhoneLog->status==1&&$status==1){
|
||
echo("kong1");
|
||
$new_UserPhoneLog=new UserPhoneLog();
|
||
$new_UserPhoneLog->status=$status;
|
||
$new_UserPhoneLog->phone=$phone;
|
||
$new_UserPhoneLog->time=$currentTimestamp-strtotime($UserPhoneLog->created_at);
|
||
$new_UserPhoneLog->save();
|
||
echo($currentTimestamp-strtotime($UserPhoneLog->created_at));
|
||
}else{
|
||
echo("kong2");
|
||
$new_UserPhoneLog=new UserPhoneLog();
|
||
$new_UserPhoneLog->status=$status;
|
||
$new_UserPhoneLog->phone=$phone;
|
||
$new_UserPhoneLog->time=0;
|
||
$new_UserPhoneLog->save();
|
||
}
|
||
}
|
||
/**
|
||
* 根据用户id查询 是否有手机号在线时间大于6小时
|
||
* 有返回 true 没用返回false
|
||
*/
|
||
public static function getOnlineTimeByPhoneTodayId($user_id){
|
||
$today = date('Y-m-d');
|
||
$user_phones=UserPhone::where('user_id',$user_id)->get();
|
||
foreach($user_phones as $v){
|
||
if(self::getOnlineTimeByPhoneToday($v->phone)>60*60*6){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
} |