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(); } } }