287 lines
6.8 KiB
Go
287 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,
|
||
}, "获取成功")
|
||
} |