source-service.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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. try {
  9. let sql = 'SELECT * FROM ship_test_source'
  10. let where = ['del_flag = 0']
  11. if (isValue(name)) {
  12. where.push(`name LIKE "%${name}%"`)
  13. }
  14. if (where.length > 0) {
  15. sql += ' ' + `WHERE ${where.join(' AND ')}`
  16. }
  17. if (isValue(orderByColumn)) {
  18. sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
  19. } else {
  20. sql += ' ' + `ORDER BY update_time DESC`
  21. }
  22. const result = await sqlHandle(sql)
  23. resolve(result.map(v => new SourceEntity(v)))
  24. } catch (e) {
  25. reject(e.sqlMessage)
  26. }
  27. })
  28. },
  29. page: ({pageNum, pageSize, name, orderByColumn, isAsc}) => {
  30. return new Promise(async (resolve, reject) => {
  31. try {
  32. let sql = 'SELECT * FROM ship_test_source'
  33. let where = ['del_flag = 0']
  34. if (isValue(name)) {
  35. where.push(`name LIKE "%${name}%"`)
  36. }
  37. if (where.length > 0) {
  38. sql += ' ' + `WHERE ${where.join(' AND ')}`
  39. }
  40. if (isValue(orderByColumn)) {
  41. sql += ' ' + `ORDER BY ${paramToUnder(orderByColumn)} ${isAsc ? 'ASC' : 'DESC'}`
  42. } else {
  43. sql += ' ' + `ORDER BY update_time DESC`
  44. }
  45. const result = await PageResult(sql, pageNum, pageSize, SourceEntity)
  46. resolve(result)
  47. } catch (e) {
  48. reject(e.sqlMessage)
  49. }
  50. })
  51. },
  52. info: (id) => {
  53. return new Promise(async (resolve, reject) => {
  54. try {
  55. let sql = 'SELECT * FROM ship_test_source'
  56. let where = ['del_flag = 0']
  57. if (!isValue(id)) {
  58. reject('id不可为空')
  59. return
  60. } else {
  61. where.push(`id = ${id}`)
  62. }
  63. if (where.length > 0) {
  64. sql += ' ' + `WHERE ${where.join(' AND ')}`
  65. }
  66. const result = await sqlHandle(sql)
  67. resolve(result.map(v => new SourceEntity(v))?.[0])
  68. } catch (e) {
  69. reject(e.sqlMessage)
  70. }
  71. })
  72. },
  73. queryBy: ({name}) => {
  74. return new Promise(async (resolve, reject) => {
  75. try {
  76. let sql = 'SELECT * FROM ship_test_source'
  77. let where = ['del_flag = 0']
  78. if (isValue(name)) {
  79. where.push(`name = "${name}"`)
  80. }
  81. if (where.length > 0) {
  82. sql += ' ' + `WHERE ${where.join(' AND ')}`
  83. }
  84. const result = await sqlHandle(sql)
  85. resolve(result.map(v => new SourceEntity(v)))
  86. } catch (e) {
  87. reject(e.sqlMessage)
  88. }
  89. })
  90. },
  91. add: (form) => {
  92. return new Promise(async (resolve, reject) => {
  93. try {
  94. const sql = 'INSERT INTO ship_test_source (name, remark, sort) VALUES (?, ?, ?)'
  95. const sourceEntity = new SourceEntity(form)
  96. const sameValid = await SourceService.queryBy({name: sourceEntity.name})
  97. if (sameValid.length > 0) {
  98. reject('已存在相同名称!')
  99. return
  100. }
  101. const values = [
  102. sourceEntity.name,
  103. sourceEntity.remark,
  104. sourceEntity.sort,
  105. ]
  106. const result = await sqlHandle(sql, values)
  107. resolve(result.insertId)
  108. } catch (e) {
  109. reject(e.sqlMessage)
  110. }
  111. })
  112. },
  113. edit: (form) => {
  114. return new Promise(async (resolve, reject) => {
  115. try {
  116. let sql = 'UPDATE ship_test_source SET name = ?, remark = ?, sort = ?'
  117. const sourceEntity = new SourceEntity(form)
  118. if (!isValue(sourceEntity.id)) {
  119. reject('id不可为空!')
  120. return
  121. } else {
  122. sql += ' ' + `WHERE id = "${sourceEntity.id}"`
  123. }
  124. const sameValid = await SourceService.queryBy({name: sourceEntity.name})
  125. if (sameValid.filter(v => v.id !== sourceEntity.id).length > 0) {
  126. reject('已存在相同名称!')
  127. return
  128. }
  129. const values = [
  130. sourceEntity.name,
  131. sourceEntity.remark,
  132. sourceEntity.sort,
  133. ]
  134. const result = await sqlHandle(sql, values)
  135. resolve(sourceEntity.id)
  136. } catch (e) {
  137. reject(e.sqlMessage)
  138. }
  139. })
  140. },
  141. del: (ids) => {
  142. return new Promise(async (resolve, reject) => {
  143. try {
  144. let sql = 'UPDATE ship_test_source SET del_flag = "1"'
  145. if (ids?.length === 0) {
  146. reject('ids不可为空!')
  147. return
  148. } else {
  149. sql += ' ' + 'WHERE id IN (?)'
  150. }
  151. const result = await sqlHandle(sql, [ids])
  152. resolve('删除成功!')
  153. } catch (e) {
  154. reject(e.sqlMessage)
  155. }
  156. })
  157. }
  158. }
  159. export default SourceService