121 lines
2.7 KiB
JavaScript
121 lines
2.7 KiB
JavaScript
const db = require("./db");
|
|
const utils = require("./utils");
|
|
|
|
async function update(tblName, whereList, fieldList) {
|
|
const params = [];
|
|
let sql = 'UPDATE `' + tblName + '` SET ';
|
|
|
|
fieldList.forEach((item, index) => {
|
|
const suffix = (index + 1 < fieldList.length ? ',': '');
|
|
sql += ' `' + item[0] + '`=?' + suffix;
|
|
params.push(item[1]);
|
|
});
|
|
|
|
sql += ' WHERE 1=1';
|
|
whereList.forEach((item, index) => {
|
|
sql += ' AND ' + item[0] + '=?';
|
|
params.push(item[1]);
|
|
});
|
|
|
|
return db.execScript(sql, params);
|
|
}
|
|
|
|
async function mustBeUpdate(tblName, whereList, fieldList, time) {
|
|
while (true) {
|
|
const err = await update(tblName, whereList, fieldList, );
|
|
if (!err) {
|
|
return err;
|
|
} else {
|
|
await utils.sleep(time);
|
|
}
|
|
}
|
|
}
|
|
|
|
async function insert(tblName, fieldList) {
|
|
const params = [];
|
|
let sql = 'INSERT INTO `' + tblName + '` (';
|
|
|
|
fieldList.forEach((item, index) => {
|
|
const suffix = (index + 1 < fieldList.length ? ',': '');
|
|
sql += '`' + item[0] + '`' + suffix;
|
|
});
|
|
|
|
sql += ') VALUES (';
|
|
fieldList.forEach((item, index) => {
|
|
const suffix = (index + 1 < fieldList.length ? ',': '');
|
|
sql += '?' + suffix;
|
|
params.push(item[1]);
|
|
});
|
|
sql += ')';
|
|
|
|
return db.execScript(sql, params);
|
|
}
|
|
|
|
async function mustBeInsert(tblName, fieldList, time) {
|
|
while (true) {
|
|
const err = await insert(tblName, fieldList);
|
|
if (!err) {
|
|
return err;
|
|
} else {
|
|
await utils.sleep(time);
|
|
}
|
|
}
|
|
}
|
|
|
|
async function _delete(tblName, whereList) {
|
|
const params = [];
|
|
let sql = 'DELETE FROM `' + tblName + '` ';
|
|
|
|
sql += ' WHERE 1=1';
|
|
whereList.forEach((item, index) => {
|
|
sql += ' AND ' + item[0] + '=?';
|
|
params.push(item[1]);
|
|
});
|
|
|
|
return db.execScript(sql, params);
|
|
}
|
|
|
|
async function ormSelect(tblName, whereList) {
|
|
const params = [];
|
|
let sql = 'SELECT * FROM `' + tblName + '` ';
|
|
|
|
sql += ' WHERE 1=1';
|
|
whereList.forEach((item, index) => {
|
|
sql += ' AND `' + item[0] + '`=?';
|
|
params.push(item[1]);
|
|
});
|
|
|
|
return db.execQuery(sql, params);
|
|
}
|
|
|
|
async function ormSelectOne(tblName, whereList) {
|
|
const {err, rows} = await ormSelect(tblName, whereList);
|
|
return {
|
|
'err': err,
|
|
'row': rows.length > 0 ? rows[0] : null
|
|
};
|
|
}
|
|
|
|
async function mustBeOrmSelectOne(tblName, whereList, time) {
|
|
while (true) {
|
|
const {err, row} = await ormSelectOne(tblName, whereList);
|
|
if (!err) {
|
|
return {
|
|
'err': err,
|
|
'row': row
|
|
};
|
|
} else {
|
|
await utils.sleep(time);
|
|
}
|
|
}
|
|
}
|
|
|
|
exports.ormSelect = ormSelect;
|
|
exports.ormSelectOne = ormSelectOne;
|
|
exports.mustBeOrmSelectOne = mustBeOrmSelectOne;
|
|
exports.update = update;
|
|
exports.mustBeUpdate = mustBeUpdate;
|
|
exports.insert = insert;
|
|
exports.mustBeInsert = mustBeInsert;
|
|
exports._delete = _delete;
|