project.user.service.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. const connection = require('../sql');
  2. class UserService {
  3. // 查询总条数
  4. async listCount(projectId, userName) {
  5. const statement =
  6. "SELECT COUNT(`id`) total FROM project_user WHERE project_id = ? and (user_name LIKE COALESCE(CONCAT('%',?,'%'), user_name) OR ? IS NULL);";
  7. const [result] = await connection.execute(statement, [projectId, userName || null, userName || null]);
  8. return result[0];
  9. }
  10. // 查询列表
  11. async list(projectId, userName, pageNum = 1, pageSize = 10) {
  12. const offset = (+pageNum - 1) * pageSize + '';
  13. const limit = pageSize;
  14. const statement = `
  15. SELECT
  16. id,
  17. system_role as systemRole,
  18. project_id as projectId,
  19. role_id as roleId,
  20. user_id as userId,
  21. user_name as userName,
  22. updated_at as updatedAt,
  23. created_at as createdAt
  24. FROM
  25. project_user
  26. WHERE
  27. project_id = ?
  28. and
  29. (user_name LIKE COALESCE(CONCAT('%',?,'%'), user_name) OR ? IS NULL)
  30. ORDER BY id DESC LIMIT ${offset},${limit};
  31. `;
  32. const [result] = await connection.execute(statement, [projectId, userName || null, userName || null]);
  33. return result;
  34. }
  35. async createUser(params) {
  36. const statement =
  37. 'INSERT INTO project_user (user_id, user_name, project_id, system_role, role_id, created_uid, created_uname) VALUES (?, ?, ?, ?, ?, ?, ?);';
  38. const [result] = await connection.execute(statement, [
  39. params.userId,
  40. params.userName,
  41. params.projectId,
  42. params.systemRole,
  43. params.roleId,
  44. params.createUserId,
  45. params.createUserName,
  46. ]);
  47. return result;
  48. }
  49. async deleteUser(id) {
  50. const statement = 'DELETE FROM project_user WHERE id = ?;';
  51. const [result] = await connection.execute(statement, [id]);
  52. return result;
  53. }
  54. async deleteUserByProjectId(projectId) {
  55. const statement = 'DELETE FROM project_user WHERE project_id = ?;';
  56. const [result] = await connection.execute(statement, [projectId]);
  57. return result;
  58. }
  59. async updateUser(params) {
  60. const statement = 'UPDATE project_user SET system_role = ?, role_id = ? WHERE id = ?;';
  61. const [result] = await connection.execute(statement, [params.systemRole, params.roleId, params.id]);
  62. return result;
  63. }
  64. // 查询详情
  65. async detail(id) {
  66. const statement = `
  67. SELECT
  68. id,
  69. system_role as systemRole,
  70. project_id as projectId,
  71. role_id as roleId,
  72. user_id as userId,
  73. user_name as userName,
  74. updated_at as updatedAt,
  75. created_at as createdAt
  76. FROM
  77. project_user WHERE id = ?;
  78. `;
  79. const [result] = await connection.execute(statement, [id]);
  80. return result[0];
  81. }
  82. // 根据项目ID和账号查询用户角色信息
  83. async getUserRole(userId, projectId) {
  84. const statement = `
  85. SELECT
  86. id,
  87. system_role as systemRole,
  88. project_id as projectId,
  89. role_id as roleId,
  90. user_id as userId,
  91. user_name as userName,
  92. updated_at as updatedAt,
  93. created_at as createdAt
  94. FROM
  95. project_user
  96. WHERE
  97. user_id = ? and project_id = ?;
  98. `;
  99. const [result] = await connection.execute(statement, [userId, projectId]);
  100. return result[0];
  101. }
  102. // 用户注销
  103. async deleteAllProjectUser(userId) {
  104. const statement = 'DELETE FROM project_user WHERE created_uid = ?;';
  105. const [result] = await connection.execute(statement, [userId]);
  106. return result;
  107. }
  108. }
  109. module.exports = new UserService();