Files
gps-backend/models/VhcModels.js
meusinfirmary b7e852126c Initial commit
2025-04-22 14:31:37 +07:00

101 lines
2.9 KiB
JavaScript

const db = require(`../config/dbMysqlConn`);
class VhcModels {
static STTS_ACTIVE = 1;
static STTS_INACTIVE = 2;
static IN_ORD_YES = 1;
static IN_ORD_NO = 2;
static async getVhcByDeviceId(device_id) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT';
query += ' v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit';
query += ' ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code';
query += ' FROM t_vehicles AS v';
query += ' INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid';
query += ' LEFT JOIN t_drivers AS da ON v.a_did = da.id';
query += ' WHERE v.dlt is null AND v.status = ? AND v.device_id = ?';
params.push(VhcModels.STTS_ACTIVE, device_id);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getVhcById(id) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT';
query += ' v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit';
query += ' ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code';
query += ' ,v.is_in_ord,v.ord_id,v.ord_code,v.ord_ids';
query += ' FROM t_vehicles AS v';
query += ' INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid';
query += ' LEFT JOIN t_drivers AS da ON v.a_did = da.id';
// query += ' WHERE v.dlt is null AND v.status = ? AND v.id = ?';
query += ' WHERE v.dlt is null AND v.id = ?';
query += ' LIMIT 1';
params.push(id);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async update(id, data) {
return new Promise((resolve, reject) => {
const query = `UPDATE t_vehicles SET ? WHERE id = ?;`;
db.getConnection(function (err, conn) {
if (err) {
conn.release();
reject(err);
return false;
}
conn.beginTransaction(async function (err) {
if (err) {
conn.release();
reject(err);
return false;
}
conn.query(query, [data, id], function (err, resp) {
if (err) {
conn.rollback(async function () {
conn.release();
reject(err.message);
});
return false;
}
conn.commit(async function (err) {
if (err) {
conn.release();
reject(err);
return false;
}
conn.release();
resolve(resp);
return true;
});
});
});
});
});
}
}
module.exports = VhcModels;