diff --git a/projects/Application/Domain/Entities/AppModule.cs b/projects/Application/Domain/Entities/AppModule.cs index 16fc0bde..d349b54a 100644 --- a/projects/Application/Domain/Entities/AppModule.cs +++ b/projects/Application/Domain/Entities/AppModule.cs @@ -4,13 +4,14 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "模块")] + [Display(Name = "模块", Order = 30)] [Scope(ScopeAttribute.PlatformAll)] [Module("基础设置", "Admin")] public class AppModule : BaseEntity { [Required] public string Name { get; set; } + public string Number { get; set; } public string Url { get; set; } public int Order { get; set; } diff --git a/projects/Application/Domain/Entities/Dictionary.cs b/projects/Application/Domain/Entities/Dictionary.cs index a0da57cd..b1228ce5 100644 --- a/projects/Application/Domain/Entities/Dictionary.cs +++ b/projects/Application/Domain/Entities/Dictionary.cs @@ -4,15 +4,17 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "字典")] + [Display(Name = "字典", Order = 10)] [Scope(ScopeAttribute.PlatformAll)] [Module("基础设置", "Admin")] - public class Dictionary:BaseEntity + public class Dictionary : BaseEntity { [Required] public string Name { get; set; } + [Required] public string Key { get; set; } + public List Items { get; set; } } } \ No newline at end of file diff --git a/projects/Application/Domain/Entities/DictionaryItem.cs b/projects/Application/Domain/Entities/DictionaryItem.cs index 417a4830..f4500b75 100644 --- a/projects/Application/Domain/Entities/DictionaryItem.cs +++ b/projects/Application/Domain/Entities/DictionaryItem.cs @@ -4,15 +4,17 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "字典项")] + [Display(Name = "字典项", Order = 11)] [Scope(ScopeAttribute.PlatformAll)] [Module("基础设置", "Admin")] - public class DictionaryItem:BaseEntity + public class DictionaryItem : BaseEntity { [Required] public string Name { get; set; } + [Required] public string Value { get; set; } + public int Order { get; set; } public Guid DictionaryId { get; set; } public Dictionary Dictionary { get; set; } diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTApi.cs b/projects/Application/Domain/Entities/IoTCenter/IoTApi.cs index f51f4128..fad903ba 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTApi.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTApi.cs @@ -19,4 +19,4 @@ namespace Application.Domain.Entities public List IoTParameters { get; set; } = new List(); public List IoTCommands { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTCommand.cs b/projects/Application/Domain/Entities/IoTCenter/IoTCommand.cs index 9f971aa3..fabd7390 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTCommand.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTCommand.cs @@ -54,4 +54,4 @@ namespace Application.Domain.Entities public List IoTSceneIoTCommands { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTData.cs b/projects/Application/Domain/Entities/IoTCenter/IoTData.cs index 7a88afaa..2743d02e 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTData.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTData.cs @@ -22,7 +22,8 @@ namespace Application.Domain.Entities public double? DoubleValue { get; set; } public DateTime? DateTimeValue { get; set; } - [Display(Name="枚举候选值列表")] + + [Display(Name = "枚举候选值列表")] public string EnumValues { get; set; } [Display(Name = "名称")] @@ -57,4 +58,4 @@ namespace Application.Domain.Entities public List IoTTiggers { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTDataType.cs b/projects/Application/Domain/Entities/IoTCenter/IoTDataType.cs index a5297ea2..ebb38452 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTDataType.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTDataType.cs @@ -4,11 +4,13 @@ namespace Application.Domain.Entities { public enum IoTDataType { - [Display(Name="设备信息")] - Info=10, + [Display(Name = "设备信息")] + Info = 10, + [Display(Name = "设备数据")] - Data=20, + Data = 20, + [Display(Name = "设备事件")] - Event=30 + Event = 30 } } \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTDevice.cs b/projects/Application/Domain/Entities/IoTCenter/IoTDevice.cs index 41d82d18..9c569781 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTDevice.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTDevice.cs @@ -2,7 +2,6 @@ using Infrastructure.Domain; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using System.Linq; namespace Application.Domain.Entities { @@ -72,4 +71,4 @@ namespace Application.Domain.Entities [Display(Name = "命令")] public List IoTCommands { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTGateway.cs b/projects/Application/Domain/Entities/IoTCenter/IoTGateway.cs index 8fe97941..d9ca7e1e 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTGateway.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTGateway.cs @@ -25,6 +25,7 @@ namespace Application.Domain.Entities [Display(Name = "版本")] public string Version { get; set; } + public string Password { get; set; } [Display(Name = "序号")] @@ -39,4 +40,4 @@ namespace Application.Domain.Entities public List Devices { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTOperationType.cs b/projects/Application/Domain/Entities/IoTCenter/IoTOperationType.cs index ad667537..6f649776 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTOperationType.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTOperationType.cs @@ -6,13 +6,17 @@ namespace Application.Domain.Entities { [Display(Name = ">")] GreaterThan = 10, + [Display(Name = "<")] LessThan = 20, + [Display(Name = "==")] Equal = 30, + [Display(Name = "!=")] NotEqual = 40, + [Display(Name = "自定义")] Other = 50 } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTParameter.cs b/projects/Application/Domain/Entities/IoTCenter/IoTParameter.cs index 906ca084..f66b2fdb 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTParameter.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTParameter.cs @@ -21,4 +21,4 @@ namespace Application.Domain.Entities public Guid IoTApiId { get; set; } public IoTApi IoTApi { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTProduct.cs b/projects/Application/Domain/Entities/IoTCenter/IoTProduct.cs index a18ed6f6..8bef5a68 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTProduct.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTProduct.cs @@ -19,6 +19,7 @@ namespace Application.Domain.Entities [Display(Name = "图标")] public string Image { get; set; } + public string Template { get; set; } [Display(Name = "路径")] @@ -38,4 +39,4 @@ namespace Application.Domain.Entities public List IoTApis { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTProductCategory.cs b/projects/Application/Domain/Entities/IoTCenter/IoTProductCategory.cs index 7eed5879..d60ccd37 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTProductCategory.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTProductCategory.cs @@ -11,6 +11,7 @@ namespace Application.Domain.Entities { [Display(Name = "分类图标")] public string Image { get; set; } + public List Products { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTScene.cs b/projects/Application/Domain/Entities/IoTCenter/IoTScene.cs index 1143fb1c..9dca0f8a 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTScene.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTScene.cs @@ -34,4 +34,4 @@ namespace Application.Domain.Entities public List IoTTiggers { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTSceneIoTCommand.cs b/projects/Application/Domain/Entities/IoTCenter/IoTSceneIoTCommand.cs index c61410de..1b7ee10b 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTSceneIoTCommand.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTSceneIoTCommand.cs @@ -15,4 +15,4 @@ namespace Application.Domain.Entities public IoTScene IoTScene { get; set; } public IoTCommand IoTCommand { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTTigger.cs b/projects/Application/Domain/Entities/IoTCenter/IoTTigger.cs index 3fc69bd2..16ef8ef5 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTTigger.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTTigger.cs @@ -30,4 +30,4 @@ namespace Application.Domain.Entities public IoTScene IoTScene { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTTimer.cs b/projects/Application/Domain/Entities/IoTCenter/IoTTimer.cs index 1ba34b01..e33dd0cb 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTTimer.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTTimer.cs @@ -20,4 +20,4 @@ namespace Application.Domain.Entities public IoTScene IoTScene { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/IoTValueType.cs b/projects/Application/Domain/Entities/IoTCenter/IoTValueType.cs index 48b6b8ca..91236c95 100644 --- a/projects/Application/Domain/Entities/IoTCenter/IoTValueType.cs +++ b/projects/Application/Domain/Entities/IoTCenter/IoTValueType.cs @@ -6,15 +6,20 @@ namespace Application.Domain.Entities { [Display(Name = "整数")] Int = 10, + [Display(Name = "浮点数")] Double = 20, + [Display(Name = "时间戳")] DateTime = 30, + [Display(Name = "文本")] String = 40, + [Display(Name = "对象")] Object = 50, + [Display(Name = "数组")] Array = 60 } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/IoTCenter/LiveRecord.cs b/projects/Application/Domain/Entities/IoTCenter/LiveRecord.cs index 337daf7b..97fef301 100644 --- a/projects/Application/Domain/Entities/IoTCenter/LiveRecord.cs +++ b/projects/Application/Domain/Entities/IoTCenter/LiveRecord.cs @@ -13,4 +13,4 @@ namespace Application.Domain.Entities public string Name { get; set; } public string Value { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Area.cs b/projects/Application/Domain/Entities/UserCenter/Area.cs index a9a53062..032c1c2c 100644 --- a/projects/Application/Domain/Entities/UserCenter/Area.cs +++ b/projects/Application/Domain/Entities/UserCenter/Area.cs @@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "区域")] + [Display(Name = "区域", Order = 20)] [Scope] [Module("平台配置", "Admin")] public class Area : BaseTreeEntity @@ -12,4 +12,4 @@ namespace Application.Domain.Entities public string Type { get; set; } public List Organs { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Building.cs b/projects/Application/Domain/Entities/UserCenter/Building.cs index 45837731..66e00d30 100644 --- a/projects/Application/Domain/Entities/UserCenter/Building.cs +++ b/projects/Application/Domain/Entities/UserCenter/Building.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "房间")] + [Display(Name = "房间", Order = 100)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] public class Building : BaseTreeEntity @@ -18,4 +18,4 @@ namespace Application.Domain.Entities public List IoTGateways { get; set; } = new List(); public List Scenes { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Department.cs b/projects/Application/Domain/Entities/UserCenter/Department.cs index b2290e4a..f9d99ff2 100644 --- a/projects/Application/Domain/Entities/UserCenter/Department.cs +++ b/projects/Application/Domain/Entities/UserCenter/Department.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "部门")] + [Display(Name = "部门", Order = 90)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] public class Department : BaseTreeEntity @@ -16,4 +16,4 @@ namespace Application.Domain.Entities public List DepartmentUsers { get; set; } = new List(); public List Jobs { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/DepartmentUser.cs b/projects/Application/Domain/Entities/UserCenter/DepartmentUser.cs index 1ee5e2cf..4932c59f 100644 --- a/projects/Application/Domain/Entities/UserCenter/DepartmentUser.cs +++ b/projects/Application/Domain/Entities/UserCenter/DepartmentUser.cs @@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "部门用户")] + [Display(Name = "部门用户", Order = 93)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll | ScopeType.UserRead | ScopeType.UserEdit)] [Module("基础设置", "Admin")] [ManyToMany] @@ -19,4 +19,4 @@ namespace Application.Domain.Entities public Department Department { get; set; } public Job Job { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Job.cs b/projects/Application/Domain/Entities/UserCenter/Job.cs index a4431401..386a8660 100644 --- a/projects/Application/Domain/Entities/UserCenter/Job.cs +++ b/projects/Application/Domain/Entities/UserCenter/Job.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "职位")] + [Display(Name = "职位", Order = 91)] [Module("基础设置", "Admin")] public class Job : BaseEntity { @@ -17,4 +17,4 @@ namespace Application.Domain.Entities public Department Department { get; set; } public List DepartmentUsers { get; set; } = new List(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Organ.cs b/projects/Application/Domain/Entities/UserCenter/Organ.cs index b1de5784..9552fe9d 100644 --- a/projects/Application/Domain/Entities/UserCenter/Organ.cs +++ b/projects/Application/Domain/Entities/UserCenter/Organ.cs @@ -7,7 +7,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { [GeneratedController] - [Display(Name = "机构")] + [Display(Name = "机构", Order = 70)] [Scope(ScopeAttribute.PlatformAll | ScopeType.OrganRead | ScopeType.OrganEdit)] [Module("基础设置", "Admin")] public class Organ : BaseTreeEntity @@ -23,4 +23,4 @@ namespace Application.Domain.Entities public List Roles { get; set; } = new List(); public List Titles { get; set; } = new List<Title>(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/OrganUser.cs b/projects/Application/Domain/Entities/UserCenter/OrganUser.cs index c9a88f04..fb1a94fa 100644 --- a/projects/Application/Domain/Entities/UserCenter/OrganUser.cs +++ b/projects/Application/Domain/Entities/UserCenter/OrganUser.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "机构用户")] + [Display(Name = "机构用户", Order = 80)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll | ScopeType.UserRead | ScopeType.UserDelete)] [Module("基础设置", "Admin")] [ManyToMany] @@ -21,4 +21,4 @@ namespace Application.Domain.Entities public List<OrganUserRole> UserRoles { get; set; } = new List<OrganUserRole>(); public List<DepartmentUser> DepartmentUsers { get; set; } = new List<DepartmentUser>(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/OrganUserRole.cs b/projects/Application/Domain/Entities/UserCenter/OrganUserRole.cs index 24222cac..0d18ba33 100644 --- a/projects/Application/Domain/Entities/UserCenter/OrganUserRole.cs +++ b/projects/Application/Domain/Entities/UserCenter/OrganUserRole.cs @@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "用户角色")] + [Display(Name = "用户角色", Order = 81)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] [ManyToMany] @@ -16,4 +16,4 @@ namespace Application.Domain.Entities public OrganUser OrganUser { get; set; } public Role OrganRole { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Permission.cs b/projects/Application/Domain/Entities/UserCenter/Permission.cs index f695f4eb..0c98b1f2 100644 --- a/projects/Application/Domain/Entities/UserCenter/Permission.cs +++ b/projects/Application/Domain/Entities/UserCenter/Permission.cs @@ -5,19 +5,21 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "权限")] + [Display(Name = "权限", Order = 50)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] public class Permission : BaseEntity { [Required] public string Name { get; set; } + [Required] public string Number { get; set; } + public bool IsReadOnly { get; set; } public PermissionType Type { get; set; } public Guid? CategoryId { get; set; } public PermissionCategory Category { get; set; } public List<RolePermission> RolePermissions { get; set; } = new List<RolePermission>(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/PermissionCategory.cs b/projects/Application/Domain/Entities/UserCenter/PermissionCategory.cs index 8d4ebeee..3c3f4406 100644 --- a/projects/Application/Domain/Entities/UserCenter/PermissionCategory.cs +++ b/projects/Application/Domain/Entities/UserCenter/PermissionCategory.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "权限分类")] + [Display(Name = "权限分类", Order = 40)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] public class PermissionCategory : BaseTreeEntity<PermissionCategory> diff --git a/projects/Application/Domain/Entities/UserCenter/Role.cs b/projects/Application/Domain/Entities/UserCenter/Role.cs index 7ffb2197..fe8e327a 100644 --- a/projects/Application/Domain/Entities/UserCenter/Role.cs +++ b/projects/Application/Domain/Entities/UserCenter/Role.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "角色")] + [Display(Name = "角色", Order = 80)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] public class Role : BaseEntity @@ -18,4 +18,4 @@ namespace Application.Domain.Entities public List<OrganUserRole> UserRoles { get; set; } = new List<OrganUserRole>(); public List<RolePermission> RolePermissions { get; set; } = new List<RolePermission>(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/RolePermission.cs b/projects/Application/Domain/Entities/UserCenter/RolePermission.cs index c9cc5d9f..28cc3a6c 100644 --- a/projects/Application/Domain/Entities/UserCenter/RolePermission.cs +++ b/projects/Application/Domain/Entities/UserCenter/RolePermission.cs @@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "角色权限")] + [Display(Name = "角色权限", Order = 81)] [Scope(ScopeAttribute.PlatformAll | ScopeAttribute.OrganAll)] [Module("基础设置", "Admin")] [ManyToMany] @@ -16,4 +16,4 @@ namespace Application.Domain.Entities public Permission Permission { get; set; } public bool IsReadOnly { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Sex.cs b/projects/Application/Domain/Entities/UserCenter/Sex.cs index 77abdbeb..8768e3da 100644 --- a/projects/Application/Domain/Entities/UserCenter/Sex.cs +++ b/projects/Application/Domain/Entities/UserCenter/Sex.cs @@ -10,4 +10,4 @@ namespace Application.Domain.Entities [Display(Name = "女")] Female } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Site.cs b/projects/Application/Domain/Entities/UserCenter/Site.cs index bdc04d05..522ed923 100644 --- a/projects/Application/Domain/Entities/UserCenter/Site.cs +++ b/projects/Application/Domain/Entities/UserCenter/Site.cs @@ -18,4 +18,4 @@ namespace Application.Domain.Entities public bool Disabled { get; set; } public int Order { get; set; } } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/Title.cs b/projects/Application/Domain/Entities/UserCenter/Title.cs index db3252ef..ed393d52 100644 --- a/projects/Application/Domain/Entities/UserCenter/Title.cs +++ b/projects/Application/Domain/Entities/UserCenter/Title.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "职务")] + [Display(Name = "职务", Order = 71)] [Module("基础设置", "Admin")] public class Title : BaseEntity { @@ -16,4 +16,4 @@ namespace Application.Domain.Entities public Organ Organ { get; set; } public List<Job> Jobs { get; set; } = new List<Job>(); } -} +} \ No newline at end of file diff --git a/projects/Application/Domain/Entities/UserCenter/User.cs b/projects/Application/Domain/Entities/UserCenter/User.cs index 0ce662da..faf2000f 100644 --- a/projects/Application/Domain/Entities/UserCenter/User.cs +++ b/projects/Application/Domain/Entities/UserCenter/User.cs @@ -5,7 +5,7 @@ using System.ComponentModel.DataAnnotations; namespace Application.Domain.Entities { - [Display(Name = "用户")] + [Display(Name = "用户", Order = 50)] [Scope(ScopeAttribute.PlatformAll | ScopeType.UserRead | ScopeType.UserEdit)] [Module("基础设置", "Admin")] public class User : BaseEntity, IVersionEntity @@ -31,4 +31,4 @@ namespace Application.Domain.Entities public string RowVersion { get; set; } public List<OrganUser> OrganUsers { get; set; } = new List<OrganUser>(); } -} +} \ No newline at end of file diff --git a/projects/Platform/Areas/Admin/Views/Shared/_Menu.cshtml b/projects/Platform/Areas/Admin/Views/Shared/_Menu.cshtml index 345404c3..286aafda 100644 --- a/projects/Platform/Areas/Admin/Views/Shared/_Menu.cshtml +++ b/projects/Platform/Areas/Admin/Views/Shared/_Menu.cshtml @@ -1,83 +1,51 @@ +@using System.Security.Claims <ul class="nav nav-pills nav-sidebar flex-column nav-flat" data-widget="treeview" role="menu" data-accordion="nav-icon false"> - @*<li class="nav-item"><a class="@GetLinkClass("Home")" href="@Url.Action("Index","Home")"><i class="far fa-circle nav-icon"></i><p>首页</p></a></li>*@ - @*平台*@ - @if (User.Claims.Any(o => o.Value.Contains("-Platform-"))) - { - <li class="nav-header">平台</li> - } - @if (HasPermission("Read-Platform-Setting")) - { - <li class="nav-item"><a class="@GetLinkClass("Setting")" href="@Url.Action("Index","Setting")"><i class="far fa-circle nav-icon"></i><p>配置管理</p></a></li> - }@if (HasPermission("Read-Platform-Site")) - { - <li class="nav-item"><a class="@GetLinkClass("Site")" href="@Url.Action("Index","Site")"><i class="far fa-circle nav-icon"></i><p>应用管理</p></a></li> - } - @if (HasPermission("Read-Platform-Area")) - { - <li class="nav-item"><a class="@GetLinkClass("Area")" href="@Url.Action("Index","Area")"><i class="far fa-circle nav-icon"></i><span>区域管理</span></a></li> - } - @if (HasPermission("Read-Platform-User")) - { - <li class="nav-item"><a class="@GetLinkClass("User")" href="@Url.Action("Index","User")"><i class="far fa-circle nav-icon"></i><p>用户管理</p></a></li> - } - @if (HasPermission("Read-Platform-Organ")) - { - <li class="nav-item"><a class="@GetLinkClass("Organ")" href="@Url.Action("Index","Organ")"><i class="far fa-circle nav-icon"></i><span>机构管理</span></a></li> - } - @if (HasPermission("Read-Platform-OrganUser")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganUser")" href="@Url.Action("Index","OrganUser")"><i class="far fa-circle nav-icon"></i><p>机构用户</p></a></li> - } - @if (HasPermission("Read-Platform-OrganRole")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganRole")" href="@Url.Action("Index","OrganRole")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li> - } - @if (HasPermission("Read-Platform-PermissionCategory")) - { - <li class="nav-item"><a class="@GetLinkClass("PermissionCategory")" href="@Url.Action("Index","PermissionCategory")"><i class="far fa-circle nav-icon"></i><p>权限分类</p></a></li> - } - @if (HasPermission("Read-Platform-Permission")) - { - <li class="nav-item"><a class="@GetLinkClass("Permission")" href="@Url.Action("Index","Permission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li> - } - @if (HasPermission("Read-Platform-Building")) - { - <li class="nav-item"><a class="@GetLinkClass("Building")" href="@Url.Action("Index","Building")"><i class="far fa-circle nav-icon"></i><span>建筑管理</span></a></li> - } - - @*机构*@ - @if (User.Claims.Any(o => o.Value.Contains("-Organ-"))) - { - <li class="nav-header">机构</li> - } - @if (HasPermission("Read-Organ-Organ")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganOrgan")" href="@Url.Action("Index","OrganOrgan")"><i class="far fa-circle nav-icon"></i><p>机构管理</p></a></li> - } - @if (HasPermission("Read-Organ-OrganUser")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganOrganUser")" href="@Url.Action("Index","OrganOrganUser")"><i class="far fa-circle nav-icon"></i><p>机构用户</p></a></li> - } - @if (HasPermission("Read-Organ-OrganRole")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganOrganRole")" href="@Url.Action("Index","OrganOrganRole")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li> - } - @if (HasPermission("Read-Organ-Permission")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganPermission")" href="@Url.Action("Index","OrganPermission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li> - } - @if (HasPermission("Read-Organ-Building")) - { - <li class="nav-item"><a class="@GetLinkClass("OrganBuilding")" href="@Url.Action("Index","OrganBuilding")"><i class="far fa-circle nav-icon"></i><span>建筑管理</span></a></li> - } - - @*个人*@ - @if (User.Claims.Any(o => o.Value.Contains("-User-"))) - { - <li class="nav-header">用户</li> - } - @if (HasPermission("Read-User-OrganUser")) - { - <li class="nav-item"><a class="@GetLinkClass("UserOrganUser")" href="@Url.Action("Index","UserOrganUser")"><i class="far fa-circle nav-icon"></i><p>机构用户</p></a></li> - } -</ul> \ No newline at end of file + <li class="nav-item"><a class="@GetLinkClass("Home")" href="@Url.Action("Index","Home")"><i class="far fa-circle nav-icon"></i><p>首页</p></a></li> + @{ + var modules = this.Context.Request.HttpContext.Items["modules"] as List<AppModule>; + if (modules != null) + { + var area = this.ViewContext.RouteData.Values["area"].ToString(); + var module = modules.FirstOrDefault(o => o.Number == area); + if (module != null) + { + var numbers = User.Claims.Where(o => o.Type == ClaimTypes.Role).Select(o => o.Value).ToList(); + var permissions = module.PermissionCategories.SelectMany(o => o.Permissions).Where(o => numbers.Contains(o.Number)).OrderBy(o => o.Category.Order); + var platformPermissions = permissions.Where(o => o.Type == PermissionType.Platform); + if (platformPermissions.Any()) + { + <li class="nav-header">全部机构</li> + @foreach (var permission in platformPermissions) + { + if (permission.Number.StartsWith("Read-")) + { + <li class="nav-item"> + <a href="@Url.Action("Index", permission.Category.Number, new { area = module.Number })" class="@GetLinkClass(permission.Category.Number)"> + <i class="far fa-circle nav-icon"></i> + <p>@permission.Category.Name</p> + </a> + </li> + } + } + } + var organPermissions = permissions.Where(o => o.Type == PermissionType.Organ); + if (organPermissions.Any()) + { + <li class="nav-header">当前机构</li> + @foreach (var permission in organPermissions) + { + if (permission.Number.StartsWith("Read-")) + { + <li class="nav-item"> + <a href="@Url.Action("Index", permission.Category.Number, new { area = module.Number })" class="@GetLinkClass(permission.Category.Number)"> + <i class="far fa-circle nav-icon"></i> + <p>@permission.Category.Name</p> + </a> + </li> + } + } + } + } + } + } +</ul> diff --git a/projects/Platform/UserService.cs b/projects/Platform/UserService.cs index 9500b586..880b0fc9 100644 --- a/projects/Platform/UserService.cs +++ b/projects/Platform/UserService.cs @@ -12,11 +12,13 @@ namespace Platform { public class UserService : IUserService { + private readonly IRepository<AppModule> _appModuleRepo; private readonly IRepository<OrganUser> _organUserRepo; private readonly IHttpContextAccessor _httpContextAccesstor; - public UserService(IRepository<OrganUser> organUserRepo, IHttpContextAccessor httpContextAccesstor) + public UserService(IRepository<AppModule> appModuleRepo,IRepository<OrganUser> organUserRepo, IHttpContextAccessor httpContextAccesstor) { + this._appModuleRepo = appModuleRepo; this._organUserRepo = organUserRepo; this._httpContextAccesstor = httpContextAccesstor; } @@ -58,16 +60,6 @@ namespace Platform list.Add(new Claim("Avatar", organUser.User.Avatar)); } } - // - //var modules = this._organUserRepo.Table() - //.Where(o => o.User.UserName == userName) - //.Where(o => o.OrganId == currentOrganId) - ////.Include(o => o.User) - ////.Include(o => o.UserRoles).ThenInclude(o => o.OrganRole).ThenInclude(o => o.RolePermissions).ThenInclude(o => o.Permission) - ////.ThenInclude(o => o.Category).ThenInclude(o => o.AppModule) - //.SelectMany(o=>o.UserRoles).Select(o=>o.OrganRole).SelectMany(o=>o.RolePermissions).Select(o=>o.Permission).Select(o=>o.Category).Select(o=>o.AppModule) - //.ToList(); - //this._httpContextAccesstor.HttpContext.Items["AppModules"] = modules; } } return list; diff --git a/projects/Platform/Views/Shared/_Layout.cshtml b/projects/Platform/Views/Shared/_Layout.cshtml index f1e4204a..232bc4f1 100644 --- a/projects/Platform/Views/Shared/_Layout.cshtml +++ b/projects/Platform/Views/Shared/_Layout.cshtml @@ -1,6 +1,11 @@ @using Microsoft.AspNetCore.Http.Extensions +@using Microsoft.EntityFrameworkCore @inject Infrastructure.Application.Services.Settings.ISettingService settingSerice @inject IRepository<OrganUser> organUserRepo +@inject IRepository<AppModule> appModuleRepo +@{ + this.Context.Request.HttpContext.Items["modules"] = appModuleRepo.ReadOnlyTable().Include(o => o.PermissionCategories).ThenInclude(o => o.Permissions).ToList();; +} @{ var name = settingSerice.GetValue("name"); var logo = settingSerice.GetValue("logo"); diff --git a/projects/Platform/Views/Shared/_TopMenu.cshtml b/projects/Platform/Views/Shared/_TopMenu.cshtml index dfcb79cc..5bde5199 100644 --- a/projects/Platform/Views/Shared/_TopMenu.cshtml +++ b/projects/Platform/Views/Shared/_TopMenu.cshtml @@ -1,27 +1,25 @@ -<ul class="navbar-nav"> +@using System.Security.Claims +<ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a> </li> <li class="nav-item d-none d-sm-inline-block"> - <a href="@Url.Action("Index","Home",new { area=""})" class="@GetLinkClass(area:"")">首页</a> + <a href="@Url.Action("Index", "Home", new { area = "" })" class="@GetLinkClass(area: "")">首页</a> </li> - @if (HasPermission("Read-Platform-Setting")) - { - <li class="nav-item d-none d-sm-inline-block"> - <a href="@Url.Action("Index","Setting",new { area="Admin"})" class="@GetLinkClass(area:"Admin")">基础设置</a> - </li> - } - <li class="nav-item d-none d-sm-inline-block"> - <a href="@Url.Action("Index","IoTProductCategory",new { area="IoTCenter"})" class="@GetLinkClass(area:"IoTCenter")">物联管控</a> - </li> -</ul> -@{ - var modules = this.Context.Request.HttpContext.Items["AppModules"] as List<AppModule>; - if (modules != null) - { - foreach (var item in modules.SelectMany(o => o.PermissionCategories).SelectMany(o => o.Permissions)) + @{ + var modules = this.Context.Request.HttpContext.Items["modules"] as List<AppModule>; + if (modules != null) { - <a href="@Url.Action(item.Number,item.Category.Number,new { area=item.Category.AppModule.Number})">@item.Category.AppModule.Name</a> + var numbers = User.Claims.Where(o => o.Type == ClaimTypes.Role).Select(o => o.Value).ToList(); + foreach (var module in modules.Where(o=>o.PermissionCategories.SelectMany(o => o.Permissions).Any(o => numbers.Contains(o.Number))).OrderBy(o=>o.Order)) + { + if (module.PermissionCategories.SelectMany(o => o.Permissions).Any(o => numbers.Contains(o.Number))) + { + <li class="nav-item d-none d-sm-inline-block"> + <a href="@Url.Action("Index", "Home", new { area = module.Number })" class="@GetLinkClass(area: module.Number)">@module.Name</a> + </li> + } + } } } -} \ No newline at end of file +</ul>