source-service.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import {sqlHandle} from "../config/db.js";
  2. import {isValue, paramToUnder} from "../../util/index.js";
  3. import PageResult from "../config/page.js";
  4. import SourceEntity from "../entity/source-entity.js";
  5. const SourceService = {
  6. list: ({name, orderByColumn, isAsc}) => {
  7. return new Promise(async (resolve, reject) => {
  8. let sql = 'SELECT * FROM ship_test_source'
  9. let where = ['del_flag = 0']
  10. if (isValue(name)) {
  11. where.push(`name LIKE "%${name}%"`)
  12. }
  13. if (where.length > 0) {
  14. sql += ' ' + `WHERE ${where.join(' AND ')}`
  15. }
  16. if (isValue(orderByColumn)) {
  17. sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
  18. } else {
  19. sql += ' ' + `ORDER BY update_time DESC`
  20. }
  21. const result = await sqlHandle(sql)
  22. resolve(result.map(v => new SourceEntity(v)))
  23. })
  24. },
  25. page: ({pageNum, pageSize, name, orderByColumn, isAsc}) => {
  26. return new Promise(async (resolve, reject) => {
  27. let sql = 'SELECT * FROM ship_test_source'
  28. let where = ['del_flag = 0']
  29. if (isValue(name)) {
  30. where.push(`name LIKE "%${name}%"`)
  31. }
  32. if (where.length > 0) {
  33. sql += ' ' + `WHERE ${where.join(' AND ')}`
  34. }
  35. if (isValue(orderByColumn)) {
  36. sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
  37. } else {
  38. sql += ' ' + `ORDER BY update_time DESC`
  39. }
  40. const result = await PageResult(sql, pageNum, pageSize, SourceEntity)
  41. resolve(result)
  42. })
  43. },
  44. info: (id) => {
  45. return new Promise(async (resolve, reject) => {
  46. let sql = 'SELECT * FROM ship_test_source'
  47. let where = ['del_flag = 0']
  48. if (!isValue(id)) {
  49. reject('id不可为空')
  50. return
  51. } else {
  52. where.push(`id = ${id}`)
  53. }
  54. if (where.length > 0) {
  55. sql += ' ' + `WHERE ${where.join(' AND ')}`
  56. }
  57. const result = await sqlHandle(sql)
  58. resolve(result.map(v => new SourceEntity(v))?.[0])
  59. })
  60. },
  61. add: (form) => {
  62. return new Promise(async (resolve, reject) => {
  63. const sql = 'INSERT INTO ship_test_source (name, remark, sort) VALUES (?, ?, ?)'
  64. const sourceEntity = new SourceEntity(form)
  65. const sameValid = await SourceService.queryBy({name: sourceEntity.name})
  66. if (sameValid.length > 0) {
  67. reject('已存在相同名称!')
  68. return
  69. }
  70. const values = [
  71. sourceEntity.name,
  72. sourceEntity.remark,
  73. sourceEntity.sort,
  74. ]
  75. const result = await sqlHandle(sql, values)
  76. resolve(result)
  77. })
  78. },
  79. queryBy: ({name}) => {
  80. return new Promise(async (resolve, reject) => {
  81. let sql = 'SELECT * FROM ship_test_source'
  82. let where = ['del_flag = 0']
  83. if (isValue(name)) {
  84. where.push(`name = "${name}"`)
  85. }
  86. if (where.length > 0) {
  87. sql += ' ' + `WHERE ${where.join(' AND ')}`
  88. }
  89. const result = await sqlHandle(sql)
  90. resolve(result.map(v => new SourceEntity(v)))
  91. })
  92. }
  93. }
  94. export default SourceService