Code Duplication    Length = 51-51 lines in 2 locations

core/process/queries/QueryManagerMysqlMonocleAlternate.php 1 location

@@ 505-555 (lines=51) @@
502
	// Trainers
503
	//////////////
504
505
	public function getTrainers($trainer_name, $team, $page, $ranking) {
506
		$ranking = $this->getTrainerLevelRanking();
507
		$where = "";
508
		if (!empty(self::$config->system->trainer_blacklist)) {
509
			$where .= " AND gd.owner_name NOT IN ('".implode("','", self::$config->system->trainer_blacklist)."')";
510
		}
511
		if ($trainer_name != "") {
512
			$where = " AND gd.owner_name LIKE '%".$trainer_name."%'";
513
		}
514
		if ($team != 0) {
515
			$where .= ($where == "" ? " HAVING" : " AND")." team = ".$team;
516
		}
517
		switch ($rankingNumber) {
518
			case 1:
519
				$order = " ORDER BY ABS(active) DESC, level DESC";
520
				break;
521
			case 2:
522
				$order = " ORDER BY maxCp DESC, level DESC";
523
				break;
524
			default:
525
				$order = " ORDER BY level DESC, active DESC";
526
		}
527
		$order .= ", last_seen DESC, name ";
528
		$limit = " LIMIT ".($page * 10).",10 ";
529
		$req = "SELECT gd.owner_name AS name, MAX(owner_level) as level, MAX(cp) as maxCp, active, team, FROM_UNIXTIME(MAX(last_modified)) as last_seen
530
				  	FROM gym_defenders gd
531
				  	LEFT JOIN (
532
				  		SELECT owner_name, COUNT(*) as active
533
				  		FROM gym_defenders gd2
534
						WHERE fort_id IS NOT NULL
535
				  		GROUP BY owner_name
536
				  	) active ON active.owner_name = gd.owner_name
537
				  	WHERE gd.owner_level IS NOT NULL " . $where . "
538
				  	GROUP BY gd.owner_name" . $order  . $limit;
539
		$result = $this->mysqli->query($req);
540
		$trainers = array();
541
		while ($data = $result->fetch_object()) {
542
			$data->last_seen = date("Y-m-d", strtotime($data->last_seen));
543
            if (is_null($data->active)) {
544
                $data->active = 0;
545
            }
546
			$trainers[$data->name] = $data;
547
548
			$pokemon = array_merge($this->getActivePokemon($data->name),  $this->getInactivePokemon($data->name));
549
550
			$trainers[$data->name]->gyms = $data->active;
551
			$trainers[$data->name]->pokemons = $pokemon;
552
			$trainers[$data->name]->rank = $ranking[$data->level];
553
		}
554
		return $trainers;
555
	}
556
557
	public function getTrainerLevelRanking() {
558
		$exclue = "";

core/process/queries/QueryManagerPostgresqlMonocleAlternate.php 1 location

@@ 509-559 (lines=51) @@
506
	// Trainers
507
	//////////////
508
509
	public function getTrainers($trainer_name, $team, $page, $ranking) {
510
		$ranking = $this->getTrainerLevelRanking();
511
		$where = "";
512
		if (!empty(self::$config->system->trainer_blacklist)) {
513
			$where .= " AND gd.owner_name NOT IN ('".implode("','", self::$config->system->trainer_blacklist)."')";
514
		}
515
		if ($trainer_name != "") {
516
			$where = " AND gd.owner_name LIKE '%".$trainer_name."%'";
517
		}
518
		if ($team != 0) {
519
			$where .= ($where == "" ? " HAVING" : " AND")." team = ".$team;
520
		}
521
		switch ($rankingNumber) {
522
			case 1:
523
				$order = " ORDER BY ABS(active) DESC, level DESC";
524
				break;
525
			case 2:
526
				$order = " ORDER BY maxCp DESC, level DESC";
527
				break;
528
			default:
529
				$order = " ORDER BY level DESC, active DESC";
530
		}
531
		$order .= ", last_seen DESC, name ";
532
		$limit = " LIMIT 10 OFFSET ".($page * 10);
533
		$req = "SELECT gd.owner_name AS name, MAX(owner_level) as level, MAX(cp) as maxCp, active, team, TO_TIMESTAMP(MAX(last_modified)) as last_seen
534
				  	FROM gym_defenders gd
535
				  	LEFT JOIN (
536
				  		SELECT owner_name, COUNT(*) as active
537
				  		FROM gym_defenders gd2
538
						WHERE fort_id IS NOT NULL
539
				  		GROUP BY owner_name
540
				  	) active ON active.owner_name = gd.owner_name
541
				  	WHERE gd.owner_level IS NOT NULL " . $where . "
542
				  	GROUP BY gd.owner_name" . $order  . $limit;
543
		$result = $this->mysqli->query($req);
544
		$trainers = array();
545
		while ($data = $result->fetch_object()) {
546
			$data->last_seen = date("Y-m-d", strtotime($data->last_seen));
547
			if (is_null($data->active)) {
548
				$data->active = 0;
549
			}
550
			$trainers[$data->name] = $data;
551
552
			$pokemon = array_merge($this->getActivePokemon($data->name),  $this->getInactivePokemon($data->name));
553
554
			$trainers[$data->name]->gyms = $data->active;
555
			$trainers[$data->name]->pokemons = $pokemon;
556
			$trainers[$data->name]->rank = $ranking[$data->level];
557
		}
558
		return $trainers;
559
	}
560
561
	public function getTrainerLevelRanking() {
562
		$exclue = "";