From 6f14fa747f3eb94b32c212ed1842544b87aca05a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Thu, 30 Jun 2022 08:08:36 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B0.net=206.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Identity/SecurityStampValidator.cs | 6 +- .../Authorization/Roles/Role.cs | 32 +---- .../Authorization/Users/User.cs | 8 -- .../Users/UserClaimsPrincipalFactory.cs | 7 +- .../Authorization/Users/UserManager.cs | 109 ++++++------------ .../PearAdmin.AbpTemplate.Core.csproj | 8 +- 6 files changed, 56 insertions(+), 114 deletions(-) diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Identity/SecurityStampValidator.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Identity/SecurityStampValidator.cs index 5c5a3d6..e692ccb 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Identity/SecurityStampValidator.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Identity/SecurityStampValidator.cs @@ -6,6 +6,7 @@ using PearAdmin.AbpTemplate.Authorization.Roles; using PearAdmin.AbpTemplate.Authorization.Users; using PearAdmin.AbpTemplate.MultiTenancy; using Microsoft.Extensions.Logging; +using Abp.Domain.Uow; namespace PearAdmin.AbpTemplate.Identity { @@ -15,8 +16,9 @@ namespace PearAdmin.AbpTemplate.Identity IOptions options, SignInManager signInManager, ISystemClock systemClock, - ILoggerFactory loggerFactory) - : base(options, signInManager, systemClock, loggerFactory) + ILoggerFactory loggerFactory, + IUnitOfWorkManager unitOfWorkManager) + : base(options, signInManager, systemClock, loggerFactory, unitOfWorkManager) { } } diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs index b07e6b2..0691474 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs @@ -8,40 +8,18 @@ namespace PearAdmin.AbpTemplate.Authorization.Roles { public const int MaxDescriptionLength = 5000; - public Role() //For EFCore + public Role() { } - public Role(int? tenantId, string name) - : base(tenantId, name, name) + public Role(int? tenantId, string displayName) + : base(tenantId, displayName) { } - public static Role CreateRole(int? tenantId, string name) + public Role(int? tenantId, string name, string displayName) + : base(tenantId, name, displayName) { - var role = new Role(tenantId, name); - role.SetNormalizedName(); - return role; - } - - public Role SetName(string name) - { - Name = name; - DisplayName = name; - SetNormalizedName(); - return this; - } - - public Role SetDescription(string description) - { - Description = description; - return this; - } - - public Role SetIsDefault(bool isDefault) - { - IsDefault = isDefault; - return this; } [StringLength(MaxDescriptionLength)] diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs index fa6405c..72d5bcc 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs @@ -31,14 +31,6 @@ namespace PearAdmin.AbpTemplate.Authorization.Users return user; } - public static User CreateUser(int? tenantId) - { - return new User() - { - TenantId = tenantId, - }; - } - public Guid? ProfilePictureId { get; set; } } } diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserClaimsPrincipalFactory.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserClaimsPrincipalFactory.cs index 8e539b2..8f07b72 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserClaimsPrincipalFactory.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserClaimsPrincipalFactory.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.Options; using Abp.Authorization; using PearAdmin.AbpTemplate.Authorization.Roles; +using Abp.Domain.Uow; namespace PearAdmin.AbpTemplate.Authorization.Users { @@ -10,11 +11,13 @@ namespace PearAdmin.AbpTemplate.Authorization.Users public UserClaimsPrincipalFactory( UserManager userManager, RoleManager roleManager, - IOptions optionsAccessor) + IOptions optionsAccessor, + IUnitOfWorkManager unitOfWorkManager) : base( userManager, roleManager, - optionsAccessor) + optionsAccessor, + unitOfWorkManager) { } } diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserManager.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserManager.cs index f55972f..148acc1 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserManager.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/UserManager.cs @@ -11,84 +11,51 @@ using Abp.Domain.Uow; using Abp.Organizations; using Abp.Runtime.Caching; using PearAdmin.AbpTemplate.Authorization.Roles; -using System.Threading.Tasks; -using Abp.Threading; -using Abp; +using Abp.Authorization.Roles; namespace PearAdmin.AbpTemplate.Authorization.Users { public class UserManager : AbpUserManager { - private readonly IUnitOfWorkManager _unitOfWorkManager; - public UserManager( - RoleManager roleManager, - UserStore store, - IOptions optionsAccessor, - IPasswordHasher passwordHasher, - IEnumerable> userValidators, - IEnumerable> passwordValidators, - ILookupNormalizer keyNormalizer, - IdentityErrorDescriber errors, - IServiceProvider services, - ILogger> logger, - IPermissionManager permissionManager, - IUnitOfWorkManager unitOfWorkManager, - ICacheManager cacheManager, - IRepository organizationUnitRepository, - IRepository userOrganizationUnitRepository, - IOrganizationUnitSettings organizationUnitSettings, - ISettingManager settingManager) - : base( - roleManager, - store, - optionsAccessor, - passwordHasher, - userValidators, - passwordValidators, - keyNormalizer, - errors, - services, - logger, - permissionManager, - unitOfWorkManager, - cacheManager, - organizationUnitRepository, - userOrganizationUnitRepository, - organizationUnitSettings, - settingManager) - { - _unitOfWorkManager = unitOfWorkManager; - } - - [UnitOfWork] - public virtual async Task GetUserOrNullAsync(UserIdentifier userIdentifier) - { - using (_unitOfWorkManager.Current.SetTenantId(userIdentifier.TenantId)) - { - return await FindByIdAsync(userIdentifier.UserId.ToString()); - } - } - - public User GetUserOrNull(UserIdentifier userIdentifier) - { - return AsyncHelper.RunSync(() => GetUserOrNullAsync(userIdentifier)); - } - - public async Task GetUserAsync(UserIdentifier userIdentifier) - { - var user = await GetUserOrNullAsync(userIdentifier); - if (user == null) - { - throw new Exception("There is no user: " + userIdentifier); - } - - return user; - } - - public User GetUser(UserIdentifier userIdentifier) + RoleManager roleManager, + UserStore store, + IOptions optionsAccessor, + IPasswordHasher passwordHasher, + IEnumerable> userValidators, + IEnumerable> passwordValidators, + ILookupNormalizer keyNormalizer, + IdentityErrorDescriber errors, + IServiceProvider services, + ILogger> logger, + IPermissionManager permissionManager, + IUnitOfWorkManager unitOfWorkManager, + ICacheManager cacheManager, + IRepository organizationUnitRepository, + IRepository userOrganizationUnitRepository, + IOrganizationUnitSettings organizationUnitSettings, + ISettingManager settingManager, + IRepository userLoginRepository) + : base( + roleManager, + store, + optionsAccessor, + passwordHasher, + userValidators, + passwordValidators, + keyNormalizer, + errors, + services, + logger, + permissionManager, + unitOfWorkManager, + cacheManager, + organizationUnitRepository, + userOrganizationUnitRepository, + organizationUnitSettings, + settingManager, + userLoginRepository) { - return AsyncHelper.RunSync(() => GetUserAsync(userIdentifier)); } } } diff --git a/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj b/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj index 7b9d862..2fa7dfd 100644 --- a/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj +++ b/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj @@ -1,7 +1,7 @@  1.0.0.0 - net5.0 + net6.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; PearAdmin.AbpTemplate.Core PearAdmin.AbpTemplate.Core @@ -16,9 +16,9 @@ - - - + + + -- Gitee From b43981a1670c367d7702b51cca4d693651d0d234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Wed, 6 Jul 2022 08:29:42 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0nuget=E5=8C=85=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PearAdmin.AbpTemplate.ExternalAuth.csproj | 4 ++-- .../PearAdmin.AbpTemplate.MiniProgram.csproj | 6 +++--- .../PearAdmin.AbpTemplate.NLog.csproj | 8 ++++---- ...PearAdmin.AbpTemplate.Storage.Minio.csproj | 8 ++++---- .../PearAdmin.AbpTemplate.Storage.csproj | 4 ++-- .../PearAdmin.AbpTemplate.Admin.csproj | 20 +++++++++---------- .../PearAdmin.AbpTemplate.Application.csproj | 4 ++-- .../PearAdmin.AbpTemplate.Core.csproj | 2 +- ...min.AbpTemplate.EntityFrameworkCore.csproj | 8 ++++---- .../PearAdmin.AbpTemplate.Gateway.csproj | 2 +- .../PearAdmin.AbpTemplate.Admin.Tests.csproj | 14 ++++++------- ...Admin.AbpTemplate.Application.Tests.csproj | 16 +++++++-------- .../PearAdmin.AbpTemplate.Core.Tests.csproj | 18 +++++++++++------ .../PearAdmin.AbpTemplate.Shared.csproj | 2 +- 14 files changed, 61 insertions(+), 55 deletions(-) diff --git a/module/PearAdmin.AbpTemplate.ExternalAuth/PearAdmin.AbpTemplate.ExternalAuth.csproj b/module/PearAdmin.AbpTemplate.ExternalAuth/PearAdmin.AbpTemplate.ExternalAuth.csproj index a8e3113..eaf69f3 100644 --- a/module/PearAdmin.AbpTemplate.ExternalAuth/PearAdmin.AbpTemplate.ExternalAuth.csproj +++ b/module/PearAdmin.AbpTemplate.ExternalAuth/PearAdmin.AbpTemplate.ExternalAuth.csproj @@ -2,11 +2,11 @@ 1.0.0.0 - net5.0 + net6.0 - + diff --git a/module/PearAdmin.AbpTemplate.MiniProgram/PearAdmin.AbpTemplate.MiniProgram.csproj b/module/PearAdmin.AbpTemplate.MiniProgram/PearAdmin.AbpTemplate.MiniProgram.csproj index d9dbcad..2994f6b 100644 --- a/module/PearAdmin.AbpTemplate.MiniProgram/PearAdmin.AbpTemplate.MiniProgram.csproj +++ b/module/PearAdmin.AbpTemplate.MiniProgram/PearAdmin.AbpTemplate.MiniProgram.csproj @@ -2,13 +2,13 @@ 1.0.0.0 - net5.0 + net6.0 - + - + diff --git a/module/PearAdmin.AbpTemplate.NLog/PearAdmin.AbpTemplate.NLog.csproj b/module/PearAdmin.AbpTemplate.NLog/PearAdmin.AbpTemplate.NLog.csproj index 3b5e386..1885e07 100644 --- a/module/PearAdmin.AbpTemplate.NLog/PearAdmin.AbpTemplate.NLog.csproj +++ b/module/PearAdmin.AbpTemplate.NLog/PearAdmin.AbpTemplate.NLog.csproj @@ -2,13 +2,13 @@ 1.0.0.0 - net5.0 + net6.0 - - - + + + diff --git a/module/PearAdmin.AbpTemplate.Storage.Minio/PearAdmin.AbpTemplate.Storage.Minio.csproj b/module/PearAdmin.AbpTemplate.Storage.Minio/PearAdmin.AbpTemplate.Storage.Minio.csproj index df5fd60..1c1da29 100644 --- a/module/PearAdmin.AbpTemplate.Storage.Minio/PearAdmin.AbpTemplate.Storage.Minio.csproj +++ b/module/PearAdmin.AbpTemplate.Storage.Minio/PearAdmin.AbpTemplate.Storage.Minio.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 @@ -9,9 +9,9 @@ - - - + + + diff --git a/module/PearAdmin.AbpTemplate.Storage/PearAdmin.AbpTemplate.Storage.csproj b/module/PearAdmin.AbpTemplate.Storage/PearAdmin.AbpTemplate.Storage.csproj index cdce87c..5114993 100644 --- a/module/PearAdmin.AbpTemplate.Storage/PearAdmin.AbpTemplate.Storage.csproj +++ b/module/PearAdmin.AbpTemplate.Storage/PearAdmin.AbpTemplate.Storage.csproj @@ -1,11 +1,11 @@  - net5.0 + net6.0 - + diff --git a/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj b/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj index a531ff0..b0f5bd7 100644 --- a/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj +++ b/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj @@ -5,7 +5,7 @@ PearAdmin.AbpTemplate.Admin PearAdmin-AbpTemplate-56C2EF2F-ABD6-4EFC-AAF2-2E81C34E8FB1 PearAdmin.AbpTemplate.Admin - net5.0 + net6.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true true @@ -22,20 +22,20 @@ - - - - - + + + + + - + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + \ No newline at end of file diff --git a/src/PearAdmin.AbpTemplate.Application/PearAdmin.AbpTemplate.Application.csproj b/src/PearAdmin.AbpTemplate.Application/PearAdmin.AbpTemplate.Application.csproj index ef75364..2bf3472 100644 --- a/src/PearAdmin.AbpTemplate.Application/PearAdmin.AbpTemplate.Application.csproj +++ b/src/PearAdmin.AbpTemplate.Application/PearAdmin.AbpTemplate.Application.csproj @@ -1,7 +1,7 @@  1.0.0.0 - net5.0 + net6.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; PearAdmin.AbpTemplate.Application PearAdmin.AbpTemplate.Application @@ -15,6 +15,6 @@ - + \ No newline at end of file diff --git a/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj b/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj index 2fa7dfd..65566b0 100644 --- a/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj +++ b/src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/PearAdmin.AbpTemplate.EntityFrameworkCore.csproj b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/PearAdmin.AbpTemplate.EntityFrameworkCore.csproj index ecd8e94..4c1930d 100644 --- a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/PearAdmin.AbpTemplate.EntityFrameworkCore.csproj +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/PearAdmin.AbpTemplate.EntityFrameworkCore.csproj @@ -1,6 +1,6 @@  - net5.0 + net6.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; PearAdmin.AbpTemplate.EntityFrameworkCore true @@ -9,15 +9,15 @@ PearAdmin.AbpTemplate.EntityFrameworkCore - + all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/PearAdmin.AbpTemplate.Gateway/PearAdmin.AbpTemplate.Gateway.csproj b/src/PearAdmin.AbpTemplate.Gateway/PearAdmin.AbpTemplate.Gateway.csproj index cac150f..7a2994f 100644 --- a/src/PearAdmin.AbpTemplate.Gateway/PearAdmin.AbpTemplate.Gateway.csproj +++ b/src/PearAdmin.AbpTemplate.Gateway/PearAdmin.AbpTemplate.Gateway.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/test/PearAdmin.AbpTemplate.Admin.Tests/PearAdmin.AbpTemplate.Admin.Tests.csproj b/test/PearAdmin.AbpTemplate.Admin.Tests/PearAdmin.AbpTemplate.Admin.Tests.csproj index 88d2425..997d82c 100644 --- a/test/PearAdmin.AbpTemplate.Admin.Tests/PearAdmin.AbpTemplate.Admin.Tests.csproj +++ b/test/PearAdmin.AbpTemplate.Admin.Tests/PearAdmin.AbpTemplate.Admin.Tests.csproj @@ -1,7 +1,7 @@  1.0.0.0 - net5.0 + net6.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; PearAdmin.AbpTemplate.Admin.Tests PearAdmin.AbpTemplate.Admin.Tests @@ -15,16 +15,16 @@ - - - + + + - + all runtime; build; native; contentfiles; analyzers - - + + \ No newline at end of file diff --git a/test/PearAdmin.AbpTemplate.Application.Tests/PearAdmin.AbpTemplate.Application.Tests.csproj b/test/PearAdmin.AbpTemplate.Application.Tests/PearAdmin.AbpTemplate.Application.Tests.csproj index 7f7ff54..c89b37f 100644 --- a/test/PearAdmin.AbpTemplate.Application.Tests/PearAdmin.AbpTemplate.Application.Tests.csproj +++ b/test/PearAdmin.AbpTemplate.Application.Tests/PearAdmin.AbpTemplate.Application.Tests.csproj @@ -1,7 +1,7 @@  1.0.0.0 - net5.0 + net6.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; PearAdmin.AbpTemplate.Application.Tests PearAdmin.AbpTemplate.Tests @@ -15,18 +15,18 @@ - - - + + + - + all runtime; build; native; contentfiles; analyzers - - - + + + diff --git a/test/PearAdmin.AbpTemplate.Core.Tests/PearAdmin.AbpTemplate.Core.Tests.csproj b/test/PearAdmin.AbpTemplate.Core.Tests/PearAdmin.AbpTemplate.Core.Tests.csproj index cd15423..ab22a88 100644 --- a/test/PearAdmin.AbpTemplate.Core.Tests/PearAdmin.AbpTemplate.Core.Tests.csproj +++ b/test/PearAdmin.AbpTemplate.Core.Tests/PearAdmin.AbpTemplate.Core.Tests.csproj @@ -1,18 +1,24 @@  - net5.0 + net6.0 false - + - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/tool/PearAdmin.AbpTemplate.Shared/PearAdmin.AbpTemplate.Shared.csproj b/tool/PearAdmin.AbpTemplate.Shared/PearAdmin.AbpTemplate.Shared.csproj index 2f002aa..fff7812 100644 --- a/tool/PearAdmin.AbpTemplate.Shared/PearAdmin.AbpTemplate.Shared.csproj +++ b/tool/PearAdmin.AbpTemplate.Shared/PearAdmin.AbpTemplate.Shared.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 -- Gitee From 6b7ae8b6f9675dd686b7dbd5e760a362d05be86d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Thu, 7 Jul 2022 08:38:34 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E6=9B=B4=E6=94=B9AutoMapper=E7=9A=84?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=97=A0=E9=9C=80?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=8C=A8=E4=B8=AA=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbpTemplateApplicationModule.cs | 17 +++++++------- .../Authorization/AuthorizationMapper.cs | 12 ++++++++++ .../Monitoring/MonitoringMapper.cs | 8 +++++++ .../MultiTenancy/MultiTenancyMapper.cs | 9 ++++++++ .../Notifications/NotificationMapper.cs | 8 +++++++ .../Organizations/OrganizationMapper.cs | 8 +++++++ .../Resource/ResourceMapper.cs | 8 +++++++ .../Social/SocialMapper.cs | 10 +++++++++ .../TaskCenter/TaskCenterMapper.cs | 11 ++++++++++ .../AbpTemplateCoreConsts.cs | 6 +++++ .../AbpTemplateCoreModule.cs | 5 ++++- .../Features/AppFeatureValueStore.cs | 22 +++++++++---------- .../MultiTenancy/Editions/EditionManager.cs | 10 ++++----- .../DebugHelper.cs | 18 +++++++++++++++ 14 files changed, 127 insertions(+), 25 deletions(-) create mode 100644 tool/PearAdmin.AbpTemplate.Shared/DebugHelper.cs diff --git a/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs b/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs index 888386c..77d1b16 100644 --- a/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs +++ b/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs @@ -21,15 +21,16 @@ namespace PearAdmin.AbpTemplate { public override void PreInitialize() { + //切换到下面的程序集扫描 // AutoMapper - Configuration.Modules.AbpAutoMapper().Configurators.Add(AuthorizationMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(OrganizationMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(SocialMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(NotificationMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(MonitoringMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(MultiTenancyMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(ResourceMapper.CreateMappings); - Configuration.Modules.AbpAutoMapper().Configurators.Add(TaskCenterMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(AuthorizationMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(OrganizationMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(SocialMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(NotificationMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(MonitoringMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(MultiTenancyMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(ResourceMapper.CreateMappings); + //Configuration.Modules.AbpAutoMapper().Configurators.Add(TaskCenterMapper.CreateMappings); } public override void Initialize() diff --git a/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs b/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs index afad59c..537a570 100644 --- a/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs @@ -19,4 +19,16 @@ namespace PearAdmin.AbpTemplate.Authorization configuration.CreateMap(); } } + + public class AuthorizationMapperProfile : Profile + { + public AuthorizationMapperProfile() + { + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs b/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs index 8699684..f2f2c4e 100644 --- a/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs @@ -11,4 +11,12 @@ namespace PearAdmin.AbpTemplate.Monitoring configuration.CreateMap(); } } + + public class MonitoringMapperProfile : Profile + { + public MonitoringMapperProfile() + { + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs b/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs index 4b69431..80bfdbb 100644 --- a/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs @@ -13,4 +13,13 @@ namespace PearAdmin.AbpTemplate.MultiTenancy configuration.CreateMap(); } } + + public class MonitoringMapperProfile : Profile + { + public MonitoringMapperProfile() + { + CreateMap(); + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs b/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs index 645636d..eccd412 100644 --- a/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs @@ -11,4 +11,12 @@ namespace PearAdmin.AbpTemplate.Notifications configuration.CreateMap(); } } + + public class NotificationMapperProfile : Profile + { + public NotificationMapperProfile() + { + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs b/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs index 20749f7..1f6712f 100644 --- a/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs @@ -11,4 +11,12 @@ namespace PearAdmin.AbpTemplate.Organizations configuration.CreateMap(); } } + + public class OrganizationMapperProfile : Profile + { + public OrganizationMapperProfile() + { + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs b/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs index e381679..9726906 100644 --- a/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs @@ -11,4 +11,12 @@ namespace PearAdmin.AbpTemplate.Resource configuration.CreateMap(); } } + + public class ResourceMapperProfile : Profile + { + public ResourceMapperProfile() + { + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs b/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs index 0f8788b..87121fc 100644 --- a/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs @@ -16,4 +16,14 @@ namespace PearAdmin.AbpTemplate.Social configuration.CreateMap(); } } + + public class SocialMapperProfile : Profile + { + public SocialMapperProfile() + { + CreateMap(); + CreateMap(); + CreateMap(); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs b/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs index 1530c1e..84f333f 100644 --- a/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs @@ -15,4 +15,15 @@ namespace PearAdmin.AbpTemplate.TaskCenter .ForMember(d => d.TaskStateTypeName, options => options.MapFrom(t => Enumeration.FromValue(t.TaskState.Id).Name)); } } + + public class TaskCenterMapperProfile : Profile + { + public TaskCenterMapperProfile() + { + CreateMap() + .ForMember(d => d.StartTime, options => options.MapFrom(t => t.DateRange.StartTime)) + .ForMember(d => d.EndTime, options => options.MapFrom(t => t.DateRange.EndTime)) + .ForMember(d => d.TaskStateTypeName, options => options.MapFrom(t => Enumeration.FromValue(t.TaskState.Id).Name)); + } + } } diff --git a/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreConsts.cs b/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreConsts.cs index f3453e7..9cf4e4d 100644 --- a/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreConsts.cs +++ b/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreConsts.cs @@ -1,6 +1,7 @@ using System; using System.IO; using Abp.Reflection.Extensions; +using PearAdmin.AbpTemplate.Debugging; namespace PearAdmin.AbpTemplate { @@ -20,5 +21,10 @@ namespace PearAdmin.AbpTemplate public const string TablePrefix_TaskCenter = "Center"; public const string TablePrefix_Social = "Social"; public const string TablePrefix_Common = "Common"; + + /// + /// Default pass phrase for SimpleStringCipher decrypt/encrypt operations + /// + public static readonly string DefaultPassPhrase = DebugHelper.IsDebug ? "gsKxGZ012HLL3MI5" : "ae4c7fe541bc448f98762eaf37ed3876"; } } diff --git a/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreModule.cs b/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreModule.cs index d33f391..190c31f 100644 --- a/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreModule.cs +++ b/src/PearAdmin.AbpTemplate.Core/AbpTemplateCoreModule.cs @@ -2,13 +2,13 @@ using Abp.Dependency; using Abp.Modules; using Abp.Reflection.Extensions; +using Abp.Runtime.Security; using Abp.Timing; using Abp.Zero; using Abp.Zero.Configuration; using PearAdmin.AbpTemplate.Authorization; using PearAdmin.AbpTemplate.Authorization.Roles; using PearAdmin.AbpTemplate.Authorization.Users; -using PearAdmin.AbpTemplate.Configuration; using PearAdmin.AbpTemplate.Features; using PearAdmin.AbpTemplate.Localization; using PearAdmin.AbpTemplate.MultiTenancy; @@ -54,6 +54,9 @@ namespace PearAdmin.AbpTemplate // Add permission providers Configuration.Authorization.Providers.Add(); + + Configuration.Settings.SettingEncryptionConfiguration.DefaultPassPhrase = AbpTemplateCoreConsts.DefaultPassPhrase; + SimpleStringCipher.DefaultPassPhrase = AbpTemplateCoreConsts.DefaultPassPhrase; } public override void Initialize() diff --git a/src/PearAdmin.AbpTemplate.Core/AppProvider/Features/AppFeatureValueStore.cs b/src/PearAdmin.AbpTemplate.Core/AppProvider/Features/AppFeatureValueStore.cs index a5d187a..26f9be6 100644 --- a/src/PearAdmin.AbpTemplate.Core/AppProvider/Features/AppFeatureValueStore.cs +++ b/src/PearAdmin.AbpTemplate.Core/AppProvider/Features/AppFeatureValueStore.cs @@ -11,18 +11,18 @@ namespace PearAdmin.AbpTemplate.Features public class AppFeatureValueStore : AbpFeatureValueStore { public AppFeatureValueStore( - ICacheManager cacheManager, - IRepository tenantFeatureRepository, - IRepository tenantRepository, - IRepository editionFeatureRepository, - IFeatureManager featureManager, - IUnitOfWorkManager unitOfWorkManager) + ICacheManager cacheManager, + IRepository tenantFeatureRepository, + IRepository tenantRepository, + IRepository editionFeatureRepository, + IFeatureManager featureManager, + IUnitOfWorkManager unitOfWorkManager) : base( - cacheManager, - tenantFeatureRepository, - tenantRepository, - editionFeatureRepository, - featureManager, + cacheManager, + tenantFeatureRepository, + tenantRepository, + editionFeatureRepository, + featureManager, unitOfWorkManager) { } diff --git a/src/PearAdmin.AbpTemplate.Core/MultiTenancy/Editions/EditionManager.cs b/src/PearAdmin.AbpTemplate.Core/MultiTenancy/Editions/EditionManager.cs index 7539a29..40689e3 100644 --- a/src/PearAdmin.AbpTemplate.Core/MultiTenancy/Editions/EditionManager.cs +++ b/src/PearAdmin.AbpTemplate.Core/MultiTenancy/Editions/EditionManager.cs @@ -1,6 +1,7 @@ using Abp.Application.Editions; using Abp.Application.Features; using Abp.Domain.Repositories; +using Abp.Domain.Uow; namespace PearAdmin.AbpTemplate.Editions { @@ -9,11 +10,10 @@ namespace PearAdmin.AbpTemplate.Editions public const string DefaultEditionName = "Standard"; public EditionManager( - IRepository editionRepository, - IAbpZeroFeatureValueStore featureValueStore) - : base( - editionRepository, - featureValueStore) + IRepository editionRepository, + IAbpZeroFeatureValueStore featureValueStore, + IUnitOfWorkManager unitOfWorkManager) + : base(editionRepository, featureValueStore, unitOfWorkManager) { } } diff --git a/tool/PearAdmin.AbpTemplate.Shared/DebugHelper.cs b/tool/PearAdmin.AbpTemplate.Shared/DebugHelper.cs new file mode 100644 index 0000000..cba9ec7 --- /dev/null +++ b/tool/PearAdmin.AbpTemplate.Shared/DebugHelper.cs @@ -0,0 +1,18 @@ +namespace PearAdmin.AbpTemplate.Debugging +{ + public static class DebugHelper + { + public static bool IsDebug + { + get + { +#pragma warning disable +#if DEBUG + return true; +#endif + return false; +#pragma warning restore + } + } + } +} -- Gitee From 9e313fc5988a2b9321a2248f5c9554730c5085bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Thu, 7 Jul 2022 23:06:33 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B06.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PearAdmin.AbpTemplate.Admin.csproj | 2 +- src/PearAdmin.AbpTemplate.Admin/Startup.cs | 37 +++++++++++++------ .../Authorization/Roles/Role.cs | 27 ++++++++++++++ .../Authorization/Users/User.cs | 8 ++++ .../Social/Chat/ChatMessageManager.cs | 2 +- 5 files changed, 62 insertions(+), 14 deletions(-) diff --git a/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj b/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj index b0f5bd7..93e030e 100644 --- a/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj +++ b/src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj @@ -30,7 +30,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/PearAdmin.AbpTemplate.Admin/Startup.cs b/src/PearAdmin.AbpTemplate.Admin/Startup.cs index f1c584d..67f744d 100644 --- a/src/PearAdmin.AbpTemplate.Admin/Startup.cs +++ b/src/PearAdmin.AbpTemplate.Admin/Startup.cs @@ -21,6 +21,7 @@ using PearAdmin.AbpTemplate.Admin.Extensions; using PearAdmin.AbpTemplate.Admin.Extensions.Filters; using PearAdmin.AbpTemplate.Admin.SignalR; using PearAdmin.AbpTemplate.Authorization; +using PearAdmin.AbpTemplate.Debugging; using PearAdmin.AbpTemplate.Identity; namespace PearAdmin.AbpTemplate.Admin @@ -36,11 +37,12 @@ namespace PearAdmin.AbpTemplate.Admin public IServiceProvider ConfigureServices(IServiceCollection services) { + #region MVC services.AddControllersWithViews(options => - { - options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()); - options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); - }) + { + options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()); + options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); + }) .AddRazorRuntimeCompilation() .AddNewtonsoftJson(options => { @@ -49,30 +51,42 @@ namespace PearAdmin.AbpTemplate.Admin NamingStrategy = new CamelCaseNamingStrategy() }; }); + #endregion + #region Identity services.Configure(options => { options.User.AllowedUserNameCharacters = null;//修改用户名验证规则 }); IdentityRegistrar.Register(services); + #endregion + #region SignalR services.AddSignalR(); + #endregion + #region Hangfire services.AddHangfire(options => { -#if DEBUG - options.UseMemoryStorage(); -#else - var redisConnectionString = Configuration.GetConnectionString(AbpTemplateCoreConsts.RedisConnectionStringName); - options.UseRedisStorage(redisConnectionString); -#endif + if (DebugHelper.IsDebug) + { + options.UseMemoryStorage(); + } + else + { + var redisConnectionString = Configuration.GetConnectionString(AbpTemplateCoreConsts.RedisConnectionStringName); + options.UseRedisStorage(redisConnectionString); + } }); + #endregion + #region LogDashboard services.AddLogDashboard(options => { options.AddAuthorizationFilter(new AbpLogDashboardAuthorizationFilter(AppPermissionNames.Pages_SystemManagement_HangfireDashboard)); }); + #endregion return services.AddAbp(AbpBootstrapperOptionsExtension.GetOptions(Configuration)); } @@ -98,7 +112,6 @@ namespace PearAdmin.AbpTemplate.Admin app.UseAuthorization(); - app.UseHangfireServer(); app.UseHangfireDashboard("/hangfire", new DashboardOptions { Authorization = new[] @@ -113,7 +126,7 @@ namespace PearAdmin.AbpTemplate.Admin { endpoints.MapHub("/signalr"); endpoints.MapHub("/signalr-chat"); - endpoints.MapControllerRoute("defaultWithArea", "{area:exists}/{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("defaultWithArea", "{area}/{controller=Home}/{action=Index}/{id?}"); endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); } diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs index 0691474..9d8215e 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Roles/Role.cs @@ -24,5 +24,32 @@ namespace PearAdmin.AbpTemplate.Authorization.Roles [StringLength(MaxDescriptionLength)] public string Description { get; set; } + + public static Role CreateRole(int? tenantId, string name) + { + var role = new Role(tenantId, name); + role.SetNormalizedName(); + return role; + } + + public Role SetName(string name) + { + Name = name; + DisplayName = name; + SetNormalizedName(); + return this; + } + + public Role SetDescription(string description) + { + Description = description; + return this; + } + + public Role SetIsDefault(bool isDefault) + { + IsDefault = isDefault; + return this; + } } } diff --git a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs index 72d5bcc..fa6405c 100644 --- a/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs +++ b/src/PearAdmin.AbpTemplate.Core/Authorization/Users/User.cs @@ -31,6 +31,14 @@ namespace PearAdmin.AbpTemplate.Authorization.Users return user; } + public static User CreateUser(int? tenantId) + { + return new User() + { + TenantId = tenantId, + }; + } + public Guid? ProfilePictureId { get; set; } } } diff --git a/src/PearAdmin.AbpTemplate.Core/Social/Chat/ChatMessageManager.cs b/src/PearAdmin.AbpTemplate.Core/Social/Chat/ChatMessageManager.cs index 98c787d..23c6c3d 100644 --- a/src/PearAdmin.AbpTemplate.Core/Social/Chat/ChatMessageManager.cs +++ b/src/PearAdmin.AbpTemplate.Core/Social/Chat/ChatMessageManager.cs @@ -56,7 +56,7 @@ namespace PearAdmin.AbpTemplate.Social.Chat private void CheckReceiverExists(UserIdentifier receiver) { - var receiverUser = _userManager.GetUserAsync(receiver); + var receiverUser = _userManager.GetUserById(receiver.UserId); if (receiverUser == null) { throw new UserFriendlyException(L("TargetUserNotFoundProbablyDeleted")); -- Gitee From f3ee35ea3f324502d08107843a6190e176bbe2e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Fri, 8 Jul 2022 07:48:49 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PearAdmin.AbpTemplate.Admin/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/PearAdmin.AbpTemplate.Admin/Dockerfile b/src/PearAdmin.AbpTemplate.Admin/Dockerfile index a7f4410..6f28d8f 100644 --- a/src/PearAdmin.AbpTemplate.Admin/Dockerfile +++ b/src/PearAdmin.AbpTemplate.Admin/Dockerfile @@ -1,6 +1,6 @@ #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 80 @@ -8,7 +8,7 @@ RUN apt-get update -y && apt-get install -y libgdiplus && apt-get clean && ln -s RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone -FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src COPY ["module/PearAdmin.AbpTemplate.Storage.Minio/PearAdmin.AbpTemplate.Storage.Minio.csproj", "module/PearAdmin.AbpTemplate.Storage.Minio/"] COPY ["module/PearAdmin.AbpTemplate.Storage/PearAdmin.AbpTemplate.Storage.csproj", "module/PearAdmin.AbpTemplate.Storage/"] @@ -19,6 +19,8 @@ COPY ["src/PearAdmin.AbpTemplate.Application/PearAdmin.AbpTemplate.Application.c COPY ["src/PearAdmin.AbpTemplate.Core/PearAdmin.AbpTemplate.Core.csproj", "src/PearAdmin.AbpTemplate.Core/"] COPY ["src/PearAdmin.AbpTemplate.EntityFrameworkCore/PearAdmin.AbpTemplate.EntityFrameworkCore.csproj", "src/PearAdmin.AbpTemplate.EntityFrameworkCore/"] COPY ["tool/PearAdmin.AbpTemplate.Shared/PearAdmin.AbpTemplate.Shared.csproj", "tool/PearAdmin.AbpTemplate.Shared/"] +COPY ["module/PearAdmin.AbpTemplate.MiniProgram/PearAdmin.AbpTemplate.MiniProgram.csproj", "module/PearAdmin.AbpTemplate.MiniProgram/"] +COPY ["module/PearAdmin.AbpTemplate.ExternalAuth/PearAdmin.AbpTemplate.ExternalAuth.csproj", "module/PearAdmin.AbpTemplate.ExternalAuth/"] RUN dotnet restore "src/PearAdmin.AbpTemplate.Admin/PearAdmin.AbpTemplate.Admin.csproj" COPY . . WORKDIR "/src/src/PearAdmin.AbpTemplate.Admin" -- Gitee From 37cc584368cbcf725c54e300d8b2b3061ee4bf6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Fri, 8 Jul 2022 08:03:44 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0pearadmin=20layui?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/Home/Index.cshtml | 8 +- .../wwwroot/libs/layui/css/layui.css | 2 +- .../wwwroot/libs/layui/css/modules/code.css | 2 +- .../css/modules/laydate/default/laydate.css | 2 +- .../layui/css/modules/layer/default/layer.css | 2 +- .../wwwroot/libs/layui/font/iconfont.eot | Bin 52080 -> 46684 bytes .../wwwroot/libs/layui/font/iconfont.svg | 937 +- .../wwwroot/libs/layui/font/iconfont.ttf | Bin 51904 -> 46508 bytes .../wwwroot/libs/layui/font/iconfont.woff | Bin 33172 -> 30628 bytes .../wwwroot/libs/layui/font/iconfont.woff2 | Bin 28556 -> 25964 bytes .../wwwroot/libs/layui/layui.js | 6 +- .../wwwroot/libs/pear/css/module/button.css | 14 +- .../wwwroot/libs/pear/css/module/form.css | 15 +- .../libs/pear/css/module/iconPicker.css | 12 +- .../wwwroot/libs/pear/css/module/layer.css | 328 +- .../wwwroot/libs/pear/css/module/menu.css | 78 +- .../wwwroot/libs/pear/css/module/message.css | 14 +- .../libs/pear/css/module/nprogress.css | 73 + .../wwwroot/libs/pear/css/module/select.css | 11 +- .../wwwroot/libs/pear/css/module/tab.css | 1 - .../wwwroot/libs/pear/css/module/table.css | 12 + .../wwwroot/libs/pear/css/pear.css | 2 + .../wwwroot/libs/pear/module/admin.js | 446 +- .../wwwroot/libs/pear/module/card.js | 4 +- .../wwwroot/libs/pear/module/drawer.js | 299 +- .../wwwroot/libs/pear/module/echarts.js | 189025 ++++++++------- .../wwwroot/libs/pear/module/echartsTheme.js | 258 +- .../wwwroot/libs/pear/module/encrypt.js | 1775 + .../wwwroot/libs/pear/module/frame.js | 129 +- .../wwwroot/libs/pear/module/http.js | 5 +- .../wwwroot/libs/pear/module/iconPicker.js | 879 +- .../wwwroot/libs/pear/module/loading.js | 752 +- .../wwwroot/libs/pear/module/menu.js | 263 +- .../wwwroot/libs/pear/module/message.js | 57 +- .../wwwroot/libs/pear/module/nprogress.js | 503 + .../wwwroot/libs/pear/module/popup.js | 4 +- .../wwwroot/libs/pear/module/tab.js | 425 +- .../wwwroot/libs/pear/module/tag.js | 3 - .../wwwroot/libs/pear/module/theme.js | 19 +- .../wwwroot/libs/pear/module/toast.js | 5 - .../wwwroot/libs/pear/module/treetable.js | 18 +- .../wwwroot/libs/pear/pear.js | 17 +- 42 files changed, 100669 insertions(+), 95736 deletions(-) create mode 100644 src/PearAdmin.AbpTemplate.Admin/wwwroot/libs/pear/css/module/nprogress.css create mode 100644 src/PearAdmin.AbpTemplate.Admin/wwwroot/libs/pear/module/encrypt.js create mode 100644 src/PearAdmin.AbpTemplate.Admin/wwwroot/libs/pear/module/nprogress.js diff --git a/src/PearAdmin.AbpTemplate.Admin/Views/Home/Index.cshtml b/src/PearAdmin.AbpTemplate.Admin/Views/Home/Index.cshtml index 3439ff9..3f6afe6 100644 --- a/src/PearAdmin.AbpTemplate.Admin/Views/Home/Index.cshtml +++ b/src/PearAdmin.AbpTemplate.Admin/Views/Home/Index.cshtml @@ -68,11 +68,11 @@ @section scripts{ + + function notificationUnread() { + $("#headerNotice").addClass("layui-badge-dot"); + } + + function messageUnread() { + $("#headerMessage").addClass("layui-badge-dot"); + } + + var init = function () { + loadUnreadNotificationCount(); + loadUnreadMessageCount(); + }; + init(); + }); + } diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Host/HostRoleAndUserCreator.cs b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Host/HostRoleAndUserCreator.cs index d94ca6a..1562d38 100644 --- a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Host/HostRoleAndUserCreator.cs +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Host/HostRoleAndUserCreator.cs @@ -33,7 +33,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Seed.Host var adminRoleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin); if (adminRoleForHost == null) { - adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin) + adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin) { IsStatic = true, IsDefault = true diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/SeedHelper.cs b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/SeedHelper.cs index b3a9886..d2fa4a3 100644 --- a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/SeedHelper.cs +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/SeedHelper.cs @@ -23,6 +23,8 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Seed // 宿主基础数据初始化 new InitialHostDbBuilder(context).Create(); + + // 租户基础数据初始化 new InitialTenantDbBuilder(context).Create(); } diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Tenants/TenantRoleAndUserBuilder.cs b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Tenants/TenantRoleAndUserBuilder.cs index 4cb3368..3ebe1b9 100644 --- a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Tenants/TenantRoleAndUserBuilder.cs +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/EntityFrameworkCore/Seed/Tenants/TenantRoleAndUserBuilder.cs @@ -35,7 +35,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Seed.Tenants var adminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin); if (adminRole == null) { - adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin) { IsStatic = true }).Entity; + adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin) { IsStatic = true }).Entity; _context.SaveChanges(); } diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/20220709012942_UpgradeDotNet6.0.Designer.cs b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/20220709012942_UpgradeDotNet6.0.Designer.cs new file mode 100644 index 0000000..ea38214 --- /dev/null +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/20220709012942_UpgradeDotNet6.0.Designer.cs @@ -0,0 +1,2109 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using PearAdmin.AbpTemplate.EntityFrameworkCore; + +#nullable disable + +namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations +{ + [DbContext(typeof(AbpTemplateDbContext))] + [Migration("20220709012942_UpgradeDotNet6.0")] + partial class UpgradeDotNet60 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.6") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Abp.Application.Editions.Edition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("varchar(32)"); + + b.HasKey("Id"); + + b.ToTable("AbpEditions"); + }); + + modelBuilder.Entity("Abp.Application.Features.FeatureSetting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("varchar(2000)"); + + b.HasKey("Id"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator("Discriminator").HasValue("FeatureSetting"); + }); + + modelBuilder.Entity("Abp.Auditing.AuditLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("ClientName") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("CustomData") + .HasMaxLength(2000) + .HasColumnType("varchar(2000)"); + + b.Property("Exception") + .HasMaxLength(2000) + .HasColumnType("varchar(2000)"); + + b.Property("ExceptionMessage") + .HasMaxLength(1024) + .HasColumnType("varchar(1024)"); + + b.Property("ExecutionDuration") + .HasColumnType("int"); + + b.Property("ExecutionTime") + .HasColumnType("datetime(6)"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("int"); + + b.Property("ImpersonatorUserId") + .HasColumnType("bigint"); + + b.Property("MethodName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("Parameters") + .HasMaxLength(1024) + .HasColumnType("varchar(1024)"); + + b.Property("ReturnValue") + .HasColumnType("longtext"); + + b.Property("ServiceName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "ExecutionDuration"); + + b.HasIndex("TenantId", "ExecutionTime"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpAuditLogs"); + }); + + modelBuilder.Entity("Abp.Authorization.PermissionSetting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Discriminator") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("IsGranted") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpPermissions"); + + b.HasDiscriminator("Discriminator").HasValue("PermissionSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("ClaimType") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("ClaimValue") + .HasColumnType("longtext"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.HasIndex("TenantId", "ClaimType"); + + b.ToTable("AbpRoleClaims"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("EmailAddress") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("UserLinkId") + .HasColumnType("bigint"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("EmailAddress"); + + b.HasIndex("UserName"); + + b.HasIndex("TenantId", "EmailAddress"); + + b.HasIndex("TenantId", "UserId"); + + b.HasIndex("TenantId", "UserName"); + + b.ToTable("AbpUserAccounts"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("ClaimType") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("ClaimValue") + .HasColumnType("longtext"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "ClaimType"); + + b.ToTable("AbpUserClaims"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserLogin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("ProviderKey", "TenantId") + .IsUnique(); + + b.HasIndex("TenantId", "UserId"); + + b.HasIndex("TenantId", "LoginProvider", "ProviderKey"); + + b.ToTable("AbpUserLogins"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserLoginAttempt", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("ClientName") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("Result") + .HasColumnType("tinyint unsigned"); + + b.Property("TenancyName") + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("UserNameOrEmailAddress") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("UserId", "TenantId"); + + b.HasIndex("TenancyName", "UserNameOrEmailAddress", "Result"); + + b.ToTable("AbpUserLoginAttempts"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserOrganizationUnit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("OrganizationUnitId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "OrganizationUnitId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpUserOrganizationUnits"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "RoleId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpUserRoles"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("ExpireDate") + .HasColumnType("datetime(6)"); + + b.Property("LoginProvider") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("Name") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("Value") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpUserTokens"); + }); + + modelBuilder.Entity("Abp.BackgroundJobs.BackgroundJobInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("IsAbandoned") + .HasColumnType("tinyint(1)"); + + b.Property("JobArgs") + .IsRequired() + .HasMaxLength(1048576) + .HasColumnType("longtext"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("LastTryTime") + .HasColumnType("datetime(6)"); + + b.Property("NextTryTime") + .HasColumnType("datetime(6)"); + + b.Property("Priority") + .HasColumnType("tinyint unsigned"); + + b.Property("TryCount") + .HasColumnType("smallint"); + + b.HasKey("Id"); + + b.HasIndex("IsAbandoned", "NextTryTime"); + + b.ToTable("AbpBackgroundJobs"); + }); + + modelBuilder.Entity("Abp.Configuration.Setting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("Value") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("TenantId", "Name", "UserId") + .IsUnique(); + + b.ToTable("AbpSettings"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DynamicPropertyId") + .HasColumnType("int"); + + b.Property("EntityFullName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DynamicPropertyId"); + + b.HasIndex("EntityFullName", "DynamicPropertyId", "TenantId") + .IsUnique(); + + b.ToTable("AbpDynamicEntityProperties"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityPropertyValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("DynamicEntityPropertyId") + .HasColumnType("int"); + + b.Property("EntityId") + .HasColumnType("longtext"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("DynamicEntityPropertyId"); + + b.ToTable("AbpDynamicEntityPropertyValues"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("DisplayName") + .HasColumnType("longtext"); + + b.Property("InputType") + .HasColumnType("longtext"); + + b.Property("Permission") + .HasColumnType("longtext"); + + b.Property("PropertyName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PropertyName", "TenantId") + .IsUnique(); + + b.ToTable("AbpDynamicProperties"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicPropertyValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("DynamicPropertyId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("DynamicPropertyId"); + + b.ToTable("AbpDynamicPropertyValues"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("ChangeTime") + .HasColumnType("datetime(6)"); + + b.Property("ChangeType") + .HasColumnType("tinyint unsigned"); + + b.Property("EntityChangeSetId") + .HasColumnType("bigint"); + + b.Property("EntityId") + .HasMaxLength(48) + .HasColumnType("varchar(48)"); + + b.Property("EntityTypeFullName") + .HasMaxLength(192) + .HasColumnType("varchar(192)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeSetId"); + + b.HasIndex("EntityTypeFullName", "EntityId"); + + b.ToTable("AbpEntityChanges"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChangeSet", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("ClientName") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("ExtensionData") + .HasColumnType("longtext"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("int"); + + b.Property("ImpersonatorUserId") + .HasColumnType("bigint"); + + b.Property("Reason") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "CreationTime"); + + b.HasIndex("TenantId", "Reason"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpEntityChangeSets"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityPropertyChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("EntityChangeId") + .HasColumnType("bigint"); + + b.Property("NewValue") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("NewValueHash") + .HasColumnType("longtext"); + + b.Property("OriginalValue") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("OriginalValueHash") + .HasColumnType("longtext"); + + b.Property("PropertyName") + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("PropertyTypeFullName") + .HasMaxLength(192) + .HasColumnType("varchar(192)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeId"); + + b.ToTable("AbpEntityPropertyChanges"); + }); + + modelBuilder.Entity("Abp.Localization.ApplicationLanguage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("Icon") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("IsDisabled") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpLanguages"); + }); + + modelBuilder.Entity("Abp.Localization.ApplicationLanguageText", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("LanguageName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Source") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(67108864) + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Source", "LanguageName", "Key"); + + b.ToTable("AbpLanguageTexts"); + }); + + modelBuilder.Entity("Abp.Notifications.NotificationInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Data") + .HasMaxLength(1048576) + .HasColumnType("longtext"); + + b.Property("DataTypeName") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("EntityId") + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("EntityTypeAssemblyQualifiedName") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("EntityTypeName") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("ExcludedUserIds") + .HasMaxLength(131072) + .HasColumnType("longtext"); + + b.Property("NotificationName") + .IsRequired() + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("Severity") + .HasColumnType("tinyint unsigned"); + + b.Property("TargetNotifiers") + .HasColumnType("longtext"); + + b.Property("TenantIds") + .HasMaxLength(131072) + .HasColumnType("longtext"); + + b.Property("UserIds") + .HasMaxLength(131072) + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("AbpNotifications"); + }); + + modelBuilder.Entity("Abp.Notifications.NotificationSubscriptionInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("EntityId") + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("EntityTypeAssemblyQualifiedName") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("EntityTypeName") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("NotificationName") + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("NotificationName", "EntityTypeName", "EntityId", "UserId"); + + b.HasIndex("TenantId", "NotificationName", "EntityTypeName", "EntityId", "UserId"); + + b.ToTable("AbpNotificationSubscriptions"); + }); + + modelBuilder.Entity("Abp.Notifications.TenantNotificationInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Data") + .HasMaxLength(1048576) + .HasColumnType("longtext"); + + b.Property("DataTypeName") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("EntityId") + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("EntityTypeAssemblyQualifiedName") + .HasMaxLength(512) + .HasColumnType("varchar(512)"); + + b.Property("EntityTypeName") + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("NotificationName") + .IsRequired() + .HasMaxLength(96) + .HasColumnType("varchar(96)"); + + b.Property("Severity") + .HasColumnType("tinyint unsigned"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId"); + + b.ToTable("AbpTenantNotifications"); + }); + + modelBuilder.Entity("Abp.Notifications.UserNotificationInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TargetNotifiers") + .HasColumnType("longtext"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("TenantNotificationId") + .HasColumnType("char(36)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId", "State", "CreationTime"); + + b.ToTable("AbpUserNotifications"); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(95) + .HasColumnType("varchar(95)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("ParentId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.HasIndex("TenantId", "Code"); + + b.ToTable("AbpOrganizationUnits"); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnitRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("OrganizationUnitId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "OrganizationUnitId"); + + b.HasIndex("TenantId", "RoleId"); + + b.ToTable("AbpOrganizationUnitRoles"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("Data") + .HasColumnType("longtext"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("WebhookName") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("AbpWebhookEvents"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookSendAttempt", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("Response") + .HasColumnType("longtext"); + + b.Property("ResponseStatusCode") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("WebhookEventId") + .HasColumnType("char(36)"); + + b.Property("WebhookSubscriptionId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("WebhookEventId"); + + b.ToTable("AbpWebhookSendAttempts"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookSubscriptionInfo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("Headers") + .HasColumnType("longtext"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("Secret") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("WebhookUri") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Webhooks") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("AbpWebhookSubscriptions"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Authorization.Roles.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("Description") + .HasMaxLength(5000) + .HasColumnType("varchar(5000)"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("IsDefault") + .HasColumnType("tinyint(1)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("IsStatic") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("varchar(32)"); + + b.Property("NormalizedName") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("varchar(32)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CreatorUserId"); + + b.HasIndex("DeleterUserId"); + + b.HasIndex("LastModifierUserId"); + + b.HasIndex("TenantId", "NormalizedName"); + + b.ToTable("AbpRoles"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Authorization.Users.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("AuthenticationSource") + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("EmailAddress") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("EmailConfirmationCode") + .HasMaxLength(328) + .HasColumnType("varchar(328)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("IsEmailConfirmed") + .HasColumnType("tinyint(1)"); + + b.Property("IsLockoutEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("IsPhoneNumberConfirmed") + .HasColumnType("tinyint(1)"); + + b.Property("IsTwoFactorEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("LockoutEndDateUtc") + .HasColumnType("datetime(6)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("NormalizedEmailAddress") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("NormalizedUserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("PasswordResetCode") + .HasMaxLength(328) + .HasColumnType("varchar(328)"); + + b.Property("PhoneNumber") + .HasMaxLength(32) + .HasColumnType("varchar(32)"); + + b.Property("ProfilePictureId") + .HasColumnType("char(36)"); + + b.Property("SecurityStamp") + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("Surname") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("CreatorUserId"); + + b.HasIndex("DeleterUserId"); + + b.HasIndex("LastModifierUserId"); + + b.HasIndex("TenantId", "NormalizedEmailAddress"); + + b.HasIndex("TenantId", "NormalizedUserName"); + + b.ToTable("AbpUsers"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.BinaryObjects.BinaryObject", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("Bytes") + .IsRequired() + .HasColumnType("longblob"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Common_BinaryObject", (string)null); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.MultiTenancy.Tenant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("ConnectionString") + .HasMaxLength(1024) + .HasColumnType("varchar(1024)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("EditionId") + .HasColumnType("int"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("TenancyName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("varchar(64)"); + + b.HasKey("Id"); + + b.HasIndex("CreatorUserId"); + + b.HasIndex("DeleterUserId"); + + b.HasIndex("EditionId"); + + b.HasIndex("LastModifierUserId"); + + b.HasIndex("TenancyName"); + + b.ToTable("AbpTenants"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Resource.DataDictionaries.DataDictionaryItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.Property("DataDictionaryId") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("varchar(30)"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Resource_DataDictionaryItem", (string)null); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Social.Chat.ChatMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("varchar(4096)"); + + b.Property("ReadState") + .HasColumnType("int"); + + b.Property("ReceiverReadState") + .HasColumnType("int"); + + b.Property("SharedMessageId") + .HasColumnType("char(36)"); + + b.Property("Side") + .HasColumnType("int"); + + b.Property("TargetTenantId") + .HasColumnType("int"); + + b.Property("TargetUserId") + .HasColumnType("bigint"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Social_ChatMessage", (string)null); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Social.Friendships.Friendship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("FriendProfilePictureId") + .HasColumnType("char(36)"); + + b.Property("FriendTenancyName") + .HasColumnType("longtext"); + + b.Property("FriendTenantId") + .HasColumnType("int"); + + b.Property("FriendUserId") + .HasColumnType("bigint"); + + b.Property("FriendUserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TenantId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Social_Friendship", (string)null); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.TaskCenter.DailyTasks.DailyTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreationTime") + .HasColumnType("datetime(6)"); + + b.Property("CreatorUserId") + .HasColumnType("bigint"); + + b.Property("DeleterUserId") + .HasColumnType("bigint"); + + b.Property("DeletionTime") + .HasColumnType("datetime(6)"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime(6)"); + + b.Property("LastModifierUserId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("Remark") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)"); + + b.HasKey("Id"); + + b.ToTable("Center_DailyTask", (string)null); + }); + + modelBuilder.Entity("Abp.Application.Features.EditionFeatureSetting", b => + { + b.HasBaseType("Abp.Application.Features.FeatureSetting"); + + b.Property("EditionId") + .HasColumnType("int"); + + b.HasIndex("EditionId", "Name"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator().HasValue("EditionFeatureSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RolePermissionSetting", b => + { + b.HasBaseType("Abp.Authorization.PermissionSetting"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.HasIndex("RoleId"); + + b.ToTable("AbpPermissions"); + + b.HasDiscriminator().HasValue("RolePermissionSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserPermissionSetting", b => + { + b.HasBaseType("Abp.Authorization.PermissionSetting"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasIndex("UserId"); + + b.ToTable("AbpPermissions"); + + b.HasDiscriminator().HasValue("UserPermissionSetting"); + }); + + modelBuilder.Entity("Abp.MultiTenancy.TenantFeatureSetting", b => + { + b.HasBaseType("Abp.Application.Features.FeatureSetting"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator().HasValue("TenantFeatureSetting"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RoleClaim", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Roles.Role", null) + .WithMany("Claims") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserClaim", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", null) + .WithMany("Claims") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserLogin", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", null) + .WithMany("Logins") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserRole", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", null) + .WithMany("Roles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserToken", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", null) + .WithMany("Tokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Configuration.Setting", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", null) + .WithMany("Settings") + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityProperty", b => + { + b.HasOne("Abp.DynamicEntityProperties.DynamicProperty", "DynamicProperty") + .WithMany() + .HasForeignKey("DynamicPropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DynamicProperty"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityPropertyValue", b => + { + b.HasOne("Abp.DynamicEntityProperties.DynamicEntityProperty", "DynamicEntityProperty") + .WithMany() + .HasForeignKey("DynamicEntityPropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DynamicEntityProperty"); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicPropertyValue", b => + { + b.HasOne("Abp.DynamicEntityProperties.DynamicProperty", "DynamicProperty") + .WithMany("DynamicPropertyValues") + .HasForeignKey("DynamicPropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DynamicProperty"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChange", b => + { + b.HasOne("Abp.EntityHistory.EntityChangeSet", null) + .WithMany("EntityChanges") + .HasForeignKey("EntityChangeSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityPropertyChange", b => + { + b.HasOne("Abp.EntityHistory.EntityChange", null) + .WithMany("PropertyChanges") + .HasForeignKey("EntityChangeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnit", b => + { + b.HasOne("Abp.Organizations.OrganizationUnit", "Parent") + .WithMany("Children") + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("Abp.Webhooks.WebhookSendAttempt", b => + { + b.HasOne("Abp.Webhooks.WebhookEvent", "WebhookEvent") + .WithMany() + .HasForeignKey("WebhookEventId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WebhookEvent"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Authorization.Roles.Role", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "CreatorUser") + .WithMany() + .HasForeignKey("CreatorUserId"); + + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "DeleterUser") + .WithMany() + .HasForeignKey("DeleterUserId"); + + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "LastModifierUser") + .WithMany() + .HasForeignKey("LastModifierUserId"); + + b.Navigation("CreatorUser"); + + b.Navigation("DeleterUser"); + + b.Navigation("LastModifierUser"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Authorization.Users.User", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "CreatorUser") + .WithMany() + .HasForeignKey("CreatorUserId"); + + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "DeleterUser") + .WithMany() + .HasForeignKey("DeleterUserId"); + + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "LastModifierUser") + .WithMany() + .HasForeignKey("LastModifierUserId"); + + b.Navigation("CreatorUser"); + + b.Navigation("DeleterUser"); + + b.Navigation("LastModifierUser"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.MultiTenancy.Tenant", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "CreatorUser") + .WithMany() + .HasForeignKey("CreatorUserId"); + + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "DeleterUser") + .WithMany() + .HasForeignKey("DeleterUserId"); + + b.HasOne("Abp.Application.Editions.Edition", "Edition") + .WithMany() + .HasForeignKey("EditionId"); + + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", "LastModifierUser") + .WithMany() + .HasForeignKey("LastModifierUserId"); + + b.Navigation("CreatorUser"); + + b.Navigation("DeleterUser"); + + b.Navigation("Edition"); + + b.Navigation("LastModifierUser"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.TaskCenter.DailyTasks.DailyTask", b => + { + b.OwnsOne("PearAdmin.AbpTemplate.TaskCenter.DailyTasks.TaskStateType", "TaskState", b1 => + { + b1.Property("DailyTaskId") + .HasColumnType("char(36)"); + + b1.Property("Id") + .HasColumnType("int") + .HasColumnName("TaskStateType"); + + b1.HasKey("DailyTaskId"); + + b1.ToTable("Center_DailyTask"); + + b1.WithOwner() + .HasForeignKey("DailyTaskId"); + }); + + b.OwnsOne("PearAdmin.AbpTemplate.TaskCenter.DailyTasks.ValueObjects.DateRange", "DateRange", b1 => + { + b1.Property("DailyTaskId") + .HasColumnType("char(36)"); + + b1.Property("EndTime") + .HasColumnType("datetime(6)") + .HasColumnName("EndTime"); + + b1.Property("StartTime") + .HasColumnType("datetime(6)") + .HasColumnName("StartTime"); + + b1.HasKey("DailyTaskId"); + + b1.ToTable("Center_DailyTask"); + + b1.WithOwner() + .HasForeignKey("DailyTaskId"); + }); + + b.Navigation("DateRange"); + + b.Navigation("TaskState"); + }); + + modelBuilder.Entity("Abp.Application.Features.EditionFeatureSetting", b => + { + b.HasOne("Abp.Application.Editions.Edition", "Edition") + .WithMany() + .HasForeignKey("EditionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Edition"); + }); + + modelBuilder.Entity("Abp.Authorization.Roles.RolePermissionSetting", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Roles.Role", null) + .WithMany("Permissions") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.Authorization.Users.UserPermissionSetting", b => + { + b.HasOne("PearAdmin.AbpTemplate.Authorization.Users.User", null) + .WithMany("Permissions") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicProperty", b => + { + b.Navigation("DynamicPropertyValues"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChange", b => + { + b.Navigation("PropertyChanges"); + }); + + modelBuilder.Entity("Abp.EntityHistory.EntityChangeSet", b => + { + b.Navigation("EntityChanges"); + }); + + modelBuilder.Entity("Abp.Organizations.OrganizationUnit", b => + { + b.Navigation("Children"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Authorization.Roles.Role", b => + { + b.Navigation("Claims"); + + b.Navigation("Permissions"); + }); + + modelBuilder.Entity("PearAdmin.AbpTemplate.Authorization.Users.User", b => + { + b.Navigation("Claims"); + + b.Navigation("Logins"); + + b.Navigation("Permissions"); + + b.Navigation("Roles"); + + b.Navigation("Settings"); + + b.Navigation("Tokens"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/20220709012942_UpgradeDotNet6.0.cs b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/20220709012942_UpgradeDotNet6.0.cs new file mode 100644 index 0000000..0b3c7fe --- /dev/null +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/20220709012942_UpgradeDotNet6.0.cs @@ -0,0 +1,47 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations +{ + public partial class UpgradeDotNet60 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "TargetNotifiers", + table: "AbpUserNotifications", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "TargetNotifiers", + table: "AbpNotifications", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserLogins_ProviderKey_TenantId", + table: "AbpUserLogins", + columns: new[] { "ProviderKey", "TenantId" }, + unique: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropIndex( + name: "IX_AbpUserLogins_ProviderKey_TenantId", + table: "AbpUserLogins"); + + migrationBuilder.DropColumn( + name: "TargetNotifiers", + table: "AbpUserNotifications"); + + migrationBuilder.DropColumn( + name: "TargetNotifiers", + table: "AbpNotifications"); + } + } +} diff --git a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/AbpTemplateDbContextModelSnapshot.cs b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/AbpTemplateDbContextModelSnapshot.cs index b3d7e5a..d77b7da 100644 --- a/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/AbpTemplateDbContextModelSnapshot.cs +++ b/src/PearAdmin.AbpTemplate.EntityFrameworkCore/Migrations/AbpTemplateDbContextModelSnapshot.cs @@ -5,6 +5,8 @@ using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using PearAdmin.AbpTemplate.EntityFrameworkCore; +#nullable disable + namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations { [DbContext(typeof(AbpTemplateDbContext))] @@ -14,8 +16,8 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("Relational:MaxIdentifierLength", 64) - .HasAnnotation("ProductVersion", "5.0.5"); + .HasAnnotation("ProductVersion", "6.0.6") + .HasAnnotation("Relational:MaxIdentifierLength", 64); modelBuilder.Entity("Abp.Application.Editions.Edition", b => { @@ -358,6 +360,9 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasIndex("UserId"); + b.HasIndex("ProviderKey", "TenantId") + .IsUnique(); + b.HasIndex("TenantId", "UserId"); b.HasIndex("TenantId", "LoginProvider", "ProviderKey"); @@ -977,6 +982,9 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.Property("Severity") .HasColumnType("tinyint unsigned"); + b.Property("TargetNotifiers") + .HasColumnType("longtext"); + b.Property("TenantIds") .HasMaxLength(131072) .HasColumnType("longtext"); @@ -1095,6 +1103,9 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.Property("State") .HasColumnType("int"); + b.Property("TargetNotifiers") + .HasColumnType("longtext"); + b.Property("TenantId") .HasColumnType("int"); @@ -1514,7 +1525,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasKey("Id"); - b.ToTable("Common_BinaryObject"); + b.ToTable("Common_BinaryObject", (string)null); }); modelBuilder.Entity("PearAdmin.AbpTemplate.MultiTenancy.Tenant", b => @@ -1603,7 +1614,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasKey("Id"); - b.ToTable("Resource_DataDictionaryItem"); + b.ToTable("Resource_DataDictionaryItem", (string)null); }); modelBuilder.Entity("PearAdmin.AbpTemplate.Social.Chat.ChatMessage", b => @@ -1646,7 +1657,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasKey("Id"); - b.ToTable("Social_ChatMessage"); + b.ToTable("Social_ChatMessage", (string)null); }); modelBuilder.Entity("PearAdmin.AbpTemplate.Social.Friendships.Friendship", b => @@ -1686,7 +1697,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasKey("Id"); - b.ToTable("Social_Friendship"); + b.ToTable("Social_Friendship", (string)null); }); modelBuilder.Entity("PearAdmin.AbpTemplate.TaskCenter.DailyTasks.DailyTask", b => @@ -1727,7 +1738,7 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasKey("Id"); - b.ToTable("Center_DailyTask"); + b.ToTable("Center_DailyTask", (string)null); }); modelBuilder.Entity("Abp.Application.Features.EditionFeatureSetting", b => @@ -1744,17 +1755,6 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasDiscriminator().HasValue("EditionFeatureSetting"); }); - modelBuilder.Entity("Abp.MultiTenancy.TenantFeatureSetting", b => - { - b.HasBaseType("Abp.Application.Features.FeatureSetting"); - - b.HasIndex("TenantId", "Name"); - - b.ToTable("AbpFeatures"); - - b.HasDiscriminator().HasValue("TenantFeatureSetting"); - }); - modelBuilder.Entity("Abp.Authorization.Roles.RolePermissionSetting", b => { b.HasBaseType("Abp.Authorization.PermissionSetting"); @@ -1783,6 +1783,17 @@ namespace PearAdmin.AbpTemplate.EntityFrameworkCore.Migrations b.HasDiscriminator().HasValue("UserPermissionSetting"); }); + modelBuilder.Entity("Abp.MultiTenancy.TenantFeatureSetting", b => + { + b.HasBaseType("Abp.Application.Features.FeatureSetting"); + + b.HasIndex("TenantId", "Name"); + + b.ToTable("AbpFeatures"); + + b.HasDiscriminator().HasValue("TenantFeatureSetting"); + }); + modelBuilder.Entity("Abp.Authorization.Roles.RoleClaim", b => { b.HasOne("PearAdmin.AbpTemplate.Authorization.Roles.Role", null) -- Gitee From 156f0dcec99872df1dc12ade9a7c3e1b8e28fb30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Sat, 9 Jul 2022 10:56:01 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/Users/UserProfile.cshtml | 114 ++++------------ .../css/views/uploadProfilePicture.css | 124 ------------------ .../wwwroot/css/views/userprofile.css | 90 +++++++++++++ 3 files changed, 119 insertions(+), 209 deletions(-) delete mode 100644 src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/uploadProfilePicture.css create mode 100644 src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/userprofile.css diff --git a/src/PearAdmin.AbpTemplate.Admin/Views/Users/UserProfile.cshtml b/src/PearAdmin.AbpTemplate.Admin/Views/Users/UserProfile.cshtml index 674d3a1..ca91a0d 100644 --- a/src/PearAdmin.AbpTemplate.Admin/Views/Users/UserProfile.cshtml +++ b/src/PearAdmin.AbpTemplate.Admin/Views/Users/UserProfile.cshtml @@ -1,65 +1,5 @@ @section styles{ - @**@ - - - + }
@@ -84,24 +24,29 @@ 归档
-
数据结构
-
结构算法
-
开源夜谈
-
数据整合
-
其他相关
+
    +
  • 优化代码格式2020-06-04 11:28
  • +
  • 新增消息组件2020-06-01 04:23
  • +
  • 移动端兼容2020-05-22 21:38
  • +
  • 系统布局优化2020-05-15 14:26
  • +
  • 兼容多系统菜单模式2020-05-13 16:32
  • +
  • 兼容多标签页切换2019-12-9 14:58
  • +
  • 扩展下拉组件2019-12-7 9:06
  • +
  • 扩展卡片样式2019-12-1 10:26
  • +
+
+ 我的文章 +
-
    -
  • 我的文章
  • -
-
+
@@ -110,10 +55,10 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
-
+
@@ -122,10 +67,10 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
-
+
@@ -134,10 +79,10 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
-
+
@@ -146,10 +91,10 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
-
+
@@ -158,10 +103,10 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
-
+
@@ -170,10 +115,10 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
-
+
@@ -182,7 +127,7 @@
“Git的精髓在于让所有人的贡献无缝合并。而GitHub的天才之处,在于理解了Git的精髓。”来一句我们程序员们接地气的话:分享是一种快乐~
-
2020-06-12        评论 5 点赞 12
+
2020-06-12        评论 5 点赞 12 转发 4
@@ -222,5 +167,4 @@ }); }); -} - +} \ No newline at end of file diff --git a/src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/uploadProfilePicture.css b/src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/uploadProfilePicture.css deleted file mode 100644 index e353192..0000000 --- a/src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/uploadProfilePicture.css +++ /dev/null @@ -1,124 +0,0 @@ -.layui-this { - color: #fff !important; - background-color: #1e9fff; -} - -.layui-tab-title li { - font-family: 'Arial Negreta', 'Arial Normal', 'Arial'; - font-weight: 700; - font-style: normal; - font-size: 20px; -} - -.layui-tab-title { - border-bottom-width: 3px !important; - border-bottom-color: #1e9fff !important; -} - -.layui-this:after { - border-bottom-color: #1e9fff !important; -} - -.layui-form-select dl dd.layui-this { - background-color: #1e9fff; -} - -.layui-form-checked[lay-skin=primary] i { - border-color: #1e9fff; - background-color: #1e9fff; - color: #fff; -} - -.layui-form-checkbox[lay-skin=primary] i:hover, .layui-form-checkbox span:hover { - border-color: #1e9fff !important; -} - -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #1e9fff; -} - -#addImg, #addZmImg, #addImgdz, #addImgpz, #addImgyy { - margin-left: 0 !important; - font-size: 144px; - line-height: 104px; - color: darkgrey -} - -#imgList, #imgZmList, #imgListdz, #imgListpz, #imgListyy { - width: 860px; - position: relative; - margin: 10px auto; - min-height: 200px; -} - - #imgList li, #imgZmList li, #imgListdz li #imgListpz li #imgListyy li { - width: 150px; - height: 113px; - float: left; - list-style: none; - list-style-type: none; - display: inline-block; - position:absolute; - } - - #imgList li:hover, #imgZmList li:hover, #imgListdz li:hover, #imgListpz li:hover, #imgListyy li:hover { - border-color: #9a9fa4; - box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.85); - } - - #imgList .active, #imgZmList .active, #imgListdz .active, #imgListpz .active, #imgListyy .active { - border: 1px dashed red; - } - -.title_cover { - height: 30px; - background-color: rgba(0,0,0,.5); - position: absolute; - bottom: 0; - width: 140px; - color: #fff; - line-height: 30px; - font-size: 14px; - padding-left: 10px; - overflow: hidden; /*超出部分隐藏*/ - white-space: nowrap; /*不换行*/ - text-overflow: ellipsis; /*超出部分文字以...显示*/ -} - - .title_cover:hover { - cursor: pointer; - } - -.img_close { - height: 20px; - background-color: rgba(0,0,0,.5); - position: absolute; - top: 0; - right: 0px; - width: 20px; - color: #fff; - line-height: 18px; - font-size: 14px; - text-align: center; -} - - .img_close:hover { - cursor: pointer; - } - -.img_edit { - height: 20px; - background-color: rgba(0,0,0,.5); - position: absolute; - top: 0; - left: 0px; - width: 20px; - color: #fff; - line-height: 18px; - font-size: 14px; - text-align: center; -} - - .img_edit:hover { - cursor: pointer; - } \ No newline at end of file diff --git a/src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/userprofile.css b/src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/userprofile.css new file mode 100644 index 0000000..0b992d8 --- /dev/null +++ b/src/PearAdmin.AbpTemplate.Admin/wwwroot/css/views/userprofile.css @@ -0,0 +1,90 @@ +.pear-container { + background-color: whitesmoke; + margin: 10px; +} + +.layui-body { + padding: 25px; +} + +.text-center { + text-align: center; +} + +.user-info-head { + width: 110px; + height: 110px; + line-height: 110px; + position: relative; + display: inline-block; + border-radius: 50%; + overflow: hidden; + cursor: pointer; + margin: 0 auto; +} + +.layui-line-dash { + border-bottom: 1px dashed #ccc; + margin: 15px 0; +} + +.comment { + position: absolute; + bottom: 3px; + right: 10px; + font-size: 12px; + color: dimgray; +} + +.content { + padding-left: 13px; + font-size: 13px; + color: dimgray; +} + +.title { + padding-left: 13.5px; +} + +.layui-tab-title { + border-bottom: none; +} + +.fl-item { + height: 30px; + font-size: 13.5; +} + +.dot { + width: 10px; + height: 10px; + border-radius: 50px; + background-color: gray; + display: inline-block; + margin-right: 10px; +} + +.list .list-item { + height: 32px; + line-height: 32px; + color: gray; + padding: 5px; + padding-left: 15px; + border-radius: 4px; + margin-top: 5.2px; +} + + .list .list-item:hover { + background-color: whitesmoke; + } + + .list .list-item .title { + font-size: 13px; + width: 100%; + } + + .list .list-item .footer { + position: absolute; + right: 30px; + font-size: 12px; + } -- Gitee From f646b5610f3cf530414cf2a814a1c9cd1c278da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E7=AC=91d=E5=88=BA=E5=AE=A29527?= Date: Sat, 9 Jul 2022 11:04:59 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0Mapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbpTemplateApplicationModule.cs | 11 +---------- .../Authorization/AuthorizationMapper.cs | 12 ------------ .../Monitoring/MonitoringMapper.cs | 8 -------- .../MultiTenancy/MultiTenancyMapper.cs | 9 --------- .../Notifications/NotificationMapper.cs | 8 -------- .../Organizations/OrganizationMapper.cs | 8 -------- .../Resource/ResourceMapper.cs | 8 -------- .../Social/SocialMapper.cs | 10 ---------- .../TaskCenter/TaskCenterMapper.cs | 11 ----------- 9 files changed, 1 insertion(+), 84 deletions(-) diff --git a/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs b/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs index 77d1b16..575e0af 100644 --- a/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs +++ b/src/PearAdmin.AbpTemplate.Application/AbpTemplateApplicationModule.cs @@ -21,16 +21,7 @@ namespace PearAdmin.AbpTemplate { public override void PreInitialize() { - //切换到下面的程序集扫描 - // AutoMapper - //Configuration.Modules.AbpAutoMapper().Configurators.Add(AuthorizationMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(OrganizationMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(SocialMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(NotificationMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(MonitoringMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(MultiTenancyMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(ResourceMapper.CreateMappings); - //Configuration.Modules.AbpAutoMapper().Configurators.Add(TaskCenterMapper.CreateMappings); + } public override void Initialize() diff --git a/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs b/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs index 537a570..a8b55ee 100644 --- a/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Authorization/AuthorizationMapper.cs @@ -8,18 +8,6 @@ using PearAdmin.AbpTemplate.Authorization.Users.Dto; namespace PearAdmin.AbpTemplate.Authorization { - internal static class AuthorizationMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - configuration.CreateMap(); - configuration.CreateMap(); - configuration.CreateMap(); - configuration.CreateMap(); - } - } - public class AuthorizationMapperProfile : Profile { public AuthorizationMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs b/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs index f2f2c4e..209ff2c 100644 --- a/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Monitoring/MonitoringMapper.cs @@ -4,14 +4,6 @@ using PearAdmin.AbpTemplate.Auditing.Dto; namespace PearAdmin.AbpTemplate.Monitoring { - internal static class MonitoringMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - } - } - public class MonitoringMapperProfile : Profile { public MonitoringMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs b/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs index 80bfdbb..9292821 100644 --- a/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/MultiTenancy/MultiTenancyMapper.cs @@ -5,15 +5,6 @@ using PearAdmin.AbpTemplate.MultiTenancy.Tenants.Dto; namespace PearAdmin.AbpTemplate.MultiTenancy { - internal static class MultiTenancyMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - configuration.CreateMap(); - } - } - public class MonitoringMapperProfile : Profile { public MonitoringMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs b/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs index eccd412..c605a16 100644 --- a/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Notifications/NotificationMapper.cs @@ -4,14 +4,6 @@ using PearAdmin.AbpTemplate.Notifications.Dto; namespace PearAdmin.AbpTemplate.Notifications { - internal static class NotificationMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - } - } - public class NotificationMapperProfile : Profile { public NotificationMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs b/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs index 1f6712f..208dbd9 100644 --- a/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Organizations/OrganizationMapper.cs @@ -4,14 +4,6 @@ using PearAdmin.AbpTemplate.Organizations.Dto; namespace PearAdmin.AbpTemplate.Organizations { - internal static class OrganizationMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - } - } - public class OrganizationMapperProfile : Profile { public OrganizationMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs b/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs index 9726906..f172c78 100644 --- a/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Resource/ResourceMapper.cs @@ -4,14 +4,6 @@ using PearAdmin.AbpTemplate.Resource.DataDictionaries.Dto; namespace PearAdmin.AbpTemplate.Resource { - internal static class ResourceMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - } - } - public class ResourceMapperProfile : Profile { public ResourceMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs b/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs index 87121fc..48e7b4a 100644 --- a/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/Social/SocialMapper.cs @@ -7,16 +7,6 @@ using PearAdmin.AbpTemplate.Social.Friendships.Dto; namespace PearAdmin.AbpTemplate.Social { - internal static class SocialMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap(); - configuration.CreateMap(); - configuration.CreateMap(); - } - } - public class SocialMapperProfile : Profile { public SocialMapperProfile() diff --git a/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs b/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs index 84f333f..c2bde0f 100644 --- a/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs +++ b/src/PearAdmin.AbpTemplate.Application/TaskCenter/TaskCenterMapper.cs @@ -5,17 +5,6 @@ using PearAdmin.AbpTemplate.TaskCenter.DailyTasks.Dto; namespace PearAdmin.AbpTemplate.TaskCenter { - internal static class TaskCenterMapper - { - public static void CreateMappings(IMapperConfigurationExpression configuration) - { - configuration.CreateMap() - .ForMember(d => d.StartTime, options => options.MapFrom(t => t.DateRange.StartTime)) - .ForMember(d => d.EndTime, options => options.MapFrom(t => t.DateRange.EndTime)) - .ForMember(d => d.TaskStateTypeName, options => options.MapFrom(t => Enumeration.FromValue(t.TaskState.Id).Name)); - } - } - public class TaskCenterMapperProfile : Profile { public TaskCenterMapperProfile() -- Gitee