277 lines
6.9 KiB
JavaScript
277 lines
6.9 KiB
JavaScript
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; |