Git inicializacia
This commit is contained in:
99
app/Http/Controllers/Network.php
Normal file
99
app/Http/Controllers/Network.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Response;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class Network extends Controller
|
||||
{
|
||||
public function csv(Request $request){
|
||||
$headers = [
|
||||
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0'
|
||||
, 'Content-type' => 'text/csv'
|
||||
, 'Content-Disposition' => 'attachment; filename=network.csv'
|
||||
, 'Expires' => '0'
|
||||
, 'Pragma' => 'public'
|
||||
];
|
||||
|
||||
$sd = $request->input("start");
|
||||
$ed = $request->input("end");
|
||||
$u = $request->input("user");
|
||||
$c = $request->input("computer");
|
||||
|
||||
$wh = [];
|
||||
|
||||
if ($u != '') $wh[] = ['user', '=', $u];
|
||||
if ($sd != '') $wh[] = ['date', '>=', $sd];
|
||||
if ($sd != '') $wh[] = ['date', '<=', $ed];
|
||||
$queries = DB::table('network')->where($wh)->get();
|
||||
|
||||
$list = $queries->toArray();
|
||||
|
||||
$callback = function() use ($list)
|
||||
{
|
||||
$FH = fopen('php://output', 'w');
|
||||
fputcsv($FH, ['Date','User','Computer','Recv','Send']);
|
||||
$first = true;
|
||||
$recv = 0;
|
||||
$send = 0;
|
||||
|
||||
foreach ($list as $r) {
|
||||
|
||||
$in = $r->recv - $recv;
|
||||
$out = $r->send - $send;
|
||||
|
||||
if ($in > 1000000000 || $in < 0 ||
|
||||
$out > 1000000000 || $out < 0 ||
|
||||
$first == true) {
|
||||
$in = $out = 0;
|
||||
}
|
||||
// date - r->date > 300 -> date + 300 = 0
|
||||
if (!$first) {
|
||||
$d1 = new \DateTime($r->date);
|
||||
$d2 = new \DateTime($date);
|
||||
|
||||
$diff = $d1->getTimestamp() - $d2->getTimestamp();
|
||||
|
||||
$in = $in / $diff;
|
||||
$out = $out / $diff;
|
||||
|
||||
if ($diff > 500) {
|
||||
$in = $out = 0;
|
||||
$ts = $d2->getTimestamp() + 300;
|
||||
$ndate = new \DateTime();
|
||||
$ndate->setTimestamp($ts);
|
||||
$ndate = $ndate->format('Y-m-d H:i:s');
|
||||
fputcsv($FH, [$ndate,$r->user,$r->computer,$in,$out]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fputcsv($FH, [$r->date,$r->user,$r->computer,$in,$out]);
|
||||
|
||||
$recv = $r->recv;
|
||||
$send = $r->send;
|
||||
$date = $r->date;
|
||||
$first = false;
|
||||
}
|
||||
fclose($FH);
|
||||
};
|
||||
|
||||
|
||||
return Response::stream($callback, 200, $headers);
|
||||
|
||||
}
|
||||
|
||||
public function search(Request $request){
|
||||
|
||||
$sd = $request->input("start_date");
|
||||
$ed = $request->input("end_date");
|
||||
$u = $request->input("user");
|
||||
$c = $request->input("computer");
|
||||
|
||||
return view('graph', ['start' => $sd, 'end' => $ed, 'user'=> $u]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user