sys_menu.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package controller
  2. import (
  3. "gas-cylinder-api/app/admin/model"
  4. "gas-cylinder-api/app/admin/service"
  5. "gas-cylinder-api/app/admin/service/dto"
  6. "gas-cylinder-api/common/actions"
  7. "github.com/gin-gonic/gin"
  8. "github.com/gin-gonic/gin/binding"
  9. "gogs.baozhida.cn/zoie/OAuth-core/api"
  10. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
  11. _ "gogs.baozhida.cn/zoie/OAuth-core/pkg/response"
  12. )
  13. type SysMenuController struct {
  14. api.Api
  15. }
  16. // GetPage 获取菜单列表
  17. // @Summary 获取菜单列表
  18. // @Description 获取菜单列表
  19. // @Tags 菜单
  20. // @Param menuName query string false "菜单名称"
  21. // @Param title query string false "显示名称"
  22. // @Param visible query string false "显示状态"
  23. // @Param pageSize query int false "页条数"
  24. // @Param pageIndex query int false "页码"
  25. // @Success 200 {object} response.Response{data=response.Page{list=[]model.SysMenu}} "{"code": 200, "data": [...]}"
  26. // @Router /api/menu [get]
  27. // @Security Bearer
  28. func (e SysMenuController) GetPage(c *gin.Context) {
  29. s := service.SysMenu{}
  30. req := dto.SysMenuGetPageReq{}
  31. err := e.MakeContext(c).
  32. MakeOrm().
  33. Bind(&req, binding.Form).
  34. MakeService(&s.Service).
  35. Errors
  36. if err != nil {
  37. e.Logger.Error(err)
  38. e.Error(500, err, err.Error())
  39. return
  40. }
  41. var list = make([]model.SysMenu, 0)
  42. if err = s.GetPage(&req, &list).Error; err != nil {
  43. e.Error(500, err, "查询失败")
  44. return
  45. }
  46. e.OK(list, "查询成功")
  47. }
  48. // Get 通过id获取菜单
  49. // @Summary 通过id获取菜单
  50. // @Description 通过id获取菜单
  51. // @Tags 菜单
  52. // @Param id path string true "菜单id"
  53. // @Success 200 {object} response.Response{data=model.SysMenu} "{"code": 200, "data": [...]}"
  54. // @Router /api/menu/{id} [get]
  55. // @Security Bearer
  56. func (e SysMenuController) Get(c *gin.Context) {
  57. req := dto.SysMenuGetReq{}
  58. s := service.SysMenu{}
  59. err := e.MakeContext(c).
  60. MakeOrm().
  61. Bind(&req, nil).
  62. MakeService(&s.Service).
  63. Errors
  64. if err != nil {
  65. e.Logger.Error(err)
  66. e.Error(500, err, err.Error())
  67. return
  68. }
  69. var object = model.SysMenu{}
  70. err = s.Get(&req, &object).Error
  71. if err != nil {
  72. e.Error(500, err, "查询失败")
  73. return
  74. }
  75. e.OK(object, "查询成功")
  76. }
  77. // Insert 创建菜单
  78. // @Summary 创建菜单
  79. // @Description 创建菜单
  80. // @Tags 菜单
  81. // @Accept application/json
  82. // @Product application/json
  83. // @Param data body dto.SysMenuInsertReq true "data"
  84. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  85. // @Router /api/menu [post]
  86. // @Security Bearer
  87. func (e SysMenuController) Insert(c *gin.Context) {
  88. req := dto.SysMenuInsertReq{}
  89. s := service.SysMenu{}
  90. err := e.MakeContext(c).
  91. MakeOrm().
  92. Bind(&req, binding.JSON).
  93. MakeService(&s.Service).
  94. Errors
  95. if err != nil {
  96. e.Logger.Error(err)
  97. e.Error(500, err, err.Error())
  98. return
  99. }
  100. // 设置创建人
  101. req.SetCreateBy(user.GetUserId(c))
  102. err = s.Insert(&req).Error
  103. if err != nil {
  104. e.Error(500, err, "创建失败")
  105. return
  106. }
  107. e.OK(req.GetId(), "创建成功")
  108. }
  109. // Update 修改菜单
  110. // @Summary 修改菜单
  111. // @Description 修改菜单
  112. // @Tags 菜单
  113. // @Accept application/json
  114. // @Product application/json
  115. // @Param data body dto.SysMenuUpdateReq true "body"
  116. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  117. // @Router /api/menu/{id} [put]
  118. // @Security Bearer
  119. func (e SysMenuController) Update(c *gin.Context) {
  120. s := service.SysMenu{}
  121. req := dto.SysMenuUpdateReq{}
  122. err := e.MakeContext(c).
  123. MakeOrm().
  124. Bind(&req, binding.JSON, nil).
  125. MakeService(&s.Service).
  126. Errors
  127. if err != nil {
  128. e.Logger.Error(err)
  129. e.Error(500, err, err.Error())
  130. return
  131. }
  132. req.SetUpdateBy(user.GetUserId(c))
  133. err = s.Update(&req).Error
  134. if err != nil {
  135. e.Error(500, err, "更新失败")
  136. return
  137. }
  138. e.OK(req.GetId(), "更新成功")
  139. }
  140. // Delete 删除菜单
  141. // @Summary 删除菜单
  142. // @Description 删除菜单
  143. // @Tags 菜单
  144. // @Accept application/json
  145. // @Product application/json
  146. // @Param data body dto.SysMenuDeleteReq true "body"
  147. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  148. // @Router /api/menu [delete]
  149. // @Security Bearer
  150. func (e SysMenuController) Delete(c *gin.Context) {
  151. s := service.SysMenu{}
  152. req := dto.SysMenuDeleteReq{}
  153. err := e.MakeContext(c).
  154. MakeOrm().
  155. Bind(&req, binding.JSON).
  156. MakeService(&s.Service).
  157. Errors
  158. if err != nil {
  159. e.Logger.Error(err)
  160. e.Error(500, err, err.Error())
  161. return
  162. }
  163. req.SetUpdateBy(user.GetUserId(c))
  164. err = s.Remove(&req).Error
  165. if err != nil {
  166. e.Logger.Errorf("RemoveSysMenu error, %s", err)
  167. e.Error(500, err, "删除失败")
  168. return
  169. }
  170. e.OK(req.GetId(), "删除成功")
  171. }
  172. // GetMenuRole 根据登录角色名称获取菜单列表数据【左菜单使用】
  173. // @Summary 根据登录角色名称获取菜单列表数据【左菜单使用】
  174. // @Description 根据登录角色名称获取菜单列表数据【左菜单使用】
  175. // @Tags 菜单
  176. // @Success 200 {object} response.Response{data=[]model.SysMenu} "{"code": 200, "data": [...]}"
  177. // @Router /api/menu-role [get]
  178. // @Security Bearer
  179. func (e SysMenuController) GetMenuRole(c *gin.Context) {
  180. s := new(service.SysMenu)
  181. err := e.MakeContext(c).
  182. MakeOrm().
  183. MakeService(&s.Service).
  184. Errors
  185. if err != nil {
  186. e.Logger.Error(err)
  187. e.Error(500, err, err.Error())
  188. return
  189. }
  190. p := actions.GetPermissionFromContext(c)
  191. result, err := s.SetMenuRole(user.GetRoleKey(c), user.GetUserId(c), p)
  192. if err != nil {
  193. e.Error(500, err, err.Error())
  194. return
  195. }
  196. e.OK(result, "")
  197. }
  198. // GetMenuRole 根据登录角色名称获取菜单列表数据【左菜单使用】
  199. // @Summary 根据登录角色名称获取菜单列表数据【左菜单使用】
  200. // @Description 根据登录角色名称获取菜单列表数据【左菜单使用】
  201. // @Tags 菜单
  202. // @Success 200 {object} response.Response{data=[]model.SysMenu} "{"code": 200, "data": [...]}"
  203. // @Router /api/select-menu [get]
  204. // @Security Bearer
  205. func (e SysMenuController) MenuSelect(c *gin.Context) {
  206. s := new(service.SysMenu)
  207. err := e.MakeContext(c).
  208. MakeOrm().
  209. MakeService(&s.Service).
  210. Errors
  211. if err != nil {
  212. e.Logger.Error(err)
  213. e.Error(500, err, err.Error())
  214. return
  215. }
  216. p := actions.GetPermissionFromContext(c)
  217. result, err := s.MenuSelect(user.GetRoleKey(c), user.GetUserId(c), p)
  218. if err != nil {
  219. e.Error(500, err, err.Error())
  220. return
  221. }
  222. e.OK(result, "")
  223. }