const { models } = require('./db') /** * 校验是否空值 * @param {*} field 校验字段 * @param {*} comment 字段名称 * @returns 结果 */ const validateField = (field, comment) => { const result = { flag: true, msg: '' } if (field == null) { result.flag = false result.msg = '错误: 字段[ ' + comment + ' ]不能为空!' } return result } /** * 新增函数 * @param {*} parameter 参数(用于打印错误) * @param {*} data 数据(插入数据库的数据) * @param {*} tableName 表名 * @returns 结果 */ async function handleAdd(parameter, data, tableName) { try { // 新增数据 const result = await models[tableName].create({ data }) return { success: true, msg: '新增数据成功', data: result.data, } } catch (error) { return { success: false, msg: '新增数据失败', error: error, parameter } } // 新增数据 // const result = await models[tableName].create({ data }) // return { // success: true, // msg: '新增数据成功', // data: result.data, // } } /** * 编辑函数(根据Id编辑) * @param {*} parameter 参数(用于打印错误) * @param {*} data 修改的数据 * @param {*} tableName 表名 * @returns 结果 */ async function handleUpdate(parameter, id, data, tableName) { try { // 更新数据 const result = await models[tableName].update({ data, filter: { where: { _id: { $eq: id } } } }) return { success: true, msg: '修改数据成功', data: result, } } catch (error) { return { success: false, msg: '修改数据失败', error: error, parameter } } } /** * 根据Id删除 * @param {*} parameter 参数(用于打印错误) * @param {*} id 要删除的数据的Id * @param {*} tableName 表名 */ async function handleDelete(parameter, id, tableName) { try { await models[tableName].delete({ filter: { where: { $and: [ { _id: { $eq: id, }, }, ] } }, envType: "prod", }) return { success: true, msg: '删除数据成功', } } catch (error) { return { success: false, msg: '删除数据失败', error: error, parameter } } } /** * 根据某一字段查询数据 * @param {*} select 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true } * @param {*} field 查询条件使用的字段 * @param {*} fieldVal 字段的值 * @param {*} tableName 表名 * @returns List */ async function handleFindByField(select, field, fieldVal, tableName) { try { const result = await models[tableName].list({ select, filter: { where: { [field]: { $eq: fieldVal, // 推荐传入_id数据标识进行操作 }, } }, envType: "prod", }) return { success: true, msg: '查询成功', data: result.data.records, // sql } } catch (error) { return { success: false, msg: '查询失败', parameter, error: error } } } module.exports = { validateField, handleAdd, handleUpdate, handleDelete, handleFindByField }