Browse Source

feat: 修改通知模块是数据字典EF配置

pull/89/head
王军 3 years ago
parent
commit
819868c840
  1. 2
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/DataDictionaryManagementHttpApiHostModule.cs
  2. 1
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host.csproj
  3. 153
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20210812130334_Init.Designer.cs
  4. 24
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20210812154152_AddTenantId.cs
  5. 33
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20230315062044_Init.Designer.cs
  6. 57
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20230315062044_Init.cs
  7. 28
      aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/DataDictionaryManagementHttpApiHostMigrationsDbContextModelSnapshot.cs
  8. 2
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain.Shared/DataDictionaryManagementConsts.cs
  9. 21
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore/EntityFrameworkCore/DataDictionaryManagementDbContextModelCreatingExtensions.cs
  10. 4
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Application.Tests/DataDictionaries/DataDictionaryAppService_Tests.cs
  11. 4
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/DataDictionaries/DataDictionaryManager_Tests.cs
  12. 4
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.Tests/EntityFrameworkCore/DataDictionaries/EfCoreDataDictionaryRepository_Tests.cs
  13. 2
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/DataDictionaryDataSeedContributor.cs
  14. 25
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/DataDictionaryManagementDataSeedContributor.cs
  15. 2
      aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/DataDictionaryManagementTestConsts.cs
  16. 14
      aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/20230315062459_Init.Designer.cs
  17. 9
      aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/20230315062459_Init.cs
  18. 11
      aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/NotificationManagementHttpApiHostMigrationsDbContextModelSnapshot.cs
  19. 12
      aspnet-core/modules/NotificationManagement/src/Lion.AbpPro.NotificationManagement.Domain/Notifications/Aggregates/Notification.cs
  20. 12
      aspnet-core/modules/NotificationManagement/src/Lion.AbpPro.NotificationManagement.Domain/Notifications/Aggregates/NotificationSubscription.cs
  21. 7
      aspnet-core/modules/NotificationManagement/src/Lion.AbpPro.NotificationManagement.EntityFrameworkCore/EntityFrameworkCore/NotificationManagementDbContextModelCreatingExtensions.cs
  22. BIN
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/wwwroot/images/xxx-job.png
  23. 1714
      aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20230315062828_UpdateDataDictionaryManagementAndNotificationManagement.Designer.cs
  24. 64
      aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20230315062828_UpdateDataDictionaryManagementAndNotificationManagement.cs
  25. 6
      aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/AbpProDbContextModelSnapshot.cs
  26. 4
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion/AbpPro/SharedHostingMicroserviceModule.cs

2
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/DataDictionaryManagementHttpApiHostModule.cs

@ -25,7 +25,7 @@ namespace Lion.AbpPro.DataDictionaryManagement
// { // {
// options.IsEnabled = MultiTenancyConsts.IsEnabled; // options.IsEnabled = MultiTenancyConsts.IsEnabled;
// }); // });
context.Services.AddAlwaysAllowAuthorization();
ConfigureSwaggerServices(context); ConfigureSwaggerServices(context);
ConfigureCache(context); ConfigureCache(context);
ConfigureCors(context); ConfigureCors(context);

1
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host.csproj

@ -22,6 +22,7 @@
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" /> <PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" /> <PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" />
<PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" /> <PackageReference Include="Volo.Abp.AuditLogging.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

153
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20210812130334_Init.Designer.cs

@ -1,153 +0,0 @@
// <auto-generated />
using System;
using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Volo.Abp.EntityFrameworkCore;
namespace Lion.AbpPro.DataDictionaryManagement.Migrations
{
[DbContext(typeof(DataDictionaryManagementHttpApiHostMigrationsDbContext))]
[Migration("20210812130334_Init")]
partial class Init
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
.HasAnnotation("Relational:MaxIdentifierLength", 64)
.HasAnnotation("ProductVersion", "5.0.7");
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64) CHARACTER SET utf8mb4");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
.HasColumnType("varchar(40) CHARACTER SET utf8mb4")
.HasColumnName("ConcurrencyStamp");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime(6)")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("char(36)")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("char(36)")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime(6)")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024) CHARACTER SET utf8mb4");
b.Property<string>("DisplayText")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64) CHARACTER SET utf8mb4");
b.Property<string>("ExtraProperties")
.HasColumnType("longtext CHARACTER SET utf8mb4")
.HasColumnName("ExtraProperties");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime(6)")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("char(36)")
.HasColumnName("LastModifierId");
b.HasKey("Id");
b.ToTable("DataDictionary");
});
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<string>("Code")
.HasColumnType("longtext CHARACTER SET utf8mb4");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime(6)")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("char(36)")
.HasColumnName("CreatorId");
b.Property<Guid>("DataDictionaryId")
.HasColumnType("char(36)");
b.Property<string>("Description")
.HasColumnType("longtext CHARACTER SET utf8mb4");
b.Property<string>("DisplayText")
.HasColumnType("longtext CHARACTER SET utf8mb4");
b.Property<bool>("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime(6)")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("char(36)")
.HasColumnName("LastModifierId");
b.Property<int>("Order")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("DataDictionaryId");
b.ToTable("DataDictionaryDetail");
});
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b =>
{
b.HasOne("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", null)
.WithMany("Details")
.HasForeignKey("DataDictionaryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", b =>
{
b.Navigation("Details");
});
#pragma warning restore 612, 618
}
}
}

