common.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. const { models } = require('./db')
  2. /**
  3. * 校验是否空值
  4. * @param {*} field 校验字段
  5. * @param {*} comment 字段名称
  6. * @returns 结果
  7. */
  8. const validateField = (field, comment) => {
  9. const result = {
  10. flag: true,
  11. msg: ''
  12. }
  13. if (field == null) {
  14. result.flag = false
  15. result.msg = '错误: 字段[ ' + comment + ' ]不能为空!'
  16. }
  17. return result
  18. }
  19. /**
  20. * 新增函数
  21. * @param {*} parameter 参数(用于打印错误)
  22. * @param {*} data 数据(插入数据库的数据)
  23. * @param {*} tableName 表名
  24. * @returns 结果
  25. */
  26. async function handleAdd(parameter, data, tableName) {
  27. try {
  28. // 新增数据
  29. const result = await models[tableName].create({ data })
  30. return {
  31. success: true,
  32. msg: '新增数据成功',
  33. data: result.data,
  34. }
  35. } catch (error) {
  36. return {
  37. success: false,
  38. msg: '新增数据失败',
  39. error: error,
  40. parameter
  41. }
  42. }
  43. // 新增数据
  44. // const result = await models[tableName].create({ data })
  45. // return {
  46. // success: true,
  47. // msg: '新增数据成功',
  48. // data: result.data,
  49. // }
  50. }
  51. /**
  52. * 编辑函数(根据Id编辑)
  53. * @param {*} parameter 参数(用于打印错误)
  54. * @param {*} data 修改的数据
  55. * @param {*} tableName 表名
  56. * @returns 结果
  57. */
  58. async function handleUpdate(parameter, id, data, tableName) {
  59. try {
  60. // 更新数据
  61. const result = await models[tableName].update({
  62. data,
  63. filter: {
  64. where: {
  65. _id: {
  66. $eq: id
  67. }
  68. }
  69. }
  70. })
  71. return {
  72. success: true,
  73. msg: '修改数据成功',
  74. data: result,
  75. }
  76. } catch (error) {
  77. return {
  78. success: false,
  79. msg: '修改数据失败',
  80. error: error,
  81. parameter
  82. }
  83. }
  84. }
  85. /**
  86. * 根据Id删除
  87. * @param {*} parameter 参数(用于打印错误)
  88. * @param {*} id 要删除的数据的Id
  89. * @param {*} tableName 表名
  90. */
  91. async function handleDelete(parameter, id, tableName) {
  92. try {
  93. await models[tableName].delete({
  94. filter: {
  95. where: {
  96. $and: [
  97. {
  98. _id: {
  99. $eq: id,
  100. },
  101. },
  102. ]
  103. }
  104. },
  105. envType: "prod",
  106. })
  107. return {
  108. success: true,
  109. msg: '删除数据成功',
  110. }
  111. } catch (error) {
  112. return {
  113. success: false,
  114. msg: '删除数据失败',
  115. error: error,
  116. parameter
  117. }
  118. }
  119. }
  120. /**
  121. * 根据某一字段查询数据
  122. * @param {*} select 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true }
  123. * @param {*} field 查询条件使用的字段
  124. * @param {*} fieldVal 字段的值
  125. * @param {*} tableName 表名
  126. * @returns List
  127. */
  128. async function handleFindByField(select, field, fieldVal, tableName) {
  129. try {
  130. const result = await models[tableName].list({
  131. select,
  132. filter: {
  133. where: {
  134. [field]: {
  135. $eq: fieldVal, // 推荐传入_id数据标识进行操作
  136. },
  137. }
  138. },
  139. envType: "prod",
  140. })
  141. return {
  142. success: true,
  143. msg: '查询成功',
  144. data: result.data.records,
  145. // sql
  146. }
  147. } catch (error) {
  148. return {
  149. success: false,
  150. msg: '查询失败',
  151. parameter,
  152. error: error
  153. }
  154. }
  155. }
  156. module.exports = {
  157. validateField,
  158. handleAdd,
  159. handleUpdate,
  160. handleDelete,
  161. handleFindByField
  162. }