expressServer/dao/userMapper.js

190 lines
4.1 KiB
JavaScript

const sqlite = require('../db/sqlite.config');
const User = require("../models/user.model");
/**
*
* @param {*} id
* @returns
*/
exports.selectById = async (id) => {
let db;
try {
db = await sqlite.connectSqlite();
db.all('SELECT * FROM USERS WHERE `id` = ?', [id], async function (err, rows) {
if (err) {
console.error(err);
}
return await getUser(rows);
});
const rows = await new Promise((resolve, reject) => {
db.all('SELECT * FROM USERS WHERE `id` = ?', [id], (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
});
});
return await getUser(rows);
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
throw err;
}
}
};
/**
*
* @param {*} name
* @returns
*/
exports.selectByName = async (name) => {
let db;
try {
db = await sqlite.connectSqlite();
const rows = await new Promise((resolve, reject) => {
db.all('SELECT * FROM USERS', async function (err, rows) {
if (err) {
reject(err);
}
resolve(rows);
});
})
return await getUser(rows);
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
console.error(error);
}
}
}
exports.selectAllUser = async () => {
let db;
try {
db = await sqlite.connectSqlite();
const rows = await new Promise((reject, resolve) => {
db.all('SELECT * FROM USERS', async function (err, rows) {
if (err) {
reject(err);
}
resolve(rows)
});
})
return await getUser(rows);
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
console.error(error);
}
}
}
/**
*
* @param {*} User
*/
exports.insertUser = async (User) => {
let db;
try {
db = await sqlite.connectSqlite();
const user = await new Promise((resolve, reject) => {
db.run('INSERT \
INTO USERS(USER_ACCOUNT, USER_NAME, PASSWORD, EMAIL, MOBILE) \
VALUES(?, ?, ?, ?, ?)',
[User.user_account, User.user_name, User.password, User.email, User.mobile],
async function (err) {
if (err) {
reject(err);
}
console.log(this + '-----');
resolve(this);
});
});
} catch (error) {
throw error
} finally {
try {
await db.close();
} catch (error) {
console.error(error);
}
}
}
/**
* @param password
* @param userId
*/
exports.updatePassword = async (password, userId) => {
let db;
try {
db = await sqlite.connectSqlite();
const thisUpdate = await new Promise((resolve, reject) => {
db.run(
"UPDATE USERS SET PASSWORD = ? WHERE ID = ?;",
[password, userId],
async function (err) {
if (err) {
reject(err);
}
resolve(this);
}
)
})
} catch (error) {
throw error;
} finally {
try {
await db.close();
} catch (error) {
throw error;
}
}
}
/**
*
* @param rows
*/
getUser = async (rows) => {
let users = new Array();
rows.map((value, index) => {
users[index] = new User(
value.id,
value.user_account,
value.user_name,
value.password,
value.email,
value.mobile,
value.status,
value.create_time,
value.update_time);
});
return users;
}