校级、学院级管理员支持按学院、身份、行政班、教学班、姓名/学号/工号筛选,也可指定最多 500 名收件人。所有结果均由服务端重新校验权限。 接入 CKEditor 5,支持标题、列表、引用和链接;正文扩展为 MySQL longtext。 富文本在收件箱、详情弹窗和已发送记录中统一经 DOMPurify 净化后展示。 页面改用系统现有的冷白、靛蓝、青绿色令牌,新增“选择收件人 → 编辑内容”工作台和移动端适配。
50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
using Jiaowu.Api.Domain.Common;
|
|
|
|
namespace Jiaowu.Api.Domain.Academic;
|
|
|
|
public sealed class Notification : EntityBase
|
|
{
|
|
public Guid UserId { get; set; }
|
|
public required string Title { get; set; }
|
|
public required string Content { get; set; }
|
|
public NotificationCategory Category { get; set; } = NotificationCategory.General;
|
|
public bool IsRead { get; set; }
|
|
public string? LinkUrl { get; set; }
|
|
public Guid? MessageDispatchId { get; set; }
|
|
public MessageDispatch? MessageDispatch { get; set; }
|
|
}
|
|
|
|
public sealed class MessageDispatch : EntityBase
|
|
{
|
|
public Guid SenderUserId { get; set; }
|
|
public required string SenderName { get; set; }
|
|
public required string Title { get; set; }
|
|
public required string Content { get; set; }
|
|
public NotificationCategory Category { get; set; } = NotificationCategory.General;
|
|
public MessageAudienceType AudienceType { get; set; }
|
|
public Guid? AudienceId { get; set; }
|
|
public required string AudienceName { get; set; }
|
|
public int RecipientCount { get; set; }
|
|
public string? LinkUrl { get; set; }
|
|
public ICollection<Notification> Notifications { get; set; } = [];
|
|
}
|
|
|
|
public enum NotificationCategory
|
|
{
|
|
General = 1,
|
|
Approval = 2,
|
|
Schedule = 3,
|
|
Grade = 4,
|
|
Attendance = 5,
|
|
CourseSelection = 6,
|
|
Warning = 7
|
|
}
|
|
|
|
public enum MessageAudienceType
|
|
{
|
|
School = 1,
|
|
College = 2,
|
|
TeachingTask = 3,
|
|
Custom = 4
|
|
}
|