|
@@ -101,6 +101,40 @@ namespace Hotline.Api.Controllers
|
|
|
var id = await _orderRevocationRepository.AddAsync(orderRevocation, HttpContext.RequestAborted);
|
|
|
if (!string.IsNullOrEmpty(id))
|
|
|
{
|
|
|
+ #region 处理短信业务
|
|
|
+ //如果需要发短信、处理短信业务
|
|
|
+ if (dto.IsSendSms && !string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ { //查询当前工单的实际办理节点,如果在热线中心不处理,如果在部门需要更新期满时间
|
|
|
+ var workflow = await _workflowDomainService.GetWorkflowAsync(order.WorkflowId, withSteps: true, withTraces: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ var nowWorkflow = workflow.Steps.Where(p => p.Id == order.ActualHandleStepId && p.BusinessType >= EBusinessType.Department && p.BusinessType <= EBusinessType.DepartmentLeader).FirstOrDefault();
|
|
|
+ //在部门才需要发送短信
|
|
|
+ if (nowWorkflow != null && order.CenterToOrgTime.HasValue)
|
|
|
+ {
|
|
|
+ //处理短信业务
|
|
|
+ var acceptSmsRoleIds = _systemSettingCacheManager.GetSetting(SettingConstants.AcceptSmsRoleIds)?.SettingValue;
|
|
|
+ //查询部门所有账号
|
|
|
+ var userlist = await _userRepository.Queryable().Where(x =>
|
|
|
+ x.OrgId == order.CurrentHandleOrgId && !string.IsNullOrEmpty(x.PhoneNo) &&
|
|
|
+ x.Roles.Any(d => acceptSmsRoleIds.Contains(d.Id))).ToListAsync();
|
|
|
+ //发送短信
|
|
|
+ foreach (var user in userlist)
|
|
|
+ {
|
|
|
+ var messageDto = new Share.Dtos.Push.MessageDto
|
|
|
+ {
|
|
|
+ PushBusiness = EPushBusiness.OrderRevocationSms,
|
|
|
+ PushPlatform = EPushPlatform.Sms,
|
|
|
+ Name = user.Name,
|
|
|
+ TemplateCode = "1016",
|
|
|
+ Params = new List<string>() { order.No },
|
|
|
+ TelNumber = user.PhoneNo,
|
|
|
+ };
|
|
|
+ await _mediator.Publish(new PushMessageNotify(messageDto), HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
#region 处理流程业务
|
|
|
//处理流程业务
|
|
|
//如果开启了流程直接归档,如果没开启流程,开启流程到归档
|
|
@@ -148,39 +182,7 @@ namespace Hotline.Api.Controllers
|
|
|
}).ExecuteCommandAsync();
|
|
|
#endregion
|
|
|
|
|
|
- #region 处理短信业务
|
|
|
- //如果需要发短信、处理短信业务
|
|
|
- if (dto.IsSendSms && !string.IsNullOrEmpty(order.WorkflowId))
|
|
|
- { //查询当前工单的实际办理节点,如果在热线中心不处理,如果在部门需要更新期满时间
|
|
|
- var workflow = await _workflowDomainService.GetWorkflowAsync(order.WorkflowId, withSteps: true, withTraces: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
- var nowWorkflow = workflow.Steps.Where(p => p.Id == order.ActualHandleStepId && p.BusinessType >= EBusinessType.Department && p.BusinessType <= EBusinessType.DepartmentLeader).FirstOrDefault();
|
|
|
- //在部门才需要发送短信
|
|
|
- if (nowWorkflow != null && order.CenterToOrgTime.HasValue)
|
|
|
- {
|
|
|
- //处理短信业务
|
|
|
- var acceptSmsRoleIds = _systemSettingCacheManager.GetSetting(SettingConstants.AcceptSmsRoleIds)?.SettingValue;
|
|
|
- //查询部门所有账号
|
|
|
- var userlist = await _userRepository.Queryable().Where(x =>
|
|
|
- x.OrgId == order.CurrentHandleOrgId && !string.IsNullOrEmpty(x.PhoneNo) &&
|
|
|
- x.Roles.Any(d => acceptSmsRoleIds.Contains(d.Id))).ToListAsync();
|
|
|
- //发送短信
|
|
|
- foreach (var user in userlist)
|
|
|
- {
|
|
|
- var messageDto = new Share.Dtos.Push.MessageDto
|
|
|
- {
|
|
|
- PushBusiness = EPushBusiness.OrderRevocationSms,
|
|
|
- PushPlatform = EPushPlatform.Sms,
|
|
|
- Name = user.Name,
|
|
|
- TemplateCode = "1016",
|
|
|
- Params = new List<string>() { order.No },
|
|
|
- TelNumber = user.PhoneNo,
|
|
|
- };
|
|
|
- await _mediator.Publish(new PushMessageNotify(messageDto), HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- #endregion
|
|
|
+
|
|
|
|
|
|
successNum++;
|
|
|
}
|