webman/app/dao/UserPhoneLogDao.php

55 lines
2.1 KiB
PHP
Raw Normal View History

<?php
namespace app\dao;
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();
}
}
}