dashboard.service.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. const connection = require('../sql');
  2. class DashboardService {
  3. // 获取总用户量
  4. async getTotalUsers() {
  5. const statement = `SELECT count(id) as total FROM users`;
  6. const [result] = await connection.execute(statement, []);
  7. return result[0];
  8. }
  9. // 获取今天注册用户量
  10. async getTotalUsersByToday() {
  11. const date = new Date().toLocaleDateString();
  12. const statement = `SELECT count(id) as total FROM users WHERE created_at > '${date} 00:00:00'`;
  13. const [result] = await connection.execute(statement, []);
  14. return result[0];
  15. }
  16. // 获取今天登录用户量
  17. async getLoginUsersByToday() {
  18. const date = new Date().toLocaleDateString();
  19. const statement = `SELECT count(id) as total FROM users WHERE updated_at > '${date} 00:00:00'`;
  20. const [result] = await connection.execute(statement, []);
  21. return result[0];
  22. }
  23. // 获取项目总数量
  24. async getTotalProjects() {
  25. const statement = `SELECT count(id) as total FROM projects`;
  26. const [result] = await connection.execute(statement, []);
  27. return result[0];
  28. }
  29. // 今天创建项目总数
  30. async getTotalCreatedByToday() {
  31. const date = new Date().toLocaleDateString();
  32. const statement = `SELECT count(id) as total FROM projects WHERE created_at > '${date} 00:00:00'`;
  33. const [result] = await connection.execute(statement, []);
  34. return result[0];
  35. }
  36. // 今天更新项目总数
  37. async getTotalUpdatesByToday() {
  38. const date = new Date().toLocaleDateString();
  39. const statement = `SELECT count(id) as total FROM projects WHERE updated_at > '${date} 00:00:00'`;
  40. const [result] = await connection.execute(statement, []);
  41. return result[0];
  42. }
  43. // 获取页面总数量
  44. async getTotalPages() {
  45. const statement = `SELECT count(id) as total FROM pages`;
  46. const [result] = await connection.execute(statement, []);
  47. return result[0];
  48. }
  49. // 获取页面今日创建数量
  50. async getCreatedPagesByToday() {
  51. const date = new Date().toLocaleDateString();
  52. const statement = `SELECT count(id) as total FROM pages WHERE created_at > '${date} 00:00:00'`;
  53. const [result] = await connection.execute(statement, []);
  54. return result[0];
  55. }
  56. // 获取页面今日更新数量
  57. async getUpdatedPagesByToday() {
  58. const date = new Date().toLocaleDateString();
  59. const statement = `SELECT count(id) as total FROM pages WHERE updated_at > '${date} 00:00:00'`;
  60. const [result] = await connection.execute(statement, []);
  61. return result[0];
  62. }
  63. // 获取组件库总数量
  64. async getTotalLibs() {
  65. const statement = `SELECT count(id) as total FROM lib`;
  66. const [result] = await connection.execute(statement, []);
  67. return result[0];
  68. }
  69. // 获取组件今日创建数量
  70. async getCreatedLibsByToday() {
  71. const date = new Date().toLocaleDateString();
  72. const statement = `SELECT count(id) as total FROM lib WHERE created_at > '${date} 00:00:00'`;
  73. const [result] = await connection.execute(statement, []);
  74. return result[0];
  75. }
  76. // 获取组件今日更新数量
  77. async getUpdatedLibsByToday() {
  78. const date = new Date().toLocaleDateString();
  79. const statement = `SELECT count(id) as total FROM lib WHERE updated_at > '${date} 00:00:00'`;
  80. const [result] = await connection.execute(statement, []);
  81. return result[0];
  82. }
  83. // 获取页面发布总次数
  84. async getPagesPublish() {
  85. const statement = `SELECT count(id) as total FROM pages_publish`;
  86. const [result] = await connection.execute(statement, []);
  87. return result[0];
  88. }
  89. // 获取组件发布总次数
  90. async getLibsPublish() {
  91. const statement = `SELECT count(id) as total FROM lib_publish`;
  92. const [result] = await connection.execute(statement, []);
  93. return result[0];
  94. }
  95. // 获取本月注册用户量
  96. async getUsersByWeek() {
  97. const statement = `
  98. SELECT
  99. DATE_FORMAT(created_at, '%Y-%m-%d') AS date,
  100. COUNT(*) AS value
  101. FROM
  102. users
  103. WHERE
  104. created_at >= DATE_FORMAT(CURDATE(), '%Y-%m-01')
  105. AND created_at < DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01')
  106. GROUP BY
  107. DATE_FORMAT(created_at, '%Y-%m-%d')
  108. ORDER BY
  109. date;
  110. `;
  111. const [result] = await connection.execute(statement, []);
  112. return result;
  113. }
  114. // 获取用户总条数
  115. async getUserCount(userId) {
  116. let statement = `SELECT count(id) total FROM users`;
  117. if (userId) {
  118. statement += ` WHERE id = ${userId}`;
  119. }
  120. const [result] = await connection.execute(statement, []);
  121. return result[0];
  122. }
  123. // 获取用户列表
  124. async getUserList(pageNum, pageSize, userId) {
  125. const offset = (+pageNum - 1) * pageSize + '';
  126. const limit = pageSize;
  127. const statement = `SELECT id,nick_name nickName,user_name userName,avatar,created_at createdAt, updated_at updatedAt FROM users where ${
  128. userId ? 'id = ' + userId : '1=1'
  129. } LIMIT ${offset},${limit};`;
  130. const [result] = await connection.execute(statement, []);
  131. return result;
  132. }
  133. // 获取充值总额
  134. async getTotalRecharge() {
  135. const statement = `SELECT sum(amount) as total FROM pay_records`;
  136. const [result] = await connection.execute(statement, []);
  137. return result[0];
  138. }
  139. // 获取今日充值总额
  140. async getTotalRechargeByToday() {
  141. const date = new Date().toLocaleDateString();
  142. const statement = `SELECT sum(amount) as total FROM pay_records WHERE created_at > '${date} 00:00:00'`;
  143. const [result] = await connection.execute(statement, []);
  144. return result[0];
  145. }
  146. }
  147. module.exports = new DashboardService();