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