Skip to content

Commit

Permalink
fix show signatures
Browse files Browse the repository at this point in the history
  • Loading branch information
g5bot committed Feb 6, 2025
1 parent 1d20674 commit 7dad975
Show file tree
Hide file tree
Showing 7 changed files with 132 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public function __construct(
#[Override]
protected function provideDataForMap(PanelBoundaries $boundaries): array
{
return $this->locationRepository->getAllianceSpacecraftCountLayerData($boundaries, $this->allianceId, $this->createResultSetMapping());
return $this->mapRepository->getAllianceSpacecraftCountLayerData($boundaries, $this->allianceId, $this->createResultSetMapping());
}

#[Override]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public function __construct(
#[Override]
protected function provideDataForMap(PanelBoundaries $boundaries): array
{
return $this->locationRepository->getSpacecraftCountLayerDataForSpacecraft($boundaries, $this->spacecraftId, $this->createResultSetMapping());
return $this->mapRepository->getSpacecraftCountLayerDataForSpacecraft($boundaries, $this->spacecraftId, $this->createResultSetMapping());
}

#[Override]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public function __construct(
#[Override]
protected function provideDataForMap(PanelBoundaries $boundaries): array
{
return $this->locationRepository->getUserSpacecraftCountLayerData($boundaries, $this->userId, $this->createResultSetMapping());
return $this->mapRepository->getUserSpacecraftCountLayerData($boundaries, $this->userId, $this->createResultSetMapping());
}

#[Override]
Expand Down
76 changes: 0 additions & 76 deletions src/Orm/Repository/LocationRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
use Stu\Component\Spacecraft\SpacecraftStateEnum;
use Stu\Component\Spacecraft\System\SpacecraftSystemModeEnum;
use Stu\Component\Spacecraft\System\SpacecraftSystemTypeEnum;
use Stu\Lib\Map\VisualPanel\PanelBoundaries;
use Stu\Module\PlayerSetting\Lib\UserEnum;
use Stu\Orm\Entity\LayerInterface;
use Stu\Orm\Entity\Location;
Expand All @@ -22,81 +21,6 @@
*/
class LocationRepository extends EntityRepository implements LocationRepositoryInterface
{
#[Override]
public function getAllianceSpacecraftCountLayerData(PanelBoundaries $boundaries, int $allianceId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y,
(SELECT count(distinct s.id)
FROM stu_spacecraft s
JOIN stu_user u ON s.user_id = u.id
WHERE s.location_id = l.id
AND u.allys_id = :allyId) as spacecraftcount
FROM stu_location l
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
'xEnd' => $boundaries->getMaxX(),
'yStart' => $boundaries->getMinY(),
'yEnd' => $boundaries->getMaxY(),
'layerId' => $boundaries->getParentId(),
'allyId' => $allianceId
])->getResult();
}

#[Override]
public function getSpacecraftCountLayerDataForSpacecraft(PanelBoundaries $boundaries, int $spacecraftId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y,
(SELECT count(distinct s.id)
FROM stu_spacecraft s
WHERE s.location_id = l.id
AND s.id = :spacecraftId) as spacecraftcount
FROM stu_location l
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId
GROUP BY l.cy, l.cx, l.id',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
'xEnd' => $boundaries->getMaxX(),
'yStart' => $boundaries->getMinY(),
'yEnd' => $boundaries->getMaxY(),
'layerId' => $boundaries->getParentId(),
'spacecraftId' => $spacecraftId
])->getResult();
}

#[Override]
public function getUserSpacecraftCountLayerData(PanelBoundaries $boundaries, int $userId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y,
(SELECT count(distinct s.id)
FROM stu_spacecraft s
WHERE s.location_id = l.id
AND s.user_id = :userId) as spacecraftcount
FROM stu_location l
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId
GROUP BY l.cy, l.cx, l.id',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
'xEnd' => $boundaries->getMaxX(),
'yStart' => $boundaries->getMinY(),
'yEnd' => $boundaries->getMaxY(),
'layerId' => $boundaries->getParentId(),
'userId' => $userId
])->getResult();
}

