Exemplo 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);
 }
Exemplo n.º 2
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());
 }
Exemplo n.º 3
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);
 }