download.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. const { models } = require('../db')
  2. const { validateField, handleAdd, handleUpdate, handleDelete, handleFindByField } = require('../common')
  3. /**
  4. *
  5. * 下载量统计 表格 调 microcode(访问下载量统计)
  6. *
  7. * 字段展示 园所 根据 售后管理表 school_id 去 学校表(wx_school)里查_id是否相同 相同取园所名称(name)
  8. * 课件名 —— 根据 售后管理表 file_id 去 文件表(file_manage)里查_id是否相同 相同取园所名称(name)
  9. * 下载量 —— download
  10. * 创建时间 —— createdAt
  11. *
  12. * 查询 调 microcode(访问下载量统计)
  13. * school_id —— 园所_id 园所是下拉 调 wx_school(园所表)
  14. * createdAt —— 创建时间
  15. *
  16. *
  17. */
  18. /**
  19. * 新增访问下载量统计
  20. * @param {*} file_id 课件Id
  21. * @param {*} school_id 学校Id
  22. * @returns
  23. */
  24. async function addMicrocode(parameter) {
  25. const { file_id, school_id } = parameter
  26. const v1 = validateField(school_id, 'school_id')
  27. if (!v1.flag) {
  28. return {
  29. success: false,
  30. msg: v1.msg
  31. }
  32. }
  33. const v2 = validateField(file_id, 'file_id')
  34. if (!v2.flag) {
  35. return {
  36. success: false,
  37. msg: v2.msg
  38. }
  39. }
  40. const data = {
  41. school_id,
  42. file_id,
  43. visits: 0,
  44. download: 0,
  45. }
  46. return await handleAdd(parameter, data, 'microcode')
  47. }
  48. /**
  49. * 根据Id删除
  50. * @param {*} _id Id
  51. */
  52. async function deleteMicrocode(parameter) {
  53. const { _id } = parameter
  54. return handleDelete(parameter, _id, 'microcode')
  55. }
  56. /**
  57. * 编辑
  58. * @param {*} _id 主键Id
  59. * @param {*} file_id 课件Id
  60. * @param {*} school_id 学校Id
  61. * @returns
  62. */
  63. async function updateMicrocode(parameter) {
  64. const { _id, school_id, file_id } = parameter
  65. const obj = {}
  66. const v0 = validateField(_id, '_id')
  67. if (!v0.flag) {
  68. return {
  69. success: false,
  70. msg: v0.msg
  71. }
  72. }
  73. const v1 = validateField(school_id, 'school_id')
  74. if (v1.flag) {
  75. obj.school_id = school_id
  76. }
  77. const v2 = validateField(file_id, 'file_id')
  78. if (v2.flag) {
  79. obj.file_id = file_id
  80. }
  81. return await handleUpdate(parameter, _id, obj, 'microcode')
  82. }
  83. /**
  84. * 分页查询
  85. * @param {*} school_id 学校Id
  86. * @param {*} startTime 开始时间
  87. * @param {*} endTime 结束时间
  88. * @param {*} pageNum 当前页面
  89. * @param {*} pageSize 每页展示数量
  90. * @returns 分页数据
  91. */
  92. async function findMicrocodePage(parameter) {
  93. const { school_id, startTime, endTime, pageNum, pageSize } = parameter
  94. const v1 = validateField(pageNum)
  95. if (!v1.flag) {
  96. return {
  97. success: false,
  98. records: [],
  99. msg: v1.msg
  100. }
  101. }
  102. const v2 = validateField(pageSize)
  103. if (!v2.flag) {
  104. return {
  105. success: false,
  106. records: [],
  107. msg: v2.msg
  108. }
  109. }
  110. // 查询参数
  111. const params = {
  112. pageNum,
  113. pageSize
  114. }
  115. // 拼接查询条件
  116. let condition = ""
  117. if (school_id != null) {
  118. condition += " where s._id = {{school_id}} "
  119. params.school_id = school_id
  120. }
  121. if (startTime != null && endTime != null) {
  122. if (condition) {
  123. condition += " and fm.createdAt >= {{startTime}} and fm.createdAt <= {{endTime}} "
  124. } else {
  125. condition += " where fm.createdAt >= {{startTime}} and fm.createdAt <= {{endTime}} "
  126. }
  127. params.startTime = startTime
  128. params.endTime = endTime
  129. }
  130. const skip = (pageNum - 1) * pageSize
  131. // 查询sql
  132. const sql = "select " +
  133. "s.name as schoolName, " +
  134. "fm.name as fileName, " +
  135. "m.download as download, " +
  136. "m.visits as visits, " +
  137. "fm.createdAt as createdAt " +
  138. "from microcode m " +
  139. "left join wx_school s on m.school_id = s._id " +
  140. "left join file_manage fm on m.file_id = fm._id " +
  141. condition +
  142. " order by fm.createdAt desc " + "limit " + skip + ", " + pageSize
  143. const countSql = "select count(*) as total from microcode m " +
  144. "left join wx_school s on m.school_id = s._id " +
  145. "left join file_manage fm on m.file_id = fm._id " +
  146. condition
  147. try {
  148. // 查询数据sql
  149. const records = await models.$runSQL(sql, params)
  150. const count = await models.$runSQL(countSql, params)
  151. return {
  152. sql,
  153. countSql,
  154. params,
  155. success: true,
  156. msg: '查询成功',
  157. records: records.data.executeResultList,
  158. total: count.data.executeResultList[0].total
  159. }
  160. } catch (error) {
  161. return {
  162. success: false,
  163. msg: '查询失败',
  164. params,
  165. sql,
  166. countSql,
  167. error: error
  168. }
  169. }
  170. }
  171. /**
  172. * 根据Id查询
  173. * @param {*} _id Id
  174. */
  175. async function findMicrocodeById(parameter) {
  176. const { _id } = parameter
  177. return handleFindByField(parameter, _id, 'microcode')
  178. }
  179. module.exports = {
  180. addMicrocode,
  181. deleteMicrocode,
  182. updateMicrocode,
  183. findMicrocodePage,
  184. findMicrocodeById,
  185. }