|
@@ -0,0 +1,158 @@
|
|
|
+const {sqlHandle} = require("../config/db")
|
|
|
+const {isValue, paramToUnder} = require("../../util/index")
|
|
|
+const PageResult = require("../config/page")
|
|
|
+const StaticEntity = require("../entity/static-entity")
|
|
|
+const StaticService = {
|
|
|
+ list: ({name, orderByColumn, isAsc}) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ let sql = 'SELECT * FROM ship_test_static'
|
|
|
+ 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 sort DESC`
|
|
|
+ }
|
|
|
+ const result = await sqlHandle(sql)
|
|
|
+ return resolve(result.map(v => new StaticEntity(v)))
|
|
|
+ } catch (e) {
|
|
|
+ return reject(e.sqlMessage)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ page: ({pageNum, pageSize, name, orderByColumn, isAsc}) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ let sql = 'SELECT * FROM ship_test_static'
|
|
|
+ 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 sort DESC`
|
|
|
+ }
|
|
|
+ const result = await PageResult(sql, pageNum, pageSize, StaticEntity)
|
|
|
+ return resolve(result)
|
|
|
+ } catch (e) {
|
|
|
+ return reject(e.sqlMessage)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ info: (id) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ let sql = 'SELECT * FROM ship_test_static'
|
|
|
+ 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 StaticEntity(v))?.[0])
|
|
|
+ } catch (e) {
|
|
|
+ return reject(e.sqlMessage)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ queryBy: ({name}) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ let sql = 'SELECT * FROM ship_test_static'
|
|
|
+ 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 StaticEntity(v)))
|
|
|
+ } catch (e) {
|
|
|
+ return reject(e.sqlMessage)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ add: (form) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ const staticEntity = new StaticEntity(form)
|
|
|
+ const values = [
|
|
|
+ ['name', staticEntity.name],
|
|
|
+ ['remark', staticEntity.remark],
|
|
|
+ ['sort', staticEntity.sort],
|
|
|
+ ['wkt', staticEntity.wkt],
|
|
|
+ ['color', staticEntity.color],
|
|
|
+ ]
|
|
|
+ const sql = `INSERT INTO ship_test_static (${values.map(v => v[0]).join(',')}) VALUES (${values.map(v => '?').join(',')})`
|
|
|
+ const sameValid = await StaticService.queryBy({name: staticEntity.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 staticEntity = new StaticEntity(form)
|
|
|
+ const values = [
|
|
|
+ ['name', staticEntity.name],
|
|
|
+ ['remark', staticEntity.remark],
|
|
|
+ ['sort', staticEntity.sort],
|
|
|
+ ['wkt', staticEntity.wkt],
|
|
|
+ ['color', staticEntity.color],
|
|
|
+ ]
|
|
|
+ let sql = `UPDATE ship_test_static SET ${values.map(v => `${v[0]} = ?`).join(',')}`
|
|
|
+ if (!isValue(staticEntity.id)) {
|
|
|
+ return reject('id不可为空!')
|
|
|
+ } else {
|
|
|
+ sql += ' ' + `WHERE id = "${staticEntity.id}"`
|
|
|
+ }
|
|
|
+ const sameValid = await StaticService.queryBy({name: staticEntity.name})
|
|
|
+ if (sameValid.filter(v => v.id !== staticEntity.id).length > 0) {
|
|
|
+ return reject('已存在相同名称!')
|
|
|
+ }
|
|
|
+ const result = await sqlHandle(sql, values.map(v => v[1]))
|
|
|
+ return resolve(staticEntity.id)
|
|
|
+ } catch (e) {
|
|
|
+ return reject(e.sqlMessage)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ del: (ids) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ let sql = 'UPDATE ship_test_static 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)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+module.exports = StaticService
|