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); }
public function testTrafficLogMethod() { $log = TrafficLog::first(); $log->node(); $log->totalUsed(); $log->logTime(); }
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 trafficLog($request, $response, $args) { $pageNum = 1; if (isset($request->getQueryParams()["page"])) { $pageNum = $request->getQueryParams()["page"]; } $logs = TrafficLog::orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum); $logs->setPath('/admin/trafficlog'); return $this->view()->assign('logs', $logs)->display('admin/trafficlog.tpl'); }
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 trafficLog($request, $response, $args) { $pageNum = 1; if (isset($request->getQueryParams()["page"])) { $pageNum = $request->getQueryParams()["page"]; } $traffic = TrafficLog::where('user_id', $this->user->id)->orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum); $traffic->setPath('/user/trafficlog'); return $this->view()->assign('logs', $traffic)->display('user/trafficlog.tpl'); }