fix 消费二维码使用时间戳
This commit is contained in:
@@ -21,7 +21,6 @@ public class GainfoQrCodeService : IGainfoQrCodeService
|
||||
public async Task<string> GetMyQrCodeAsync(bool isNeedRefresh = false)
|
||||
{
|
||||
var jinkoCode = _currentUser.GetUserClaim("jinko-code");
|
||||
jinkoCode = "09992534";
|
||||
jinkoCode.IsEmpty().ThrowIfTrue("无法获取二维码");
|
||||
|
||||
var now = DateTime.Now;
|
||||
@@ -53,14 +52,16 @@ public class GainfoQrCodeService : IGainfoQrCodeService
|
||||
|
||||
private static string GenerateQrCode(string code)
|
||||
{
|
||||
var ts = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
//var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == code).SingleAsync();
|
||||
var qrCode = string.Concat("consumer", ":", code, ":", Guid.NewGuid()).Replace("-", "");
|
||||
//var qrCode = string.Concat("consumer", ":", code, ":", Guid.NewGuid()).Replace("-", "");
|
||||
var qrCode = string.Concat("consumer", ":", code, ":");
|
||||
|
||||
return qrCode.ToArray().Select(x =>
|
||||
{
|
||||
var b = Encoding.ASCII.GetBytes(x.ToString());
|
||||
int i = b[0];
|
||||
return Convert.ToString(i);
|
||||
}).Join(string.Empty);
|
||||
}).Join(string.Empty) + ts;
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
||||
using Kurisu.AspNetCore.Utils;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Services.Implements;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user