GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 11c0a1...856a6b )
by Jacky
34s
created

PlayerRankingRepository::insertDataAnalysis()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 20
nc 1
nop 4
dl 0
loc 26
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
namespace Asylamba\Modules\Atlas\Repository;
4
5
use Asylamba\Classes\Entity\AbstractRepository;
6
7
use Asylamba\Modules\Demeter\Model\Color;
8
9
use Asylamba\Modules\Ares\Model\Commander;
10
use Asylamba\Modules\Zeus\Model\Player;
11
use Asylamba\Modules\Atlas\Model\PlayerRanking;
12
13
use Asylamba\Classes\Library\Utils;
14
15
class PlayerRankingRepository extends AbstractRepository
16
{
17
	public function getFactionPlayerRankings(Color $faction)
18
	{
19
		$statement = $this->connection->prepare(
20
			'SELECT p.id as player_id, p.rColor as player_faction_id, pr.id as player_ranking_id, pr.general as player_general_ranking 
21
			FROM player p
22
			RIGHT JOIN playerRanking pr ON pr.rPlayer = p.id
23
			WHERE p.rColor = :faction_id'
24
		);
25
		$statement->execute(['faction_id' => $faction->getId()]);
26
		
27
		return $this->formatPlayerData($statement);
28
	}
29
	
30
	public function getAttackersButcherRanking()
31
	{
32
		return $this->connection->query(
33
			'SELECT
34
				p.id AS player,
35
				(SUM(pevInBeginA) - SUM(`pevAtEndA`)) AS lostPEV,
36
				(SUM(pevInBeginD) - SUM(`pevAtEndD`)) AS destroyedPEV
37
			FROM report AS r
38
			RIGHT JOIN player AS p
39
				ON p.id = r.rPlayerAttacker
40
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
41
			GROUP BY p.id
42
			ORDER BY p.id'
43
		);
44
	}
45
	
46
	public function getDefendersButcherRanking()
47
	{
48
		return $this->connection->query(
49
			'SELECT
50
				p.id AS player,
51
				(SUM(pevInBeginD) - SUM(`pevAtEndD`)) AS lostPEV,
52
				(SUM(pevInBeginA) - SUM(`pevAtEndA`)) AS destroyedPEV,
53
				((SUM(pevInBeginD) - SUM(`pevAtEndD`)) - (SUM(pevInBeginA) - SUM(`pevAtEndA`))) AS score
54
			FROM report AS r
55
			RIGHT JOIN player AS p
56
				ON p.id = r.rPlayerDefender
57
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
58
			GROUP BY p.id
59
			ORDER BY p.id'
60
		);
61
	}
62
	
63
	public function getPlayersResources()
64
	{
65
		return $this->connection->query(
66
			'SELECT p.id AS player,
67
				ob.levelRefinery AS levelRefinery,
68
				pl.coefResources AS coefResources
69
			FROM orbitalBase AS ob 
70
			LEFT JOIN place AS pl
71
				ON pl.id = ob.rPlace
72
			LEFT JOIN player AS p
73
				on p.id = ob.rPlayer
74
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')'
75
		);
76
	}
77
	
78
	public function getPlayersResourcesData()
79
	{
80
		return $this->connection->query(
81
			'SELECT 
82
				p.id AS player,
83
				SUM(ob.resourcesStorage) AS sumResources
84
			FROM orbitalBase AS ob 
85
			LEFT JOIN player AS p
86
				on p.id = ob.rPlayer
87
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
88
			GROUP BY ob.rPlace'
89
		);
90
	}
91
	
92
	public function getPlayersGeneralData()
93
	{
94
		return $this->connection->query(
95
			'SELECT 
96
				p.id AS player,
97
				SUM(ob.points) AS points,
98
				SUM(ob.resourcesStorage) AS resources,
99
				SUM(ob.pegaseStorage) AS s0,
100
				SUM(ob.satyreStorage) AS s1,
101
				SUM(ob.sireneStorage) AS s3,
102
				SUM(ob.dryadeStorage) AS s4,
103
				SUM(ob.chimereStorage) AS s2,
104
				SUM(ob.meduseStorage) AS s5,
105
				SUM(ob.griffonStorage) AS s6,
106
				SUM(ob.cyclopeStorage) AS s7,
107
				SUM(ob.minotaureStorage) AS s8,
108
				SUM(ob.hydreStorage) AS s9,
109
				SUM(ob.cerbereStorage) AS s10,
110
				SUM(ob.phenixStorage) AS s11
111
			FROM orbitalBase AS ob 
112
			LEFT JOIN player AS p
113
				ON p.id = ob.rPlayer
114
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
115
			GROUP BY p.id'
116
		);
117
	}
118
	
119
	public function getPlayersArmiesData()
120
	{
121
		return $this->connection->query(
122
			'SELECT 
123
				p.id AS player,
124
				SUM(sq.ship0) as s0,
125
				SUM(sq.ship1) as s1,
126
				SUM(sq.ship2) as s2,
127
				SUM(sq.ship3) as s3,
128
				SUM(sq.ship4) as s4,
129
				SUM(sq.ship5) as s5,
130
				SUM(sq.ship6) as s6,
131
				SUM(sq.ship7) as s7,
132
				SUM(sq.ship8) as s8,
133
				SUM(sq.ship9) as s9,
134
				SUM(sq.ship10) as s10,
135
				SUM(sq.ship11) as s11
136
			FROM squadron AS sq 
137
			LEFT JOIN commander AS c
138
				ON c.id = sq.rCommander
139
			LEFT JOIN player AS p
140
				ON p.id = c.rPlayer
141
			WHERE c.statement IN (' . implode(',', [Commander::AFFECTED, Commander::MOVING]) . ')
142
			GROUP BY p.id'
143
		);
144
	}
145
	
146
	public function getPlayersPlanetData()
147
	{
148
		return $this->connection->query(
149
			'SELECT 
150
				p.id AS player,
151
				COUNT(ob.rPlace) AS sumPlanets
152
			FROM orbitalBase AS ob
153
			LEFT JOIN player AS p
154
				on p.id = ob.rPlayer
155
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
156
			GROUP BY ob.rPlace'
157
		);
158
	}
159
	
160
	public function getPlayersTradeRoutes()
161
	{
162
		return $this->connection->query(
163
			'SELECT 
164
				p.id AS player,
165
				SUM(income) AS income
166
			FROM commercialRoute AS c
167
			LEFT JOIN orbitalBase AS o
168
				ON o.rPlace = c.rOrbitalBase
169
				RIGHT JOIN player AS p
170
					ON p.id = o.rPlayer
171
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
172
			GROUP BY p.id
173
			ORDER BY p.id'
174
		);
175
	}
176
	
177
	public function getPlayersLinkedTradeRoutes()
178
	{
179
		return $this->connection->query(
180
			'SELECT 
181
				p.id AS player,
182
				SUM(income) AS income
183
			FROM `commercialRoute` AS c
184
			LEFT JOIN orbitalBase AS o
185
				ON o.rPlace = c.rOrbitalBaseLinked
186
				RIGHT JOIN player AS p
187
					ON p.id = o.rPlayer
188
			WHERE p.statement IN (' . implode(',', [Player::ACTIVE, Player::INACTIVE, Player::HOLIDAY]) . ')
189
			GROUP BY p.id
190
			ORDER BY p.id'
191
		);
192
	}
193
	
194
	public function insert($ranking)
195
	{
196
		
197
	}
198
	
199
	public function insertDataAnalysis(Player $player, PlayerRanking $playerRanking, $resources, $planetNumber)
0 ignored issues
show
Unused Code introduced by
The parameter $playerRanking is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
200
	{
201
		$statement = $this->connection->prepare('INSERT INTO 
202
			DA_PlayerDaily(rPlayer, credit, experience, level, victory, defeat, status, resources, fleetSize, nbPlanet, planetPoints, rkGeneral, rkFighter, rkProducer, rkButcher, rkTrader, dStorage)
203
			VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'
204
		);
205
		$statement->execute([
206
			$player->id,
207
			$player->credit,
208
			$player->experience,
209
			$player->level,
210
			$player->victory,
211
			$player->defeat,
212
			$player->status,
213
			$resources,
214
			$pr->armies,
0 ignored issues
show
Bug introduced by
The variable $pr does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
215
			$planetNumber,
216
			$pr->general / $planetNumber,
217
			$pr->general,
218
			$pr->fight,
219
			$pr->resources,
220
			$pr->butcher,
221
			$pr->trader,
222
			Utils::now()
223
		]);
224
	}
225
	
226
	public function update($ranking)
227
	{
228
		
229
	}
230
	
231
	public function remove($ranking)
232
	{
233
		
234
	}
235
	
236
	public function formatPlayerData($statement)
237
	{
238
		$results = [];
239
		$currentPlayer = null;
240
		while ($row = $statement->fetch(\PDO::FETCH_ASSOC))
241
		{
242
			if (!$currentPlayer instanceof Player || $currentPlayer->getId() !== (int) $row['player_id']) {
243
				$currentPlayer =
244
					(new Player())
245
					->setId((int) $row['player_id'])
246
					->setRColor((int) $row['player_faction_id'])
247
				;
248
			}
249
			$results[] =
250
				(new PlayerRanking())
251
				->setId((int) $row['player_ranking_id'])
252
				->setPlayer($currentPlayer)
253
				->setGeneral((int) $row['player_general_ranking'])
254
			;
255
		}
256
		return $results;
257
	}
258
}