From f80d36c9b2db95a870b82a7ecd5c9b80a013b4e5 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 23 Aug 2024 14:50:56 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=9B=86=E5=9B=A2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=89=80=E6=9C=89=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Request/BalanceRecordUserGroupPageRequest.cs | 8 ++++++++ .../Order/Services/Implements/BalanceService.cs | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs index 30f332cb..94f6a5be 100644 --- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Canteen.Enums; using Kurisu.AspNetCore.CustomClass; using Kurisu.AspNetCore.DataAccess.Dto; @@ -18,6 +19,13 @@ public class BalanceRecordUserGroupPageRequest : PageDto, IValidatableObject public string UserCode { get; set; } + /// + /// 消费类型 + /// + [EnumDataType(typeof(BalanceRecordTypeEnumType))] + public BalanceRecordTypeEnumType? Type { get; set; } + + public IEnumerable Validate(ValidationContext validationContext) { if (SearchDateTimePeriod is { End: not null }) diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 0eff0736..90f10526 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -277,7 +277,7 @@ public class BalanceService : IBalanceService var amount = await queryable.SumAsync(record => SqlFunc.Abs(record.Amount)); - var total = await queryable.GroupBy(record => record.UserNo).Select(record => record.UserNo).CountAsync(); + var total = await queryable.Select(record => record.UserCode).Distinct().CountAsync(); return new BalanceRecordByBusinessPlaceResponse { @@ -388,8 +388,8 @@ public class BalanceService : IBalanceService .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) .Where((record, ga) => record.UserCode == request.UserCode) - .Where(record => record.Status == BalanceRecordStatusEnumType.Valid && record.Type == BalanceRecordTypeEnumType.Out) - .Where(record => record.Source != BalanceRecordSourceEnumType.EMealVoucher) //不展示电子餐券信息 + .Where(record => record.Status == BalanceRecordStatusEnumType.Valid && record.Source != BalanceRecordSourceEnumType.EMealVoucher) //不展示电子餐券信息 + .WhereIF(request.Type.HasValue, record => record.Type == request.Type) .WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End) .OrderBy(record => record.CostDateTime) .Select((record, ga, department, bPlace) => new BalanceRecordUserPageResponse @@ -555,7 +555,7 @@ public class BalanceService : IBalanceService { await CommonHelper.RetryAsync(async () => { - var gainfo = await _dbContext.Queryable().Where(x => x.Code == userCode).SingleAsync() + var gainfo = await _dbContext.Queryable().Where(x => x.Code == userCode).SingleAsync() ?? await _dbContext.Queryable().Where(x => x.Code == userCode).SingleAsync(); gainfo.ThrowIfNull("档案不存在");