From abe6a52ee15a74a64dd6027789dc0ebbd0629040 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 31 May 2024 16:04:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E7=A7=BB=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Device/Response/DevicePageResponse.cs | 10 --- .../Services/Implements/DeviceService.cs | 30 +------- .../Controllers/GainfoCardsController.cs | 2 +- .../Organization/Request/ChangeCardRequest.cs | 17 ----- .../Request/GainfoChangeCardRequest.cs | 29 ++++++++ .../Services/IGainfoCardService.cs | 14 +++- .../Services/Implements/GainfoCardService.cs | 39 +++++----- .../Implements/GainfoPermissionService.cs | 73 +++---------------- .../Services/Implements/RoleService.cs | 2 +- 9 files changed, 70 insertions(+), 146 deletions(-) delete mode 100644 Src/Dlhis.Basic/Organization/Request/ChangeCardRequest.cs create mode 100644 Src/Dlhis.Basic/Organization/Request/GainfoChangeCardRequest.cs diff --git a/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs b/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs index 497d66f8..1ed12ab1 100644 --- a/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs +++ b/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs @@ -115,16 +115,6 @@ public class DevicePageResponse } } - /// - /// 消费总额 - /// - public decimal Amount { get; set; } - - /// - /// 消费人次 - /// - public int UserCount { get; set; } - /// /// 营业点code /// diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 567b0d76..b8c4cbdc 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -54,30 +54,6 @@ public class DeviceService : IDeviceService }, true) .ToPageListAsync(request); - var deviceUniqueNos = page.Data.Select(x => x.UniqueNo).ToList(); - - var balanceInfos = await _dbContext.Queryable().Where(x => x.Type == BalanceRecordTypeEnumType.Out) - .Where(x=>x.Status == BalanceRecordStatusEnumType.Valid) - .Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo)) - .Select(x => new - { - x.DeviceUniqueNo, - Amount = SqlFunc.AggregateSum(x.Amount), - UserCount = SqlFunc.AggregateDistinctCount(x.UserCode) - }) - .GroupBy(x => x.DeviceUniqueNo) - .ToListAsync(); - - page.Data.ForEach(device => - { - var info = balanceInfos.FirstOrDefault(x => x.DeviceUniqueNo == device.UniqueNo); - if (info != null) - { - device.Amount = info.Amount; - device.UserCount = info.UserCount; - } - }); - return page; } @@ -180,7 +156,7 @@ public class DeviceService : IDeviceService private async Task GenerateUploadRecordLogForBeginTimeAsync(DeviceEntity entity) { - if (entity.Type == DeviceTypeEnumType.Door || entity.Type == DeviceTypeEnumType.Attendance) + if (entity.Type is DeviceTypeEnumType.Door or DeviceTypeEnumType.Attendance) { var exists = await _dbContext.Queryable() .Where(x => x.DeviceUniqueNo == entity.UniqueNo) @@ -244,10 +220,6 @@ public class DeviceService : IDeviceService { throw new UserFriendlyException("连接信息参数格式不正确"); } - catch (Exception) - { - throw; - } } diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoCardsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoCardsController.cs index 3e04aa6d..55e21c4d 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoCardsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoCardsController.cs @@ -29,7 +29,7 @@ public class GainfoCardsController : ControllerBase /// [HttpPost("change")] [Transactional] - public async Task ChangeCardAsync(ChangeCardRequest request) + public async Task ChangeCardAsync(GainfoChangeCardRequest request) { await _gainfoCardService.ChangeCardAsync(request); } diff --git a/Src/Dlhis.Basic/Organization/Request/ChangeCardRequest.cs b/Src/Dlhis.Basic/Organization/Request/ChangeCardRequest.cs deleted file mode 100644 index d470812f..00000000 --- a/Src/Dlhis.Basic/Organization/Request/ChangeCardRequest.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace Dlhis.Basic.Organization.Request; - -public class ChangeCardRequest -{ - [Required] - public string UserNo { get; set; } - - [Required] - public string CardNo { get; set; } - - [Required] - public string Reason { get; set; } - - public string Remark { get; set; } -} diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoChangeCardRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoChangeCardRequest.cs new file mode 100644 index 00000000..f8951ca0 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Request/GainfoChangeCardRequest.cs @@ -0,0 +1,29 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.Basic.Organization.Request; + +public class GainfoChangeCardRequest +{ + /// + /// 档案号 + /// + [Required(ErrorMessage = "档案号不能为空")] + public string UserNo { get; set; } + + /// + /// 卡号 + /// + [Required(ErrorMessage = "卡号不能为空")] + public string CardNo { get; set; } + + /// + /// 事由 + /// + [Required(ErrorMessage = "事由不能为空")] + public string Reason { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoCardService.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoCardService.cs index 8bbce4c7..fff343ca 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoCardService.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoCardService.cs @@ -5,7 +5,17 @@ namespace Dlhis.Basic.Organization.Services; public interface IGainfoCardService { - Task ChangeCardAsync(ChangeCardRequest request); + /// + /// 换卡 + /// + /// + /// + Task ChangeCardAsync(GainfoChangeCardRequest request); + /// + /// 获取换卡记录 + /// + /// + /// Task> GetChangeRecordsAsync(string userNo); -} +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs index 8a826f5c..4524a1ae 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoCardService.cs @@ -3,6 +3,7 @@ using Dlhis.Basic.Organization.Response; using Dlhis.Entity.Basic.Entity; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Utils.Extensions; +using Mapster; namespace Dlhis.Basic.Organization.Services.Implements; @@ -17,7 +18,7 @@ public class GainfoCardService : IGainfoCardService _gainfoStore = gainfoStore; } - public async Task ChangeCardAsync(ChangeCardRequest request) + public async Task ChangeCardAsync(GainfoChangeCardRequest request) { var gainfo = await _gainfoStore.Queryable().Where(x => x.No == request.UserNo).FirstAsync(); gainfo.ThrowIfNull("档案不存在"); @@ -25,30 +26,24 @@ public class GainfoCardService : IGainfoCardService gainfo.CardNo = request.CardNo; await _gainfoStore.UpdateAsync(gainfo); - await _dbContext.InsertAsync(new GainfoCardRecordEntity - { - UserNo = request.UserNo, - CardNo = request.CardNo, - Reason = request.Reason, - Remark = request.Remark, - }); + await _dbContext.InsertAsync(request.Adapt()); } public async Task> GetChangeRecordsAsync(string userNo) { return await _dbContext.Queryable() - .LeftJoin((x, ga) => x.UserNo == ga.No) - .Where(x => x.UserNo == userNo) - .Select((x, ga) => new ChangeCardResponse - { - UserNo = x.UserNo, - UserCode = ga.Code, - UserName = ga.Name, - CardNo = x.CardNo, - Reason = x.Reason, - Remark = x.Remark, - CreateTime = x.CreateTime, - }) - .ToListAsync(); + .LeftJoin((x, ga) => x.UserNo == ga.No) + .Where(x => x.UserNo == userNo) + .Select((x, ga) => new ChangeCardResponse + { + UserNo = x.UserNo, + UserCode = ga.Code, + UserName = ga.Name, + CardNo = x.CardNo, + Reason = x.Reason, + Remark = x.Remark, + CreateTime = x.CreateTime + }) + .ToListAsync(); } -} +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index 37724450..52ec42c9 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -4,8 +4,6 @@ using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Places.Response; using Dlhis.Entity.Basic.Entity; -using Dlhis.Entity.Canteen.Entities; -using Dlhis.Entity.Canteen.Enums; using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; @@ -13,7 +11,6 @@ using Kurisu.AspNetCore.DataAccess.Dto; using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Utils.Extensions; -using SqlSugar; namespace Dlhis.Basic.Organization.Services.Implements; @@ -80,19 +77,15 @@ public class GainfoPermissionService : IGainfoPermissionService var groups = RecursionGetNext(currentGroup, deviceGroups).ToList(); - //用户所有deviceCode权限 - var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(userNo); - - var lst = new List(); - foreach (var groupcode in groups) + return groups.Select(groupCode => { - var nos = await _dbContext.Queryable() + var nos = _dbContext.Queryable() .LeftJoin((x, d) => x.DeviceCode == d.Code) - .Where(x => groupcode == x.GroupCode) + .Where(x => groupCode == x.GroupCode) .Select((x, d) => d.UniqueNo) - .ToListAsync(); + .ToList(); - var page = await _dbContext.Queryable() + var page = _dbContext.Queryable() .LeftJoin((d, dt) => d.TemplateCode == dt.Code) .LeftJoin((d, dt, dr) => d.UniqueNo == dr.DeviceUniqueNo) .LeftJoin((d, dt, dr, bp) => dr.BusinessPlaceCode == bp.Code) @@ -114,39 +107,14 @@ public class GainfoPermissionService : IGainfoPermissionService ConnectionInfo = d.ConnectionInfo, Enable = d.Enable, }) - .ToListAsync(); - var deviceUniqueNos = page.Select(x => x.UniqueNo).ToList(); + .ToList(); - var balanceInfos = await _dbContext.Queryable().Where(x => x.Type == BalanceRecordTypeEnumType.Out) - .Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo)) - .Select(x => new - { - x.DeviceUniqueNo, - Amount = SqlFunc.AggregateSum(x.Amount), - UserCount = SqlFunc.AggregateDistinctCount(x.UserCode) - }) - .GroupBy(x => x.DeviceUniqueNo) - .ToListAsync(); - - page.ForEach(device => + return new GetDevicesUnderGroupByUserNoResponse { - var info = balanceInfos.FirstOrDefault(x => x.DeviceUniqueNo == device.UniqueNo); - if (info != null) - { - device.Amount = info.Amount; - device.UserCount = info.UserCount; - } - }); - - var res = new GetDevicesUnderGroupByUserNoResponse - { - GroupCode = groupcode, + GroupCode = groupCode, Devices = page }; - lst.Add(res); - } - - return lst; + }).ToList(); } public async Task> GetAssignDeviceCodesAsync(DeviceAssRequest request) @@ -170,29 +138,6 @@ public class GainfoPermissionService : IGainfoPermissionService }, true) .ToPageListAsync(request); - var deviceUniqueNos = page.Data.Select(x => x.UniqueNo).ToList(); - - var balanceInfos = await _dbContext.Queryable().Where(x => x.Type == BalanceRecordTypeEnumType.Out) - .Where(x => deviceUniqueNos.Contains(x.DeviceUniqueNo)) - .Select(x => new - { - x.DeviceUniqueNo, - Amount = SqlFunc.AggregateSum(x.Amount), - UserCount = SqlFunc.AggregateDistinctCount(x.UserCode) - }) - .GroupBy(x => x.DeviceUniqueNo) - .ToListAsync(); - - page.Data.ForEach(device => - { - var info = balanceInfos.FirstOrDefault(x => x.DeviceUniqueNo == device.UniqueNo); - if (info != null) - { - device.Amount = info.Amount; - device.UserCount = info.UserCount; - } - }); - return page; } diff --git a/Src/Dlhis.Sys/Identity/Services/Implements/RoleService.cs b/Src/Dlhis.Sys/Identity/Services/Implements/RoleService.cs index c4af0913..a0cf79e9 100644 --- a/Src/Dlhis.Sys/Identity/Services/Implements/RoleService.cs +++ b/Src/Dlhis.Sys/Identity/Services/Implements/RoleService.cs @@ -88,7 +88,7 @@ public class RoleService : IRoleService if (request.RoleId.HasValue) { var existsRole = await _dbContext.Queryable().Where(x => x.Id == request.RoleId).AnyAsync(); - existsUser.ThrowIfFalse("分配的角色不存在"); + existsRole.ThrowIfFalse("分配的角色不存在"); if (userRole == null) {