コード例 #1
0
ファイル: performance.php プロジェクト: vNative/vnative
 /**
  * Find the Performance of Affiliates|Advertisers of an organization
  * @param  object $org  \Organization
  * @param  string $type Type of user
  * @return [type]       [description]
  */
 public static function perf($org, $type, $opts = [])
 {
     $start = $opts['start'] ?? RequestMethods::get('start', date('Y-m-d', strtotime("-5 day")));
     $end = $opts['end'] ?? RequestMethods::get('end', date('Y-m-d', strtotime("-1 day")));
     switch ($type) {
         case 'publisher':
             $perfFields = $opts['fields'] ?? ['clicks', 'impressions', 'conversions', 'revenue', 'created'];
             $meta = $opts['meta'] ?? false;
             if ($meta) {
                 $perfFields[] = 'meta';
             }
             $publishers = $opts['publishers'] ?? $org->users($type);
             $pubPerf = Perf::all(['user_id' => ['$in' => $publishers], 'created' => Db::dateQuery($start, $end)], $perfFields, 'created', 'asc');
             $pubPerf = Perf::objectArr($pubPerf, $perfFields);
             return $pubPerf;
         case 'advertiser':
             $advertisers = $opts['advertisers'] ?? $org->users($type);
             $fields = $opts['fields'] ?? ['revenue', 'created'];
             $advertPerf = Perf::all(['user_id' => ['$in' => $advertisers], 'created' => Db::dateQuery($start, $end)], $fields, 'created', 'asc');
             $advertPerf = Perf::objectArr($advertPerf, $fields);
             return $advertPerf;
     }
     return [];
 }