#[Override]
public function getForSubspaceEllipseCreation(): array
{
Expand Down
12 changes: 0 additions & 12 deletions src/Orm/Repository/LocationRepositoryInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

namespace Stu\Orm\Repository;

use Doctrine\ORM\Query\ResultSetMapping;
use Doctrine\Persistence\ObjectRepository;
use Stu\Lib\Map\VisualPanel\Layer\Data\CellDataInterface;
use Stu\Lib\Map\VisualPanel\PanelBoundaries;
use Stu\Orm\Entity\LayerInterface;
use Stu\Orm\Entity\Location;
use Stu\Orm\Entity\LocationInterface;
Expand All @@ -17,15 +14,6 @@
*/
interface LocationRepositoryInterface extends ObjectRepository
{
/** @return array<CellDataInterface> */
public function getAllianceSpacecraftCountLayerData(PanelBoundaries $boundaries, int $allianceId, ResultSetMapping $rsm): array;

/** @return array<CellDataInterface> */
public function getUserSpacecraftCountLayerData(PanelBoundaries $boundaries, int $userId, ResultSetMapping $rsm): array;

/** @return array<CellDataInterface> */
public function getSpacecraftCountLayerDataForSpacecraft(PanelBoundaries $boundaries, int $spacecraftId, ResultSetMapping $rsm): array;

/**
* @return array<LocationInterface>
*/
Expand Down
134 changes: 120 additions & 14 deletions src/Orm/Repository/MapRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ public function getAnomalyData(PanelBoundaries $boundaries, ResultSetMapping $rs
public function getSpacecraftCountLayerData(PanelBoundaries $boundaries, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy AS y,
'SELECT l.cx as x, l.cy AS y, mft.effects as effects,
(SELECT count(DISTINCT b.id) FROM stu_spacecraft b
JOIN stu_location l2
ON b.location_id = l2.id
Expand All @@ -251,15 +251,15 @@ public function getSpacecraftCountLayerData(PanelBoundaries $boundaries, ResultS
FROM stu_spacecraft_system ss2
WHERE c.id = ss2.spacecraft_id
AND ss2.system_type = :cloakSystemId
AND ss2.mode > 1)) AS cloakcount,
(SELECT mft.effects FROM stu_map_ftypes mft
WHERE l.field_id = mft.id) as effects
FROM stu_location l
JOIN stu_map m
ON l.id = m.id
WHERE l.cx BETWEEN :xStart AND :xEnd AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId
GROUP BY layer_id, x, y, field_id',
AND ss2.mode > 1)) AS cloakcount
FROM stu_map m
JOIN stu_location l
ON m.id = l.id
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
Expand Down Expand Up @@ -293,6 +293,104 @@ public function getMapLayerData(PanelBoundaries $boundaries, ResultSetMapping $r
])->getResult();
}

#[Override]
public function getUserSpacecraftCountLayerData(PanelBoundaries $boundaries, int $userId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct s.id)
FROM stu_spacecraft s
JOIN stu_location spl
ON s.location_id = spl.id
WHERE spl.cx = l.cx
AND spl.cy = l.cy
AND spl.layer_id = l.layer_id
AND s.user_id = :userId) as spacecraftcount
FROM stu_map m
JOIN stu_location l
ON m.id = l.id
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
'xEnd' => $boundaries->getMaxX(),
'yStart' => $boundaries->getMinY(),
'yEnd' => $boundaries->getMaxY(),
'layerId' => $boundaries->getParentId(),
'userId' => $userId
])->getResult();
}

#[Override]
public function getAllianceSpacecraftCountLayerData(PanelBoundaries $boundaries, int $allianceId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct s.id)
FROM stu_spacecraft s
JOIN stu_location spl
ON s.location_id = spl.id
JOIN stu_user u
ON s.user_id = u.id
WHERE spl.cx = l.cx
AND spl.cy = l.cy
AND spl.layer_id = l.layer_id
AND u.allys_id = :allyId) as spacecraftcount
FROM stu_map m
JOIN stu_location l
ON m.id = l.id
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
'xEnd' => $boundaries->getMaxX(),
'yStart' => $boundaries->getMinY(),
'yEnd' => $boundaries->getMaxY(),
'layerId' => $boundaries->getParentId(),
'allyId' => $allianceId
])->getResult();
}

#[Override]
public function getSpacecraftCountLayerDataForSpacecraft(PanelBoundaries $boundaries, int $spacecraftId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct s.id)
FROM stu_spacecraft s
JOIN stu_location spl
ON s.location_id = spl.id
WHERE spl.cx = l.cx
AND spl.cy = l.cy
AND spl.layer_id = l.layer_id
AND s.id = :spacecraftId) as spacecraftcount
FROM stu_map m
JOIN stu_location l
ON m.id = l.id
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
$rsm
)->setParameters([
'xStart' => $boundaries->getMinX(),
'xEnd' => $boundaries->getMaxX(),
'yStart' => $boundaries->getMinY(),
'yEnd' => $boundaries->getMaxY(),
'layerId' => $boundaries->getParentId(),
'spacecraftId' => $spacecraftId
])->getResult();
}

