Selaa lähdekoodia

省工单退回消息推送

田爽 1 kuukausi sitten
vanhempi
commit
c061347840
1 muutettua tiedostoa jossa 5 lisäystä ja 2 poistoa
  1. 5 2
      src/Hotline.Application/Orders/OrderApplication.cs

+ 5 - 2
src/Hotline.Application/Orders/OrderApplication.cs

@@ -64,6 +64,8 @@ using Hotline.Application.FlowEngine;
 using Hotline.Article;
 using Hotline.Share.Dtos.CallCenter;
 using DocumentFormat.OpenXml.Bibliography;
+using Hotline.Identity.Accounts;
+using Hotline.Identity.Roles;
 
 namespace Hotline.Application.Orders;
 
@@ -114,6 +116,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     private readonly IRepository<KnowledgeQuote> _knowledgeQuoteRepository;
     private readonly IRepository<OrderSpecial> _orderSpecialRepository;
     private readonly IRepository<User> _userRepository;
+    private readonly IRepository<Role> _roleRepository;
     private readonly IWorkflowApplication _workflowApplication;
     private readonly ICircularRecordDomainService _circularRecordDomainService;
     private readonly ISessionContextManager _sessionContextManager;
@@ -5390,8 +5393,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             }
             else if (newStep.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(newStep.RoleId))
             {
-
-                var users = await _userRepository.Queryable().Includes(x => x.Roles).Where(x => x.Roles.Where(x => x.Id == newStep.RoleId).Any()).ToListAsync();
+                var role = await _roleRepository.Queryable().FirstAsync(x => x.Name == newStep.RoleId, cancellationToken);
+                var users = await _userRepository.Queryable().Where(x => SqlFunc.Subqueryable<AccountRole>().Where(ar => ar.AccountId == x.Id && ar.RoleId == role.Id ).Any()).ToListAsync();
                 foreach (var user in users)
                 {
                     await _circularRecordDomainService.OrderSendBackCircularMessage(user.Id, user.Name, order, cancellationToken);