import {sqlHandle} from "../config/db.js"; import {isValue, paramToUnder} from "../../util/index.js"; import PageResult from "../config/page.js"; import SourceEntity from "../entity/source-entity.js"; const SourceService = { list: ({name, orderByColumn, isAsc}) => { return new Promise(async (resolve, reject) => { let sql = 'SELECT * FROM ship_test_source' let where = ['del_flag = 0'] 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 update_time DESC` } const result = await sqlHandle(sql) resolve(result.map(v => new SourceEntity(v))) }) }, page: ({pageNum, pageSize, name, orderByColumn, isAsc}) => { return new Promise(async (resolve, reject) => { let sql = 'SELECT * FROM ship_test_source' let where = ['del_flag = 0'] 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 update_time DESC` } const result = await PageResult(sql, pageNum, pageSize, SourceEntity) resolve(result) }) }, info: (id) => { return new Promise(async (resolve, reject) => { let sql = 'SELECT * FROM ship_test_source' let where = ['del_flag = 0'] if (!isValue(id)) { reject('id不可为空') return } else { where.push(`id = ${id}`) } if (where.length > 0) { sql += ' ' + `WHERE ${where.join(' AND ')}` } const result = await sqlHandle(sql) resolve(result.map(v => new SourceEntity(v))?.[0]) }) }, add: (form) => { return new Promise(async (resolve, reject) => { const sql = 'INSERT INTO ship_test_source (name, remark, sort) VALUES (?, ?, ?)' const sourceEntity = new SourceEntity(form) const sameValid = await SourceService.queryBy({name: sourceEntity.name}) if (sameValid.length > 0) { reject('已存在相同名称!') return } const values = [ sourceEntity.name, sourceEntity.remark, sourceEntity.sort, ] const result = await sqlHandle(sql, values) resolve(result) }) }, queryBy: ({name}) => { return new Promise(async (resolve, reject) => { let sql = 'SELECT * FROM ship_test_source' 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) resolve(result.map(v => new SourceEntity(v))) }) } } export default SourceService