mirror of
https://github.com/traccar/traccar.git
synced 2026-05-19 06:02:22 -04:00
Implement Driver models, schema and database
This commit is contained in:
65
schema/changelog-3.14.xml
Normal file
65
schema/changelog-3.14.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<databaseChangeLog
|
||||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
|
||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"
|
||||
logicalFilePath="changelog-3.14">
|
||||
|
||||
<changeSet author="author" id="changelog-3.14">
|
||||
|
||||
<createTable tableName="drivers">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true" />
|
||||
</column>
|
||||
<column name="name" type="VARCHAR(128)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="uniqueid" type="VARCHAR(128)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="attributes" type="VARCHAR(4000)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
</createTable>
|
||||
|
||||
<addUniqueConstraint tableName="drivers" columnNames="uniqueid" constraintName="uk_driver_uniqueid" />
|
||||
|
||||
<createTable tableName="user_driver">
|
||||
<column name="userid" type="INT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="driverid" type="INT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
</createTable>
|
||||
|
||||
<addForeignKeyConstraint baseTableName="user_driver" baseColumnNames="userid" constraintName="fk_user_driver_userid" referencedTableName="users" referencedColumnNames="id" onDelete="CASCADE" />
|
||||
<addForeignKeyConstraint baseTableName="user_driver" baseColumnNames="driverid" constraintName="fk_user_driver_driverid" referencedTableName="drivers" referencedColumnNames="id" onDelete="CASCADE" />
|
||||
|
||||
<createTable tableName="group_driver">
|
||||
<column name="groupid" type="INT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="driverid" type="INT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
</createTable>
|
||||
|
||||
<addForeignKeyConstraint baseTableName="group_driver" baseColumnNames="groupid" constraintName="fk_group_driver_groupid" referencedTableName="groups" referencedColumnNames="id" onDelete="CASCADE" />
|
||||
<addForeignKeyConstraint baseTableName="group_driver" baseColumnNames="driverid" constraintName="fk_group_driver_driverid" referencedTableName="drivers" referencedColumnNames="id" onDelete="CASCADE" />
|
||||
|
||||
<createTable tableName="device_driver">
|
||||
<column name="deviceid" type="INT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="driverid" type="INT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
</createTable>
|
||||
|
||||
<addForeignKeyConstraint baseTableName="device_driver" baseColumnNames="deviceid" constraintName="fk_device_driver_deviceid" referencedTableName="devices" referencedColumnNames="id" onDelete="CASCADE" />
|
||||
<addForeignKeyConstraint baseTableName="device_driver" baseColumnNames="driverid" constraintName="fk_device_driver_driverid" referencedTableName="drivers" referencedColumnNames="id" onDelete="CASCADE" />
|
||||
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
@@ -14,4 +14,5 @@
|
||||
<include file="changelog-3.10.xml" relativeToChangelogFile="true" />
|
||||
<include file="changelog-3.11.xml" relativeToChangelogFile="true" />
|
||||
<include file="changelog-3.12.xml" relativeToChangelogFile="true" />
|
||||
<include file="changelog-3.14.xml" relativeToChangelogFile="true" />
|
||||
</databaseChangeLog>
|
||||
|
||||
@@ -44,11 +44,15 @@ import org.traccar.model.CalendarPermission;
|
||||
import org.traccar.model.Attribute;
|
||||
import org.traccar.model.Device;
|
||||
import org.traccar.model.DeviceAttribute;
|
||||
import org.traccar.model.DeviceDriver;
|
||||
import org.traccar.model.DevicePermission;
|
||||
import org.traccar.model.Driver;
|
||||
import org.traccar.model.DriverPermission;
|
||||
import org.traccar.model.Event;
|
||||
import org.traccar.model.Geofence;
|
||||
import org.traccar.model.Group;
|
||||
import org.traccar.model.GroupAttribute;
|
||||
import org.traccar.model.GroupDriver;
|
||||
import org.traccar.model.GroupGeofence;
|
||||
import org.traccar.model.GroupPermission;
|
||||
import org.traccar.model.Notification;
|
||||
@@ -638,4 +642,84 @@ public class DataManager {
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public Collection<Driver> getDrivers() throws SQLException {
|
||||
return QueryBuilder.create(dataSource, getQuery("database.selectDrivers"))
|
||||
.executeQuery(Driver.class);
|
||||
}
|
||||
|
||||
public void addDriver(Driver driver) throws SQLException {
|
||||
driver.setId(QueryBuilder.create(dataSource, getQuery("database.insertDriver"), true)
|
||||
.setObject(driver)
|
||||
.executeUpdate());
|
||||
}
|
||||
|
||||
public void updateDriver(Driver driver) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.updateDriver"))
|
||||
.setObject(driver)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public void removeDriver(long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.deleteDriver"))
|
||||
.setLong("id", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public Collection<DriverPermission> getDriverPermissions() throws SQLException {
|
||||
return QueryBuilder.create(dataSource, getQuery("database.selectDriverPermissions"))
|
||||
.executeQuery(DriverPermission.class);
|
||||
}
|
||||
|
||||
public void linkDriver(long userId, long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.linkDriver"))
|
||||
.setLong("userId", userId)
|
||||
.setLong("driverId", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public void unlinkDriver(long userId, long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.unlinkDriver"))
|
||||
.setLong("userId", userId)
|
||||
.setLong("driverId", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public Collection<GroupDriver> getGroupDrivers() throws SQLException {
|
||||
return QueryBuilder.create(dataSource, getQuery("database.selectGroupDrivers"))
|
||||
.executeQuery(GroupDriver.class);
|
||||
}
|
||||
|
||||
public void linkGroupDriver(long groupId, long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.linkGroupDriver"))
|
||||
.setLong("groupId", groupId)
|
||||
.setLong("driverId", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public void unlinkGroupDriver(long groupId, long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.unlinkGroupDriver"))
|
||||
.setLong("groupId", groupId)
|
||||
.setLong("driverId", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public Collection<DeviceDriver> getDeviceDrivers() throws SQLException {
|
||||
return QueryBuilder.create(dataSource, getQuery("database.selectDeviceDrivers"))
|
||||
.executeQuery(DeviceDriver.class);
|
||||
}
|
||||
|
||||
public void linkDeviceDriver(long deviceId, long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.linkDeviceDriver"))
|
||||
.setLong("deviceId", deviceId)
|
||||
.setLong("driverId", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
public void unlinkDeviceDriver(long deviceId, long driverId) throws SQLException {
|
||||
QueryBuilder.create(dataSource, getQuery("database.unlinkDeviceDriver"))
|
||||
.setLong("deviceId", deviceId)
|
||||
.setLong("driverId", driverId)
|
||||
.executeUpdate();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
41
src/org/traccar/model/DeviceDriver.java
Normal file
41
src/org/traccar/model/DeviceDriver.java
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2017 Anton Tananaev (anton@traccar.org)
|
||||
* Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.traccar.model;
|
||||
|
||||
public class DeviceDriver {
|
||||
|
||||
private long deviceId;
|
||||
|
||||
public long getDeviceId() {
|
||||
return deviceId;
|
||||
}
|
||||
|
||||
public void setDeviceId(long deviceId) {
|
||||
this.deviceId = deviceId;
|
||||
}
|
||||
|
||||
private long driverId;
|
||||
|
||||
public long getDriverId() {
|
||||
return driverId;
|
||||
}
|
||||
|
||||
public void setDriverId(long driverId) {
|
||||
this.driverId = driverId;
|
||||
}
|
||||
|
||||
}
|
||||
40
src/org/traccar/model/Driver.java
Normal file
40
src/org/traccar/model/Driver.java
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2017 Anton Tananaev (anton@traccar.org)
|
||||
* Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.traccar.model;
|
||||
|
||||
public class Driver extends Extensible {
|
||||
|
||||
private String name;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
private String uniqueId;
|
||||
|
||||
public String getUniqueId() {
|
||||
return uniqueId;
|
||||
}
|
||||
|
||||
public void setUniqueId(String uniqueId) {
|
||||
this.uniqueId = uniqueId;
|
||||
}
|
||||
}
|
||||
40
src/org/traccar/model/DriverPermission.java
Normal file
40
src/org/traccar/model/DriverPermission.java
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2017 Anton Tananaev (anton@traccar.org)
|
||||
* Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.traccar.model;
|
||||
|
||||
public class DriverPermission {
|
||||
|
||||
private long userId;
|
||||
|
||||
public long getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
private long driverId;
|
||||
|
||||
public long getDriverId() {
|
||||
return driverId;
|
||||
}
|
||||
|
||||
public void setDriverId(long driverId) {
|
||||
this.driverId = driverId;
|
||||
}
|
||||
}
|
||||
41
src/org/traccar/model/GroupDriver.java
Normal file
41
src/org/traccar/model/GroupDriver.java
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2017 Anton Tananaev (anton@traccar.org)
|
||||
* Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.traccar.model;
|
||||
|
||||
public class GroupDriver {
|
||||
|
||||
private long groupId;
|
||||
|
||||
public long getGroupId() {
|
||||
return groupId;
|
||||
}
|
||||
|
||||
public void setGroupId(long groupId) {
|
||||
this.groupId = groupId;
|
||||
}
|
||||
|
||||
private long driverId;
|
||||
|
||||
public long getDriverId() {
|
||||
return driverId;
|
||||
}
|
||||
|
||||
public void setDriverId(long driverId) {
|
||||
this.driverId = driverId;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user