sys_menu.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. package apis
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/gin-gonic/gin/binding"
  5. "github.com/go-admin-team/go-admin-core/sdk/api"
  6. "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
  7. "go-admin/app/admin/models"
  8. "go-admin/app/admin/service"
  9. "go-admin/app/admin/service/dto"
  10. )
  11. type SysMenu struct {
  12. api.Api
  13. }
  14. // GetPage Menu列表数据
  15. // @Summary Menu列表数据
  16. // @Description 获取JSON
  17. // @Tags 菜单
  18. // @Param menuName query string false "menuName"
  19. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  20. // @Router /api/v1/menu [get]
  21. // @Security Bearer
  22. func (e SysMenu) GetPage(c *gin.Context) {
  23. s := service.SysMenu{}
  24. req := dto.SysMenuGetPageReq{}
  25. err := e.MakeContext(c).
  26. MakeOrm().
  27. Bind(&req, binding.Form).
  28. MakeService(&s.Service).
  29. Errors
  30. if err != nil {
  31. e.Logger.Error(err)
  32. e.Error(500, err, err.Error())
  33. return
  34. }
  35. var list = make([]models.SysMenu, 0)
  36. err = s.GetPage(&req, &list).Error
  37. if err != nil {
  38. e.Error(500, err, "查询失败")
  39. return
  40. }
  41. e.OK(list, "查询成功")
  42. }
  43. // Get 获取菜单详情
  44. // @Summary Menu详情数据
  45. // @Description 获取JSON
  46. // @Tags 菜单
  47. // @Param id path string false "id"
  48. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  49. // @Router /api/v1/menu/{id} [get]
  50. // @Security Bearer
  51. func (e SysMenu) Get(c *gin.Context) {
  52. req := dto.SysMenuGetReq{}
  53. s := new(service.SysMenu)
  54. err := e.MakeContext(c).
  55. MakeOrm().
  56. Bind(&req, nil).
  57. MakeService(&s.Service).
  58. Errors
  59. if err != nil {
  60. e.Logger.Error(err)
  61. e.Error(500, err, err.Error())
  62. return
  63. }
  64. var object = models.SysMenu{}
  65. err = s.Get(&req, &object).Error
  66. if err != nil {
  67. e.Error(500, err, "查询失败")
  68. return
  69. }
  70. e.OK(object, "查询成功")
  71. }
  72. // Insert 创建菜单
  73. // @Summary 创建菜单
  74. // @Description 获取JSON
  75. // @Tags 菜单
  76. // @Accept application/json
  77. // @Product application/json
  78. // @Param data body dto.SysMenuInsertReq true "data"
  79. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  80. // @Router /api/v1/menu [post]
  81. // @Security Bearer
  82. func (e SysMenu) Insert(c *gin.Context) {
  83. req := dto.SysMenuInsertReq{}
  84. s := new(service.SysMenu)
  85. err := e.MakeContext(c).
  86. MakeOrm().
  87. Bind(&req, binding.JSON).
  88. MakeService(&s.Service).
  89. Errors
  90. if err != nil {
  91. e.Logger.Error(err)
  92. e.Error(500, err, err.Error())
  93. return
  94. }
  95. // 设置创建人
  96. req.SetCreateBy(user.GetUserId(c))
  97. err = s.Insert(&req).Error
  98. if err != nil {
  99. e.Error(500, err, "创建失败")
  100. return
  101. }
  102. e.OK(req.GetId(), "创建成功")
  103. }
  104. // Update 修改菜单
  105. // @Summary 修改菜单
  106. // @Description 获取JSON
  107. // @Tags 菜单
  108. // @Accept application/json
  109. // @Product application/json
  110. // @Param id path int true "id"
  111. // @Param data body dto.SysMenuUpdateReq true "body"
  112. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  113. // @Router /api/v1/menu/{id} [put]
  114. // @Security Bearer
  115. func (e SysMenu) Update(c *gin.Context) {
  116. req := dto.SysMenuUpdateReq{}
  117. s := new(service.SysMenu)
  118. err := e.MakeContext(c).
  119. MakeOrm().
  120. Bind(&req, binding.JSON, nil).
  121. MakeService(&s.Service).
  122. Errors
  123. if err != nil {
  124. e.Logger.Error(err)
  125. e.Error(500, err, err.Error())
  126. return
  127. }
  128. req.SetUpdateBy(user.GetUserId(c))
  129. err = s.Update(&req).Error
  130. if err != nil {
  131. e.Error(500, err, "更新失败")
  132. return
  133. }
  134. e.OK(req.GetId(), "更新成功")
  135. }
  136. // Delete 删除菜单
  137. // @Summary 删除菜单
  138. // @Description 删除数据
  139. // @Tags 菜单
  140. // @Param data body dto.SysMenuDeleteReq true "body"
  141. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  142. // @Router /api/v1/menu [delete]
  143. // @Security Bearer
  144. func (e SysMenu) Delete(c *gin.Context) {
  145. control := new(dto.SysMenuDeleteReq)
  146. s := new(service.SysMenu)
  147. err := e.MakeContext(c).
  148. MakeOrm().
  149. Bind(control, binding.JSON).
  150. MakeService(&s.Service).
  151. Errors
  152. if err != nil {
  153. e.Logger.Error(err)
  154. e.Error(500, err, err.Error())
  155. return
  156. }
  157. err = s.Remove(control).Error
  158. if err != nil {
  159. e.Logger.Errorf("RemoveSysMenu error, %s", err)
  160. e.Error(500, err, "删除失败")
  161. return
  162. }
  163. e.OK(control.GetId(), "删除成功")
  164. }
  165. // GetMenuRole 根据登录角色名称获取菜单列表数据(左菜单使用)
  166. // @Summary 根据登录角色名称获取菜单列表数据(左菜单使用)
  167. // @Description 获取JSON
  168. // @Tags 菜单
  169. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  170. // @Router /api/v1/menurole [get]
  171. // @Security Bearer
  172. func (e SysMenu) GetMenuRole(c *gin.Context) {
  173. s := new(service.SysMenu)
  174. err := e.MakeContext(c).
  175. MakeOrm().
  176. MakeService(&s.Service).
  177. Errors
  178. if err != nil {
  179. e.Logger.Error(err)
  180. e.Error(500, err, err.Error())
  181. return
  182. }
  183. result, err := s.SetMenuRole(user.GetRoleName(c))
  184. if err != nil {
  185. e.Error(500, err, "查询失败")
  186. return
  187. }
  188. e.OK(result, "")
  189. }
  190. //// GetMenuIDS 获取角色对应的菜单id数组
  191. //// @Summary 获取角色对应的菜单id数组,设置角色权限使用
  192. //// @Description 获取JSON
  193. //// @Tags 菜单
  194. //// @Param id path int true "id"
  195. //// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  196. //// @Router /api/v1/menuids/{id} [get]
  197. //// @Security Bearer
  198. //func (e SysMenu) GetMenuIDS(c *gin.Context) {
  199. // s := new(service.SysMenu)
  200. // r := service.SysRole{}
  201. // m := dto.SysRoleByName{}
  202. // err := e.MakeContext(c).
  203. // MakeOrm().
  204. // Bind(&m, binding.JSON).
  205. // MakeService(&s.Service).
  206. // MakeService(&r.Service).
  207. // Errors
  208. // if err != nil {
  209. // e.Logger.Error(err)
  210. // e.Error(500, err, err.Error())
  211. // return
  212. // }
  213. // var data models.SysRole
  214. // err = r.GetWithName(&m, &data).Error
  215. //
  216. // //data.RoleName = c.GetString("role")
  217. // //data.UpdateBy = user.GetUserId(c)
  218. // //result, err := data.GetIDS(s.Orm)
  219. //
  220. // if err != nil {
  221. // e.Logger.Errorf("GetIDS error, %s", err.Error())
  222. // e.Error(500, err, "获取失败")
  223. // return
  224. // }
  225. // e.OK(result, "")
  226. //}
  227. // GetMenuTreeSelect 根据角色ID查询菜单下拉树结构
  228. // @Summary 角色修改使用的菜单列表
  229. // @Description 获取JSON
  230. // @Tags 菜单
  231. // @Accept application/json
  232. // @Product application/json
  233. // @Param roleId path int true "roleId"
  234. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  235. // @Router /api/v1/menuTreeselect/{roleId} [get]
  236. // @Security Bearer
  237. func (e SysMenu) GetMenuTreeSelect(c *gin.Context) {
  238. m := service.SysMenu{}
  239. r := service.SysRole{}
  240. req :=dto.SelectRole{}
  241. err := e.MakeContext(c).
  242. MakeOrm().
  243. MakeService(&m.Service).
  244. MakeService(&r.Service).
  245. Bind(&req, nil).
  246. Errors
  247. if err != nil {
  248. e.Logger.Error(err)
  249. e.Error(500, err, err.Error())
  250. return
  251. }
  252. result, err := m.SetLabel()
  253. if err != nil {
  254. e.Error(500, err, "查询失败")
  255. return
  256. }
  257. menuIds := make([]int, 0)
  258. if req.RoleId != 0 {
  259. menuIds, err = r.GetRoleMenuId(req.RoleId)
  260. if err != nil {
  261. e.Error(500, err, "")
  262. return
  263. }
  264. }
  265. e.OK(gin.H{
  266. "menus": result,
  267. "checkedKeys": menuIds,
  268. }, "获取成功")
  269. }