project.user.controller.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const userService = require('../service/project.user.service');
  2. const util = require('../utils/util');
  3. module.exports = {
  4. // 用户列表
  5. async list(ctx) {
  6. const { projectId, userName = null, pageNum, pageSize } = ctx.request.query;
  7. if (!projectId || projectId == 0) {
  8. return ctx.throw(400, '项目ID不能为空');
  9. }
  10. const list = await userService.list(projectId, userName, pageNum, pageSize);
  11. const { total } = await userService.listCount(projectId, userName);
  12. util.success(ctx, {
  13. list,
  14. total,
  15. pageSize: +pageSize,
  16. pageNum: +pageNum,
  17. });
  18. },
  19. // 用户创建
  20. async create(ctx) {
  21. const params = ctx.request.body;
  22. if (!params.projectId) {
  23. return ctx.throw(400, '项目ID不能为空');
  24. }
  25. if (!params.userId || !params.userName) {
  26. return ctx.throw(400, '用户ID和用户名不能为空');
  27. }
  28. // 1:管理员, 2:普通用户,如果是普通用户,必须传入角色id
  29. if (!params.systemRole || params.systemRole > 9) {
  30. return ctx.throw(400, '系统角色不能为空');
  31. }
  32. // 如果是普通用户,必须传入角色id
  33. if (params.systemRole == 2 && !params.roleId) {
  34. return ctx.throw(400, '用户角色不能为空');
  35. }
  36. if (params.systemRole == 1) {
  37. params.roleId = 0;
  38. }
  39. const { userId, userName } = util.decodeToken(ctx);
  40. // 获取用户角色
  41. const user = await userService.getUserRole(params.userId, params.projectId);
  42. if (user) {
  43. return ctx.throw(400, '该用户已存在');
  44. }
  45. params.createUserId = userId;
  46. params.createUserName = userName;
  47. await userService.createUser(params);
  48. util.success(ctx);
  49. },
  50. // 用户删除
  51. async delete(ctx) {
  52. const { id } = ctx.request.body;
  53. if (!util.isNumber(id)) {
  54. return ctx.throw(400, '用户ID不能为空');
  55. }
  56. await userService.deleteUser(id);
  57. util.success(ctx);
  58. },
  59. // 用户更新
  60. async update(ctx) {
  61. const params = ctx.request.body;
  62. if (!util.isNumber(params.id)) {
  63. return ctx.throw(400, '用户ID不能为空');
  64. }
  65. if (!params.systemRole) {
  66. return ctx.throw(400, '系统角色不能为空');
  67. }
  68. // 1:管理员, 2:普通用户,如果是普通用户,必须传入角色id
  69. if (params.systemRole == 2 && !params.roleId) {
  70. return ctx.throw(400, '用户角色不能为空');
  71. }
  72. if (params.systemRole == 1) {
  73. params.roleId = 0;
  74. }
  75. await userService.updateUser(params);
  76. util.success(ctx);
  77. },
  78. // 用户详情
  79. async detail(ctx) {
  80. const { id } = ctx.request.query;
  81. if (!util.isNumber(id)) {
  82. return ctx.throw(400, '用户ID不能为空');
  83. }
  84. const userInfo = await userService.detail(+id);
  85. util.success(ctx, userInfo);
  86. },
  87. };