sys_menu_api.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package admin
  2. import (
  3. "strconv"
  4. "time"
  5. "ulink-admin/frame"
  6. "ulink-admin/modules/system/models/model"
  7. "ulink-admin/modules/system/models/req"
  8. "ulink-admin/modules/system/service"
  9. "ulink-admin/pkg/jwt/admin"
  10. "ulink-admin/pkg/library/tree/tree_menu"
  11. )
  12. type MenuApi struct {
  13. MenuService *service.MenuService `inject:""`
  14. }
  15. // List 查询菜单数据
  16. // List 查询刚问分页数据
  17. // @Summary 分页查询菜单数据接口
  18. // @Description 分页查询菜单数据接口
  19. // @Tags 菜单相关接口
  20. // @Accept application/json
  21. // @Produce application/json
  22. // @Param Authorization header string false "Bearer 令牌"
  23. // @Param object query req.MenuQuery false "查询参数"
  24. // @Security ApiKeyAuth
  25. // @Success 200 {object} resp.Response{data=page.Page{list=model.SysMenu},msg=string} "分页获取菜单列表,返回包括列表,总数,页码,每页数量"
  26. // @Router /menu/List [get]
  27. func (a MenuApi) List(c *frame.Context) {
  28. //获取当前登录用户
  29. info := admin.GetUserInfo(c)
  30. //获取参数
  31. query := &req.MenuQuery{}
  32. c.ValidteError(c.ShouldBind(query), query)
  33. c.Ok(a.MenuService.GetMenuList(query, info))
  34. }
  35. // GetInfo 根据id查询菜单详情
  36. // @Summary 菜单详情查询接口
  37. // @Description 菜单详情查询接口
  38. // @Tags 菜单相关接口
  39. // @Accept application/json
  40. // @Produce application/json
  41. // @Param Authorization header string false "Bearer 令牌"
  42. // @Param id path int true "id" id
  43. // @Security ApiKeyAuth
  44. // @Success 200 {object} resp.Response{data=model.SysMenu,msg=string} "返回菜单详情查询"
  45. // @Router /menu [get]
  46. func (a MenuApi) GetInfo(c *frame.Context) {
  47. param := c.Param("id")
  48. id, err := strconv.ParseInt(param, 10, 64)
  49. if err != nil {
  50. c.Error("参数绑定错误")
  51. return
  52. }
  53. c.Ok(a.MenuService.GetMenuByMenuId(id))
  54. }
  55. // RoleMenuTreeSelect 加载对应角色菜单列表树
  56. // @Summary 加载对应角色菜单列表树接口
  57. // @Description 加载对应角色菜单列表树接口
  58. // @Tags 菜单相关接口
  59. // @Accept application/json
  60. // @Produce application/json
  61. // @Param Authorization header string false "Bearer 令牌"
  62. // @Param id path int true "id" id
  63. // @Security ApiKeyAuth
  64. // @Success 200 {object} resp.Response{data=map[string]interface{},msg=string} "返回菜单查询"
  65. // @Router /menu/roleMenuTreeselect [get]
  66. func (a MenuApi) RoleMenuTreeSelect(c *frame.Context) {
  67. m := make(map[string]interface{})
  68. param := c.Param("id")
  69. id, _ := strconv.ParseInt(param, 10, 64)
  70. //获取当前登录用户
  71. info := admin.GetUserInfo(c)
  72. menuList := a.MenuService.GetMenusTreeByUserId(info)
  73. var list tree_menu.SystemMenus = *menuList
  74. tree := list.GetTree()
  75. ids := a.MenuService.SelectMenuListByRoleId(id)
  76. m["checkedKeys"] = ids
  77. m["menus"] = tree
  78. c.Ok(m)
  79. }
  80. // TreeSelect 获取菜单下拉树列表
  81. // @Summary 加载对应角色菜单列表树接口
  82. // @Description 加载对应角色菜单列表树接口
  83. // @Tags 菜单相关接口
  84. // @Accept application/json
  85. // @Produce application/json
  86. // @Param Authorization header string false "Bearer 令牌"
  87. // @Param id path int true "id" id
  88. // @Security ApiKeyAuth
  89. // @Success 200 {object} resp.Response{data=map[INode]interface{},msg=string} "返回菜单查询"
  90. // @Router /menu/teeselect [get]
  91. func (a MenuApi) TreeSelect(c *frame.Context) {
  92. t := c.Query("type")
  93. switch t {
  94. case "m":
  95. query := &req.MenuQuery{}
  96. menus := a.MenuService.GetMenus(query)
  97. var list tree_menu.SystemMenus = menus
  98. c.Ok(list.GetTree())
  99. return
  100. }
  101. c.Ok(frame.Permissions["admin"])
  102. }
  103. // Add 添加菜单数据
  104. // @Summary 新增菜单接口
  105. // @Description 新增菜单接口
  106. // @Tags 菜单相关接口
  107. // @Accept application/json
  108. // @Produce application/json
  109. // @Param Authorization header string false "Bearer 令牌"
  110. // @Param data body model.SysMenu true "菜单实体对象"
  111. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  112. // @Router /menu/add [post]
  113. func (a MenuApi) Add(c *frame.Context) {
  114. menu := &model.SysMenu{}
  115. c.ValidteError(c.ShouldBind(menu), menu)
  116. a.MenuService.InsertMenu(menu)
  117. }
  118. // Edit 修改菜单数据
  119. // @Summary 修改菜单接口
  120. // @Description 新增菜单接口
  121. // @Tags 菜单相关接口
  122. // @Accept application/json
  123. // @Produce application/json
  124. // @Param Authorization header string false "Bearer 令牌"
  125. // @Param data body model.SysMenu true "菜单实体对象"
  126. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  127. // @Router /menu/edit [put]
  128. func (a MenuApi) Edit(c *frame.Context) {
  129. menu := &model.SysMenu{}
  130. c.ValidteError(c.ShouldBind(menu), menu)
  131. menu.UpdateBy = admin.GetUserInfo(c).UserName
  132. menu.UpdateTime = time.Now()
  133. a.MenuService.Update(menu)
  134. }
  135. // Delete 删除菜单
  136. // @Summary 删除菜单接口
  137. // @Description 删除菜单接口
  138. // @Tags 菜单相关接口
  139. // @Accept application/json
  140. // @Produce application/json
  141. // @Param Authorization header string false "Bearer 令牌"
  142. // @Param id path int true "id" id
  143. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  144. // @Router /menu/remove [delete]
  145. func (a MenuApi) Delete(c *frame.Context) {
  146. param := c.Param("id")
  147. id, err := strconv.ParseInt(param, 10, 64)
  148. if err != nil {
  149. frame.Throw(frame.BUSINESS_CODE, "参数绑定错误")
  150. }
  151. a.MenuService.Delete(id)
  152. }