|
@@ -101,28 +101,44 @@ namespace Hotline.Application.Handlers.FlowEngine
|
|
|
// // e.Message);
|
|
|
// //}
|
|
|
//}
|
|
|
- try
|
|
|
+
|
|
|
+ var targetStep = notification.TargetStep;
|
|
|
+ switch (targetStep.HandlerType)
|
|
|
{
|
|
|
- var user = await _userRepository.GetAsync(notification.TargetStep.HandlerId);
|
|
|
- if (!string.IsNullOrEmpty(user.PhoneNo))
|
|
|
- {
|
|
|
- var messageDto = new MessageDto()
|
|
|
+ case EHandlerType.Role:
|
|
|
+ case EHandlerType.AssignedUser:
|
|
|
+ var users = await _userRepository.Queryable()
|
|
|
+ .Where(d => targetStep.Handlers.Select(x => x.Key).Contains(d.Id))
|
|
|
+ .ToListAsync(cancellationToken);
|
|
|
+ foreach (var user in users)
|
|
|
{
|
|
|
- PushBusiness = EPushBusiness.OrderCallback,
|
|
|
- ExternalId = order.Id,
|
|
|
- OrderId = order.Id,
|
|
|
- PushPlatform = EPushPlatform.Sms,
|
|
|
- Remark = order.Title,
|
|
|
- Name = user.PhoneNo,
|
|
|
- TemplateCode = "1004",
|
|
|
- Params = new List<string>() { order.No },
|
|
|
- TelNumber = user.PhoneNo,
|
|
|
-
|
|
|
- };
|
|
|
- await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
|
|
|
- }
|
|
|
+ if (!string.IsNullOrEmpty(user.PhoneNo))
|
|
|
+ {
|
|
|
+ var messageDto = new MessageDto()
|
|
|
+ {
|
|
|
+ PushBusiness = EPushBusiness.OrderCallback,
|
|
|
+ ExternalId = order.Id,
|
|
|
+ OrderId = order.Id,
|
|
|
+ PushPlatform = EPushPlatform.Sms,
|
|
|
+ Remark = order.Title,
|
|
|
+ Name = user.PhoneNo,
|
|
|
+ TemplateCode = "1004",
|
|
|
+ Params = new List<string>() { order.No },
|
|
|
+ TelNumber = user.PhoneNo,
|
|
|
+ };
|
|
|
+ await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case EHandlerType.OrgLevel:
|
|
|
+ case EHandlerType.OrgType:
|
|
|
+ case EHandlerType.AssignedOrg:
|
|
|
+ //todo 部门经办人联系方式
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new ArgumentOutOfRangeException();
|
|
|
}
|
|
|
- catch { }
|
|
|
+
|
|
|
break;
|
|
|
case WorkflowModuleConsts.OrderDelay:
|
|
|
var delay = await _orderDelayRepository.GetAsync(workflow.ExternalId, cancellationToken);
|