From 822f55b2e92086d3feccdeef7df7f45d146d7487 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 26 Jun 2024 15:00:23 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A2=9E=E5=8A=A0userId=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Request/OrderAddRequest.cs | 5 ++++- .../Order/Services/Implements/OrderService.cs | 17 ++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs index 977de91e..5328d7fd 100644 --- a/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/OrderAddRequest.cs @@ -24,7 +24,7 @@ public class OrderAddRequest : IValidatableObject /// /// 档案号/QrCode/学工号 /// - [Required(ErrorMessage = "人员档案号/QrCode/学工号/userId 不能为空")] + [Required(ErrorMessage = "人员档案号/QrCode/学工号不能为空")] public string UserUniqueNo { get; set; } /// @@ -44,6 +44,9 @@ public class OrderAddRequest : IValidatableObject /// public DateTime? CostDateTime { get; set; } + + public bool IsUserId { get; set; } + public string Image { get; set; } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs index 4f6c6b1d..7db4ffa0 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs @@ -46,20 +46,19 @@ public class OrderService : BaseOrderService, IOrderService //尝试匹配userId var s = 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.Code == request.UserUniqueNo || x.Id == userId || x.CardNo == request.UserUniqueNo) + .WhereIF(request.Source == BalanceRecordSourceEnumType.Card, x => x.CardNo == request.UserUniqueNo) + .WhereIF(request.Source != BalanceRecordSourceEnumType.Card && !request.IsUserId, x => x.Code == request.UserUniqueNo) + .WhereIF(request.Source != BalanceRecordSourceEnumType.Card && request.IsUserId && s, x => x.Id == userId) .FirstAsync(); - if (gainfo == null && s && request.IsOffline) + if (gainfo == null && request.IsOffline) { - await DbContext.Queryable().AS("GainfoLeave") - .Where(x => x.Code == request.UserUniqueNo || x.Id == userId || x.CardNo == request.UserUniqueNo) + gainfo = await DbContext.Queryable().AS("GainfoLeave") + .WhereIF(request.Source == BalanceRecordSourceEnumType.Card, x => x.CardNo == request.UserUniqueNo) + .WhereIF(request.Source != BalanceRecordSourceEnumType.Card && !request.IsUserId, x => x.Code == request.UserUniqueNo) + .WhereIF(request.Source != BalanceRecordSourceEnumType.Card && request.IsUserId && s, x => x.IdentityUserId == userId) .FirstAsync(); }