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; }
}
}