tangjiang 8 månader sedan
förälder
incheckning
e6f8e72397

+ 15 - 3
src/Hotline.Api/Controllers/OrderController.cs

@@ -1585,7 +1585,13 @@ public class OrderController : BaseController
     [HttpGet("delay")]
     public async Task<PagedDto<OrderDelayDto>> DelayList([FromQuery] DelayListDto dto)
     {
-        var (total, items) = await _orderDelayRepository.Queryable(canView: true)
+        bool canView = true;
+        var systemAdministrator = _systemSettingCacheManager.GetSetting(SettingConstants.SystemAdministrator)?.SettingValue[0];
+
+        if (!string.IsNullOrEmpty(systemAdministrator) && (_sessionContext.Roles.Contains(systemAdministrator) || _sessionContext.Roles.Contains(RoleSeedData.AdminRole)))
+            canView = false;
+
+        var (total, items) = await _orderDelayRepository.Queryable(canView: canView)
             .Includes(d => d.Order)
             .Includes(d => d.Workflow)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
@@ -1607,9 +1613,15 @@ public class OrderController : BaseController
     [HttpGet("wait_delay")]
     public async Task<PagedDto<OrderDelayDto>> WaitDelayList([FromQuery] DelayListDto dto)
     {
+        bool canView = true;
+        var systemAdministrator = _systemSettingCacheManager.GetSetting(SettingConstants.SystemAdministrator)?.SettingValue[0];
+
+        if (!string.IsNullOrEmpty(systemAdministrator) && (_sessionContext.Roles.Contains(systemAdministrator) || _sessionContext.Roles.Contains(RoleSeedData.AdminRole)))
+            canView = false;
+
         var isHandled = dto.IsApply.HasValue && dto.IsApply.Value;
         var (total, items) = await _orderDelayRepository
-            .Queryable(hasHandled: isHandled)
+            .Queryable(canView: canView, hasHandled: isHandled)
             .Includes(d => d.Order)
             .Includes(d => d.Workflow)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
@@ -3196,7 +3208,7 @@ public class OrderController : BaseController
                 canUpdateOrderSender);
             //发送短信即将超期
             _capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
-           
+
         }
         else if (dto.FlowDirection is EFlowDirection.CenterToCenter)
         {

+ 5 - 0
src/Hotline/Settings/SettingConstants.cs

@@ -379,5 +379,10 @@ namespace Hotline.Settings
         /// 是否开启应急管理局推送业务
         /// </summary>
         public const string IsOpenContingencyManagement = "IsOpenContingencyManagement";
+
+        /// <summary>
+        /// 系统管理员角色
+        /// </summary>
+        public const string SystemAdministrator = "SystemAdministrator";
     }
 }