expressServer/dao/user.mapper.js
2024-07-02 21:30:47 +08:00

207 lines
4.5 KiB
JavaScript

const sqlite = require('../db/sqlite.config');
const User = require("../models/user.model");
/**
* 查询用户 - account
* @param {*} account
* @returns {User}
*/
exports.selectByAccount = async (account) => {
let db;
try {
db = await sqlite.connectSqlite();
const rows = await new Promise((resolve, reject) => {
db.all('SELECT * FROM USERS WHERE `USER_ACCOUNT` = ?', [account], (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
});
});
return (await getUser(rows))[0];
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
throw err;
}
}
};
/**
* 查询用户 - id
* @param {*} id
* @returns {User}
*/
exports.selectById = async (id) => {
let db;
try {
db = await sqlite.connectSqlite();
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)[0];
} catch (err) {
throw err;
} finally {
try {
await db.close();
} catch (error) {
throw err;
}
}
};
/**
* 查询用户 - name
* @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 WHERE = ?', [name], 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} _user
*/
exports.insertUser = async (_user) => {
let db;
try {
db = await sqlite.connectSqlite();
const u = 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);
});
});
console.log("新增成功", u.toString());
} 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);
});
return users;
}