package apis import ( "github.com/gin-gonic/gin/binding" "go-admin/app/admin/models" "net/http" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk/api" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" "go-admin/app/admin/service" "go-admin/app/admin/service/dto" ) type SysMenu struct { api.Api } // GetSysMenuList Menu列表数据 // @Summary Menu列表数据 // @Description 获取JSON // @Tags 菜单 // @Param menuName query string false "menuName" // @Success 200 {string} string "{"code": 200, "data": [...]}" // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}" // @Router /api/v1/menulist [get] // @Security Bearer func (e SysMenu) GetSysMenuList(c *gin.Context) { s := service.SysMenu{} d := new(dto.SysMenuSearch) err := e.MakeContext(c). MakeOrm(). Bind(d, binding.Form). MakeService(&s.Service). Errors if err != nil { e.Error(http.StatusInternalServerError, err, err.Error()) e.Logger.Error(err) return } var list *[]models.SysMenu list, err = s.GetSysMenuPage(d) if err != nil { e.Error(http.StatusUnprocessableEntity, err, "查询失败") return } e.OK(list, "查询成功") } // GetSysMenu 获取菜单详情 // @Summary Menu详情数据 // @Description 获取JSON // @Tags 菜单 // @Param menuName query string false "menuName" // @Success 200 {string} string "{"code": 200, "data": [...]}" // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}" // @Router /api/v1/menu/{id} [get] // @Security Bearer func (e SysMenu) GetSysMenu(c *gin.Context) { control := new(dto.SysMenuById) s := new(service.SysMenu) err := e.MakeContext(c). MakeOrm(). Bind(control). MakeService(&s.Service). Errors if err != nil { e.Error(http.StatusInternalServerError, err, err.Error()) e.Logger.Error(err) return } var object models.SysMenu err = s.GetSysMenu(control, &object) if err != nil { e.Error(http.StatusUnprocessableEntity, err, "查询失败") return } e.OK(object, "查看成功") } // InsertSysMenu 创建菜单 // @Summary 创建菜单 // @Description 获取JSON // @Tags 菜单 // @Accept application/x-www-form-urlencoded // @Product application/x-www-form-urlencoded // @Param menuName formData string true "menuName" // @Param Path formData string false "Path" // @Param Action formData string true "Action" // @Param Permission formData string true "Permission" // @Param ParentId formData string true "ParentId" // @Param IsDel formData string true "IsDel" // @Success 200 {string} string "{"code": 200, "message": "添加成功"}" // @Success 200 {string} string "{"code": -1, "message": "添加失败"}" // @Router /api/v1/menu [post] // @Security Bearer func (e SysMenu) InsertSysMenu(c *gin.Context) { control := new(dto.SysMenuControl) s := new(service.SysMenu) err := e.MakeContext(c). MakeOrm(). Bind(control, binding.JSON). MakeService(&s.Service). Errors if err != nil { e.Error(http.StatusInternalServerError, err, err.Error()) e.Logger.Error(err) return } // 设置创建人 control.SetCreateBy(user.GetUserId(c)) err = s.InsertSysMenu(control).Error if err != nil { e.Logger.Error(err) e.Error(http.StatusInternalServerError, err, "创建失败") return } e.OK(control.GetId(), "创建成功") } // UpdateSysMenu 修改菜单 // @Summary 修改菜单 // @Description 获取JSON // @Tags 菜单 // @Accept application/x-www-form-urlencoded // @Product application/x-www-form-urlencoded // @Param id path int true "id" // @Param data body dto.SysMenuControl true "body" // @Success 200 {string} string "{"code": 200, "message": "修改成功"}" // @Success 200 {string} string "{"code": -1, "message": "修改失败"}" // @Router /api/v1/menu/{id} [put] // @Security Bearer func (e SysMenu) UpdateSysMenu(c *gin.Context) { control := new(dto.SysMenuControl) s := new(service.SysMenu) err := e.MakeContext(c). MakeOrm(). Bind(control, binding.JSON). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) return } control.SetUpdateBy(user.GetUserId(c)) err = s.UpdateSysMenu(control).Error if err != nil { e.Logger.Error(err) return } e.OK(control.GetId(), "更新成功") } // DeleteSysMenu 删除菜单 // @Summary 删除菜单 // @Description 删除数据 // @Tags 菜单 // @Param data body dto.SysMenuById true "body" // @Success 200 {string} string "{"code": 200, "message": "删除成功"}" // @Success 200 {string} string "{"code": -1, "message": "删除失败"}" // @Router /api/v1/menu/ [delete] func (e SysMenu) DeleteSysMenu(c *gin.Context) { control := new(dto.SysMenuById) s := new(service.SysMenu) err := e.MakeContext(c). MakeOrm(). Bind(control, binding.JSON). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) return } err = s.RemoveSysMenu(control).Error if err != nil { e.Logger.Errorf("RemoveSysMenu error, %s", err) e.Error(http.StatusInternalServerError, err, "删除失败") return } e.OK(control.GetId(), "删除成功") } // GetMenuRole 根据登录角色名称获取菜单列表数据(左菜单使用) // @Summary 根据登录角色名称获取菜单列表数据(左菜单使用) // @Description 获取JSON // @Tags 菜单 // @Success 200 {string} string "{"code": 200, "data": [...]}" // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}" // @Router /api/v1/menurole [get] // @Security Bearer func (e SysMenu) GetMenuRole(c *gin.Context) { s := new(service.SysMenu) err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) return } result, err := s.SetMenuRole(user.GetRoleName(c)) if err != nil { e.Error(http.StatusInternalServerError, err, "查询失败") return } e.OK(result, "") } // GetMenuIDS 获取角色对应的菜单id数组 // @Summary 获取角色对应的菜单id数组 // @Description 获取JSON // @Tags 菜单 // @Param id path int true "id" // @Success 200 {string} string "{"code": 200, "data": [...]}" // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}" // @Router /api/v1/menuids/{id} [get] // @Security Bearer func (e SysMenu) GetMenuIDS(c *gin.Context) { s := new(service.SysMenu) err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) return } var data models.RoleMenu data.RoleName = c.GetString("role") data.UpdateBy = user.GetUserId(c) result, err := data.GetIDS(s.Orm) if err != nil { e.Logger.Errorf("GetIDS error, %s", err.Error()) e.Error(http.StatusInternalServerError, err, "获取失败") return } e.OK(result, "") } // GetMenuTreeSelect 获取菜单树 // @Summary 获取菜单树 // @Description 获取JSON // @Tags 菜单 // @Accept application/x-www-form-urlencoded // @Product application/x-www-form-urlencoded // @Success 200 {string} string "{"code": 200, "message": "添加成功"}" // @Success 200 {string} string "{"code": -1, "message": "添加失败"}" // @Router /api/v1/menuTreeselect [get] // @Security Bearer func (e SysMenu) GetMenuTreeSelect(c *gin.Context) { s := new(service.SysMenu) sr := new(service.SysRole) d := new(dto.SelectRole) err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). MakeService(&sr.Service). Bind(&d, nil). Errors if err != nil { e.Logger.Error(err) e.Error(http.StatusUnprocessableEntity, err, err.Error()) return } result, err := s.SetSysMenuLabel() if err != nil { e.Error(http.StatusUnprocessableEntity, err, "查询失败") return } menuIds := make([]int, 0) if d.RoleId != 0 { menuIds, err = sr.GetRoleMenuId(d.RoleId) if err != nil { e.Logger.Errorf("GetRoleMenuId error, %s", err.Error()) e.Error(http.StatusInternalServerError, err, "") return } } e.OK(gin.H{ "menus": result, "checkedKeys": menuIds, }, "获取成功") }