Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

RoutesBusiness.php 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: robin
  5. * Date: 9/30/16
  6. * Time: 8:58 PM
  7. */
  8. namespace App\Business;
  9. use App\DataAccess\RoutesDataAccess;
  10. use App\Dbo\RoutesDbo;
  11. use Luticate\Utils\Dbo\LuPaginatedDbo;
  12. class RoutesBusiness
  13. {
  14. protected static function getDataAccess()
  15. {
  16. return new RoutesDataAccess();
  17. }
  18. public static function containsRouteId(array $routes, string $id)
  19. {
  20. /**
  21. * @var $routes RoutesDbo[]
  22. */
  23. foreach ($routes as $route) {
  24. if ($route->getId() == $id) {
  25. return true;
  26. }
  27. }
  28. return false;
  29. }
  30. public static function getAll()
  31. {
  32. $config = MiscBusiness::getConfig();
  33. $dbos = [];
  34. foreach ($config["scheduleTypes"] as $scheduleType) {
  35. $scheduleDbos = static::getDataAccess()->getAll($scheduleType["resourceId"], $scheduleType["type"]);
  36. foreach ($scheduleDbos as $scheduleDbo) {
  37. if (!static::containsRouteId($dbos, $scheduleDbo->getId())) {
  38. $dbos[] = $scheduleDbo;
  39. }
  40. }
  41. }
  42. usort($dbos, function ($dbo1, $dbo2)
  43. {
  44. /**
  45. * @var $dbo1 RoutesDbo
  46. * @var $dbo2 RoutesDbo
  47. */
  48. return intval($dbo1->getId()) > intval($dbo2->getId());
  49. });
  50. return new LuPaginatedDbo(count($dbos), $dbos);
  51. }
  52. }