using Microsoft.AspNetCore.Http; 
 | 
using Microsoft.AspNetCore.Mvc; 
 | 
using Microsoft.AspNetCore.Routing; 
 | 
using WIDESEA_DTO.System; 
 | 
using WIDESEAWCS_Core; 
 | 
using WIDESEAWCS_Core.BaseController; 
 | 
using WIDESEAWCS_Core.BaseRepository; 
 | 
using WIDESEAWCS_ISystemServices; 
 | 
using WIDESEAWCS_Model.Models; 
 | 
using WIDESEAWCS_Model.Models.System; 
 | 
  
 | 
namespace WIDESEAWCS_WCSServer.Controllers.System 
 | 
{ 
 | 
    [Route("api/Sys_Role")] 
 | 
    [ApiController] 
 | 
    public class Sys_RoleController : ApiBaseController<ISys_RoleService, Sys_Role> 
 | 
    { 
 | 
        private readonly IHttpContextAccessor _httpContextAccessor; 
 | 
        public Sys_RoleController(ISys_RoleService service, IHttpContextAccessor httpContextAccessor) : base(service) 
 | 
        { 
 | 
            _httpContextAccessor = httpContextAccessor; 
 | 
        } 
 | 
  
 | 
        [HttpPost, Route("getUserChildRoles")] 
 | 
        public IActionResult GetUserChildRoles() 
 | 
        { 
 | 
            int roleId = App.User.RoleId; 
 | 
            var data = Service.GetAllChildren(roleId); 
 | 
  
 | 
            if (App.User.IsSuperAdmin) 
 | 
            { 
 | 
                return Json(WebResponseContent.Instance.OK(null, data)); 
 | 
            } 
 | 
            //不是超级管理,将自己的角色查出来,在树形菜单上作为根节点 
 | 
            var self = data.Where(x => x.Id == roleId) 
 | 
                 .Select(s => new RoleNodes() 
 | 
                 { 
 | 
                     Id = s.Id, 
 | 
                     ParentId = 0,//将自己的角色作为root节点 
 | 
                     RoleName = s.RoleName 
 | 
                 }).ToList(); 
 | 
            data.AddRange(self); 
 | 
            return Json(WebResponseContent.Instance.OK(null, data)); 
 | 
        } 
 | 
  
 | 
        [HttpPost, Route("getCurrentTreePermission")] 
 | 
        public IActionResult GetCurrentTreePermission() 
 | 
        { 
 | 
            return Json(Service.GetCurrentTreePermission()); 
 | 
        } 
 | 
  
 | 
        [HttpPost, Route("getUserTreePermission")] 
 | 
        public IActionResult GetUserTreePermission(int roleId) 
 | 
        { 
 | 
            return Json(Service.GetUserTreePermission(roleId)); 
 | 
        } 
 | 
  
 | 
        [HttpPost, Route("savePermission")] 
 | 
        public IActionResult SavePermission([FromBody] List<UserPermissionDTO> userPermissions, int roleId) 
 | 
        { 
 | 
            return Json(Service.SavePermission(userPermissions, roleId)); 
 | 
        } 
 | 
    } 
 | 
} 
 |