fix 消费二维码使用时间戳

This commit is contained in:
2024-06-09 00:22:25 +08:00
parent c8b232ee66
commit bbb34663c7
3 changed files with 28 additions and 8 deletions

View File

@@ -39,12 +39,18 @@ public class OrderService : BaseOrderService, IOrderService
{
return await AddAsync(request);
}
public async Task<DefaultApiResult<OrderResultResponse>> AddAsync(OrderAddRequest request)
{
//尝试匹配userId
_ = long.TryParse(request.UserUniqueNo, out var userId);
// if (request.Source == BalanceRecordSourceEnumType.QrCode)
// {
// request.UserUniqueNo = await GetUserNoByQrCodeAsync(request.UserUniqueNo);
// }
//根据档案号
var gainfo = await DbContext.Queryable<GainfoEntity>()
.Where(x => x.No == request.UserUniqueNo || x.Code == request.UserUniqueNo || x.Id == userId || x.CardNo == request.UserUniqueNo)
@@ -266,6 +272,7 @@ public class OrderService : BaseOrderService, IOrderService
//写入记录
var balanceRecord = order.Adapt<BalanceRecordEntity>();
await DbContext.InsertAsync(balanceRecord);
}, 5);
}
@@ -430,9 +437,6 @@ public class OrderService : BaseOrderService, IOrderService
foreach (var item in orders)
{
var request = item.RequestJson.ToObject<ConsumeRequest>();
var device = await DbContext.Queryable<DeviceEntity>()
.Where(x => x.UniqueNo == request.DeviceUniqueNo)
.FirstAsync();
var registry = await DbContext.Queryable<DeviceRegistryEntity>()
.Where(x => x.DeviceUniqueNo == request.DeviceUniqueNo)
@@ -495,7 +499,7 @@ public class OrderService : BaseOrderService, IOrderService
var costDate = costDateTime.Date;
if (shift != null && switchTime.HasValue)
if (switchTime.HasValue)
{
var beginOfDay = costDateTime.Date;
@@ -570,7 +574,7 @@ public class OrderService : BaseOrderService, IOrderService
var allowRepeatInOneShift = await GetSettingAsync(order.TenantId, CanteenSettingItemEnumType.AllowRepeatInOneShift, true);
if (!allowRepeatInOneShift)
{
var costCount = todayAllBalanceRecords.Where(x => x.ShiftType == order.ShiftType).Count();
var costCount = todayAllBalanceRecords.Count(x => x.ShiftType == order.ShiftType);
(costCount > 1).ThrowIfTrue($"{order?.ShiftType?.GetDescription()}不允许多次消费");
}
}
@@ -671,4 +675,18 @@ public class OrderService : BaseOrderService, IOrderService
}, 5);
}
}
/// <summary>
/// 根据二维码获取消费用户
/// </summary>
/// <param name="qrCode"></param>
/// <returns></returns>
private async Task<string> GetUserNoByQrCodeAsync(string qrCode)
{
var gainfoQrCode = await DbContext.Queryable<GainfoQrCodeEntity>().Where(x => x.QrCode == qrCode).SingleAsync();
gainfoQrCode.ThrowIfNull("消费码已过期");
(gainfoQrCode.ModifiedTime.AddMinutes(1) > DateTime.Now).ThrowIfTrue("消费码已过期");
return gainfoQrCode.UserCode;
}
}