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

@@ -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;
}
}

View File

@@ -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;

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;
}
}