dashboard.service.js 5.5 KB

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