コード例 #1
0
ファイル: campaign.php プロジェクト: vNative/vnative
 public static function performance($id, $extra = [])
 {
     $stats = [];
     $start = $end = date('Y-m-d');
     $match = ['adid' => Db::convertType($id), 'is_bot' => false];
     $user_id = $extra['pid'] ?? null;
     if ($user_id) {
         $match["pid"] = Db::convertType($user_id);
     }
     if (isset($extra['start']) && isset($extra['end'])) {
         $start = $extra['start'];
         $end = $extra['end'];
     }
     $diff = date_diff(date_create($start), date_create($end));
     $dateWise = $extra['meta'] ?? true;
     // by default datewise query
     if ($dateWise) {
         for ($i = 0; $i <= $diff->format("%a"); $i++) {
             $date = date('Y-m-d', strtotime($start . " +{$i} day"));
             $stats[$date] = ['clicks' => 0, 'meta' => []];
             $match['created'] = Db::dateQuery($date, $date);
             $records = self::_perfQuery($match, $extra);
             self::_getStats($records, $stats, $date);
         }
     } else {
         $match['created'] = Db::dateQuery($start, $end);
         $stats[$start] = ['clicks' => 0, 'meta' => []];
         $records = self::_perfQuery($match, $extra);
         self::_getStats($records, $stats, $start);
     }
     $records = self::earning($stats, $id, $user_id);
     $total = Performance::calTotal($records);
     return ['stats' => $records, 'total' => $total];
 }