Projekt

Obecné

Profil

« Předchozí | Další » 

Revize b50f8ebd

Přidáno uživatelem Cajova-Houba před téměř 7 roky(ů)

#6638: Vypnuti kontroly cizich klicu v sql script ktery nahrava data. Pridani entit mesto,ulice,zarizeni. Implementace api ktere vraci zarizeni s adresou.

Zobrazit rozdíly:

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