Files
gps-backend/models/OrdersVendorsModels.js
2025-05-29 08:59:40 +00:00

277 lines
6.9 KiB
JavaScript
Executable File

const db = require(`../config/dbMysqlConn`);
class OrdersVendorsModels {
static STTS_WAIT = 1;
static STTS_ACC = 2;
static STTS_REJECT = 3;
static STTS_IGNORE = 4;
static STTS_NOT_READY = 5; // want order but expired, bcs not fill data
static IS_NOT_PAY = 1;
static IS_PAYED = 2;
static LINK_WILL_EXP = 1;
static LINK_NOT_EXP = 2;
static IS_MAILING_BID_NOT = 0;
static IS_MAILING_BID_SEND = 1;
static IS_WANT_IGNORE = 0;
static IS_WANT_NO = 1;
static IS_WANT_YES = 2;
static async gets() {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors;';
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getById(id) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE id = ? LIMIT 1;';
params.push(id);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getByOrdCode(code) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE ord_code = ? LIMIT 1;';
params.push(code);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getByOrdCodeByStatus(code, status) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE ord_code = ? AND status = ? LIMIT 1;';
params.push(code, status);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getByOrdIdByStatus(id, status) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE ord_id = ? AND status = ? LIMIT 1;';
params.push(id, status);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getByOrdId(id) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE ord_id = ? LIMIT 1;';
params.push(id);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getNextVendorsByOrdId(ord_id) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE ord_id = ? AND status = ' + OrdersVendorsModels.STTS_WAIT + ' AND is_want = ' + OrdersVendorsModels.IS_WANT_IGNORE + ' ORDER BY distance ASC;';
params.push(ord_id);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async getByBidToken(tkn) {
return new Promise((resolve, reject) => {
let params = [];
let query = 'SELECT * FROM t_orders_vendors WHERE bid_token = ? LIMIT 1;';
params.push(tkn);
db.query(query, params, function (err, resp) {
if (err) {
reject(err);
return false;
}
resolve(resp);
return true;
});
});
}
static async add(data) {
return new Promise((resolve, reject) => {
const query = `INSERT INTO t_orders_vendors SET ?;`;
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, function (err, resp) {
if (err) {
conn.rollback(async function () {
conn.release();
reject(err.message);
});
return false;
}
// Number(resp.insertId);
conn.commit(async function (err) {
if (err) {
conn.release();
reject(err);
return false;
}
conn.release();
resolve(resp);
return true;
});
});
});
});
});
}
static async updt(id, data) {
return new Promise((resolve, reject) => {
const query = `UPDATE t_orders_vendors 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;
});
});
});
});
});
}
static async dlt(id) {
return new Promise((resolve, reject) => {
const query = `DELETE t_orders_vendors 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, [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 = OrdersVendorsModels;