feat 就餐分析,餐次使用金额和人数
This commit is contained in:
@@ -109,6 +109,10 @@ public class BalanceService : IBalanceService
|
||||
{
|
||||
var cache = App.GetServiceProvider().GetService<RedisCache>();
|
||||
var balanceRecord = await _dbContext.Queryable<BalanceRecordEntity>().Where(x => x.No == no).SingleAsync();
|
||||
balanceRecord.ThrowIfNull("数据不存在");
|
||||
|
||||
(balanceRecord.Status != BalanceRecordStatusEnumType.Valid).ThrowIfTrue("无法退款");
|
||||
|
||||
await using var handler = await cache.LockAsync($"balance:refund:{no}", TimeSpan.FromSeconds(9));
|
||||
if (handler.Acquired)
|
||||
{
|
||||
@@ -125,7 +129,7 @@ public class BalanceService : IBalanceService
|
||||
}
|
||||
}
|
||||
|
||||
var userNo = balanceRecord?.UserNo;
|
||||
var userNo = balanceRecord.UserNo;
|
||||
//获取人员余额
|
||||
return await _dbContext.Queryable<GainfoMealEntity>()
|
||||
.LeftJoin<GainfoEntity>((x, ga) => x.UserNo == ga.No)
|
||||
@@ -146,8 +150,8 @@ public class BalanceService : IBalanceService
|
||||
public async Task<Pagination<BalanceRecordDeviceResponse>> GetPageByDeviceUniqueNoAsync(BalanceRecordPageByDeviceUniqueNoRequest request)
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>()
|
||||
.Where(x => x.UniqueNo == request.DeviceUniqueNo || x.Code == Guid.Parse(request.DeviceUniqueNo))
|
||||
.FirstAsync();
|
||||
.Where(x => x.UniqueNo == request.DeviceUniqueNo)
|
||||
.SingleAsync();
|
||||
|
||||
if (device == null)
|
||||
{
|
||||
@@ -182,7 +186,8 @@ public class BalanceService : IBalanceService
|
||||
.LeftJoin<ImageRecordEntity>((record, ga, department, bPlace, imageRecord) => imageRecord.No == record.No)
|
||||
.Where(record => record.DeviceUniqueNo == device.UniqueNo)
|
||||
.Where(record => record.CostDate >= request.Start && record.CostDate <= request.End)
|
||||
.Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid)
|
||||
.Where(record => record.Type == BalanceRecordTypeEnumType.Out
|
||||
&& (record.Status == BalanceRecordStatusEnumType.Valid || (record.Status == BalanceRecordStatusEnumType.Obsolute && record.Remark == "退款")))
|
||||
.WhereIF(request.UserCode.IsPresent(), record => record.UserCode == request.UserCode)
|
||||
.OrderBy(record => record.CostDateTime, OrderByType.Desc)
|
||||
.Select((record, ga, department, bPlace, imageRecord) => new BalanceRecordDeviceResponse
|
||||
|
||||
Reference in New Issue
Block a user