| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- using Abp;
- using Abp.Dependency;
- using Abp.Notifications;
- using VberZero.BaseSystem.Users;
- using VberZero.DomainService.Notifications.Data;
- namespace VberZero.DomainService.Notifications;
- public class AppNotifier : IAppNotifier, ITransientDependency
- {
- protected INotificationPublisher NotificationPublisher { get; }
- protected INotificationSubscriptionManager NotificationSubscriptionManager { get; }
- public AppNotifier(INotificationPublisher notificationPublisher, INotificationSubscriptionManager notificationSubscriptionManager)
- {
- NotificationPublisher = notificationPublisher;
- NotificationSubscriptionManager = notificationSubscriptionManager;
- }
- public async Task WelcomeToSystemAsync(User user)
- {
- await NotificationPublisher.PublishAsync(
- VzNotificationNames.WelcomeMsg, new MessageNotificationData("欢迎登陆"), severity: NotificationSeverity.Success,
- userIds: new[] { user.ToUserIdentifier() });
- }
- /// <summary>
- /// 发送给指定用户消息(info)
- /// </summary>
- /// <param name="user"></param>
- /// <param name="message"></param>
- /// <returns></returns>
- public async Task SendMsgAsync(User user, string message)
- {
- await SendMsgAsync(user, message, NotificationSeverity.Info);
- }
- /// <summary>
- /// 发送给指定用户消息
- /// </summary>
- /// <param name="user"></param>
- /// <param name="message"></param>
- /// <param name="severity"></param>
- /// <returns></returns>
- public async Task SendMsgAsync(User user, string message, NotificationSeverity severity)
- {
- await NotificationPublisher.PublishAsync(
- VzNotificationNames.SystemMessage,
- new MessageNotificationData(message), severity: severity, userIds: new[] { user.ToUserIdentifier() });
- }
- /// <summary>
- /// 发送某种消息给订阅用户(Info)
- /// </summary>
- /// <param name="msgName">消息唯一名称</param>
- /// <param name="message"></param>
- /// <returns></returns>
- public async Task SendMsgAsync(string msgName, string message)
- {
- await SendMsgAsync(msgName, message, NotificationSeverity.Info);
- }
- /// <summary>
- /// 发送某种消息给订阅用户
- /// </summary>
- /// <param name="msgName">消息唯一名称</param>
- /// <param name="message"></param>
- /// <param name="severity"></param>
- /// <returns></returns>
- public async Task SendMsgAsync(string msgName, string message, NotificationSeverity severity)
- {
- await NotificationPublisher.PublishAsync(msgName, new MessageNotificationData(message), severity: severity);
- }
- /// <summary>
- /// 发送某种消息给指定用户(带发送人)
- /// </summary>
- /// <param name="user"></param>
- /// <param name="msgName"></param>
- /// <param name="data"></param>
- /// <param name="severity"></param>
- /// <returns></returns>
- public async Task SendMessageAsync(User user, string msgName, SendMsgNotificationData data,
- NotificationSeverity severity)
- {
- await NotificationPublisher.PublishAsync(msgName, data, severity: severity, userIds: new[] { user.ToUserIdentifier() });
- }
- /// <summary>
- /// 发送某种消息给订阅用户(带发送人)
- /// </summary>
- /// <param name="msgName"></param>
- /// <param name="data"></param>
- /// <param name="severity"></param>
- /// <returns></returns>
- public async Task SendMessageAsync(string msgName, SendMsgNotificationData data, NotificationSeverity severity)
- {
- await NotificationPublisher.PublishAsync(msgName, data, severity: severity);
- }
- /// <summary>
- /// 订阅消息
- /// </summary>
- /// <param name="user"></param>
- /// <returns></returns>
- public async Task SubscriptionNotifications(User user)
- {
- foreach (var name in VzNotificationNames.CanBeSubscriptionName)
- {
- await NotificationSubscriptionManager.SubscribeAsync(user.ToUserIdentifier(), name);
- }
- }
- public async Task SendMessageAsync(UserIdentifier user, string message, NotificationSeverity severity = NotificationSeverity.Info)
- {
- await NotificationPublisher.PublishAsync(
- VzNotificationNames.SystemMessage,
- new MessageNotificationData(message),
- severity: severity,
- userIds: new[] { user });
- }
- /// <summary>
- /// 发送日程消息给订阅用户
- /// </summary>
- /// <param name="user"></param>
- /// <param name="data"></param>
- /// <param name="severity"></param>
- /// <returns></returns>
- public async Task SendCalendarNotifyAsync(User user, CalendarNotificationData data, NotificationSeverity severity = NotificationSeverity.Info)
- {
- await NotificationPublisher.PublishAsync("CalendarNotification", data, severity: severity, userIds: new[] { user.ToUserIdentifier() });
- }
- /// <summary>
- /// 发送流程审批通知
- /// </summary>
- /// <param name="user"></param>
- /// <param name="data"></param>
- /// <param name="severity"></param>
- /// <returns></returns>
- public async Task SendWorkflowAuditNotifyAsync(User user, WorkflowAuditNotificationData data, NotificationSeverity severity = NotificationSeverity.Info)
- {
- await SendWorkflowAuditNotifyAsync(user.Id, user.TenantId, data, severity);
- }
- /// <summary>
- /// 发送流程审批通知
- /// </summary>
- /// <param name="tenantId"></param>
- /// <param name="data"></param>
- /// <param name="severity"></param>
- /// <param name="userId"></param>
- /// <returns></returns>
- public async Task SendWorkflowAuditNotifyAsync(long userId, int? tenantId, WorkflowAuditNotificationData data, NotificationSeverity severity = NotificationSeverity.Info)
- {
- await NotificationPublisher.PublishAsync("WorkflowAuditNotification", data, severity: severity, userIds: new[] { new UserIdentifier(tenantId, userId) });
- }
- }
|