roleAction.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package role
  2. import (
  3. "github.com/gogf/gf/frame/g"
  4. "github.com/gogf/gf/net/ghttp"
  5. "github.com/gogf/gf/os/glog"
  6. "github.com/gogf/gf/os/gtime"
  7. "github.com/gogf/gf/util/gconv"
  8. "gmanager/app/service/role"
  9. "gmanager/library/base"
  10. )
  11. type Action struct {
  12. base.BaseRouter
  13. }
  14. // path: /index
  15. func (action *Action) Index(r *ghttp.Request) {
  16. tplFile := "pages/system/role_index.html"
  17. err := r.Response.WriteTpl(tplFile, g.Map{
  18. "now": gtime.Datetime(),
  19. })
  20. if err != nil {
  21. glog.Error(err)
  22. }
  23. }
  24. // path: /get/{id}
  25. func (action *Action) Get(r *ghttp.Request) {
  26. id := r.GetInt64("id")
  27. model, err := role.GetById(id)
  28. if err != nil {
  29. base.Fail(r, err.Error())
  30. }
  31. base.Succ(r, model)
  32. }
  33. // path: /delete/{id}
  34. func (action *Action) Delete(r *ghttp.Request) {
  35. id := r.GetInt64("id")
  36. _, err := role.Delete(id, base.GetUser(r).Id)
  37. if err != nil {
  38. base.Fail(r, err.Error())
  39. }
  40. base.Succ(r, "")
  41. }
  42. // path: /save
  43. func (action *Action) Save(r *ghttp.Request) {
  44. request := new(role.Request)
  45. err := gconv.Struct(r.GetMap(), request)
  46. if err != nil {
  47. glog.Error("save struct error", err)
  48. base.Error(r, "save error")
  49. }
  50. menus := r.GetString("menus")
  51. request.UserId = base.GetUser(r).Id
  52. _, err = role.Save(request)
  53. if err != nil {
  54. base.Fail(r, "保存失败")
  55. }
  56. // 保存菜单信息
  57. role.SaveRoleMenu(request.Id, menus)
  58. base.Succ(r, "")
  59. }
  60. // path: /list
  61. func (action *Action) List(r *ghttp.Request) {
  62. form := base.NewForm(r.GetMap())
  63. list, err := role.List(&form)
  64. if err != nil {
  65. glog.Error("page error", err)
  66. base.Error(r, err.Error())
  67. }
  68. base.Succ(r, list)
  69. }
  70. // path: /page
  71. func (action *Action) Page(r *ghttp.Request) {
  72. form := base.NewForm(r.GetMap())
  73. page, err := role.Page(&form)
  74. if err != nil {
  75. glog.Error("page error", err)
  76. base.Error(r, err.Error())
  77. }
  78. base.Succ(r,
  79. g.Map{
  80. "page": form.Page,
  81. "rows": page,
  82. "total": form.TotalPage,
  83. "records": form.TotalSize,
  84. })
  85. }
  86. // path: /jqgrid
  87. func (action *Action) Jqgrid(r *ghttp.Request) {
  88. form := base.NewForm(r.GetMap())
  89. page, err := role.Page(&form)
  90. if err != nil {
  91. glog.Error("jqgrid error", err)
  92. base.Error(r, err.Error())
  93. }
  94. r.Response.WriteJson(g.Map{
  95. "page": form.Page,
  96. "rows": page,
  97. "total": form.TotalPage,
  98. "records": form.TotalSize,
  99. })
  100. }
  101. // 角色绑定菜单信息
  102. func (action *Action) Info(r *ghttp.Request) {
  103. roleId := r.GetInt("roleId")
  104. if roleId == 0 {
  105. base.Fail(r, "参数错误")
  106. }
  107. form := base.NewForm(r.GetMap())
  108. form.SetParam("roleId", gconv.String(roleId))
  109. // 选择的列表
  110. roleMenuList, err := role.ListRoleMenu(&form)
  111. if err != nil {
  112. glog.Error("info error", err)
  113. base.Error(r, err.Error())
  114. }
  115. menuSlice := g.SliceStr{}
  116. for _, roleMenu := range roleMenuList {
  117. // 如果是父级菜单不加入集合。防止在未全选子菜单的时候,选择父级菜单导致前端页面子集菜单全选的情况
  118. count, _ := g.DB("default").GetCount("SELECT * FROM sys_menu WHERE parent_id = ?", roleMenu.MenuId)
  119. if count == 0 {
  120. menuSlice = append(menuSlice, gconv.String(roleMenu.MenuId))
  121. }
  122. }
  123. base.Succ(r, g.Map{
  124. "roleId": roleId,
  125. "menus": menuSlice,
  126. })
  127. }
  128. // 角色绑定菜单
  129. func (action *Action) MenuSave(r *ghttp.Request) {
  130. roleId := r.GetInt("roleId")
  131. menuIds := r.GetString("menuIds")
  132. if roleId == 0 || menuIds == "" {
  133. base.Fail(r, "参数错误")
  134. }
  135. err := role.SaveRoleMenu(roleId, menuIds)
  136. if err != nil {
  137. glog.Error("MenuSave error", err)
  138. base.Error(r, err.Error())
  139. }
  140. base.Succ(r, "")
  141. }