aozhiwei da49fb9979 1
2022-03-30 08:37:28 +08:00

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;