feat 生日券功能,自动上传消费数据,提醒访客到期
This commit is contained in:
@@ -6,6 +6,8 @@ using Dlhis.Canteen.Setting.Services;
|
||||
using Dlhis.Constants;
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Canteen.Entities;
|
||||
using Dlhis.Entity.Canteen.Entities.EMealVoucher;
|
||||
using Dlhis.Entity.Canteen.Entities.Voucher;
|
||||
using Dlhis.Entity.Canteen.Enums;
|
||||
using Dlhis.Entity.Device;
|
||||
using Dlhis.Entity.Device.Entities;
|
||||
@@ -160,27 +162,35 @@ public class OrderService : IOrderService
|
||||
switch (flag)
|
||||
{
|
||||
case QrCodeConstants.User:
|
||||
{
|
||||
gainfo = await GetUserByQrCodeAsync(request.UserUniqueNo);
|
||||
await CheckPermissionAsync(gainfo.Code, request.DeviceUniqueNo);
|
||||
}
|
||||
{
|
||||
gainfo = await GetUserByQrCodeAsync(request.UserUniqueNo);
|
||||
await CheckPermissionAsync(gainfo.Code, request.DeviceUniqueNo);
|
||||
}
|
||||
break;
|
||||
case QrCodeConstants.EMealVoucher:
|
||||
{
|
||||
request.Source = BalanceRecordSourceEnumType.EMealVoucher;
|
||||
var eMealVoucherQrCode = await _dbContext.Queryable<EMealVoucherDetailQrCodeEntity>().Where(x => x.QrCode == request.UserUniqueNo).SingleAsync();
|
||||
eMealVoucherQrCode.ThrowIfNull("无法识别");
|
||||
var code = eMealVoucherQrCode.OriginData.Split(':')[2];
|
||||
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == code).SingleAsync();
|
||||
}
|
||||
{
|
||||
request.Source = BalanceRecordSourceEnumType.EMealVoucher;
|
||||
var eMealVoucherQrCode = await _dbContext.Queryable<EMealVoucherDetailQrCodeEntity>().Where(x => x.QrCode == request.UserUniqueNo).SingleAsync();
|
||||
eMealVoucherQrCode.ThrowIfNull("无法识别");
|
||||
var code = eMealVoucherQrCode.OriginData.Split(':')[2];
|
||||
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == code).SingleAsync();
|
||||
}
|
||||
break;
|
||||
case QrCodeConstants.Birthday:
|
||||
{
|
||||
request.Source = BalanceRecordSourceEnumType.Birthday;
|
||||
var ticket = await _dbContext.Queryable<TicketEntity>().Where(x => x.Type == TicketEnumType.Birthday).Where(x => x.QrCode == request.UserUniqueNo).SingleAsync();
|
||||
ticket.ThrowIfNull("无法识别");
|
||||
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == ticket.UserCode).SingleAsync();
|
||||
}
|
||||
{
|
||||
request.Source = BalanceRecordSourceEnumType.Birthday;
|
||||
var qrcode = await _dbContext.Queryable<VoucherQrCodeEntity>()
|
||||
.Where(x => x.QrCode == request.UserUniqueNo)
|
||||
.SingleAsync();
|
||||
|
||||
qrcode.ThrowIfNull("券码无法识别");
|
||||
|
||||
var vourcher = await _dbContext.Queryable<VoucherUserInfoEntity>()
|
||||
.Where(x => x.VoucherNo == qrcode.VoucherNo)
|
||||
.SingleAsync();
|
||||
|
||||
gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == vourcher.UserCode).SingleAsync();
|
||||
}
|
||||
break;
|
||||
|
||||
default: throw new UserFriendlyException($"无法识别{request.UserUniqueNo}");
|
||||
@@ -201,7 +211,7 @@ public class OrderService : IOrderService
|
||||
//在线
|
||||
if (!request.IsOffline)
|
||||
{
|
||||
gainfo.ThrowIfNull("无法识别");
|
||||
gainfo.ThrowIfNull("无法识别人员信息");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -213,6 +223,7 @@ public class OrderService : IOrderService
|
||||
.FirstAsync();
|
||||
}
|
||||
|
||||
gainfo.ThrowIfNull("无法识别人员信息");
|
||||
return gainfo;
|
||||
}
|
||||
|
||||
@@ -292,7 +303,9 @@ public class OrderService : IOrderService
|
||||
.Where(x => x.DeviceUniqueNo == request.DeviceUniqueNo && x.BusinessPlaceCode.HasValue)
|
||||
.Select((x, b, bs) => new
|
||||
{
|
||||
b.Code, bs.ShiftCode, Factory = b.TenantId
|
||||
b.Code,
|
||||
bs.ShiftCode,
|
||||
Factory = b.TenantId
|
||||
})
|
||||
.SingleAsync();
|
||||
|
||||
@@ -485,7 +498,7 @@ public class OrderService : IOrderService
|
||||
|
||||
return await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == gainfoQrCode.UserCode).SingleAsync();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 检查是否能够进行离线消费,处理hpt重复提交
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user