PlanDataDto.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using Hotline.Share.Dtos.FlowEngine.Workflow;
  2. using Hotline.Share.Dtos.Hotspots;
  3. using Hotline.Share.Dtos.Order;
  4. using Hotline.Share.Dtos.Org;
  5. using Hotline.Share.Enums.Article;
  6. using Hotline.Share.Enums.KnowledgeBase;
  7. using Hotline.Share.Enums.Planlibrary;
  8. using XF.Utility.EnumExtensions;
  9. namespace Hotline.Share.Dtos.Planlibrary
  10. {
  11. public record PlanDataDto
  12. {
  13. /// <summary>
  14. /// 知识ID
  15. /// </summary>
  16. public string Id { get; set; }
  17. /// <summary>
  18. /// 标题
  19. /// </summary>
  20. public string Title { get; set; }
  21. /// <summary>
  22. /// 创建人
  23. /// </summary>
  24. public string CreatorName { get; set; }
  25. /// <summary>
  26. /// 浏览量
  27. /// </summary>
  28. public int PageView { get; set; }
  29. /// <summary>
  30. /// 是否公开
  31. /// </summary>
  32. public bool IsPublic { get; set; }
  33. /// <summary>
  34. /// 申请部门ID
  35. /// </summary>
  36. public string CreatorOrgId { get; set; }
  37. /// <summary>
  38. /// 申请部门
  39. /// </summary>
  40. public string CreatorOrgName { get; set; }
  41. /// <summary>
  42. /// 申请时间
  43. /// </summary>
  44. public DateTime CreationTime { get; set; }
  45. /// <summary>
  46. /// 上架时间
  47. /// </summary>
  48. public DateTime? OnShelfTime { get; set; }
  49. /// <summary>
  50. /// 更新时间
  51. /// </summary>
  52. public DateTime? UpdateTime { get; set; }
  53. /// <summary>
  54. /// 审核时间
  55. /// </summary>
  56. public DateTime? ExaminTime { get; set; }
  57. /// <summary>
  58. /// 下架时间
  59. /// </summary>
  60. public DateTime? OffShelfTime { get; set; }
  61. /// <summary>
  62. /// 过期时间
  63. /// </summary>
  64. public DateTime? ExpiredTime { get; set; }
  65. /// <summary>
  66. /// 预案归属
  67. /// </summary>
  68. public string? Attribution { get; set; }
  69. /// <summary>
  70. /// 文档状态
  71. /// </summary>
  72. public EPlanStatus Status { get; set; }
  73. public EPlanStatus NewStatus => Status != EPlanStatus.Drafts && DateTime.Now > ExpiredTime ? EPlanStatus.Overdue : Status;
  74. /// <summary>
  75. /// 文档状态名称
  76. /// </summary>
  77. public string StatusName => NewStatus.GetDescription();
  78. /// <summary>
  79. /// 预案分类
  80. /// </summary>
  81. public List<PlanRelationTypeDto> PlanTypes { get; set; }
  82. /// <summary>
  83. /// 预案分类名称
  84. /// </summary>
  85. public string PlanTypeText => GetPlanTypeText(PlanTypes);
  86. /// <summary>
  87. /// 获取预案分类名称
  88. /// </summary>
  89. /// <returns></returns>
  90. public string GetPlanTypeText(List<PlanRelationTypeDto> items)
  91. {
  92. if (PlanTypes != null && PlanTypes.Any())
  93. {
  94. var names = PlanTypes.Select(x => x.PlanTypeName).ToList();
  95. return string.Join(",", names);
  96. }
  97. return "";
  98. }
  99. public HotspotDto HotspotType { get; set; }
  100. /// <summary>
  101. /// 热点
  102. /// </summary>
  103. public string HotspotName => HotspotType != null ? HotspotType.HotSpotFullName : string.Empty;
  104. }
  105. public record PlanRelationTypeDto
  106. {
  107. /// <summary>
  108. /// 知识库类型ID
  109. /// </summary>
  110. public string PlanTypeId { get; set; }
  111. /// <summary>
  112. /// 知识库类型名称
  113. /// </summary>
  114. public string PlanTypeName { get; set; }
  115. /// <summary>
  116. /// 知识库类型名称
  117. /// </summary>
  118. public string PlanTypeSpliceName { get; set; }
  119. }
  120. }
  121. public class PlanExistDto
  122. {
  123. /// <summary>
  124. /// 标题
  125. /// </summary>
  126. public string Title { get; set; }
  127. /// <summary>
  128. /// 内容
  129. /// </summary>
  130. public string Content { get; set; }
  131. /// <summary>
  132. /// ID
  133. /// </summary>
  134. public string? Id { get; set; }
  135. }
  136. public class PlanInfoExportDto
  137. {
  138. /// <summary>
  139. /// 导入的知识Id集合
  140. /// </summary>
  141. public string[] Ids { get; set; }
  142. /// <summary>
  143. /// 导出格式
  144. /// </summary>
  145. public EFileType FileType { get; set; }
  146. }
  147. public class PlanPageViewDto
  148. {
  149. public string Id { get; set; }
  150. public string Title { get; set; }
  151. public int PageView { get; set; }
  152. }