diff --git a/src/Modules/BaseService/BaseService.Application.Contracts/HbDtoExtensions.cs b/src/Modules/BaseService/BaseService.Application.Contracts/HbDtoExtensions.cs new file mode 100644 index 00000000..6313e9ce --- /dev/null +++ b/src/Modules/BaseService/BaseService.Application.Contracts/HbDtoExtensions.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace BaseService +{ + public static class HbDtoExtensions + { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + /* You can add extension properties to DTOs + * defined in the depended modules. + * + * Example: + * + * ObjectExtensionManager.Instance + * .AddOrUpdateProperty("Title"); + * + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Object-Extensions + */ + ObjectExtensionManager.Instance + .AddOrUpdateProperty( + new[] + { + typeof(IdentityUserDto), + typeof(IdentityUserCreateDto), + typeof(IdentityUserUpdateDto), + typeof(UpdateProfileDto) + }, + "CodeNum" + ); + }); + } + } +} diff --git a/src/Modules/BaseService/BaseService.Application/BaseServiceApplicationAutoMapperProfile.cs b/src/Modules/BaseService/BaseService.Application/BaseServiceApplicationAutoMapperProfile.cs index 66ba4a2f..f22660de 100644 --- a/src/Modules/BaseService/BaseService.Application/BaseServiceApplicationAutoMapperProfile.cs +++ b/src/Modules/BaseService/BaseService.Application/BaseServiceApplicationAutoMapperProfile.cs @@ -9,6 +9,8 @@ using BaseService.BaseData.BranchManagement.Dto; using BaseService.BaseData.UserBranchRoleManagement.Dto; using BaseService.RelationData.Dto; +using Volo.Abp.Identity; + namespace BaseService { public class BaseServiceApplicationAutoMapperProfile : Profile @@ -24,6 +26,8 @@ namespace BaseService //分支--角色 CreateMap(); + + CreateMap().MapExtraProperties(); } } } diff --git a/src/Modules/BaseService/BaseService.Application/UserManagement/UserAppService.cs b/src/Modules/BaseService/BaseService.Application/UserManagement/UserAppService.cs index b70e6b1c..a2ffa872 100644 --- a/src/Modules/BaseService/BaseService.Application/UserManagement/UserAppService.cs +++ b/src/Modules/BaseService/BaseService.Application/UserManagement/UserAppService.cs @@ -22,6 +22,7 @@ using Volo.Abp.ObjectExtending; using Volo.Abp.PermissionManagement; using Volo.Abp.Users; using IdentityUser = Volo.Abp.Identity.IdentityUser; +using Volo.Abp.Data; namespace BaseService.Systems.UserManagement { @@ -122,6 +123,13 @@ namespace BaseService.Systems.UserManagement public async Task UpdateAsync(Guid id, IdentityUserUpdateDto input) { var user = await UserManager.GetByIdAsync(id); + // user.SetProperty("Title", "My custom title value!"); + //var gettitle= user.GetProperty("Title"); + // if(string.IsNullOrEmpty(gettitle)) + // { + // throw new BusinessException("用户标题不能为空"); + // } + user.ConcurrencyStamp = input.ConcurrencyStamp; (await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); @@ -138,6 +146,7 @@ namespace BaseService.Systems.UserManagement } var dto = ObjectMapper.Map(user); + await CurrentUnitOfWork.SaveChangesAsync(); diff --git a/src/Modules/BaseService/BaseService.Domain/Users/AppUser.cs b/src/Modules/BaseService/BaseService.Domain/Users/AppUser.cs index 625c0ff1..c176e663 100644 --- a/src/Modules/BaseService/BaseService.Domain/Users/AppUser.cs +++ b/src/Modules/BaseService/BaseService.Domain/Users/AppUser.cs @@ -32,7 +32,7 @@ namespace BaseService.Users #endregion - + public string CodeNum { get; set; } //public Guid BranchId { get; set; } //public bool Enable { get; set; } diff --git a/src/Modules/BaseService/BaseService.EntityFrameworkCore/EntityFrameworkCore/BaseEfCoreEntityExtensionMappings.cs b/src/Modules/BaseService/BaseService.EntityFrameworkCore/EntityFrameworkCore/BaseEfCoreEntityExtensionMappings.cs index 71aa980e..0b76ac1d 100644 --- a/src/Modules/BaseService/BaseService.EntityFrameworkCore/EntityFrameworkCore/BaseEfCoreEntityExtensionMappings.cs +++ b/src/Modules/BaseService/BaseService.EntityFrameworkCore/EntityFrameworkCore/BaseEfCoreEntityExtensionMappings.cs @@ -14,6 +14,15 @@ namespace BaseService.EntityFrameworkCore { BaseServiceModuleExtensionConfigurator.Configure(); + ObjectExtensionManager.Instance + .MapEfCoreProperty( + "CodeNum", + (entityBuilder, propertyBuilder) => + { + + } + ); + //OneTimeRunner.Run(() => //{ // ObjectExtensionManager.Instance diff --git a/src/Modules/BaseService/BaseService.Host/BaseService.Host.csproj b/src/Modules/BaseService/BaseService.Host/BaseService.Host.csproj index c6fe1a45..a37b3da0 100644 --- a/src/Modules/BaseService/BaseService.Host/BaseService.Host.csproj +++ b/src/Modules/BaseService/BaseService.Host/BaseService.Host.csproj @@ -30,7 +30,7 @@ - + diff --git a/src/Modules/BaseService/BaseService.Host/FileStorage/Migrations/BaseServiceMigrationDbContextModelSnapshot.cs b/src/Modules/BaseService/BaseService.Host/FileStorage/Migrations/BaseServiceMigrationDbContextModelSnapshot.cs index b5614c92..764ff34b 100644 --- a/src/Modules/BaseService/BaseService.Host/FileStorage/Migrations/BaseServiceMigrationDbContextModelSnapshot.cs +++ b/src/Modules/BaseService/BaseService.Host/FileStorage/Migrations/BaseServiceMigrationDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace FileStorage.Migrations .UseIdentityColumns() .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("Relational:MaxIdentifierLength", 128) - .HasAnnotation("ProductVersion", "5.0.1"); + .HasAnnotation("ProductVersion", "5.0.7"); modelBuilder.Entity("BaseService.BaseData.Branch", b => { @@ -653,6 +653,9 @@ namespace FileStorage.Migrations .HasDefaultValue(0) .HasColumnName("AccessFailedCount"); + b.Property("CodeNum") + .HasColumnType("nvarchar(max)"); + b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40)