|
@@ -248,7 +248,8 @@ func (this *SysRoleController) ListSysRole() {
|
|
|
br.Data = resp
|
|
|
}
|
|
|
|
|
|
-// @Title 角色设置权限-菜单列表
|
|
|
+// SysRoleMenusList
|
|
|
+// @Title 角色设置权限-菜单列表-CRM14.1弃用
|
|
|
// @Description 角色设置权限-菜单列表
|
|
|
// @Param RoleId query int true "角色Id"
|
|
|
// @Success 200 {object} system.SysRoleListResp
|
|
@@ -313,7 +314,8 @@ func (this *SysRoleController) SysRoleMenusList() {
|
|
|
br.Data = resp
|
|
|
}
|
|
|
|
|
|
-// @Title 角色设置权限
|
|
|
+// SysRoleMenusAdd
|
|
|
+// @Title 角色设置权限-CRM14.1弃用
|
|
|
// @Description 角色设置权限
|
|
|
// @Param request body system.RoleMenusAddReq true "type json string"
|
|
|
// @Success 200 {object} system.SysRoleListResp
|
|
@@ -453,3 +455,207 @@ func (this *SysRoleController) AllSysRole() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// SysRoleMenuAuthList
|
|
|
+// @Title 角色设置权限-菜单列表
|
|
|
+// @Description 角色设置权限-菜单列表
|
|
|
+// @Param RoleId query int true "角色Id"
|
|
|
+// @Success 200 {object} system.SysRoleListResp
|
|
|
+// @router /role/menu/auth_list [get]
|
|
|
+func (this *SysRoleController) SysRoleMenuAuthList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := new(system.SysMenuListResp)
|
|
|
+ resp.ChoiceList = make([]int, 0)
|
|
|
+ resp.HalfChoiceList = make([]int, 0)
|
|
|
+ resp.List = make([]*system.SysMenuItem, 0)
|
|
|
+
|
|
|
+ // 角色勾选的权限
|
|
|
+ roleId, _ := this.GetInt("RoleId", 0)
|
|
|
+ if roleId > 0 {
|
|
|
+ relates, e := system.GetSysRoleMenuByRoleId(roleId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取角色关联菜单失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, r := range relates {
|
|
|
+ if r.Type == 1 {
|
|
|
+ resp.HalfChoiceList = append(resp.HalfChoiceList, r.MenuId)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ resp.ChoiceList = append(resp.ChoiceList, r.MenuId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ order := `sort ASC, create_time DESC, menu_id DESC`
|
|
|
+ list, e := system.GetSysMenuItemsByCondition("", make([]interface{}, 0), []string{}, order)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取菜单列表失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ items := make([]*system.SysMenuItem, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ t := &system.SysMenuItem{
|
|
|
+ MenuId: v.MenuId,
|
|
|
+ ParentId: v.ParentId,
|
|
|
+ Name: v.Name,
|
|
|
+ Sort: v.Sort,
|
|
|
+ Path: v.Path,
|
|
|
+ PathName: v.PathName,
|
|
|
+ IconPath: v.IconPath,
|
|
|
+ Component: v.Component,
|
|
|
+ Hidden: v.Hidden,
|
|
|
+ HiddenLayout: v.HiddenLayout,
|
|
|
+ Level: v.Level,
|
|
|
+ MenuType: v.MenuType,
|
|
|
+ ButtonCode: v.ButtonCode,
|
|
|
+ Children: make([]*system.SysMenuItem, 0),
|
|
|
+ }
|
|
|
+ items = append(items, t)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 递归返回树形结构
|
|
|
+ items = services.GetMenuTreeRecursive(items, 0)
|
|
|
+
|
|
|
+ resp.List = items
|
|
|
+ br.Data = resp
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+}
|
|
|
+
|
|
|
+// SysRoleMenuAuthSave
|
|
|
+// @Title 角色设置权限-保存
|
|
|
+// @Description 角色设置权限-保存
|
|
|
+// @Param request body RoleMenusSaveReq true "type json string"
|
|
|
+// @Success 200 {object} system.SysRoleListResp
|
|
|
+// @router /role/menu/auth_save [post]
|
|
|
+func (this *SysRoleController) SysRoleMenuAuthSave() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ type RoleMenusSaveReq struct {
|
|
|
+ RoleId int `description:"角色ID"`
|
|
|
+ MenuIds []int `description:"菜单IDs"`
|
|
|
+ HalfMenuIds []int `description:"半选菜单IDs-仅供前端回显用的"`
|
|
|
+ }
|
|
|
+ var req RoleMenusSaveReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.RoleId <= 0 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(req.MenuIds) == 0 {
|
|
|
+ br.Msg = "请选择菜单"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(req.HalfMenuIds) == 0 {
|
|
|
+ br.Msg = "请选择菜单"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ items := make([]*system.SysRoleMenu, 0)
|
|
|
+ for _, v := range req.MenuIds {
|
|
|
+ t := new(system.SysRoleMenu)
|
|
|
+ t.MenuId = v
|
|
|
+ t.RoleId = req.RoleId
|
|
|
+ items = append(items, t)
|
|
|
+ }
|
|
|
+ for _, v := range req.HalfMenuIds {
|
|
|
+ t := new(system.SysRoleMenu)
|
|
|
+ t.MenuId = v
|
|
|
+ t.Type = 1
|
|
|
+ t.RoleId = req.RoleId
|
|
|
+ items = append(items, t)
|
|
|
+ }
|
|
|
+ if e := system.CreateMultiSysRoleMenu(req.RoleId, items); e != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "保存角色菜单权限失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "设置成功"
|
|
|
+}
|
|
|
+
|
|
|
+// ButtonList
|
|
|
+// @Title 角色-按钮权限列表
|
|
|
+// @Description 角色-按钮权限列表
|
|
|
+// @Param RoleId query int true "角色Id"
|
|
|
+// @Success 200 {object} system.SysRoleListResp
|
|
|
+// @router /role/menu/buttons [get]
|
|
|
+func (this *SysRoleController) ButtonList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ roleId := sysUser.RoleId
|
|
|
+ list, e := system.GetMenuButtonsByRoleId(roleId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取角色按钮权限失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ buttonList := make([]*system.SysMenuButtonResp, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ tmp := new(system.SysMenuButtonResp)
|
|
|
+ tmp.MenuId = v.MenuId
|
|
|
+ tmp.ParentId = v.ParentId
|
|
|
+ tmp.MenuType = v.MenuType
|
|
|
+ tmp.Name = v.Name
|
|
|
+ tmp.ButtonCode = v.ButtonCode
|
|
|
+ buttonList = append(buttonList, tmp)
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Data = buttonList
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+}
|