SysPermissionController.cs 3.22 KB
using HHECS.Application.Service;
using HHECS.Model.Entities;
using Microsoft.AspNetCore.Mvc;


namespace HHECS.Web.Controllers.System
{
    /// <summary>
	/// 权限
	/// </summary>
    public class SysPermissionController : BaseController
    {
        private readonly PermissionService _permissionService;
        private readonly LogService _logService;
        public SysPermissionController(PermissionService permissionService, LogService logService)
        {
            _permissionService = permissionService;
            _logService = logService;
        }

        #region 视图功能
        /// <summary>
        /// 默认视图Action
        /// </summary>
        /// <returns></returns>
        [ResponseCache(Duration = 60)]
        [ServiceFilter(typeof(OperLogFilter))]
        public ActionResult Index()
        {
            return View();
        }
        #endregion

        #region 获取数据
        /// <summary>
        /// 加载及分页查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Load(PageReq pageRequest, WebPermission entity)
        {
            if (entity.Id != 0)
            {
                TempData["PermissionId"] = entity.Id;
            }
            else
            {
                TempData.Keep("PermissionId");
                _ = int.TryParse($"{TempData["PermissionId"]}", out int Id);
                entity.Id = Id;
            }
            return _permissionService.GetAllPermissions("WEB", entity, pageRequest.page, pageRequest.limit);
        }

        /// <summary>
        /// 获取所有权限
        /// <para>用于树状结构</para>
        /// </summary>
        [HttpGet]
        public string GetAllPermission()
        {
            return _permissionService.GetAllPermissionTree();
        }

        #endregion

        #region 提交数据
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(WebPermission entity)
        {
            return _permissionService.Ins(entity, _logService, User);
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(WebPermission entity)
        {
            return _permissionService.Upd(entity, _logService, User);
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(int[] ids)
        {
            return _permissionService.DelByIds(ids, _logService, User);
        }
        #endregion

        #region 自定义方法

        /// <summary>
        /// 获取所有权限
        /// <para>用于树状结构</para>
        /// </summary>
        [HttpGet]
        public string GetAllModule()
        {
            return _permissionService.GetAllModule();
        }

        #endregion
    }
}