Project.Fengling.QoderVersion/Backend/src/Fengling.Backend.Infrastructure/ApplicationDbContext.cs
sam d88ec60ef4 feat(marketing): 扩展营销码支持品类信息并完善通知机制
- 在MarketingCode聚合中新增品类ID和品类名称字段,完善产品信息结构
- 迁移生成营销码命令,支持传入品类ID和品类名称参数
- 积分发放失败时发送积分获得失败通知集成事件
- 新增通知发送及积分失败通知的集成事件处理器,使用SSE推送通知
- 在积分相关集成事件处理器中添加发送积分变动通知功能
- 移除Notification聚合,相关数据库表删除
- 新增分页结果类型PagedResult,支持营销码查询分页返回
- 营销码查询支持分页参数,返回分页结果数据
2026-02-13 19:00:06 +08:00

68 lines
2.2 KiB
C#

using MediatR;
using Microsoft.EntityFrameworkCore;
using NetCorePal.Extensions.DistributedTransactions.CAP.Persistence;
using Fengling.Backend.Domain.AggregatesModel.AdminAggregate;
using Fengling.Backend.Domain.AggregatesModel.MemberAggregate;
using Fengling.Backend.Domain.AggregatesModel.MarketingCodeAggregate;
using Fengling.Backend.Domain.AggregatesModel.PointsRuleAggregate;
using Fengling.Backend.Domain.AggregatesModel.PointsTransactionAggregate;
using Fengling.Backend.Domain.AggregatesModel.GiftAggregate;
using Fengling.Backend.Domain.AggregatesModel.RedemptionOrderAggregate;
using Fengling.Backend.Domain.AggregatesModel.CategoryAggregate;
using Fengling.Backend.Domain.AggregatesModel.ProductAggregate;
namespace Fengling.Backend.Infrastructure;
public partial class ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IMediator mediator)
: AppDbContextBase(options, mediator)
, ISqliteCapDataStorage
{
// 管理员聚合
public DbSet<Admin> Admins => Set<Admin>();
// 会员聚合
public DbSet<Member> Members => Set<Member>();
public DbSet<PointsTransaction> PointsTransactions => Set<PointsTransaction>();
// 营销码聚合
public DbSet<MarketingCode> MarketingCodes => Set<MarketingCode>();
// 积分规则聚合
public DbSet<PointsRule> PointsRules => Set<PointsRule>();
// 礼品聚合
public DbSet<Gift> Gifts => Set<Gift>();
// 兑换订单聚合
public DbSet<RedemptionOrder> RedemptionOrders => Set<RedemptionOrder>();
// 品类聚合
public DbSet<Category> Categories => Set<Category>();
// 产品聚合
public DbSet<Product> Products => Set<Product>();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
if (modelBuilder is null)
{
throw new ArgumentNullException(nameof(modelBuilder));
}
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly);
base.OnModelCreating(modelBuilder);
}
protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
{
ConfigureStronglyTypedIdValueConverter(configurationBuilder);
base.ConfigureConventions(configurationBuilder);
}
}