roles.controller.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. const rolesService = require('../service/roles.service');
  2. const util = require('../utils/util');
  3. module.exports = {
  4. async list(ctx) {
  5. const { projectId, name = null, pageNum = 1, pageSize = 10 } = ctx.request.query;
  6. if (!projectId) {
  7. return ctx.throw(400, '项目ID不能为空');
  8. }
  9. const list = await rolesService.list(projectId, name, pageNum, pageSize);
  10. const { total } = await rolesService.listCount(projectId, name);
  11. util.success(ctx, {
  12. list,
  13. total,
  14. pageSize: +pageSize,
  15. pageNum: +pageNum,
  16. });
  17. },
  18. async listAll(ctx) {
  19. const { projectId } = ctx.request.query;
  20. if (!projectId || projectId == '0') {
  21. return ctx.throw(400, '项目ID不能为空');
  22. }
  23. const list = await rolesService.listAll(projectId);
  24. util.success(ctx, list);
  25. },
  26. async create(ctx) {
  27. const { projectId, name, remark } = ctx.request.body;
  28. if (!name) {
  29. return ctx.throw(400, '角色名称不能为空');
  30. }
  31. if (projectId == '0' || !projectId) {
  32. return ctx.throw(400, '请先创建项目');
  33. }
  34. if (!util.isNumber(projectId)) {
  35. return ctx.throw(400, 'projectId不合法');
  36. }
  37. const { userId, userName } = util.decodeToken(ctx);
  38. await rolesService.create(projectId, name, remark, userId, userName);
  39. util.success(ctx);
  40. },
  41. async delete(ctx) {
  42. const { id, projectId } = ctx.request.body;
  43. if (!id) {
  44. return ctx.throw(400, '角色ID不能为空');
  45. }
  46. if (!projectId) {
  47. return ctx.throw(400, '项目ID不能为空');
  48. }
  49. await rolesService.delete(id, projectId);
  50. util.success(ctx);
  51. },
  52. async update(ctx) {
  53. const { id, projectId, name, remark } = ctx.request.body;
  54. if (!id) {
  55. return ctx.throw(400, '角色ID不能为空');
  56. }
  57. if (!projectId) {
  58. return ctx.throw(400, '项目ID不能为空');
  59. }
  60. await rolesService.update(id, projectId, name, remark);
  61. util.success(ctx);
  62. },
  63. async updateLimits(ctx) {
  64. const { id, projectId, checked = '', halfChecked = '' } = ctx.request.body;
  65. if (!id) {
  66. return ctx.throw(400, '角色ID不能为空');
  67. }
  68. if (!projectId) {
  69. return ctx.throw(400, '项目ID不能为空');
  70. }
  71. await rolesService.updateLimits(id, projectId, checked, halfChecked);
  72. util.success(ctx);
  73. },
  74. };