#[Override]
public function getExplored(int $userId, int $layerId, int $startX, int $endX, int $cy): array
{
Expand Down Expand Up @@ -497,7 +595,7 @@ public function getIgnoringSubspaceLayerData(PanelBoundaries $boundaries, int $i
public function getSubspaceLayerData(PanelBoundaries $boundaries, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y,
'SELECT l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct fs1.ship_id) from stu_flight_sig fs1
WHERE fs1.location_id = l.id
AND (fs1.from_direction = 1 OR fs1.to_direction = 1)) as d1c,
Expand All @@ -511,6 +609,8 @@ public function getSubspaceLayerData(PanelBoundaries $boundaries, ResultSetMappi
WHERE fs4.location_id = l.id
AND (fs4.from_direction = 4 OR fs4.to_direction = 4)) as d4c
FROM stu_location l
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
Expand All @@ -528,7 +628,7 @@ public function getSubspaceLayerData(PanelBoundaries $boundaries, ResultSetMappi
public function getUserSubspaceLayerData(PanelBoundaries $boundaries, int $userId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y,
'SELECT l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct fs1.ship_id) from stu_flight_sig fs1
WHERE fs1.location_id = l.id
AND fs1.user_id = :userId
Expand All @@ -546,6 +646,8 @@ public function getUserSubspaceLayerData(PanelBoundaries $boundaries, int $userI
AND fs4.user_id = :userId
AND (fs4.from_direction = 4 OR fs4.to_direction = 4)) as d4c
FROM stu_location l
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
Expand All @@ -564,7 +666,7 @@ public function getUserSubspaceLayerData(PanelBoundaries $boundaries, int $userI
public function getShipSubspaceLayerData(PanelBoundaries $boundaries, int $shipId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.cx as x, l.cy as y,
'SELECT l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct fs1.ship_id) from stu_flight_sig fs1
WHERE fs1.location_id = l.id
AND fs1.ship_id = :shipId
Expand All @@ -582,6 +684,8 @@ public function getShipSubspaceLayerData(PanelBoundaries $boundaries, int $shipI
AND fs4.ship_id = :shipId
AND (fs4.from_direction = 4 OR fs4.to_direction = 4)) as d4c
FROM stu_location l
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
Expand All @@ -600,7 +704,7 @@ public function getShipSubspaceLayerData(PanelBoundaries $boundaries, int $shipI
public function getAllianceSubspaceLayerData(PanelBoundaries $boundaries, int $allianceId, ResultSetMapping $rsm): array
{
return $this->getEntityManager()->createNativeQuery(
'SELECT l.id, l.cx as x, l.cy as y,
'SELECT l.id, l.cx as x, l.cy as y, mft.effects as effects,
(SELECT count(distinct fs1.ship_id) from stu_flight_sig fs1
JOIN stu_user u1 ON fs1.user_id = u1.id
WHERE fs1.location_id = l.id
Expand All @@ -622,6 +726,8 @@ public function getAllianceSubspaceLayerData(PanelBoundaries $boundaries, int $a
AND u4.allys_id = :allyId
AND (fs4.from_direction = 4 OR fs4.to_direction = 4)) as d4c
FROM stu_location l
JOIN stu_map_ftypes mft
ON l.field_id = mft.id
WHERE l.cx BETWEEN :xStart AND :xEnd
AND l.cy BETWEEN :yStart AND :yEnd
AND l.layer_id = :layerId',
Expand Down
9 changes: 9 additions & 0 deletions src/Orm/Repository/MapRepositoryInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ public function getAnomalyData(PanelBoundaries $boundaries, ResultSetMapping $rs
/** @return array<CellDataInterface> */
public function getSpacecraftCountLayerData(PanelBoundaries $boundaries, ResultSetMapping $rsm): array;

/** @return array<CellDataInterface> */
public function getAllianceSpacecraftCountLayerData(PanelBoundaries $boundaries, int $allianceId, ResultSetMapping $rsm): array;

/** @return array<CellDataInterface> */
public function getUserSpacecraftCountLayerData(PanelBoundaries $boundaries, int $userId, ResultSetMapping $rsm): array;

/** @return array<CellDataInterface> */
public function getSpacecraftCountLayerDataForSpacecraft(PanelBoundaries $boundaries, int $spacecraftId, ResultSetMapping $rsm): array;

/**
* @return array<ExploreableStarMapInterface>
*/
Expand Down

0 comments on commit 7dad975

Please sign in to comment.