public function postTraffic($request, $response, $args) { $nodeId = $args['id']; $node = Node::find($nodeId); $rate = $node->traffic_rate; $input = $request->getBody(); $datas = json_decode($input, true); foreach ($datas as $data) { $user = User::find($data['user_id']); $user->t = time(); $user->u = $user->u + $data['u'] * $rate; $user->d = $user->d + $data['d'] * $rate; $user->save(); // log $totalTraffic = Tools::flowAutoShow(($data['u'] + $data['d']) * $rate); $traffic = new TrafficLog(); $traffic->user_id = $data['user_id']; $traffic->u = $data['u']; $traffic->d = $data['d']; $traffic->node_id = $nodeId; $traffic->rate = $rate; $traffic->traffic = $totalTraffic; $traffic->log_time = time(); $traffic->save(); } $res = ["ret" => 1, "msg" => "ok"]; return $this->echoJson($response, $res); }
function getTrafficFromLogs() { $id = $this->attributes['id']; $traffic = TrafficLog::where('node_id', $id)->sum('u') + TrafficLog::where('node_id', $id)->sum('d'); if ($traffic == 0) { return "暂无数据"; } return Tools::flowAutoShow($traffic); }
public function testCheckInLog() { $log = new CheckInLog(); $log->user_id = 1; $log->checkin_at = time(); $log->traffic = 1024; $log->save(); $this->assertEquals(Tools::toDateTime($log->checkin_at), $log->CheckInTime()); $this->assertEquals(Tools::flowAutoShow($log->traffic), $log->traffic()); }
public function traffic($request, $response, $args) { $id = $args['id']; $counts = TrafficCount::where('user_id', '=', $id)->get(); foreach ($counts as $counter) { $counter->u = Tools::flowAutoShow($counter->u); $counter->d = Tools::flowAutoShow($counter->d); $counter->v = Tools::flowAutoShow($counter->v); } return $this->view()->assign('counts', $counts)->display('admin/user/traffic.tpl'); }
public function testNewTrafficLog() { // log $u = 1024; $d = 1024; $rate = 1; $id = 1; $nodeId = 1; $totalTraffic = Tools::flowAutoShow(($u + $d) * $rate); $traffic = new TrafficLog(); $traffic->user_id = $id; $traffic->u = $u; $traffic->d = $d; $traffic->node_id = $nodeId; $traffic->rate = $rate; $traffic->traffic = $totalTraffic; $traffic->log_time = time(); $this->assertEquals(true, $traffic->save()); }
public function addTraffic($request, $response, $args) { // $data = json_decode($request->getParsedBody(),true); $id = $args['id']; $u = $request->getParam('u'); $d = $request->getParam('d'); $nodeId = $request->getParam('node_id'); $node = Node::find($nodeId); $rate = $node->traffic_rate; $user = User::find($id); $user->t = time(); $user->u = $user->u + $u * $rate; $user->d = $user->d + $d * $rate; if (!$user->save()) { $res = ["msg" => "update failed"]; return $this->echoJson($response, $res, 400); } // log $totalTraffic = Tools::flowAutoShow(($u + $d) * $rate); $traffic = new TrafficLog(); $traffic->user_id = $id; $traffic->u = $u; $traffic->d = $d; $traffic->node_id = $nodeId; $traffic->rate = $rate; $traffic->traffic = $totalTraffic; $traffic->log_time = time(); $traffic->save(); $res = ["ret" => 1, "msg" => "ok"]; if (Config::get('log_traffic_dynamodb')) { try { $client = new DynamoTrafficLog(); $id = $client->store($u, $d, $nodeId, $id, $totalTraffic, $rate); $res["id"] = $id; } catch (\Exception $e) { $res["msg"] = $e->getMessage(); Logger::error($e->getMessage()); } } return $this->echoJson($response, $res); }
public function unusedTraffic() { $total = $this->attributes['u'] + $this->attributes['d']; $enable = $this->attributes['transfer_enable']; return Tools::flowAutoShow($enable - $total); }
/** * @return string */ public function traffic() { return Tools::flowAutoShow($this->attributes['traffic']); }
public function totalUsed() { return Tools::flowAutoShow($this->attributes['u'] + $this->attributes['d']); }
public function getTrafficUsage() { $total = User::sum('u') + USer::sum('d'); return Tools::flowAutoShow($total); }
public function totalTraffic() { $u = User::all()->sum('u'); $d = User::all()->sum('d'); return Tools::flowAutoShow($u + $d); }
public function testFlow() { $traffic = 100; $this->assertEquals(100, Tools::flowAutoShow($traffic)); }