164 lines
4.7 KiB
Go
164 lines
4.7 KiB
Go
package system
|
||
|
||
import (
|
||
"github.com/gin-gonic/gin"
|
||
mycasbin "go-admin/pkg/casbin"
|
||
|
||
"go-admin/app/admin/models"
|
||
"go-admin/tools"
|
||
"go-admin/tools/app"
|
||
)
|
||
|
||
// @Summary 角色列表数据
|
||
// @Description Get JSON
|
||
// @Tags system/角色
|
||
// @Param roleName query string false "roleName"
|
||
// @Param status query string false "status"
|
||
// @Param roleKey query string false "roleKey"
|
||
// @Param pageSize query int false "页条数"
|
||
// @Param pageIndex query int false "页码"
|
||
// @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
|
||
// @Router /api/v1/rolelist [get]
|
||
// @Security Bearer
|
||
func GetRoleList(c *gin.Context) {
|
||
var data models.SysRole
|
||
var err error
|
||
var pageSize = 10
|
||
var pageIndex = 1
|
||
|
||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||
pageSize, err = tools.StringToInt(size)
|
||
}
|
||
|
||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||
pageIndex, err = tools.StringToInt(index)
|
||
}
|
||
|
||
data.RoleKey = c.Request.FormValue("roleKey")
|
||
data.RoleName = c.Request.FormValue("roleName")
|
||
data.Status = c.Request.FormValue("status")
|
||
data.DataScope = tools.GetUserIdStr(c)
|
||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||
tools.HasError(err, "", -1)
|
||
|
||
app.PageOK(c, result, count, pageIndex, pageSize, "")
|
||
}
|
||
|
||
// @Summary 获取Role数据
|
||
// @Description 获取JSON
|
||
// @Tags system/角色
|
||
// @Param roleId path string false "roleId"
|
||
// @Success 200 {string} string "{"code": 200, "data": [...]}"
|
||
// @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
|
||
// @Router /api/v1/role [get]
|
||
// @Security Bearer
|
||
func GetRole(c *gin.Context) {
|
||
var Role models.SysRole
|
||
Role.RoleId, _ = tools.StringToInt(c.Param("roleId"))
|
||
result, err := Role.Get()
|
||
menuIds := make([]int, 0)
|
||
menuIds, err = Role.GetRoleMeunId()
|
||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||
result.MenuIds = menuIds
|
||
app.OK(c, result, "")
|
||
|
||
}
|
||
|
||
// @Summary 创建角色
|
||
// @Description 获取JSON
|
||
// @Tags system/角色
|
||
// @Accept application/json
|
||
// @Product application/json
|
||
// @Param data body models.SysRole true "data"
|
||
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
|
||
// @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
|
||
// @Router /api/v1/role [post]
|
||
func InsertRole(c *gin.Context) {
|
||
var data models.SysRole
|
||
data.CreateBy = tools.GetUserIdStr(c)
|
||
err := c.Bind(&data)
|
||
tools.HasError(err, "数据解析失败", 500)
|
||
id, err := data.Insert()
|
||
tools.HasError(err, "", -1)
|
||
data.RoleId = id
|
||
|
||
var t models.RoleMenu
|
||
if len(data.MenuIds) > 0 {
|
||
_, err = t.Insert(id, data.MenuIds)
|
||
tools.HasError(err, "", -1)
|
||
}
|
||
|
||
_, err = mycasbin.LoadPolicy()
|
||
tools.HasError(err, "", -1)
|
||
|
||
app.OK(c, data, "添加成功")
|
||
}
|
||
|
||
// @Summary 修改用户角色
|
||
// @Description 获取JSON
|
||
// @Tags system/角色
|
||
// @Accept application/json
|
||
// @Product application/json
|
||
// @Param data body models.SysRole true "body"
|
||
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
|
||
// @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
|
||
// @Router /api/v1/role [put]
|
||
func UpdateRole(c *gin.Context) {
|
||
var data models.SysRole
|
||
data.UpdateBy = tools.GetUserIdStr(c)
|
||
err := c.Bind(&data)
|
||
tools.HasError(err, "数据解析失败", -1)
|
||
result, err := data.Update(data.RoleId)
|
||
tools.HasError(err, "", -1)
|
||
var t models.RoleMenu
|
||
_, err = t.DeleteRoleMenu(data.RoleId)
|
||
tools.HasError(err, "修改失败(delete rm)", -1)
|
||
if len(data.MenuIds) > 0 {
|
||
_, err2 := t.Insert(data.RoleId, data.MenuIds)
|
||
tools.HasError(err2, "修改失败(insert)", -1)
|
||
}
|
||
|
||
_, err = mycasbin.LoadPolicy()
|
||
tools.HasError(err, "", -1)
|
||
|
||
app.OK(c, result, "修改成功")
|
||
}
|
||
|
||
func UpdateRoleDataScope(c *gin.Context) {
|
||
var data models.SysRole
|
||
data.UpdateBy = tools.GetUserIdStr(c)
|
||
err := c.Bind(&data)
|
||
tools.HasError(err, "数据解析失败", -1)
|
||
result, err := data.Update(data.RoleId)
|
||
|
||
var t models.SysRoleDept
|
||
_, err = t.DeleteRoleDept(data.RoleId)
|
||
tools.HasError(err, "添加失败1", -1)
|
||
if data.DataScope == "2" {
|
||
_, err2 := t.Insert(data.RoleId, data.DeptIds)
|
||
tools.HasError(err2, "添加失败2", -1)
|
||
}
|
||
app.OK(c, result, "修改成功")
|
||
}
|
||
|
||
// @Summary 删除用户角色
|
||
// @Description 删除数据
|
||
// @Tags system/角色
|
||
// @Param roleId path int true "roleId"
|
||
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
|
||
// @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
|
||
// @Router /api/v1/role/{roleId} [delete]
|
||
func DeleteRole(c *gin.Context) {
|
||
var Role models.SysRole
|
||
Role.UpdateBy = tools.GetUserIdStr(c)
|
||
|
||
IDS := tools.IdsStrToIdsIntGroup("roleId", c)
|
||
_, err := Role.BatchDelete(IDS)
|
||
tools.HasError(err, "删除失败", -1)
|
||
|
||
_, err = mycasbin.LoadPolicy()
|
||
tools.HasError(err, "", -1)
|
||
|
||
app.OK(c, "", "删除成功")
|
||
}
|