feat 电子餐券

This commit is contained in:
2024-08-08 18:05:32 +08:00
parent c078ce8830
commit 366af67135
10 changed files with 389 additions and 206 deletions

View File

@@ -0,0 +1,53 @@
using Dlhis.Entity.Canteen.Entities;
using Dlhis.Entity.Canteen.Enums;
using Dlhis.External.EMealVoucher.Request;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.External.EMealVoucher.Services.Implements;
public class EMealVoucherService : IEMealVoucherService
{
private readonly IDbContext _dbContext;
public EMealVoucherService(IDbContext dbContext)
{
_dbContext = dbContext;
}
public async Task ReceiveAsync(EMealVoucherReceiveRequest request)
{
(await _dbContext.Queryable<EMealVoucherEntity>().Where(x => x.No == request.No).AnyAsync()).ThrowIfTrue($"{request.No}已存在");
var voucher = new EMealVoucherEntity
{
No = request.No,
Title = request.Title,
Code = request.Code,
CostId = request.CostId,
Source = request.Source,
Phone = request.Phone,
Number = request.Number,
Reason = request.Reason,
Shifts = request.Shifts.Select(x => (ShiftEnumType)x).ToList(),
Date = request.Date,
Factories = request.Factories
};
var details = request.Details.Select(x => new EMealVoucherDetailEntity
{
No = request.No,
UserType = x.UserType,
IdNo = x.IdNo,
Name = x.Name,
Phone = x.Phone,
Start = x.Start,
End = x.End,
Amount = x.Amount
}).ToList();
var id = await _dbContext.InsertReturnIdentityAsync(voucher);
details.ForEach(x => x.VoucherId = id);
await _dbContext.InsertAsync(details);
}
}