Permission.cs 3.93 KB
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;
using System;
using FreeSql.DataAnnotations;
using TableAttribute = System.ComponentModel.DataAnnotations.Schema.TableAttribute;
using ColumnAttribute = System.ComponentModel.DataAnnotations.Schema.ColumnAttribute;

namespace HHECS.Model.Entities
{
    /// <summary>
    /// 权限
    /// 权限结构:
    /// 模块->WCS/ACS/中控...
    ///     目录->系统管理/任务管理...
    ///         菜单->任务/字典/用户等具体揭秘那
    ///             按钮->操作权限,界面中的按钮
    /// </summary>
    [Table("permission")]
    public class Permission : BaseEntityCU<int>
    {
        [Column(Order = 12)]
        [MaxLength(100)]
        public string MenuCode { get; set; }


        [Column(Order = 13)]
        [MaxLength(50)]
        public string MenuName { get; set; }

        [Column(Order = 14)]
        [MaxLength(50)]
        public string MenuType { get; set; }

        [Column(Order = 15)]
        [MaxLength(500)]
        public string WebUrl { get; set; }

        [Column(Order = 16)]
        public bool Visible { get; set; }

        [Column(Order = 1)]
        [Required]
        [MaxLength(50)]
        public string PermissionCode { get; set; }


        [Column(Order = 2)]
        [MaxLength(50)]
        [Required]
        public string PermissionName { get; set; }

        private int? parentId;

        /// <summary>
        /// 父
        /// </summary>
        [Column(Order = 3)]
        public int? ParentId
        {
            get { return parentId; }
            set
            {
                parentId = value;
            }
        }

        /// <summary>
        /// 顺序
        /// </summary>
        private int? orderNum;

        [Column(Order = 4)]
        public int? OrderNum
        {
            get { return orderNum; }
            set { orderNum = value; }
        }

        /// <summary>
        /// 权限路径
        /// </summary>
        private string url;

        [Column(Order = 5)]
        [MaxLength(500)]
        public string Url
        {
            get { return url; }
            set { url = value; }
        }

        /// <summary>
        /// 权限类型
        /// </summary>
        [Column(Order = 6)]
        [MaxLength(50)]
        [Required]
        public string PermissionType { get; set; }

        /// <summary>
        /// 图标
        /// </summary>
        [Column(Order = 7)]
        [MaxLength(100)]
        public string Icon { get; set; }

        private string perms;

        /// <summary>
        /// 权限值
        /// </summary>
        [Column(Order = 8)]
        [MaxLength(50)]
        public string Perms
        {
            get { return perms; }
            set { perms = value; }
        }

        private string remark;

        /// <summary>
        /// 备注
        /// </summary>
        [Column(Order = 9)]
        [MaxLength(50)]
        public string Remark
        {
            get { return remark; }
            set { remark = value; }
        }

        /// <summary>
        /// 菜单按钮 多级控制
        /// </summary>
        public int AreaMenus { get; set; }

        /// <summary>
        /// 父权限
        /// </summary>
        [Navigate(nameof(ParentId))]
        public Permission Parent { get; set; }

        private List<Permission> children;

        /// <summary>
        /// 子权限
        /// </summary>
        [Navigate(nameof(ParentId))]
        public List<Permission> Childrens
        {
            get
            {
                if (children == null)
                {
                    children = new List<Permission>();
                }
                return children;
            }
            set { children = value; }
        }

        /// <summary>
        /// 此权限关联的角色
        /// </summary>
        public List<Role> Roles { get; set; }

    }
}