From c384f24cc1bfc7ab9d8b7b407fb4c7db01ed9928 Mon Sep 17 00:00:00 2001 From: zhaozhenjing Date: Fri, 24 Oct 2025 09:47:44 +0800 Subject: [PATCH] =?UTF-8?q?[MODIFY]=E7=9F=AD=E4=BF=A1=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E4=BA=BA=E5=AD=97=E6=AE=B5=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BA=BA=E5=91=98=E4=BF=AE=E6=94=B9=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E8=80=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/Admins/AppSMS.cs | 1 + .../Impl/Admins/SMSService.cs | 12 ++++-- .../Impl/Admins/UserService.cs | 6 ++- .../Business/AppBusinessApplicationService.cs | 6 +-- .../Impl/Business/AppEarlyWarningService.cs | 10 +++++ .../Impl/Business/AppManagementService.cs | 41 +++++++++++-------- .../Business/AppViolationStatisticsService.cs | 20 +++++++-- .../AppCaseManagementService.cs | 34 ++++++++++++--- .../AppFileAccessRecordsService.cs | 8 +++- .../Impl/Logs/OperationLogService.cs | 10 +++-- .../Admins/SMS/Output/SmsListDto.cs | 5 +++ 11 files changed, 114 insertions(+), 39 deletions(-) diff --git a/src/1.datas/ATS.NonCustodial.Domain/Entities/Admins/AppSMS.cs b/src/1.datas/ATS.NonCustodial.Domain/Entities/Admins/AppSMS.cs index 2c1e9dd..8ec4c07 100644 --- a/src/1.datas/ATS.NonCustodial.Domain/Entities/Admins/AppSMS.cs +++ b/src/1.datas/ATS.NonCustodial.Domain/Entities/Admins/AppSMS.cs @@ -20,6 +20,7 @@ namespace ATS.NonCustodial.Domain.Entities.Admins { Id = id; } + public string receiver { get; set; } public string phone { get; set; } = string.Empty; diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs index efb6a9f..48b2131 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs @@ -66,9 +66,9 @@ namespace ATS.NonCustodial.Application.Impl.Admins foreach (var item in rtn.Data) { - var peoson = await _appUserRepository.AsQueryable(false, true).Where(w => w.Phone == item.Phone).ToListAsync(); - item.Name = peoson.FirstOrDefault()?.UserName; - switch(item.Type) + + item.Name = item.Receiver; + switch (item.Type) { case "CheckCode": item.TypeDes = "验证码"; break; @@ -217,6 +217,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins sendMessage = new string[] { supervisedPerson, year, month, day, msg }; templateId = "2534751"; addSMS.type = "Alert"; + addSMS.receiver = supervisedPerson; } else if (alert == MessageAlertTypeEnum.Approved) { @@ -224,6 +225,8 @@ namespace ATS.NonCustodial.Application.Impl.Admins sendMessage = new string[] { supervisedPerson, year, month, day, msg }; templateId = "2535130"; addSMS.type = "Approved"; + addSMS.receiver = supervisedPerson; + } else if (alert == MessageAlertTypeEnum.ReviewNotification) { @@ -231,6 +234,8 @@ namespace ATS.NonCustodial.Application.Impl.Admins sendMessage = new string[] { supervisor, supervisedPerson, year, month, day, msg }; templateId = "2535127"; addSMS.type = "ReviewNotification"; + addSMS.receiver = supervisor; + } else { @@ -238,6 +243,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins sendMessage = new string[] { supervisor, supervisedPerson, year, month, day, msg }; templateId = "2535150"; addSMS.type = "RegulatoryAlert"; + addSMS.receiver = supervisor; } // 发送短信 var sendResult = SendSMS(phone, sendMessage, templateId); diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Admins/UserService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Admins/UserService.cs index 7a607f1..55301a4 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Admins/UserService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Admins/UserService.cs @@ -538,7 +538,11 @@ namespace ATS.NonCustodial.Application.Impl.Admins w => w.DataStatus)!); if (input.RoleIds != null && input.RoleIds.Count() > 0) { - await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id && input.RoleIds.Contains(a.RoleId)); + var roleList = await _roleRepository.AsQueryable(false, true) + .Where(w=> w.Code == "admin" || w.Code == "supervisor") + .Select(s=>s.Id).ToListAsync(); + + await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id && roleList.Contains(a.RoleId)); if (input.RoleIds == null || !input.RoleIds.Any()) return ResultOutput.Ok(); { diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppBusinessApplicationService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppBusinessApplicationService.cs index 80a2ba1..5a9f8e2 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppBusinessApplicationService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppBusinessApplicationService.cs @@ -246,10 +246,10 @@ namespace ATS.NonCustodial.Application.Impl.Business w = w.AndNotNull(w => w.ApplicationTypeId == input.ApplicationTypeId && w.ActiveTimePeriodBegin == input.ActiveTimePeriodBegin && - w.ActiveTimePeriodEnd == input.ActiveTimePeriodEnd + w.ActiveTimePeriodEnd == input.ActiveTimePeriodEnd && + w.SupervisedPersonId == User.Id , input.ApplicationTypeId != default); - - msg = $"当前申请类型{input.ApplicationTypeId}在当前时间段:{input.ActiveTimePeriodBegin}-{input.ActiveTimePeriodEnd}已存在"; + msg = $"当前申请类型{applicationType.Name}在当前时间段:{input.ActiveTimePeriodBegin}-{input.ActiveTimePeriodEnd}已存在"; return (w, msg); }); diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppEarlyWarningService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppEarlyWarningService.cs index 6cdde37..3ef498c 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppEarlyWarningService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppEarlyWarningService.cs @@ -305,6 +305,8 @@ namespace ATS.NonCustodial.Application.Impl.Business var express = await GetExpression(input, _appEarlyWarningRepository.AsQueryable(false, true)); // 先应用案件ID过滤条件 express = express.Where(w => caseIdList.Contains(w.CaseId)); + + // 然后再获取分页数据 return await base.GetEntityAddPageAsync(input, express); } @@ -475,7 +477,15 @@ namespace ATS.NonCustodial.Application.Impl.Business .WhereIf(pageInput.UserSearch != null, p => p.SupervisedPersonId == pageInput.UserSearch!.ModifiedUserId); var express = base.GetEntityAddExpression(pageInput, query); + var userRole = await _userService.IsAdmin(null); + //非管理员只能看到自己监管的案件 + if (!userRole.IsAdmin) + { + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); + express = express.Where(w => supervisorCaseList.Contains(w.Id)); + } return express; } diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppManagementService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppManagementService.cs index 50f742c..fe43d0b 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppManagementService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppManagementService.cs @@ -448,7 +448,7 @@ namespace ATS.NonCustodial.Application.Impl.Business var data = await _appCaseManagementService.GetCaseSuperviseList(); - var caseIds = data.Where(w=> caseIdList.Contains(w.CaseId)).Select(w => w.CaseId).ToList(); + var caseIds = data.Where(w => caseIdList.Contains(w.CaseId)).Select(w => w.CaseId).ToList(); //业务申请列表 var businessList = await _appBusinessApplicationRepository @@ -838,24 +838,28 @@ namespace ATS.NonCustodial.Application.Impl.Business [HttpPost] public async Task AddAppBusinessAsync(AppBusinessApplicationCreateOrModifyInput input) { - //根据案件找监管人,找到多个,均发送消息提醒 - var currentUserCase = await base.GetCurrentSupervisePersonProcessingCase(User.Id); + var result = await _appBusinessApplicationService.CreateOrModify(input); + if (result.Code == 200) + { + //根据案件找监管人,找到多个,均发送消息提醒 + var currentUserCase = await base.GetCurrentSupervisePersonProcessingCase(User.Id); - var supervisorList = await _appSupervisorRepository - .AsQueryable(false, true) - .Where(w => w.CaseId == currentUserCase.CaseId) - .ToListAsync(); - var dic = await _appDictionaryService.GetDicByDicId(input.ApplicationTypeId); + var supervisorList = await _appSupervisorRepository + .AsQueryable(false, true) + .Where(w => w.CaseId == currentUserCase.CaseId) + .ToListAsync(); + var dic = await _appDictionaryService.GetDicByDicId(input.ApplicationTypeId); - //var applicationType = await base.GetDictionariesOutput("application_type", "df"); + //var applicationType = await base.GetDictionariesOutput("application_type", "df"); - foreach (var supervisor in supervisorList) - { - var user = await _appUserRepository.AsQueryable(false, true).Where(w => w.Id == supervisor.SupervisorId).ToListAsync(); - //发短信给监管人,提醒处理审批 - await _smsService.SendMessageSMS(MessageAlertTypeEnum.ReviewNotification, user.FirstOrDefault().UserName, user.FirstOrDefault().Phone, DateTime.Now, dic.Name, "", currentUserCase.SupervisedPersonName); + foreach (var supervisor in supervisorList) + { + var user = await _appUserRepository.AsQueryable(false, true).Where(w => w.Id == supervisor.SupervisorId).ToListAsync(); + //发短信给监管人,提醒处理审批 + await _smsService.SendMessageSMS(MessageAlertTypeEnum.ReviewNotification, user.FirstOrDefault().UserName, user.FirstOrDefault().Phone, DateTime.Now, dic.Name, "", currentUserCase.SupervisedPersonName); + } } - return await _appBusinessApplicationService.CreateOrModify(input); + return result; } /// @@ -1181,7 +1185,7 @@ namespace ATS.NonCustodial.Application.Impl.Business join ev in _appEarlyWarningViewStatisticsRepository.AsQueryable(false, true) on e.Id equals ev.AppEarlyWarningId join cm in _appCaseManagementRepository.AsQueryable(false, true) on e.CaseId equals cm.Id - where ev.SubscriberId == User.Id && caseIdList.Contains(e.CaseId) && cm.CaseProgress!=CaseProgressEnum.Closed + where ev.SubscriberId == User.Id && caseIdList.Contains(e.CaseId) && cm.CaseProgress != CaseProgressEnum.Closed select new AppRemindListDto() { Id = e.Id, @@ -1197,7 +1201,7 @@ namespace ATS.NonCustodial.Application.Impl.Business EarlyWarningTypeId = e.EarlyWarningTypeId }) .WhereIf(input.CheckStatus.HasValue, w => w.CheckStatus == input.CheckStatus) - .WhereIf(input.EarlyWarningTypeId.HasValue,w=>w.EarlyWarningTypeId == input.EarlyWarningTypeId) + .WhereIf(input.EarlyWarningTypeId.HasValue, w => w.EarlyWarningTypeId == input.EarlyWarningTypeId) .ToListAsync(); earlyList = earlyList.Distinct((x, y) => x.CaseId == y.CaseId && x.SupervisedPersonId == y.SupervisedPersonId && x.CreatedTime == y.CreatedTime).OrderByDescending(q => q.CreatedTime).ToList(); if (!input.CheckStatus.HasValue) @@ -1318,6 +1322,9 @@ namespace ATS.NonCustodial.Application.Impl.Business .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + + + var data = (await base.GetCurrentUserCaseListAsync()) .Where(W => W.AppCaseManagement != null && W.AppCaseSupervisedPerson != null && W.AppCaseSupervisor != null && W.AppCaseManagement.CaseProgress != CaseProgressEnum.Pending && caseIdList.Contains(W.AppCaseManagement.Id) && caseIdList.Contains(W.AppCaseSupervisedPerson.CaseId) && caseIdList.Contains(W.AppCaseSupervisor.CaseId)) .WhereIf(name.NotNull(), w => w.AppCaseSupervisedPerson.SupervisedPersonName!.Contains(name)) diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs index a41bd76..11c1db3 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs @@ -311,11 +311,14 @@ namespace ATS.NonCustodial.Application.Impl.Business .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); - + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); var caseList = await _appCaseManagementRepository.AsQueryable(false, true) .Where(w => caseIdList.Contains(w.Id)) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) + .WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id)) .ToListAsync(); var applicationType = await base.GetDictionariesOutput("early_warning_type", "notClocked"); @@ -379,11 +382,14 @@ namespace ATS.NonCustodial.Application.Impl.Business .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); - + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); var caseList = await _appCaseManagementRepository.AsQueryable(false, true) .Where(w => caseIdList.Contains(w.Id)) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) + .WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id)) .ToListAsync(); var applicationType = await base.GetDictionariesOutput("early_warning_type", "LeaveArea"); @@ -449,11 +455,14 @@ namespace ATS.NonCustodial.Application.Impl.Business .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); - + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); var caseList = await _appCaseManagementRepository.AsQueryable(false, true) .Where(w => caseIdList.Contains(w.Id)) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) + .WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id)) .ToListAsync(); var applicationType = await base.GetDictionariesOutput("early_warning_type", "LeaveArea"); @@ -513,11 +522,14 @@ namespace ATS.NonCustodial.Application.Impl.Business .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); - + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); var caseList = await _appCaseManagementRepository.AsQueryable(false, true) .Where(w => caseIdList.Contains(w.Id)) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) + .WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id)) .ToListAsync(); var applicationType = await base.GetDictionariesOutput("early_warning_type", "notClocked"); diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs index 9a0f68b..da1426d 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs @@ -16,6 +16,7 @@ using ATS.NonCustodial.Domain.Shared.Enums; using ATS.NonCustodial.Domain.Shared.OrmRepositories.Basic.EfCore; using ATS.NonCustodial.DynamicApi; using ATS.NonCustodial.DynamicApi.Attributes; +using ATS.NonCustodial.Shared.Common.Auth; using ATS.NonCustodial.Shared.Common.Dtos; using ATS.NonCustodial.Shared.Common.Enums; using ATS.NonCustodial.Shared.Common.UnifiedResults; @@ -145,11 +146,24 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + + //当前用户角色 + var userRole = await _userService.IsAdmin(null); var express = await GetExpression(input, _appCaseManagementRepository.AsQueryable(false, true)); // 先应用案件ID过滤条件 express = express.Where(w => caseIdList.Contains(w.Id)); + //非管理员只能看到自己监管的案件 + if(!userRole.IsAdmin) + { + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); + express= express.Where(w => supervisorCaseList.Contains(w.Id)); + } + + + var rtn = await base.GetPageAsync(input, express); var position = await _appDictionaryService.GetDicByDicId(User.PositionId); @@ -168,7 +182,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements } else if (listDto.CaseProgress == CaseProgressEnum.Examination) { - if (position.Code == "inquisitor" || User.IsAdmin) + if (position.Code == "inquisitor" ) { listDto.ReviewPermission = "3";//显示移送法院 结束案件 } @@ -179,7 +193,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements } else if (listDto.CaseProgress == CaseProgressEnum.Hear) { - if (position.Code == "judge" || User.IsAdmin) + if (position.Code == "judge") { listDto.ReviewPermission = "4";//显示查看 结束案件 } @@ -963,22 +977,27 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); + var query = _appCaseManagementRepository .AsQueryable(false, true) - .Where(w => w.CaseProgress == CaseProgressEnum.Closed) + .Where(w => w.CaseProgress == CaseProgressEnum.Closed && caseIdList.Contains(w.Id)) .WhereIf(input.KeyWord.NotNull(), a => a.Name.Contains(input.KeyWord)) .WhereIf(input.TimeSearch.BeginTime.Length == 2, w => w.CaseBeginTime > input.TimeSearch.BeginTime[0] && w.CaseBeginTime < input.TimeSearch.BeginTime[1].AddDays(1)) .WhereIf(input.TimeSearch.EndTime.Length == 2, w => w.CaseClosedTime > input.TimeSearch.EndTime[0] && w.CaseClosedTime <= input.TimeSearch.EndTime[1].AddDays(1)) - .Where(w => caseIdList.Contains(w.Id)); + .WhereIf(!userRole.IsAdmin , w=>supervisorCaseList.Contains(w.Id)); var pageData = await query.ProjectTo(Mapper.ConfigurationProvider) .PagedAsync(input) .ConfigureAwait(false); - var caseIds = pageData.Data.Select(w => w.Id); + + //涉事人员(被监管人员) var personInvolvedList = await _appSupervisedPersonRepository .AsQueryable(false, true) @@ -1012,6 +1031,10 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); + var data = await _appCaseManagementRepository.AsQueryable(false, true) .Where(w => caseIds.Contains(w.Id)) @@ -1019,6 +1042,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements .WhereIf(input.TimeSearch.BeginTime.Length == 2, w => w.CreatedTime > input.TimeSearch.BeginTime[0] && w.CreatedTime < input.TimeSearch.BeginTime[1].AddDays(1)) .WhereIf(input.TimeSearch.EndTime.Length == 2, w => w.CaseClosedTime > input.TimeSearch.EndTime[0] && w.CaseClosedTime < input.TimeSearch.EndTime[1].AddDays(1)) .WhereIf(input.ajtype.NotNull(), w => w.CaseTypeId == input.ajtype.ToLong()) + .WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id)) .ToListAsync(); var dataGroup = data.GroupBy(w => w.CaseTypeId); diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/MaterialManager/AppFileAccessRecordsService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/MaterialManager/AppFileAccessRecordsService.cs index 293efe0..32d2e02 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/MaterialManager/AppFileAccessRecordsService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/MaterialManager/AppFileAccessRecordsService.cs @@ -161,10 +161,14 @@ namespace ATS.NonCustodial.Application.Impl.Business.MaterialManager .Where(w => limits.Contains(w.UnitId.ToString())) .ToListAsync(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + var userRole = await _userService.IsAdmin(null); + var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync(); //获取案件及案件被监管人 - // var caseIds = await (await base.GetCurrentUserCaseListAsync()).Select(w => w.AppCaseManagement.Id).ToListAsync(); - var SupervisedPersonIds = await base._appSupervisedPersonRepository.AsQueryable(false, true).Where(q => caseIdList.Contains(q.CaseId)).Select(q=>q.SupervisedPersonId).ToListAsync(); + // var caseIds = await (await base.GetCurrentUserCaseListAsync()).Select(w => w.AppCaseManagement.Id).ToListAsync(); + var SupervisedPersonIds = await base._appSupervisedPersonRepository.AsQueryable(false, true).Where(q => caseIdList.Contains(q.CaseId)) + .WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.CaseId)).Select(q=>q.SupervisedPersonId).ToListAsync(); //获取监管人查阅次数 var queryable = await GetExpression(input, _appFileAccessRecordsRepository.AsQueryable(false, true).Where(q=> SupervisedPersonIds.Contains(q.SupervisedPersonId))) .ToListAsync(); diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Logs/OperationLogService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Logs/OperationLogService.cs index 17e8b14..09914a3 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Logs/OperationLogService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Logs/OperationLogService.cs @@ -53,7 +53,7 @@ namespace ATS.NonCustodial.Application.Impl.Logs [HttpPost] public async Task GetPageAsync(LogGetPageDto input) { - var express = await GetExpression(input, _oprationLogRepository.AsQueryable(false, true).Take(3000)); + var express = await GetExpression(input); var rtn = await base.GetPageAsync(input, express); return ResultOutput.Ok(rtn); @@ -133,15 +133,17 @@ namespace ATS.NonCustodial.Application.Impl.Logs /// /// /// - private async Task> GetExpression(LogGetPageDto pageInput, IQueryable query) + private async Task> GetExpression(LogGetPageDto pageInput) { var userIds = await _appCaseManagementService.GetUserIdListByCurrentUser(); - query = query + var query = _oprationLogRepository.AsQueryable(false, true) .Where(w => w.CreatedUserId != null && userIds.Contains(w.CreatedUserId.Value)) .WhereIf(pageInput.OperatorName.NotNull(), w => w.CreatedUserName.Contains(pageInput.OperatorName)) .WhereIf(pageInput.Device.NotNull(), w => w.Device==pageInput.Device) - .WhereIf(pageInput.NickName.NotNull(), w => w.NickName==pageInput.NickName); + .WhereIf(pageInput.NickName.NotNull(), w => w.NickName==pageInput.NickName) + .OrderByDescending(w=>w.CreatedTime) + .Take(3000); var express = base.GetEntityAddExpression(pageInput, query); diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs index 737fdb4..48cf42f 100644 --- a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs @@ -46,5 +46,10 @@ namespace ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Output /// 详细描述 /// public string? Message { get; set; } + + /// + /// 接收人姓名 + /// + public string? Receiver { get; set; } } }