using Hotline.Share.Enums.Article; using Hotline.Share.Requests; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using Hotline.Share.Dtos.Users; using XF.Utility.EnumExtensions; using Hotline.Share.Tools; using Hotline.Share.Dtos.File; namespace Hotline.Share.Dtos.Article { public record BulletinDto { public string Id { get; set; } public DateTime CreationTime { get; set; } public string Title { get; set; } public string Content { get; set; } public string BulletinTypeId { get; set; } public string BulletinTypeName { get; set; } /// /// 阅读量 /// public int ReadedNum { get; set; } /// /// 通知时间 /// public DateTime? BulletinTime { get; set; } /// /// 失效时间 /// public DateTime LoseEfficacyTime { get; set; } /// /// 公告状态 /// public EBulletinState BulletinState { get; set; } /// /// 流程ID /// public string? WorkflowId { get; set; } /// /// 发布范围(多选) 位枚举 EPushRange /// public List PushRanges { get; set; } /// /// 显示位置(多选) 位枚举 BulletinDisplayLocation /// public List DisplayLocation { get; set; } /// /// 来源单位ID /// public string SourceOrgId { get; set; } /// /// 来源单位名称 /// public string SourceOrgName { get; set; } /// /// 组织Id /// public string? CreatorOrgId { get; set; } public string? CreatorOrgName { get; set; } /// /// 创建人 /// public string? CreatorId { get; set; } public string? CreatorName { get; set; } /// /// 提交时间 /// public DateTime? CommitTime { get; set; } /// /// 审核意见 /// public string? ExaminOpinion { get; set; } /// /// 审核人 /// public string? ExaminManId { get; set; } /// /// 审核人 /// public UserDto? ExaminMan { get; set; } /// /// 审核时间 /// public DateTime? ExaminTime { get; set; } /// /// 是否上架 /// public bool? IsArrive { get; set; } public string BulletinStateText => BulletinState.GetDescription(); public string PushRangesText => PushRanges != null && PushRanges.Any() ? string.Join("、", PushRanges.Select(x => x.Value)) : "-"; public string DisplayLocationText => DisplayLocation != null && DisplayLocation.Any() ? string.Join("、", DisplayLocation.Select(x => x.Value)) : "-"; /// /// 上传附件 /// public List? Files { get; set; } /// /// 附件 /// public List? FileJson { get; set; } } public record CircularDto { public string Id { get; set; } public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 内容 /// public string Content { get; set; } /// /// 通知类型 /// public string CircularTypeId { get; set; } /// /// 通知类型名称 /// public string CircularTypeName { get; set; } /// /// 是否必读 /// public bool IsMustRead { get; set; } /// /// 通知对象 /// public ECircularType CircularType { get; set; } public string CircularTypeText => CircularType.GetDescription(); /// /// 通知时间 /// public DateTime? CircularTime { get; set; } /// /// 失效时间 /// public DateTime LostEfficacyTime { get; set; } /// /// 通知状态 /// public ECircularState CircularState { get; set; } public string CircularStateText => CircularState.GetDescription(); /// /// 来源单位ID /// public string SourceOrgId { get; set; } /// /// 来源单位名称 /// public string SourceOrgName { get; set; } /// /// 需要阅读数量 /// public int NeedReadNum { get; set; } /// /// 已读数量 /// public int ReadedNum { get; set; } /// /// 流程ID /// public string? WorkflowId { get; set; } /// /// 阅读明细 /// public List CircularReadGroups { get; set; } /// /// 提交时间 /// public DateTime? CommitTime { get; set; } /// /// 审核意见 /// public string? ExaminOpinion { get; set; } /// /// 审核人 /// public string? ExaminManId { get; set; } /// /// 审核人 /// public UserDto? ExaminMan { get; set; } /// /// 审核时间 /// public DateTime? ExaminTime { get; set; } public List? Files { get; set; } /// /// 附件 /// public List? FileJson { get; set; } } public record CircularReadGroupDto { public string? CircularId { get; set; } public string? UserId { get; set; } public string? UserName { get; set; } public string? OrgId { get; set; } public string? OrgName { get; set; } public bool? IsRead { get; set; } public DateTime? ReadTime { get; set; } public bool? IsTimeOut { get; set; } } public record AddCircularDto { /// /// 标题 /// public string Title { get; set; } /// /// 内容 /// public string Content { get; set; } /// /// 通知类型 /// public string CircularTypeId { get; set; } /// /// 通知类型名称 /// public string CircularTypeName { get; set; } /// /// 通知对象 /// public ECircularType CircularType { get; set; } /// /// 是否必读 /// public bool IsMustRead { get; set; } /// /// 失效时间 /// public DateTime? LostEfficacyTime { get; set; } /// /// 来源单位ID /// public string SourceOrgId { get; set; } /// /// 来源单位名称 /// public string SourceOrgName { get; set; } public List CircularReadGroups { get; set; } /// /// 上传附件 /// public List? Files { get; set; } } public record UpdateCircularDto : AddCircularDto { public string Id { get; set; } } public class PublishBulletinDto { public string Id { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 内容 /// public string Content { get; set; } /// /// 公告类型 /// public string BulletinTypeId { get; set; } /// /// 公告类型名称 /// public string BulletinTypeName { get; set; } /// /// 失效时间 /// public DateTime? LoseEfficacyTime { get; set; } /// /// 发布范围 EPushRange /// public List PushRanges { get; set; } /// /// 来源单位ID /// public string SourceOrgId { get; set; } /// /// 来源单位名称 /// public string SourceOrgName { get; set; } /// /// 审核时间 /// public DateTime? ExaminTime { get; set; } } public record AddBulletinDto { /// /// 标题 /// public string Title { get; set; } /// /// 内容 /// public string Content { get; set; } /// /// 公告类型 /// public string BulletinTypeId { get; set; } /// /// 公告类型名称 /// public string BulletinTypeName { get; set; } /// /// 失效时间 /// public DateTime? LoseEfficacyTime { get; set; } /// /// 发布范围 EPushRange /// public List PushRanges { get; set; } /// /// 显示位置(多选) 位枚举 BulletinDisplayLocation /// public List DisplayLocation { get; set; } /// /// 来源单位ID /// public string SourceOrgId { get; set; } /// /// 来源单位名称 /// public string SourceOrgName { get; set; } /// /// 上传附件 /// public List? Files { get; set; } } public record BulletinArriveDto { public string Id { get; set; } /// /// 上架true 下架false /// public bool IsArrive { get; set; } } public record UpdateBulletinDto : AddBulletinDto { public string Id { get; set; } } public record QueryCircularListRequestDto : PagedRequest { /// /// 标题 /// public string Title { get; set; } /// /// 通知类型 /// public string CircularTypeId { get; set; } /// /// 开始时间 /// public DateTime? CircularTimeStart { get; set; } /// /// 结束时间 /// public DateTime? CircularTimeEnd { get; set; } /// /// 状态 /// public ECircularState? CircularState { get; set; } /// /// 是否阅读 /// public bool? IsRead { get; set; } } public record ExamineCircularDto { public string Id { get; set; } public bool IsPass { get; set; } public string Reason { get; set; } } public record QueryBulletinListRequestDto : PagedRequest { /// /// 标题 /// public string Title { get; set; } /// /// 通知类型 /// public string BulletinTypeId { get; set; } /// /// 开始时间 /// public DateTime? BulletinTimeStart { get; set; } /// /// 结束时间 /// public DateTime? BulletinTimeEnd { get; set; } /// /// 公告状态 /// public EBulletinState? BulletinState { get; set; } /// /// 是否查询包含失效 /// public bool? IsLoseEfficacy { get; set; } } public record ExamineBulletinDto { public string Id { get; set; } public bool IsPass { get; set; } public string Reason { get; set; } } public record CircularRecordDto { public int PersonCount { get; set; } public int OrgCount { get; set; } } /// /// 微信小程序获取宣传学习列表入参 /// public class BulletinInDto : QueryFixedDto { /// /// 行业Id /// 表的Id /// public string IndustryId { get; set; } } public class BulletinListOutDto { /// /// 公告ID /// public string Id { get; set; } /// /// 标题 /// public string Title { get; set; } private string content; /// /// 内容 /// public string Content { get { return content.RemoveHtmlTags(); } set { content = value; } } public DateTime CreationTime { get; set; } } /// /// 微信小程序获取宣传学习列表出参 /// public class BulletinOutDto { /// /// 公告ID /// public string Id { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 内容 /// public string Content { get; set; } /// /// 视频地址 /// public string? VideoPath { get; set; } public DateTime CreationTime { get; set; } } }