- 新增 Prettier 配置文件,规范代码格式 - 重构用户控制器和 DAO 层代码,提高可读性和维护性 - 添加 MongoDB 数据库配置和连接逻辑 - 更新用户模型,使用 Mongoose Schema 定义 - 新增密码加密功能 - 删除 SQLite 相关代码和数据库文件
209 lines
3.8 KiB
JavaScript
209 lines
3.8 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
|
|
}
|