source-service.js 4.8 KB

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