24
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20210812154152_AddTenantId.cs

@ -1,24 +0,0 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace Lion.AbpPro.DataDictionaryManagement.Migrations
{
public partial class AddTenantId : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "TenantId",
table: "DataDictionary",
type: "char(36)",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "TenantId",
table: "DataDictionary");
}
}
}

33
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20210812154152_AddTenantId.Designer.cs → aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20230315062044_Init.Designer.cs

@ -1,4 +1,4 @@
// <auto-generated /> // <auto-generated />
using System; using System;
using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore; using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
@ -7,19 +7,22 @@ using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
#nullable disable
namespace Lion.AbpPro.DataDictionaryManagement.Migrations namespace Lion.AbpPro.DataDictionaryManagement.Migrations
{ {
[DbContext(typeof(DataDictionaryManagementHttpApiHostMigrationsDbContext))] [DbContext(typeof(DataDictionaryManagementHttpApiHostMigrationsDbContext))]
[Migration("20210812154152_AddTenantId")] [Migration("20230315062044_Init")]
partial class AddTenantId partial class Init
{ {
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder)
{ {
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
.HasAnnotation("Relational:MaxIdentifierLength", 64) .HasAnnotation("ProductVersion", "7.0.2")
.HasAnnotation("ProductVersion", "5.0.7"); .HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", b => modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", b =>
{ {
@ -30,12 +33,12 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.Property<string>("Code") b.Property<string>("Code")
.IsRequired() .IsRequired()
.HasMaxLength(64) .HasMaxLength(64)
.HasColumnType("varchar(64) CHARACTER SET utf8mb4"); .HasColumnType("varchar(64)");
b.Property<string>("ConcurrencyStamp") b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken() .IsConcurrencyToken()
.HasMaxLength(40) .HasMaxLength(40)
.HasColumnType("varchar(40) CHARACTER SET utf8mb4") .HasColumnType("varchar(40)")
.HasColumnName("ConcurrencyStamp"); .HasColumnName("ConcurrencyStamp");
b.Property<DateTime>("CreationTime") b.Property<DateTime>("CreationTime")
@ -57,15 +60,15 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.Property<string>("Description") b.Property<string>("Description")
.IsRequired() .IsRequired()
.HasMaxLength(1024) .HasMaxLength(1024)
.HasColumnType("varchar(1024) CHARACTER SET utf8mb4"); .HasColumnType("varchar(1024)");
b.Property<string>("DisplayText") b.Property<string>("DisplayText")
.IsRequired() .IsRequired()
.HasMaxLength(64) .HasMaxLength(64)
.HasColumnType("varchar(64) CHARACTER SET utf8mb4"); .HasColumnType("varchar(64)");
b.Property<string>("ExtraProperties") b.Property<string>("ExtraProperties")
.HasColumnType("longtext CHARACTER SET utf8mb4") .HasColumnType("longtext")
.HasColumnName("ExtraProperties"); .HasColumnName("ExtraProperties");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
@ -88,7 +91,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("DataDictionary"); b.ToTable("DataDictionary", (string)null);
}); });
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b => modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b =>
@ -98,7 +101,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<string>("Code") b.Property<string>("Code")
.HasColumnType("longtext CHARACTER SET utf8mb4"); .HasColumnType("longtext");
b.Property<DateTime>("CreationTime") b.Property<DateTime>("CreationTime")
.HasColumnType("datetime(6)") .HasColumnType("datetime(6)")
@ -112,10 +115,10 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<string>("Description") b.Property<string>("Description")
.HasColumnType("longtext CHARACTER SET utf8mb4"); .HasColumnType("longtext");
b.Property<string>("DisplayText") b.Property<string>("DisplayText")
.HasColumnType("longtext CHARACTER SET utf8mb4"); .HasColumnType("longtext");
b.Property<bool>("IsEnabled") b.Property<bool>("IsEnabled")
.HasColumnType("tinyint(1)"); .HasColumnType("tinyint(1)");
@ -135,7 +138,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.HasIndex("DataDictionaryId"); b.HasIndex("DataDictionaryId");
b.ToTable("DataDictionaryDetail"); b.ToTable("DataDictionaryDetail", (string)null);
}); });
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b => modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b =>

57
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20210812130334_Init.cs → aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/20230315062044_Init.cs

