Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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());
 }
Ejemplo n.º 4
0
 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');
 }
Ejemplo n.º 5
0
 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());
 }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 7
0
 public function unusedTraffic()
 {
     $total = $this->attributes['u'] + $this->attributes['d'];
     $enable = $this->attributes['transfer_enable'];
     return Tools::flowAutoShow($enable - $total);
 }
Ejemplo n.º 8
0
 /**
  * @return string
  */
 public function traffic()
 {
     return Tools::flowAutoShow($this->attributes['traffic']);
 }
Ejemplo n.º 9
0
 public function totalUsed()
 {
     return Tools::flowAutoShow($this->attributes['u'] + $this->attributes['d']);
 }
Ejemplo n.º 10
0
 public function getTrafficUsage()
 {
     $total = User::sum('u') + USer::sum('d');
     return Tools::flowAutoShow($total);
 }
Ejemplo n.º 11
0
 public function totalTraffic()
 {
     $u = User::all()->sum('u');
     $d = User::all()->sum('d');
     return Tools::flowAutoShow($u + $d);
 }
Ejemplo n.º 12
0
 public function testFlow()
 {
     $traffic = 100;
     $this->assertEquals(100, Tools::flowAutoShow($traffic));
 }