From bbb34663c7a011f37c7f1b06cd9f5f5423e1b746 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 9 Jun 2024 00:22:25 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=B6=88=E8=B4=B9=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81=E4=BD=BF=E7=94=A8=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/GainfoQrCodeService.cs | 7 +++-- .../Services/Implements/MealUserService.cs | 1 + .../Order/Services/Implements/OrderService.cs | 28 +++++++++++++++---- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoQrCodeService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoQrCodeService.cs index 2a17ab9a..0caa230b 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoQrCodeService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoQrCodeService.cs @@ -21,7 +21,6 @@ public class GainfoQrCodeService : IGainfoQrCodeService public async Task 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().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; } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs index 6efd6968..a4a4ec13 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs @@ -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; diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs index 9bb19b50..1f124b68 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs @@ -39,12 +39,18 @@ public class OrderService : BaseOrderService, IOrderService { return await AddAsync(request); } + public async Task> 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() .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(); await DbContext.InsertAsync(balanceRecord); + }, 5); } @@ -430,9 +437,6 @@ public class OrderService : BaseOrderService, IOrderService foreach (var item in orders) { var request = item.RequestJson.ToObject(); - var device = await DbContext.Queryable() - .Where(x => x.UniqueNo == request.DeviceUniqueNo) - .FirstAsync(); var registry = await DbContext.Queryable() .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); } } + + /// + /// 根据二维码获取消费用户 + /// + /// + /// + private async Task GetUserNoByQrCodeAsync(string qrCode) + { + var gainfoQrCode = await DbContext.Queryable().Where(x => x.QrCode == qrCode).SingleAsync(); + gainfoQrCode.ThrowIfNull("消费码已过期"); + (gainfoQrCode.ModifiedTime.AddMinutes(1) > DateTime.Now).ThrowIfTrue("消费码已过期"); + + return gainfoQrCode.UserCode; + } } \ No newline at end of file