role.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "iot_manager_service/app/system/dao"
  5. "iot_manager_service/app/system/model"
  6. "iot_manager_service/app/system/service"
  7. "iot_manager_service/util"
  8. "math"
  9. "net/http"
  10. "strconv"
  11. )
  12. var Role = new(role)
  13. type role struct{}
  14. func (c *role) GetDetail(ctx *gin.Context) {
  15. id := ctx.Query("id")
  16. iId, err := strconv.ParseInt(id, 10, 64)
  17. if err != nil {
  18. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
  19. return
  20. }
  21. role, err := service.RoleService.Get(iId)
  22. if err != nil {
  23. ctx.JSON(http.StatusOK, err)
  24. return
  25. }
  26. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, role))
  27. }
  28. func (c *role) List(ctx *gin.Context) {
  29. current, _ := strconv.Atoi(ctx.Query("current"))
  30. size, _ := strconv.Atoi(ctx.Query("size"))
  31. roleName := ctx.Query("roleName")
  32. tenantId := ctx.Query("tenantId")
  33. roleAlias := ctx.Query("roleAlias")
  34. if current == 0 {
  35. current = 1
  36. }
  37. if size <= 0 || size > 100 {
  38. size = 10
  39. }
  40. roles, err := service.RoleService.List(roleName, tenantId, roleAlias, current, size)
  41. if err != nil {
  42. ctx.JSON(http.StatusOK, err)
  43. return
  44. }
  45. pages := math.Ceil(float64(len(roles)) / float64(size))
  46. rsp := model.RsqRoleList{
  47. Current: current,
  48. Size: size,
  49. Total: len(roles),
  50. Pages: int(pages),
  51. Records: roles,
  52. }
  53. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, rsp))
  54. }
  55. func (c *role) Tree(ctx *gin.Context) {
  56. err := service.RoleService.Tree()
  57. ctx.JSON(http.StatusOK, err)
  58. }
  59. func (c *role) Submit(ctx *gin.Context) {
  60. var req dao.Role
  61. if err := ctx.ShouldBindJSON(&req); err != nil {
  62. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
  63. return
  64. }
  65. err := service.RoleService.Submit(req)
  66. ctx.JSON(http.StatusOK, err)
  67. }
  68. func (c *role) Remove(ctx *gin.Context) {
  69. var req *model.ReqRoleRemove
  70. if err := ctx.ShouldBindJSON(&req); err != nil {
  71. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
  72. return
  73. }
  74. err := service.RoleService.Remove(req.IDs)
  75. ctx.JSON(http.StatusOK, err)
  76. }
  77. func (c *role) GetList(ctx *gin.Context) {
  78. roles, err := service.RoleService.GetList()
  79. if err != nil {
  80. ctx.JSON(http.StatusOK, util.FailResponse(err.Error(), nil))
  81. }
  82. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, roles))
  83. }
  84. func (c *role) Grant(ctx *gin.Context) {
  85. var req *model.ReqRoleGrant
  86. if err := ctx.ShouldBindJSON(&req); err != nil {
  87. ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
  88. return
  89. }
  90. err := service.RoleService.Grant(req)
  91. if err != nil {
  92. ctx.JSON(http.StatusOK, util.FailResponse(err.Error(), nil))
  93. }
  94. ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, nil))
  95. }