diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 9732d34d..eaa72903 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -1,6 +1,7 @@ using Dlhis.Basic.Api; using Dlhis.Canteen.Order.Request; using Dlhis.Canteen.Order.Response; +using Dlhis.Canteen.Setting.Services; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Canteen.Entities; using Dlhis.Entity.Canteen.Enums; @@ -25,16 +26,19 @@ public class BalanceService : IBalanceService private readonly IDbContext _dbContext; private readonly ICurrentUser _currentUser; private readonly ITenantApi _tenantApi; + private readonly ICanteenSettingService _canteenSettingService; private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi; public BalanceService(IDbContext dbContext, ICurrentUser currentUser, ITenantApi tenantApi, + ICanteenSettingService canteenSettingService, IBusinessPlacePermissionsApi businessPlacePermissionsApi) { _dbContext = dbContext; _currentUser = currentUser; _tenantApi = tenantApi; + _canteenSettingService = canteenSettingService; _businessPlacePermissionsApi = businessPlacePermissionsApi; } @@ -110,7 +114,7 @@ public class BalanceService : IBalanceService if (device == null) { - return new Pagination() + return new Pagination { Data = new List() }; @@ -119,28 +123,31 @@ public class BalanceService : IBalanceService if (request.SearchDate.HasValue) { request.Start = request.SearchDate; - request.End = request.SearchDate.Value.AddDays(1); + request.End = request.SearchDate; } - // var switchTime = await _canteenSettingService.GetBusinessSwitchTimeAsync(device.TenantId); - // if (switchTime.HasValue) - // { - // var setTime = date.Add(switchTime.Value.ToTimeSpan()); - // if (DateTime.Now < setTime) - // date = date.AddDays(-1); - // } + var switchTime = await _canteenSettingService.GetBusinessSwitchTimeAsync(device.TenantId); + if (switchTime.HasValue) + { + var setTime = request.Start!.Value.Add(switchTime.Value.ToTimeSpan()); + if (DateTime.Now < setTime) + { + request.Start = request.Start.Value.AddDays(-1); + request.End = request.End!.Value.AddDays(-1); + } + } var page = await _dbContext.Queryable() .LeftJoin((record, ga) => record.UserNo == ga.No) .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) .LeftJoin((record, ga, department, bPlace, imageRecord) => imageRecord.No == record.No) - .WhereIF(request.UserCode.IsPresent(), record => record.UserCode == request.UserCode) + .Where(record => record.DeviceUniqueNo == device.UniqueNo) .Where(record => record.CostDate >= request.Start && record.CostDate <= request.End) - .Where(record => record.DeviceUniqueNo == device.UniqueNo || record.DeviceUniqueNo == device.Code.ToString()) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) - .OrderBy(record => record.CreateTime, OrderByType.Desc) + .WhereIF(request.UserCode.IsPresent(), record => record.UserCode == request.UserCode) + .OrderBy(record => record.CostDateTime, OrderByType.Desc) .Select((record, ga, department, bPlace, imageRecord) => new BalanceRecordDeviceResponse { Id = record.Id, @@ -166,7 +173,7 @@ public class BalanceService : IBalanceService //消费总金额 var sum = await _dbContext.Queryable() .Where(record => record.CostDate >= request.Start && record.CostDate <= request.End) - .Where(record => record.DeviceUniqueNo == device.UniqueNo || record.DeviceUniqueNo == device.Code.ToString()) + .Where(record => record.DeviceUniqueNo == device.UniqueNo) .Where(record => record.Type == BalanceRecordTypeEnumType.Out && record.Status == BalanceRecordStatusEnumType.Valid) .SumAsync(record => SqlFunc.Abs(SqlFunc.IsNull(record.Amount, 0)));