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]; }