Revize b50f8ebd
Přidáno uživatelem Cajova-Houba před téměř 7 roky(ů)
backend/app/Http/Controllers/DeviceController.php | ||
---|---|---|
9 | 9 |
namespace App\Http\Controllers; |
10 | 10 |
|
11 | 11 |
use App\Model\Device; |
12 |
use App\Model\Zarizeni; |
|
12 | 13 |
use Illuminate\Http\Request; |
13 | 14 |
|
14 | 15 |
class DeviceController extends Controller |
... | ... | |
30 | 31 |
$device->street = $address; |
31 | 32 |
$device->town = $address; |
32 | 33 |
|
33 |
return response()->json($device); |
|
34 |
// return response()->json($device); |
|
35 |
return Zarizeni::findByAddressJoinAddress('Česká Kubice', 'Česká Kubice'); |
|
34 | 36 |
} |
35 | 37 |
|
36 | 38 |
/** |
... | ... | |
48 | 50 |
*/ |
49 | 51 |
public function getDeviceById(Request $request, $id) { |
50 | 52 |
|
53 |
return Zarizeni::findByIdJoinAddress($id); |
|
54 |
} |
|
51 | 55 |
|
52 |
$device = new Device(); |
|
53 |
$device->id = $id; |
|
54 |
$device->name = 'device'; |
|
55 |
$device->street = 'street'; |
|
56 |
$device->town = 'town'; |
|
57 |
|
|
58 |
return response()->json($device); |
|
56 |
public function getAll() { |
|
57 |
return Zarizeni::getAllJoinAddress(); |
|
59 | 58 |
} |
60 | 59 |
} |
backend/app/Http/Controllers/LocationController.php | ||
---|---|---|
10 | 10 |
|
11 | 11 |
|
12 | 12 |
use App\Model\Location; |
13 |
use App\Model\Mesto; |
|
13 | 14 |
|
14 | 15 |
class LocationController extends Controller |
15 | 16 |
{ |
... | ... | |
33 | 34 |
{ |
34 | 35 |
return response()->json(Location::withData(array("Česká Kubice, směr od Německa", "Česká Kubice", "Česká Kubice", "KP055", "5"))); |
35 | 36 |
} |
37 |
|
|
38 |
/** |
|
39 |
* Vrati vsechna mesta. |
|
40 |
*/ |
|
41 |
public function getCities() { |
|
42 |
return Mesto::with('zarizeni')->get(); |
|
43 |
} |
|
36 | 44 |
} |
backend/app/Http/routes.php | ||
---|---|---|
24 | 24 |
*/ |
25 | 25 |
$app->get($apiUrlRoot.'devices', 'DeviceController@getDevice'); |
26 | 26 |
|
27 |
$app->get($apiUrlRoot.'devices/all', 'DeviceController@getAll'); |
|
28 |
|
|
27 | 29 |
/** |
28 | 30 |
* Parametry v url: |
29 | 31 |
* dateFrom |
... | ... | |
38 | 40 |
* Vrati vsechny typy aut. |
39 | 41 |
*/ |
40 | 42 |
$app->get($apiUrlRoot.'vehicles', 'VehicleController@getAll'); |
43 |
|
|
44 |
$app->get($apiUrlRoot.'cities', 'LocationController@getCities'); |
|
45 |
|
backend/app/Model/BaseModel.php | ||
---|---|---|
1 |
<?php |
|
2 |
/** |
|
3 |
* Created by PhpStorm. |
|
4 |
* User: Zdenda |
|
5 |
* Date: 22.4.2018 |
|
6 |
* Time: 20:05 |
|
7 |
*/ |
|
8 |
|
|
9 |
namespace App\Model; |
|
10 |
|
|
11 |
use Illuminate\Database\Eloquent\Model; |
|
12 |
|
|
13 |
/** |
|
14 |
* Zakladni trida pro vsechny modely pouzite v projektu. |
|
15 |
* Obsahuje konfiguraci spolecnou pro vsechny modely (zatim jen $timestamps). |
|
16 |
* |
|
17 |
* @package App\Model |
|
18 |
*/ |
|
19 |
class BaseModel extends Model |
|
20 |
{ |
|
21 |
/** |
|
22 |
* Kvuli ORM frameworku, aby nepredpokladal existenci sloupcu |
|
23 |
*/ |
|
24 |
public $timestamps = false; |
|
25 |
} |
backend/app/Model/Mesto.php | ||
---|---|---|
1 |
<?php |
|
2 |
/** |
|
3 |
* Created by PhpStorm. |
|
4 |
* User: Zdenda |
|
5 |
* Date: 22.4.2018 |
|
6 |
* Time: 19:51 |
|
7 |
*/ |
|
8 |
|
|
9 |
namespace App\Model; |
|
10 |
|
|
11 |
use Illuminate\Database\Eloquent\Model; |
|
12 |
|
|
13 |
/** |
|
14 |
* Entita reprezentujici tabulku mesto v databazi. |
|
15 |
* @package App\Model |
|
16 |
*/ |
|
17 |
class Mesto extends BaseModel |
|
18 |
{ |
|
19 |
/** |
|
20 |
* Nazev tabulky tak jak je v databazi. |
|
21 |
* |
|
22 |
* @var string |
|
23 |
*/ |
|
24 |
protected $table = 'mesto'; |
|
25 |
|
|
26 |
/** |
|
27 |
* Databazovy klic. |
|
28 |
*/ |
|
29 |
public $id; |
|
30 |
|
|
31 |
/** |
|
32 |
* Nazev mesta. |
|
33 |
*/ |
|
34 |
public $nazev; |
|
35 |
|
|
36 |
/** |
|
37 |
* Ulice prirazene mestu. |
|
38 |
*/ |
|
39 |
public function ulice() { |
|
40 |
return $this->hasMany('App\Model\Ulice'); |
|
41 |
} |
|
42 |
|
|
43 |
public function zarizeni() { |
|
44 |
return $this->hasManyThrough('App\Model\Zarizeni', 'App\Model\Ulice'); |
|
45 |
} |
|
46 |
} |
backend/app/Model/Ulice.php | ||
---|---|---|
1 |
<?php |
|
2 |
/** |
|
3 |
* Created by PhpStorm. |
|
4 |
* User: Zdenda |
|
5 |
* Date: 22.4.2018 |
|
6 |
* Time: 20:08 |
|
7 |
*/ |
|
8 |
|
|
9 |
namespace App\Model; |
|
10 |
|
|
11 |
|
|
12 |
/** |
|
13 |
* Trida reprezentujici entitu ulice. |
|
14 |
* @package App\Model |
|
15 |
*/ |
|
16 |
class Ulice extends BaseModel |
|
17 |
{ |
|
18 |
/** |
|
19 |
* Nazev tabulky. |
|
20 |
* @var string |
|
21 |
*/ |
|
22 |
protected $table = 'ulice'; |
|
23 |
|
|
24 |
/** |
|
25 |
* Databazovy klic. |
|
26 |
*/ |
|
27 |
public $id; |
|
28 |
|
|
29 |
/** |
|
30 |
* Nazev ulice. |
|
31 |
*/ |
|
32 |
public $nazev; |
|
33 |
|
|
34 |
/** |
|
35 |
* 1:N relace s entitou mesto. |
|
36 |
* |
|
37 |
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo |
|
38 |
*/ |
|
39 |
public function mesto() { |
|
40 |
return $this->belongsTo('App\Model\Mesto'); |
|
41 |
} |
|
42 |
|
|
43 |
|
|
44 |
public function zarizeni() { |
|
45 |
return $this->hasMany('App\Model\Zarizeni'); |
|
46 |
} |
|
47 |
} |
backend/app/Model/Zarizeni.php | ||
---|---|---|
1 |
<?php |
|
2 |
/** |
|
3 |
* Created by PhpStorm. |
|
4 |
* User: Zdenda |
|
5 |
* Date: 22.4.2018 |
|
6 |
* Time: 20:21 |
|
7 |
*/ |
|
8 |
|
|
9 |
namespace App\Model; |
|
10 |
|
|
11 |
use Illuminate\Support\Facades\DB; |
|
12 |
|
|
13 |
/** |
|
14 |
* Trida reprezentujici entitu zarizeni. |
|
15 |
* @package App\Model |
|
16 |
*/ |
|
17 |
class Zarizeni extends BaseModel |
|
18 |
{ |
|
19 |
|
|
20 |
/** |
|
21 |
* Jmeno tabulky v databazi. |
|
22 |
* |
|
23 |
* @var string |
|
24 |
*/ |
|
25 |
protected $table = 'zarizeni'; |
|
26 |
|
|
27 |
/** |
|
28 |
* Vrati vsechna zarizeni. |
|
29 |
* Mesto a ulice jsou vraceny spolu se zarizenim. |
|
30 |
* |
|
31 |
* @return mixed |
|
32 |
*/ |
|
33 |
public static function getAllJoinAddress() { |
|
34 |
return DB::table('zarizeni') |
|
35 |
->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id') |
|
36 |
->join('mesto', 'ulice.mesto_id', '=', 'mesto.id') |
|
37 |
->select('zarizeni.*', 'ulice.nazev as ulice_nazev', 'ulice.id as ulice_id', 'mesto.nazev as mesto_nazev', 'mesto.id as mesto_id') |
|
38 |
->get(); |
|
39 |
} |
|
40 |
|
|
41 |
/** |
|
42 |
* Vrati zarizeni nalezene podle adresy (mesto+ulice). |
|
43 |
* Mesto a ulice jsou vraceny spolu se zarizenim. |
|
44 |
* |
|
45 |
* @param $street Nazev ulice. |
|
46 |
* @param $town Nazev mesta. |
|
47 |
* @return mixed |
|
48 |
*/ |
|
49 |
public static function findByAddressJoinAddress($street, $town) { |
|
50 |
return DB::table('zarizeni') |
|
51 |
->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id') |
|
52 |
->join('mesto', 'ulice.mesto_id', '=', 'mesto.id') |
|
53 |
->select('zarizeni.*', 'ulice.nazev as ulice_nazev', 'ulice.id as ulice_id', 'mesto.nazev as mesto_nazev', 'mesto.id as mesto_id') |
|
54 |
->where('ulice.nazev', '=', $street) |
|
55 |
->where('mesto.nazev', '=', $town) |
|
56 |
->get(); |
|
57 |
} |
|
58 |
|
|
59 |
/** |
|
60 |
* Vrati zarizeni se zadanym id. |
|
61 |
* Mesto a ulice jsou vraceny spolu se zarizenim. |
|
62 |
* |
|
63 |
* @param $id Id zarizeni. |
|
64 |
* @return mixed |
|
65 |
*/ |
|
66 |
public static function findByIdJoinAddress($id) { |
|
67 |
return DB::table('zarizeni') |
|
68 |
->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id') |
|
69 |
->join('mesto', 'ulice.mesto_id', '=', 'mesto.id') |
|
70 |
->select('zarizeni.*', 'ulice.nazev as ulice_nazev', 'ulice.id as ulice_id', 'mesto.nazev as mesto_nazev', 'mesto.id as mesto_id') |
|
71 |
->where('zarizeni.id', '=', $id) |
|
72 |
->get(); |
|
73 |
} |
|
74 |
|
|
75 |
/** |
|
76 |
* Databazovy klic. |
|
77 |
* |
|
78 |
* @var long |
|
79 |
*/ |
|
80 |
public $id; |
|
81 |
|
|
82 |
/** |
|
83 |
* Popis smeru zarizeni. |
|
84 |
* |
|
85 |
* @var string |
|
86 |
*/ |
|
87 |
public $smer_popis; |
|
88 |
|
|
89 |
/** |
|
90 |
* Stav zarizeni. |
|
91 |
* |
|
92 |
* @var integer |
|
93 |
*/ |
|
94 |
public $stav; |
|
95 |
|
|
96 |
public function ulice() { |
|
97 |
return $this->belongsTo('App\Model\Ulice'); |
|
98 |
} |
|
99 |
} |
db/v2__10_04_2018.sql | ||
---|---|---|
9 | 9 |
|
10 | 10 |
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; |
11 | 11 |
SET time_zone = "+00:00"; |
12 |
|
|
12 |
SET FOREIGN_KEY_CHECKS=0; |
|
13 | 13 |
|
14 | 14 |
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; |
15 | 15 |
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; |
... | ... | |
22 | 22 |
|
23 | 23 |
-- -------------------------------------------------------- |
24 | 24 |
|
25 |
-- |
|
26 |
-- Struktura tabulky `mesto` |
|
27 |
-- |
|
28 |
|
|
29 |
CREATE TABLE IF NOT EXISTS `mesto` ( |
|
30 |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
|
31 |
`nazev` varchar(100) NOT NULL, |
|
32 |
PRIMARY KEY (`id`) |
|
33 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=57 ; |
|
34 | 25 |
|
35 | 26 |
-- |
36 | 27 |
-- Vypisuji data pro tabulku `mesto` |
... | ... | |
96 | 87 |
|
97 | 88 |
-- -------------------------------------------------------- |
98 | 89 |
|
99 |
-- |
|
100 |
-- Struktura tabulky `ulice` |
|
101 |
-- |
|
102 |
|
|
103 |
CREATE TABLE IF NOT EXISTS `ulice` ( |
|
104 |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
|
105 |
`nazev` varchar(255) NOT NULL, |
|
106 |
`mesto_id` bigint(20) NOT NULL, |
|
107 |
PRIMARY KEY (`id`), |
|
108 |
KEY `fk_ulice_mesto_idx` (`mesto_id`) |
|
109 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=88 ; |
|
110 |
|
|
111 | 90 |
-- |
112 | 91 |
-- Vypisuji data pro tabulku `ulice` |
113 | 92 |
-- |
... | ... | |
203 | 182 |
|
204 | 183 |
-- -------------------------------------------------------- |
205 | 184 |
|
206 |
-- |
|
207 |
-- Struktura tabulky `vozidla` |
|
208 |
-- |
|
209 |
|
|
210 |
CREATE TABLE IF NOT EXISTS `vozidla` ( |
|
211 |
`id` bigint(20) NOT NULL COMMENT 'Odpovídá číslu skupiny vozidla (TypVozidla10 v csv souboru s daty). Hodnoty 0-10.', |
|
212 |
`nazev` varchar(45) NOT NULL, |
|
213 |
PRIMARY KEY (`id`) |
|
214 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
|
215 |
|
|
216 | 185 |
-- |
217 | 186 |
-- Vypisuji data pro tabulku `vozidla` |
218 | 187 |
-- |
... | ... | |
232 | 201 |
|
233 | 202 |
-- -------------------------------------------------------- |
234 | 203 |
|
235 |
-- |
|
236 |
-- Struktura tabulky `zarizeni` |
|
237 |
-- |
|
238 |
|
|
239 |
CREATE TABLE IF NOT EXISTS `zarizeni` ( |
|
240 |
`id` varchar(20) NOT NULL COMMENT 'Odpovídá idDevice v location.csv.', |
|
241 |
`smer_popis` varchar(255) NOT NULL COMMENT 'Odpovídá Name v locations.csv.', |
|
242 |
`stav` int(11) NOT NULL, |
|
243 |
`ulice_id` bigint(20) NOT NULL, |
|
244 |
PRIMARY KEY (`id`), |
|
245 |
KEY `fk_zarizeni_ulice1_idx` (`ulice_id`) |
|
246 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
|
247 |
|
|
248 | 204 |
-- |
249 | 205 |
-- Vypisuji data pro tabulku `zarizeni` |
250 | 206 |
-- |
... | ... | |
356 | 312 |
|
357 | 313 |
-- -------------------------------------------------------- |
358 | 314 |
|
359 |
-- |
|
360 |
-- Struktura tabulky `zaznam` |
|
361 |
-- |
|
362 |
|
|
363 |
CREATE TABLE IF NOT EXISTS `zaznam` ( |
|
364 |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
|
365 |
`vozidla_pocet` int(11) NOT NULL, |
|
366 |
`rychlost_prumer` double NOT NULL, |
|
367 |
`vozidla_id` bigint(20) NOT NULL, |
|
368 |
`zaznam_cas_id` bigint(20) NOT NULL, |
|
369 |
PRIMARY KEY (`id`), |
|
370 |
KEY `fk_zaznam_vozidla1_idx` (`vozidla_id`), |
|
371 |
KEY `fk_zaznam_zaznam_cas1_idx` (`zaznam_cas_id`) |
|
372 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=39000 ; |
|
373 |
|
|
374 | 315 |
-- |
375 | 316 |
-- Vypisuji data pro tabulku `zaznam` |
376 | 317 |
-- |
... | ... | |
39401 | 39342 |
|
39402 | 39343 |
-- -------------------------------------------------------- |
39403 | 39344 |
|
39404 |
-- |
|
39405 |
-- Struktura tabulky `zaznam_cas` |
|
39406 |
-- |
|
39407 |
|
|
39408 |
CREATE TABLE IF NOT EXISTS `zaznam_cas` ( |
|
39409 |
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
|
39410 |
`datetime_od` datetime NOT NULL, |
|
39411 |
`datetime_do` datetime NOT NULL, |
|
39412 |
`smer` int(11) NOT NULL COMMENT '1 nebo 2 viz struktura idDetektor v csv souboru s daty.', |
|
39413 |
`zarizeni_id` varchar(20) NOT NULL, |
|
39414 |
PRIMARY KEY (`id`), |
|
39415 |
KEY `fk_zaznam_cas_zarizeni1_idx` (`zarizeni_id`) |
|
39416 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=17055 ; |
|
39417 |
|
|
39418 | 39345 |
-- |
39419 | 39346 |
-- Vypisuji data pro tabulku `zaznam_cas` |
39420 | 39347 |
-- |
... | ... | |
56496 | 56423 |
(17053, '2018-04-10 23:15:00', '2018-04-10 23:30:00', 1, '202'), |
56497 | 56424 |
(17054, '2018-04-10 23:45:00', '2018-04-11 00:00:00', 2, '202'); |
56498 | 56425 |
|
56499 |
-- |
|
56500 |
-- Omezení pro exportované tabulky |
|
56501 |
-- |
|
56502 |
|
|
56503 |
-- |
|
56504 |
-- Omezení pro tabulku `ulice` |
|
56505 |
-- |
|
56506 |
ALTER TABLE `ulice` |
|
56507 |
ADD CONSTRAINT `fk_ulice_mesto` FOREIGN KEY (`mesto_id`) REFERENCES `mesto` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; |
|
56508 |
|
|
56509 |
-- |
|
56510 |
-- Omezení pro tabulku `zarizeni` |
|
56511 |
-- |
|
56512 |
ALTER TABLE `zarizeni` |
|
56513 |
ADD CONSTRAINT `fk_zarizeni_ulice1` FOREIGN KEY (`ulice_id`) REFERENCES `ulice` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; |
|
56514 |
|
|
56515 |
-- |
|
56516 |
-- Omezení pro tabulku `zaznam` |
|
56517 |
-- |
|
56518 |
ALTER TABLE `zaznam` |
|
56519 |
ADD CONSTRAINT `fk_zaznam_vozidla1` FOREIGN KEY (`vozidla_id`) REFERENCES `vozidla` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, |
|
56520 |
ADD CONSTRAINT `fk_zaznam_zaznam_cas1` FOREIGN KEY (`zaznam_cas_id`) REFERENCES `zaznam_cas` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; |
|
56521 |
|
|
56522 |
-- |
|
56523 |
-- Omezení pro tabulku `zaznam_cas` |
|
56524 |
-- |
|
56525 |
ALTER TABLE `zaznam_cas` |
|
56526 |
ADD CONSTRAINT `fk_zaznam_cas_zarizeni1` FOREIGN KEY (`zarizeni_id`) REFERENCES `zarizeni` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; |
|
56527 | 56426 |
|
56427 |
|
|
56428 |
SET FOREIGN_KEY_CHECKS=1; |
|
56528 | 56429 |
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; |
56529 | 56430 |
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; |
56530 | 56431 |
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; |
Také k dispozici: Unified diff
#6638: Vypnuti kontroly cizich klicu v sql script ktery nahrava data. Pridani entit mesto,ulice,zarizeni. Implementace api ktere vraci zarizeni s adresou.