XWWitPark/witpark_server/util/db.js
2024-09-12 08:10:00 +08:00

108 lines
2.3 KiB
JavaScript

'use strict'
const Types = {
Int: 'int',
Stirng: 'string'
}
const OPTypes = {
And: 'and',
Or: 'or'
}
const getValueStringByType = function(types, value) {
let sql = ''
if (Types.Int === types) {
sql = value
} else if (Types.Stirng === types) {
sql = '"' + value +'"'
}
return sql
}
const generatorValues = function(param) {
let sql = ''
for (let i = 0; i < param.values.length; ++i) {
sql += getValueStringByType(param.types[i], param.values[i]) +','
}
return sql
}
const generatorQuery = function(param) {
let sql = ''
if (param.where === undefined || param.where.length === 0) {
return sql
}
sql += ' where '
for (let i = 0; i < param.where.length; ++i) {
sql += '`' + param.where[i].field + '`='
sql += getValueStringByType(param.where[i].types, param.where[i].value)
if (param.operator[i] !== undefined) {
sql += ' ' + param.operator[i] + ' '
}
}
return sql
}
const insert = async function(fastify, param) {
const connection = await fastify.mysql.getConnection()
let sql = 'insert into `' + param.table +'` ('
for (let i = 0; i < param.field.length; ++i) {
sql += '`' + param.field[i] +'`,'
}
let lestCh = sql.charAt(sql.length - 1)
if (lestCh === ',') {
sql = sql.slice(0, -1)
}
sql += ') value('
sql += generatorValues(param)
lestCh = sql.charAt(sql.length - 1)
if (lestCh === ',') {
sql = sql.slice(0, -1)
}
sql += ');'
console.log('sql', sql)
const res = await connection.query(sql)
connection.release()
if (null === res) {
console.log('insert failed')
return {errno: -1, message: '注册失败'}
}
return {errno: 0, message: ''}
}
const query = async function(fastify, param) {
const connection = await fastify.mysql.getConnection()
let sql = 'select '
for (let i = 0; i < param.field.length; ++i) {
sql += '`' + param.field[i] +'`,'
}
let lestCh = sql.charAt(sql.length - 1)
if (lestCh === ',') {
sql = sql.slice(0, -1)
}
sql += ' from ' + param.table
sql += ' ' + generatorQuery(param) + ';'
console.log('sql', sql)
const res = await connection.query(sql)
console.log(res)
connection.release()
if (null === res) {
console.log('query failed')
return {errno: -1, message: ''}
}
return {errno: 0, data: res[0], message: ''}
}
module.exports = {
insert,
query,
Types,
OPTypes
}