Files
jinko.yikatong/Src/Dlhis.External/MealSupplement/Channel/MealSupplementHandler.cs
2024-03-14 16:35:38 +08:00

38 lines
1.2 KiB
C#

using Dlhis.Entity.Basic.Entity;
using Dlhis.External.MealSupplement.Request;
using Kurisu.AspNetCore.EventBus.Abstractions;
using Kurisu.AspNetCore.EventBus.Abstractions.Handler;
using Kurisu.SqlSugar.Services;
using Mapster;
namespace Dlhis.External.MealSupplement.Channel;
public class MealSupplementHandler : IAsyncChannelHandler<MealSupplementMessage>
{
private readonly IServiceProvider _serviceProvider;
public MealSupplementHandler(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public async Task InvokeAsync(MealSupplementMessage message)
{
using (var scope = _serviceProvider.CreateScope())
{
var db = scope.ServiceProvider.GetService<IDbContext>();
var existsIds = await db.Queryable<MealSupplementRecordEntity>().Select(x => x.UniqueId).ToListAsync();
var items = message.Items.Where(x => !existsIds.Contains(x.UniqueId)).ToList();
var entities = items.Adapt<List<MealSupplementRecordEntity>>();
await db.InsertAsync(entities);
}
}
}
public class MealSupplementMessage : IAsyncChannelMessage
{
public List<MealSupplementReceiveReuqest> Items { get; set; }
}