import {sqlHandle} from "../config/db.js"; import {isValue, paramToUnder} from "../../util/index.js"; import PageResult from "../config/page.js"; import ParamsDictEntity from "../entity/params-dict-entity.js"; const ParamsDictService = { list: ({paramsId, name, orderByColumn, isAsc}) => { return new Promise(async (resolve, reject) => { try { let sql = 'SELECT * FROM ship_test_params_dict' let where = ['del_flag = 0'] if (isValue(paramsId)) { where.push(`params_id = "${paramsId}"`) } else { return reject('参数ID不可为空') } if (isValue(name)) { where.push(`name LIKE "%${name}%"`) } if (where.length > 0) { sql += ' ' + `WHERE ${where.join(' AND ')}` } if (isValue(orderByColumn)) { sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}` } else { sql += ' ' + `ORDER BY sort DESC` } const result = await sqlHandle(sql) return resolve(result.map(v => new ParamsDictEntity(v))) } catch (e) { return reject(e.sqlMessage) } }) }, page: ({paramsId, pageNum, pageSize, name, orderByColumn, isAsc}) => { return new Promise(async (resolve, reject) => { try { let sql = 'SELECT * FROM ship_test_params_dict' let where = ['del_flag = 0'] if (isValue(paramsId)) { where.push(`params_id = "${paramsId}"`) } else { return reject('参数ID不可为空') } if (isValue(name)) { where.push(`name LIKE "%${name}%"`) } if (where.length > 0) { sql += ' ' + `WHERE ${where.join(' AND ')}` } if (isValue(orderByColumn)) { sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}` } else { sql += ' ' + `ORDER BY sort DESC` } const result = await PageResult(sql, pageNum, pageSize, ParamsDictEntity) return resolve(result) } catch (e) { return reject(e.sqlMessage) } }) }, info: (id) => { return new Promise(async (resolve, reject) => { try { let sql = 'SELECT * FROM ship_test_params_dict' let where = ['del_flag = 0'] if (!isValue(id)) { return reject('id不可为空') } else { where.push(`id = ${id}`) } if (where.length > 0) { sql += ' ' + `WHERE ${where.join(' AND ')}` } const result = await sqlHandle(sql) return resolve(result.map(v => new ParamsDictEntity(v))?.[0]) } catch (e) { return reject(e.sqlMessage) } }) }, queryBy: ({name}) => { return new Promise(async (resolve, reject) => { try { let sql = 'SELECT * FROM ship_test_params_dict' let where = ['del_flag = 0'] if (isValue(name)) { where.push(`name = "${name}"`) } if (where.length > 0) { sql += ' ' + `WHERE ${where.join(' AND ')}` } const result = await sqlHandle(sql) return resolve(result.map(v => new ParamsDictEntity(v))) } catch (e) { return reject(e.sqlMessage) } }) }, add: (form) => { return new Promise(async (resolve, reject) => { try { const paramsDictEntity = new ParamsDictEntity(form) const values = [ ['params_id', paramsDictEntity.paramsId], ['name', paramsDictEntity.name], ['remark', paramsDictEntity.remark], ['sort', paramsDictEntity.sort], ['cql', paramsDictEntity.cql], ['active', paramsDictEntity.active], ] const sql = `INSERT INTO ship_test_params_dict (${values.map(v => v[0]).join(',')}) VALUES (${values.map(v => '?').join(',')})` if (!isValue(paramsDictEntity.paramsId)) { return reject('参数ID不可为空') } if (!isValue(paramsDictEntity.cql)) { return reject('cql不可为空') } const sameValid = await ParamsDictService.queryBy({name: paramsDictEntity.name}) if (sameValid.length > 0) { return reject('已存在相同名称!') } const result = await sqlHandle(sql, values.map(v => v[1])) return resolve(result.insertId) } catch (e) { return reject(e.sqlMessage) } }) }, edit: (form) => { return new Promise(async (resolve, reject) => { try { const paramsDictEntity = new ParamsDictEntity(form) const values = [ ['name', paramsDictEntity.name], ['remark', paramsDictEntity.remark], ['sort', paramsDictEntity.sort], ['cql', paramsDictEntity.cql], ] let sql = `UPDATE ship_test_params_dict SET ${values.map(v => `${v[0]} = ?`).join(',')}` if (!isValue(paramsDictEntity.id)) { return reject('id不可为空!') } else { sql += ' ' + `WHERE id = "${paramsDictEntity.id}"` } if (!isValue(paramsDictEntity.cql)) { return reject('cql不可为空') } const sameValid = await ParamsDictService.queryBy({name: paramsDictEntity.name}) if (sameValid.filter(v => v.id !== paramsDictEntity.id).length > 0) { return reject('已存在相同名称!') } const result = await sqlHandle(sql, values.map(v => v[1])) return resolve(paramsDictEntity.id) } catch (e) { return reject(e.sqlMessage) } }) }, del: (ids) => { return new Promise(async (resolve, reject) => { try { let sql = 'UPDATE ship_test_params_dict SET del_flag = "1"' if (ids?.length === 0) { return reject('ids不可为空!') } else { sql += ' ' + 'WHERE id IN (?)' } const result = await sqlHandle(sql, [ids]) return resolve('删除成功!') } catch (e) { return reject(e.sqlMessage) } }) }, enabled: (ids) => { return new Promise(async (resolve, reject) => { try { let sql = 'UPDATE ship_test_params_dict SET active = 0' if (ids?.length === 0) { return reject('ids不可为空!') } else { sql += ' ' + 'WHERE id IN (?)' } const result = await sqlHandle(sql, [ids]) return resolve('启用成功!') } catch (e) { return reject(e.sqlMessage) } }) }, disabled: (ids) => { return new Promise(async (resolve, reject) => { try { let sql = 'UPDATE ship_test_params_dict SET active = 1' if (ids?.length === 0) { return reject('ids不可为空!') } else { sql += ' ' + 'WHERE id IN (?)' } const result = await sqlHandle(sql, [ids]) return resolve('禁用成功!') } catch (e) { return reject(e.sqlMessage) } }) } } export default ParamsDictService