package apis import ( "IotAdmin/app/system/models" "IotAdmin/core/sdk/api" "IotAdmin/core/sdk/pkg/jwt-auth/user" "IotAdmin/app/system/service" "IotAdmin/app/system/service/dto" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" ) type SysMenuApi struct { api.Api } // GetPage Menu列表数据 // @Summary Menu列表数据 // @Description 获取JSON // @Tags 菜单 // @Param menuName query string false "menuName" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-menu [get] // @Security Bearer func (e *SysMenuApi) GetPage(c *gin.Context) { s := service.SysMenuService{} req := dto.SysMenuGetPageReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.Form). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } var list = make([]models.SysMenu, 0) err = s.GetPage(&req, &list).Error if err != nil { e.Error(500, err, "查询失败") return } e.OK(list, "查询成功") } // Get 获取菜单详情 // @Summary Menu详情数据 // @Description 获取JSON // @Tags 菜单 // @Param id path string false "id" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-menu/{id} [get] // @Security Bearer func (e *SysMenuApi) Get(c *gin.Context) { req := dto.SysMenuGetReq{} s := new(service.SysMenuService) err := e.MakeContext(c). MakeOrm(). Bind(&req, nil). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } var object = models.SysMenu{} err = s.Get(&req, &object).Error if err != nil { e.Error(500, err, "查询失败") return } e.OK(object, "查询成功") } // Insert 创建菜单 // @Summary 创建菜单 // @Description 获取JSON // @Tags 菜单 // @Accept application/json // @Product application/json // @Param data body dto.SysMenuInsertReq true "data" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-menu [post] // @Security Bearer func (e *SysMenuApi) Insert(c *gin.Context) { req := dto.SysMenuInsertReq{} s := new(service.SysMenuService) err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } // 设置创建人 req.SetCreateBy(user.GetUserId(c)) err = s.Insert(&req).Error if err != nil { e.Error(500, err, "创建失败") return } e.OK(req.GetId(), "创建成功") } // Update 修改菜单 // @Summary 修改菜单 // @Description 获取JSON // @Tags 菜单 // @Accept application/json // @Product application/json // @Param id path int true "id" // @Param data body dto.SysMenuUpdateReq true "body" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-menu/{id} [put] // @Security Bearer func (e *SysMenuApi) Update(c *gin.Context) { req := dto.SysMenuUpdateReq{} s := new(service.SysMenuService) err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON, nil). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } req.SetUpdateBy(user.GetUserId(c)) err = s.Update(&req).Error if err != nil { e.Error(500, err, "更新失败") return } e.OK(req.GetId(), "更新成功") } // Delete 删除菜单 // @Summary 删除菜单 // @Description 删除数据 // @Tags 菜单 // @Param data body dto.SysMenuDeleteReq true "body" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-menu [delete] // @Security Bearer func (e *SysMenuApi) Delete(c *gin.Context) { control := new(dto.SysMenuDeleteReq) s := new(service.SysMenuService) err := e.MakeContext(c). MakeOrm(). Bind(control, binding.JSON). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } err = s.Remove(control).Error if err != nil { e.Logger.Errorf("RemoveSysMenu error, %s", err) e.Error(500, err, "删除失败") return } e.OK(control.GetId(), "删除成功") } // GetMenuRouter 获取菜单路由数据(左菜单使用) // @Summary 根据登录角色名称获取菜单列表数据(左菜单使用) // @Description 获取JSON // @Tags 系統接口/菜单 // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys/get-router [get] // @Security Bearer func (e *SysMenuApi) GetMenuRouter(c *gin.Context) { s := new(service.SysMenuService) err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } result, err := s.GetMenuRouter(user.GetRoleKey(c)) if err != nil { e.Error(500, err, "查询失败") return } e.OK(result, "") } // GetMenuTreeSelect 根据角色ID查询菜单下拉树结构 // @Summary 角色修改使用的菜单列表 // @Description 获取JSON // @Tags 系統接口/菜单 // @Accept application/json // @Product application/json // @Param roleId path int true "roleId" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys/role-menu-tree-select/{roleId} [get] // @Security Bearer func (e *SysMenuApi) GetMenuTreeSelect(c *gin.Context) { m := service.SysMenuService{} r := service.SysRoleService{} req := dto.SelectRole{} err := e.MakeContext(c). MakeOrm(). MakeService(&m.Service). MakeService(&r.Service). Bind(&req, nil). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } result, err := m.SetLabel() if err != nil { e.Error(500, err, "查询失败") return } menuIds := make([]int, 0) if req.RoleId != 0 { menuIds, err = r.GetRoleMenuId(req.RoleId) if err != nil { e.Error(500, err, "") return } } e.OK(gin.H{ "menus": result, "checkedKeys": menuIds, }, "获取成功") } // GetMenuBtnChildrenByPerm 根据权限名查询子按钮 // @Summary 根据权限名查询子按钮 // @Description 根据权限名查询子按钮 // @Tags 系統接口/菜单 // @Accept application/json // @Product application/json // @Param permission path int true "permission" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys/prem-menu-btn/{permission} [get] // @Security Bearer func (e *SysMenuApi) GetMenuBtnChildrenByPerm(c *gin.Context) { req := &dto.SelectMenuBtnChildren{} m := service.SysMenuService{} err := e.MakeContext(c). MakeOrm(). MakeService(&m.Service). Bind(&req, nil). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } result, err := m.GetBtnChildrenByPerm(req.Permission) if err != nil { e.Error(500, err, "查询失败") return } e.OK(result, "获取成功") }