288 lines
6.8 KiB
Go
288 lines
6.8 KiB
Go
|
package apis
|
|||
|
|
|||
|
import (
|
|||
|
"github.com/gin-gonic/gin"
|
|||
|
"github.com/gin-gonic/gin/binding"
|
|||
|
"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/models"
|
|||
|
|
|||
|
"go-admin/app/admin/service"
|
|||
|
"go-admin/app/admin/service/dto"
|
|||
|
)
|
|||
|
|
|||
|
type SysMenu 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/v1/menu [get]
|
|||
|
// @Security Bearer
|
|||
|
func (e SysMenu) GetPage(c *gin.Context) {
|
|||
|
s := service.SysMenu{}
|
|||
|
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/v1/menu/{id} [get]
|
|||
|
// @Security Bearer
|
|||
|
func (e SysMenu) Get(c *gin.Context) {
|
|||
|
req := dto.SysMenuGetReq{}
|
|||
|
s := new(service.SysMenu)
|
|||
|
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/v1/menu [post]
|
|||
|
// @Security Bearer
|
|||
|
func (e SysMenu) Insert(c *gin.Context) {
|
|||
|
req := dto.SysMenuInsertReq{}
|
|||
|
s := new(service.SysMenu)
|
|||
|
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/v1/menu/{id} [put]
|
|||
|
// @Security Bearer
|
|||
|
func (e SysMenu) Update(c *gin.Context) {
|
|||
|
req := dto.SysMenuUpdateReq{}
|
|||
|
s := new(service.SysMenu)
|
|||
|
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/v1/menu [delete]
|
|||
|
// @Security Bearer
|
|||
|
func (e SysMenu) Delete(c *gin.Context) {
|
|||
|
control := new(dto.SysMenuDeleteReq)
|
|||
|
s := new(service.SysMenu)
|
|||
|
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(), "删除成功")
|
|||
|
}
|
|||
|
|
|||
|
// GetMenuRole 根据登录角色名称获取菜单列表数据(左菜单使用)
|
|||
|
// @Summary 根据登录角色名称获取菜单列表数据(左菜单使用)
|
|||
|
// @Description 获取JSON
|
|||
|
// @Tags 菜单
|
|||
|
// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|||
|
// @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)
|
|||
|
e.Error(500, err, err.Error())
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
result, err := s.SetMenuRole(user.GetRoleName(c))
|
|||
|
|
|||
|
if err != nil {
|
|||
|
e.Error(500, err, "查询失败")
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
e.OK(result, "")
|
|||
|
}
|
|||
|
|
|||
|
//// GetMenuIDS 获取角色对应的菜单id数组
|
|||
|
//// @Summary 获取角色对应的菜单id数组,设置角色权限使用
|
|||
|
//// @Description 获取JSON
|
|||
|
//// @Tags 菜单
|
|||
|
//// @Param id path int true "id"
|
|||
|
//// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
|||
|
//// @Router /api/v1/menuids/{id} [get]
|
|||
|
//// @Security Bearer
|
|||
|
//func (e SysMenu) GetMenuIDS(c *gin.Context) {
|
|||
|
// s := new(service.SysMenu)
|
|||
|
// r := service.SysRole{}
|
|||
|
// m := dto.SysRoleByName{}
|
|||
|
// err := e.MakeContext(c).
|
|||
|
// MakeOrm().
|
|||
|
// Bind(&m, binding.JSON).
|
|||
|
// MakeService(&s.Service).
|
|||
|
// MakeService(&r.Service).
|
|||
|
// Errors
|
|||
|
// if err != nil {
|
|||
|
// e.Logger.Error(err)
|
|||
|
// e.Error(500, err, err.Error())
|
|||
|
// return
|
|||
|
// }
|
|||
|
// var data models.SysRole
|
|||
|
// err = r.GetWithName(&m, &data).Error
|
|||
|
//
|
|||
|
// //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(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/v1/menuTreeselect/{roleId} [get]
|
|||
|
// @Security Bearer
|
|||
|
func (e SysMenu) GetMenuTreeSelect(c *gin.Context) {
|
|||
|
m := service.SysMenu{}
|
|||
|
r := service.SysRole{}
|
|||
|
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,
|
|||
|
}, "获取成功")
|
|||
|
}
|