@ -1,50 +1,67 @@
using System; using System;
using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Lion.AbpPro.DataDictionaryManagement.Migrations namespace Lion.AbpPro.DataDictionaryManagement.Migrations
{ {
/// <inheritdoc />
public partial class Init : Migration public partial class Init : Migration
{ {
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder) protected override void Up(MigrationBuilder migrationBuilder)
{ {
migrationBuilder.AlterDatabase()
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "DataDictionary", name: "DataDictionary",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "char(36)", nullable: false), Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Code = table.Column<string>(type: "varchar(64) CHARACTER SET utf8mb4", maxLength: 64, nullable: false), TenantId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
DisplayText = table.Column<string>(type: "varchar(64) CHARACTER SET utf8mb4", maxLength: 64, nullable: false), Code = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
Description = table.Column<string>(type: "varchar(1024) CHARACTER SET utf8mb4", maxLength: 1024, nullable: false), .Annotation("MySql:CharSet", "utf8mb4"),
ExtraProperties = table.Column<string>(type: "longtext CHARACTER SET utf8mb4", nullable: true), DisplayText = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
ConcurrencyStamp = table.Column<string>(type: "varchar(40) CHARACTER SET utf8mb4", maxLength: 40, nullable: true), .Annotation("MySql:CharSet", "utf8mb4"),
Description = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true), CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true), LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "char(36)", nullable: true), DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
}, },
constraints: table => constraints: table =>
{ {
table.PrimaryKey("PK_DataDictionary", x => x.Id); table.PrimaryKey("PK_DataDictionary", x => x.Id);
}); })
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "DataDictionaryDetail", name: "DataDictionaryDetail",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "char(36)", nullable: false), Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
DataDictionaryId = table.Column<Guid>(type: "char(36)", nullable: false), DataDictionaryId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Code = table.Column<string>(type: "longtext CHARACTER SET utf8mb4", nullable: true), Code = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Order = table.Column<int>(type: "int", nullable: false), Order = table.Column<int>(type: "int", nullable: false),
DisplayText = table.Column<string>(type: "longtext CHARACTER SET utf8mb4", nullable: true), DisplayText = table.Column<string>(type: "longtext", nullable: true)
Description = table.Column<string>(type: "longtext CHARACTER SET utf8mb4", nullable: true), .Annotation("MySql:CharSet", "utf8mb4"),
Description = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
IsEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false), IsEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true), CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true) LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci")
}, },
constraints: table => constraints: table =>
{ {
@ -55,7 +72,8 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
principalTable: "DataDictionary", principalTable: "DataDictionary",
principalColumn: "Id", principalColumn: "Id",
onDelete: ReferentialAction.Cascade); onDelete: ReferentialAction.Cascade);
}); })
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_DataDictionaryDetail_DataDictionaryId", name: "IX_DataDictionaryDetail_DataDictionaryId",
@ -63,6 +81,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
column: "DataDictionaryId"); column: "DataDictionaryId");
} }
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder) protected override void Down(MigrationBuilder migrationBuilder)
{ {
migrationBuilder.DropTable( migrationBuilder.DropTable(

28
aspnet-core/modules/DataDictionaryManagement/host/Lion.AbpPro.DataDictionaryManagement.HttpApi.Host/Migrations/DataDictionaryManagementHttpApiHostMigrationsDbContextModelSnapshot.cs

@ -1,4 +1,4 @@
// <auto-generated /> // <auto-generated />
using System; using System;
using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore; using Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
@ -6,6 +6,8 @@ using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
#nullable disable
namespace Lion.AbpPro.DataDictionaryManagement.Migrations namespace Lion.AbpPro.DataDictionaryManagement.Migrations
{ {
[DbContext(typeof(DataDictionaryManagementHttpApiHostMigrationsDbContext))] [DbContext(typeof(DataDictionaryManagementHttpApiHostMigrationsDbContext))]
@ -16,8 +18,8 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
.HasAnnotation("Relational:MaxIdentifierLength", 64) .HasAnnotation("ProductVersion", "7.0.2")
.HasAnnotation("ProductVersion", "5.0.7"); .HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", b => modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionary", b =>
{ {
@ -28,12 +30,12 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.Property<string>("Code") b.Property<string>("Code")
.IsRequired() .IsRequired()
.HasMaxLength(64) .HasMaxLength(64)
.HasColumnType("varchar(64) CHARACTER SET utf8mb4"); .HasColumnType("varchar(64)");
b.Property<string>("ConcurrencyStamp") b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken() .IsConcurrencyToken()
.HasMaxLength(40) .HasMaxLength(40)
.HasColumnType("varchar(40) CHARACTER SET utf8mb4") .HasColumnType("varchar(40)")
.HasColumnName("ConcurrencyStamp"); .HasColumnName("ConcurrencyStamp");
b.Property<DateTime>("CreationTime") b.Property<DateTime>("CreationTime")
@ -55,15 +57,15 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.Property<string>("Description") b.Property<string>("Description")
.IsRequired() .IsRequired()
.HasMaxLength(1024) .HasMaxLength(1024)
.HasColumnType("varchar(1024) CHARACTER SET utf8mb4"); .HasColumnType("varchar(1024)");
b.Property<string>("DisplayText") b.Property<string>("DisplayText")
.IsRequired() .IsRequired()
.HasMaxLength(64) .HasMaxLength(64)
.HasColumnType("varchar(64) CHARACTER SET utf8mb4"); .HasColumnType("varchar(64)");
b.Property<string>("ExtraProperties") b.Property<string>("ExtraProperties")
.HasColumnType("longtext CHARACTER SET utf8mb4") .HasColumnType("longtext")
.HasColumnName("ExtraProperties"); .HasColumnName("ExtraProperties");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
@ -86,7 +88,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("DataDictionary"); b.ToTable("DataDictionary", (string)null);
}); });
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b => modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b =>
@ -96,7 +98,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<string>("Code") b.Property<string>("Code")
.HasColumnType("longtext CHARACTER SET utf8mb4"); .HasColumnType("longtext");
b.Property<DateTime>("CreationTime") b.Property<DateTime>("CreationTime")
.HasColumnType("datetime(6)") .HasColumnType("datetime(6)")
@ -110,10 +112,10 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<string>("Description") b.Property<string>("Description")
.HasColumnType("longtext CHARACTER SET utf8mb4"); .HasColumnType("longtext");
b.Property<string>("DisplayText") b.Property<string>("DisplayText")
.HasColumnType("longtext CHARACTER SET utf8mb4"); .HasColumnType("longtext");
b.Property<bool>("IsEnabled") b.Property<bool>("IsEnabled")
.HasColumnType("tinyint(1)"); .HasColumnType("tinyint(1)");
@ -133,7 +135,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.Migrations
b.HasIndex("DataDictionaryId"); b.HasIndex("DataDictionaryId");
b.ToTable("DataDictionaryDetail"); b.ToTable("DataDictionaryDetail", (string)null);
}); });
modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b => modelBuilder.Entity("Lion.AbpPro.DataDictionaryManagement.DataDictionaries.Aggregates.DataDictionaryDetail", b =>

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain.Shared/DataDictionaryManagementConsts.cs

@ -2,8 +2,6 @@ namespace Lion.AbpPro.DataDictionaryManagement
{ {
public class DataDictionaryManagementConsts public class DataDictionaryManagementConsts
{ {
public static Guid SeedDataDictionaryId = new Guid("39fdb236-a90e-e4b5-02a0-2866a8cf9821");
/// <summary>名称空间</summary> /// <summary>名称空间</summary>
public const string NameSpace = "Lion.AbpPro.DataDictionaryManagement"; public const string NameSpace = "Lion.AbpPro.DataDictionaryManagement";
/// <summary>默认语言</summary> /// <summary>默认语言</summary>

21
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore/EntityFrameworkCore/DataDictionaryManagementDbContextModelCreatingExtensions.cs

@ -6,25 +6,18 @@ namespace Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore
this ModelBuilder builder) this ModelBuilder builder)
{ {
Check.NotNull(builder, nameof(builder)); Check.NotNull(builder, nameof(builder));
builder.Entity<DataDictionary>(b => builder.Entity<DataDictionary>(b =>
{ {
builder.Entity<DataDictionary>(b => b.ToTable(DataDictionaryManagementDbProperties.DbTablePrefix + nameof(DataDictionary), DataDictionaryManagementDbProperties.DbSchema);
{ b.HasMany(e => e.Details).WithOne().HasForeignKey(uc => uc.DataDictionaryId).IsRequired();
b.ToTable(DataDictionaryManagementDbProperties.DbTablePrefix + nameof(DataDictionary), b.ConfigureByConvention();
DataDictionaryManagementDbProperties.DbSchema);
b.ConfigureByConvention();
});
}); });
builder.Entity<DataDictionaryDetail>(b => builder.Entity<DataDictionaryDetail>(b =>
{ {
builder.Entity<DataDictionaryDetail>(b => b.ToTable(DataDictionaryManagementDbProperties.DbTablePrefix + nameof(DataDictionaryDetail), DataDictionaryManagementDbProperties.DbSchema);
{ b.ConfigureByConvention();
b.ToTable(DataDictionaryManagementDbProperties.DbTablePrefix + nameof(DataDictionaryDetail),
DataDictionaryManagementDbProperties.DbSchema);
b.ConfigureByConvention();
});
}); });
} }
} }

4
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Application.Tests/DataDictionaries/DataDictionaryAppService_Tests.cs

@ -47,7 +47,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
{ {
var input = new CreateDataDictinaryDetailInput() var input = new CreateDataDictinaryDetailInput()
{ {
Id = DataDictionaryManagementConsts.SeedDataDictionaryId, Id = DataDictionaryManagementTestConsts.SeedDataDictionaryId,
Code = "Detail", Code = "Detail",
DisplayText = "明细", DisplayText = "明细",
Description = "单元测试", Description = "单元测试",
@ -58,7 +58,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
var result = await _dataDictionaryAppService.GetPagingDetailListAsync( var result = await _dataDictionaryAppService.GetPagingDetailListAsync(
new PagingDataDictionaryDetailInput() new PagingDataDictionaryDetailInput()
{ {
DataDictionaryId = DataDictionaryManagementConsts.SeedDataDictionaryId, DataDictionaryId = DataDictionaryManagementTestConsts.SeedDataDictionaryId,
Filter = "Detail" Filter = "Detail"
} }
); );

4
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.Domain.Tests/DataDictionaries/DataDictionaryManager_Tests.cs

@ -13,7 +13,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
public async Task Test_FindByIdAsync_Ok() public async Task Test_FindByIdAsync_Ok()
{ {
var entity = var entity =
await _dataDictionaryManager.FindByIdAsync(DataDictionaryManagementConsts.SeedDataDictionaryId); await _dataDictionaryManager.FindByIdAsync(DataDictionaryManagementTestConsts.SeedDataDictionaryId);
entity.DisplayText.ShouldBe("性别"); entity.DisplayText.ShouldBe("性别");
entity.Details.Count.ShouldBe(3); entity.Details.Count.ShouldBe(3);
entity.Details.FirstOrDefault(e => e.Code == "None").IsEnabled.ShouldBeFalse(); entity.Details.FirstOrDefault(e => e.Code == "None").IsEnabled.ShouldBeFalse();
@ -43,7 +43,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
exception.Message.ShouldBe($"数据字典不存在"); exception.Message.ShouldBe($"数据字典不存在");
var exception1 = await Record.ExceptionAsync(async () => var exception1 = await Record.ExceptionAsync(async () =>
await _dataDictionaryManager.CreateDetailAsync(DataDictionaryManagementConsts.SeedDataDictionaryId, await _dataDictionaryManager.CreateDetailAsync(DataDictionaryManagementTestConsts.SeedDataDictionaryId,
"Man", "明细", "测试", 1)); "Man", "明细", "测试", 1));
exception1.Message.ShouldBe($"字典项Man已存在"); exception1.Message.ShouldBe($"字典项Man已存在");

4
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.Tests/EntityFrameworkCore/DataDictionaries/EfCoreDataDictionaryRepository_Tests.cs

@ -14,14 +14,14 @@ namespace Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore.DataDictionar
public async Task Test_FindByIdAsync_Ok() public async Task Test_FindByIdAsync_Ok()
{ {
var entity = var entity =
await _dataDictionaryRepository.FindByIdAsync(DataDictionaryManagementConsts.SeedDataDictionaryId, await _dataDictionaryRepository.FindByIdAsync(DataDictionaryManagementTestConsts.SeedDataDictionaryId,
true); true);
entity.DisplayText.ShouldBe("性别"); entity.DisplayText.ShouldBe("性别");
entity.Details.Count.ShouldBe(3); entity.Details.Count.ShouldBe(3);
entity.Details.FirstOrDefault(e => e.Code == "None").IsEnabled.ShouldBeFalse(); entity.Details.FirstOrDefault(e => e.Code == "None").IsEnabled.ShouldBeFalse();
var noDetailEntity = var noDetailEntity =
await _dataDictionaryRepository.FindByIdAsync(DataDictionaryManagementConsts.SeedDataDictionaryId, await _dataDictionaryRepository.FindByIdAsync(DataDictionaryManagementTestConsts.SeedDataDictionaryId,
false); false);
noDetailEntity.Details.Count.ShouldBe(0); noDetailEntity.Details.Count.ShouldBe(0);
} }

2
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Domain/DataDictionaries/DataDictionaryDataSeedContributor.cs → aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/DataDictionaryDataSeedContributor.cs

@ -22,7 +22,7 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
var gender = await _dataDictionaryRepository.FindByCodeAsync("Gender"); var gender = await _dataDictionaryRepository.FindByCodeAsync("Gender");
if (gender == null) if (gender == null)
{ {
var id = context is {TenantId: null} ? DataDictionaryManagementConsts.SeedDataDictionaryId : _guidGenerator.Create(); var id = context is {TenantId: null} ? DataDictionaryManagementTestConsts.SeedDataDictionaryId : _guidGenerator.Create();
var entity = new DataDictionary(id, "Gender", "性别", "单元测试", context?.TenantId); var entity = new DataDictionary(id, "Gender", "性别", "单元测试", context?.TenantId);
entity.AddDetail(_guidGenerator.Create(), "Man", "男", 1, "单元测试"); entity.AddDetail(_guidGenerator.Create(), "Man", "男", 1, "单元测试");
entity.AddDetail(_guidGenerator.Create(), "WoMan", "女", 2, "单元测试"); entity.AddDetail(_guidGenerator.Create(), "WoMan", "女", 2, "单元测试");

25
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/DataDictionaryManagementDataSeedContributor.cs

@ -1,25 +0,0 @@
namespace Lion.AbpPro.DataDictionaryManagement
{
public class DataDictionaryManagementDataSeedContributor : IDataSeedContributor, ITransientDependency
{
private readonly IGuidGenerator _guidGenerator;
private readonly ICurrentTenant _currentTenant;
public DataDictionaryManagementDataSeedContributor(
IGuidGenerator guidGenerator,
ICurrentTenant currentTenant)
{
_guidGenerator = guidGenerator;
_currentTenant = currentTenant;
}
public async Task SeedAsync(DataSeedContext context)
{
/* Instead of returning the Task.CompletedTask, you can insert your test data
* at this point!
*/
await Task.CompletedTask;
}
}
}

2
aspnet-core/modules/DataDictionaryManagement/test/Lion.AbpPro.DataDictionaryManagement.TestBase/DataDictionaryManagementTestConsts.cs

@ -2,6 +2,6 @@ namespace Lion.AbpPro.DataDictionaryManagement
{ {
public class DataDictionaryManagementTestConsts public class DataDictionaryManagementTestConsts
{ {
public static Guid SeedDataDictionaryId = new Guid("39fdb236-a90e-e4b5-02a0-2866a8cf9821");
} }
} }

14
aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/20220702015410_Init.Designer.cs → aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/20230315062459_Init.Designer.cs

@ -12,15 +12,16 @@ using Volo.Abp.EntityFrameworkCore;
namespace Lion.AbpPro.NotificationManagement.Migrations namespace Lion.AbpPro.NotificationManagement.Migrations
{ {
[DbContext(typeof(NotificationManagementHttpApiHostMigrationsDbContext))] [DbContext(typeof(NotificationManagementHttpApiHostMigrationsDbContext))]
[Migration("20220702015410_Init")] [Migration("20230315062459_Init")]
partial class Init partial class Init
{ {
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder)
{ {
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
.HasAnnotation("ProductVersion", "6.0.6") .HasAnnotation("ProductVersion", "7.0.2")
.HasAnnotation("Relational:MaxIdentifierLength", 64); .HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b => modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b =>
@ -74,6 +75,9 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
.HasColumnType("char(36)") .HasColumnType("char(36)")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<int>("MessageLevel")
.HasColumnType("int");
b.Property<int>("MessageType") b.Property<int>("MessageType")
.HasColumnType("int"); .HasColumnType("int");
@ -126,7 +130,7 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
.HasColumnType("char(36)") .HasColumnType("char(36)")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<Guid?>("NotificationId") b.Property<Guid>("NotificationId")
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<bool>("Read") b.Property<bool>("Read")
@ -149,7 +153,9 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
{ {
b.HasOne("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", null) b.HasOne("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", null)
.WithMany("NotificationSubscriptions") .WithMany("NotificationSubscriptions")
.HasForeignKey("NotificationId"); .HasForeignKey("NotificationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
}); });
modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b => modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b =>

9
aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/20220702015410_Init.cs → aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/20230315062459_Init.cs

@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations;
namespace Lion.AbpPro.NotificationManagement.Migrations namespace Lion.AbpPro.NotificationManagement.Migrations
{ {
/// <inheritdoc />
public partial class Init : Migration public partial class Init : Migration
{ {
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder) protected override void Up(MigrationBuilder migrationBuilder)
{ {
migrationBuilder.AlterDatabase() migrationBuilder.AlterDatabase()
@ -22,6 +24,7 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
Content = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false) Content = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
MessageType = table.Column<int>(type: "int", nullable: false), MessageType = table.Column<int>(type: "int", nullable: false),
MessageLevel = table.Column<int>(type: "int", nullable: false),
SenderId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), SenderId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
ExtraProperties = table.Column<string>(type: "longtext", nullable: true) ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
@ -46,10 +49,10 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
NotificationId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
ReceiveId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), ReceiveId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
Read = table.Column<bool>(type: "tinyint(1)", nullable: false), Read = table.Column<bool>(type: "tinyint(1)", nullable: false),
ReadTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), ReadTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
NotificationId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
@ -65,7 +68,8 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
name: "FK_NotificationSubscription_Notification_NotificationId", name: "FK_NotificationSubscription_Notification_NotificationId",
column: x => x.NotificationId, column: x => x.NotificationId,
principalTable: "Notification", principalTable: "Notification",
principalColumn: "Id"); principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}) })
.Annotation("MySql:CharSet", "utf8mb4"); .Annotation("MySql:CharSet", "utf8mb4");
@ -75,6 +79,7 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
column: "NotificationId"); column: "NotificationId");
} }
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder) protected override void Down(MigrationBuilder migrationBuilder)
{ {
migrationBuilder.DropTable( migrationBuilder.DropTable(

11
aspnet-core/modules/NotificationManagement/host/Lion.AbpPro.NotificationManagement.HttpApi.Host/Migrations/NotificationManagementHttpApiHostMigrationsDbContextModelSnapshot.cs

@ -18,7 +18,7 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
.HasAnnotation("ProductVersion", "6.0.6") .HasAnnotation("ProductVersion", "7.0.2")
.HasAnnotation("Relational:MaxIdentifierLength", 64); .HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b => modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b =>
@ -72,6 +72,9 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
.HasColumnType("char(36)") .HasColumnType("char(36)")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<int>("MessageLevel")
.HasColumnType("int");
b.Property<int>("MessageType") b.Property<int>("MessageType")
.HasColumnType("int"); .HasColumnType("int");
@ -124,7 +127,7 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
.HasColumnType("char(36)") .HasColumnType("char(36)")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<Guid?>("NotificationId") b.Property<Guid>("NotificationId")
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<bool>("Read") b.Property<bool>("Read")
@ -147,7 +150,9 @@ namespace Lion.AbpPro.NotificationManagement.Migrations
{ {
b.HasOne("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", null) b.HasOne("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", null)
.WithMany("NotificationSubscriptions") .WithMany("NotificationSubscriptions")
.HasForeignKey("NotificationId"); .HasForeignKey("NotificationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
}); });
modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b => modelBuilder.Entity("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", b =>

12
aspnet-core/modules/NotificationManagement/src/Lion.AbpPro.NotificationManagement.Domain/Notifications/Aggregates/Notification.cs

@ -114,7 +114,7 @@ namespace Lion.AbpPro.NotificationManagement.Notifications.Aggregates
{ {
if (NotificationSubscriptions.Any(e => e.ReceiveId == receiveId)) return; if (NotificationSubscriptions.Any(e => e.ReceiveId == receiveId)) return;
NotificationSubscriptions.Add( NotificationSubscriptions.Add(
new NotificationSubscription(notificationSubscriptionId, receiveId)); new NotificationSubscription(notificationSubscriptionId, Id, receiveId));
} }
/// <summary> /// <summary>
@ -126,12 +126,10 @@ namespace Lion.AbpPro.NotificationManagement.Notifications.Aggregates
{ {
return; return;
} }
else
{ var temp = new NotificationSubscription(notificationSubscriptionId, Id, receiveId);
var temp = new NotificationSubscription(notificationSubscriptionId, receiveId); temp.SetRead(readTime);
temp.SetRead(readTime); NotificationSubscriptions.Add(temp);
NotificationSubscriptions.Add(temp);
}
} }
/// <summary> /// <summary>

12
aspnet-core/modules/NotificationManagement/src/Lion.AbpPro.NotificationManagement.Domain/Notifications/Aggregates/NotificationSubscription.cs

@ -5,6 +5,11 @@ namespace Lion.AbpPro.NotificationManagement.Notifications.Aggregates
/// </summary> /// </summary>
public class NotificationSubscription : FullAuditedEntity<Guid> public class NotificationSubscription : FullAuditedEntity<Guid>
{ {
/// <summary>
/// 消息Id
/// </summary>
public Guid NotificationId { get; set; }
/// <summary> /// <summary>
/// 订阅人 /// 订阅人
/// </summary> /// </summary>
@ -27,15 +32,20 @@ namespace Lion.AbpPro.NotificationManagement.Notifications.Aggregates
public NotificationSubscription( public NotificationSubscription(
Guid id, Guid id,
Guid notificationId,
Guid receiveId Guid receiveId
) : base(id) ) : base(id)
{ {
SetNotificationId(notificationId);
SetReceiveId(receiveId); SetReceiveId(receiveId);
Read = false; Read = false;
ReadTime = null; ReadTime = null;
} }
private void SetNotificationId(Guid notificationId)
{
NotificationId = notificationId;
}
private void SetReceiveId(Guid receiveId) private void SetReceiveId(Guid receiveId)
{ {
ReceiveId = receiveId; ReceiveId = receiveId;

7
aspnet-core/modules/NotificationManagement/src/Lion.AbpPro.NotificationManagement.EntityFrameworkCore/EntityFrameworkCore/NotificationManagementDbContextModelCreatingExtensions.cs

@ -9,15 +9,14 @@ namespace Lion.AbpPro.NotificationManagement.EntityFrameworkCore
builder.Entity<Notification>(b => builder.Entity<Notification>(b =>
{ {
b.ToTable(NotificationManagementDbProperties.DbTablePrefix + nameof(Notification), b.ToTable(NotificationManagementDbProperties.DbTablePrefix + nameof(Notification),NotificationManagementDbProperties.DbSchema);
NotificationManagementDbProperties.DbSchema); b.HasMany(e => e.NotificationSubscriptions).WithOne().HasForeignKey(uc => uc.NotificationId).IsRequired();
b.ConfigureByConvention(); b.ConfigureByConvention();
}); });
builder.Entity<NotificationSubscription>(b => builder.Entity<NotificationSubscription>(b =>
{ {
b.ToTable(NotificationManagementDbProperties.DbTablePrefix + nameof(NotificationSubscription), b.ToTable(NotificationManagementDbProperties.DbTablePrefix + nameof(NotificationSubscription),NotificationManagementDbProperties.DbSchema);
NotificationManagementDbProperties.DbSchema);
b.ConfigureByConvention(); b.ConfigureByConvention();
}); });
} }

BIN
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/wwwroot/images/xxx-job.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

1714
aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20230315062828_UpdateDataDictionaryManagementAndNotificationManagement.Designer.cs

File diff suppressed because it is too large

64
aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/20230315062828_UpdateDataDictionaryManagementAndNotificationManagement.cs

@ -0,0 +1,64 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Lion.AbpPro.Migrations
{
/// <inheritdoc />
public partial class UpdateDataDictionaryManagementAndNotificationManagement : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_NotificationSubscription_Notification_NotificationId",
table: "NotificationSubscription");
migrationBuilder.AlterColumn<Guid>(
name: "NotificationId",
table: "NotificationSubscription",
type: "char(36)",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
collation: "ascii_general_ci",
oldClrType: typeof(Guid),
oldType: "char(36)",
oldNullable: true)
.OldAnnotation("Relational:Collation", "ascii_general_ci");
migrationBuilder.AddForeignKey(
name: "FK_NotificationSubscription_Notification_NotificationId",
table: "NotificationSubscription",
column: "NotificationId",
principalTable: "Notification",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_NotificationSubscription_Notification_NotificationId",
table: "NotificationSubscription");
migrationBuilder.AlterColumn<Guid>(
name: "NotificationId",
table: "NotificationSubscription",
type: "char(36)",
nullable: true,
collation: "ascii_general_ci",
oldClrType: typeof(Guid),
oldType: "char(36)")
.OldAnnotation("Relational:Collation", "ascii_general_ci");
migrationBuilder.AddForeignKey(
name: "FK_NotificationSubscription_Notification_NotificationId",
table: "NotificationSubscription",
column: "NotificationId",
principalTable: "Notification",
principalColumn: "Id");
}
}
}

6
aspnet-core/services/src/Lion.AbpPro.EntityFrameworkCore/Migrations/AbpProDbContextModelSnapshot.cs

@ -240,7 +240,7 @@ namespace Lion.AbpPro.Migrations
.HasColumnType("char(36)") .HasColumnType("char(36)")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<Guid?>("NotificationId") b.Property<Guid>("NotificationId")
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<bool>("Read") b.Property<bool>("Read")
@ -1527,7 +1527,9 @@ namespace Lion.AbpPro.Migrations
{ {
b.HasOne("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", null) b.HasOne("Lion.AbpPro.NotificationManagement.Notifications.Aggregates.Notification", null)
.WithMany("NotificationSubscriptions") .WithMany("NotificationSubscriptions")
.HasForeignKey("NotificationId"); .HasForeignKey("NotificationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
}); });
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b =>

4
aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion/AbpPro/SharedHostingMicroserviceModule.cs

@ -48,8 +48,7 @@ public class SharedHostingMicroserviceModule : AbpModule
Configure<AbpAntiForgeryOptions>(options => { options.AutoValidate = false; }); Configure<AbpAntiForgeryOptions>(options => { options.AutoValidate = false; });
} }
private void ConfigureConsul(ServiceConfigurationContext context, private void ConfigureConsul(ServiceConfigurationContext context,IConfiguration configuration)
IConfiguration configuration)
{ {
if (configuration.GetValue<bool>("Consul:Enabled", false)) if (configuration.GetValue<bool>("Consul:Enabled", false))
{ {
@ -115,7 +114,6 @@ public class SharedHostingMicroserviceModule : AbpModule
/// <summary> /// <summary>
/// 健康检查 /// 健康检查
/// </summary> /// </summary>
/// <param name="context"></param>
private void ConfigureHealthChecks(ServiceConfigurationContext context) private void ConfigureHealthChecks(ServiceConfigurationContext context)
{ {
// TODO 检查数据库和redis是否正常 AspNetCore.HealthChecks.Redis AspNetCore.HealthChecks.MySql // TODO 检查数据库和redis是否正常 AspNetCore.HealthChecks.Redis AspNetCore.HealthChecks.MySql

Loading…
Cancel
Save