108 lines
2.3 KiB
JavaScript
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
|
|
} |