Knowledge.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. using Hotline.FlowEngine.Workflows;
  2. using Hotline.Settings;
  3. using Hotline.Settings.Hotspots;
  4. using Hotline.Share.Enums.KnowledgeBase;
  5. using Hotline.Users;
  6. using SqlSugar;
  7. using System.ComponentModel;
  8. using Hotline.Share.Dtos.File;
  9. using XF.Domain.Repository;
  10. using Hotline.Share.Dtos;
  11. namespace Hotline.KnowledgeBase;
  12. /// <summary>
  13. /// 知识库文档内容
  14. /// </summary>
  15. [Description("知识库文档")]
  16. public class Knowledge : WorkflowEntity// WorkflowEntity FullStateEntity
  17. {
  18. ///// <summary>
  19. ///// 知识分类
  20. ///// </summary>
  21. //[SugarColumn(ColumnDescription = "知识分类")]
  22. //public string KnowledgeTypeId { get; set; }
  23. /// <summary>
  24. /// 热点
  25. /// </summary>
  26. [SugarColumn(ColumnDescription = "热点")]
  27. public string? HotspotId { get; set; }
  28. /// <summary>
  29. /// 知识编号
  30. /// </summary>
  31. [SugarColumn(ColumnDescription = "知识编号")]
  32. public string? Code { get; set; }
  33. /// <summary>
  34. /// 标题
  35. /// </summary>
  36. [SugarColumn(ColumnDescription = "标题")]
  37. public string Title { get; set; }
  38. /// <summary>
  39. /// 摘要
  40. /// </summary>
  41. [SugarColumn(ColumnDataType = "varchar(1000)", IsNullable = true, ColumnDescription = "摘要")]
  42. public string? Summary { get; set; }
  43. /// <summary>
  44. /// 内容
  45. /// </summary>
  46. [SugarColumn(ColumnDataType = "text", ColumnDescription = "内容")]
  47. public string Content { get; set; }
  48. /// <summary>
  49. /// 浏览量
  50. /// </summary>
  51. [SugarColumn(ColumnDescription = "浏览量")]
  52. public int PageView { get; set; } = 0;
  53. /// <summary>
  54. /// 是否公开
  55. /// </summary>
  56. [SugarColumn(ColumnDescription = "是否公开")]
  57. public bool? IsPublic { get; set; }
  58. /// <summary>
  59. /// 文档状态
  60. /// </summary>
  61. [SugarColumn(ColumnDescription = "文档状态")]
  62. public EKnowledgeStatus Status { get; set; }
  63. /// <summary>
  64. /// 上架时间
  65. /// </summary>
  66. [SugarColumn(ColumnDescription = "上架时间")]
  67. public DateTime? OnShelfTime { get; set; }
  68. /// <summary>
  69. /// 下架时间
  70. /// </summary>
  71. [SugarColumn(ColumnDescription = "下架时间")]
  72. public DateTime? OffShelfTime { get; set; }
  73. /// <summary>
  74. /// 过期时间
  75. /// </summary>
  76. [SugarColumn(ColumnDescription = "过期时间")]
  77. public DateTime? ExpiredTime { get; set; }
  78. /// <summary>
  79. /// 关键词
  80. /// </summary>
  81. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true, ColumnDescription = "关键词")]
  82. public List<string>? Keywords { get; set; }
  83. /// <summary>
  84. /// 版本号
  85. /// </summary>
  86. [SugarColumn(ColumnDescription = "版本号")]
  87. public int? Version { get; set; } = 0;
  88. /// <summary>
  89. /// 外部数据(为前端提供级联功能)
  90. /// </summary>
  91. [SugarColumn(IsNullable = true, ColumnDescription = "外部数据(为前端提供级联功能)")]
  92. public string? HotspotExternal { get; set; }
  93. /// <summary>
  94. /// 附件
  95. /// </summary>
  96. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
  97. public List<string>? Additions { get; set; }
  98. /// <summary>
  99. /// 关联知识
  100. /// </summary>
  101. [SugarColumn(ColumnDataType = "json", ColumnDescription = "关联知识", IsJson = true,IsNullable =true)]
  102. public List<string> Knowledges { get; set; }
  103. ///// <summary>
  104. ///// 分类
  105. ///// </summary>
  106. //[Navigate(NavigateType.OneToOne, nameof(KnowledgeTypeId))]//一对一
  107. //public KnowledgeType KnowledgeType { get; set; }
  108. ///// <summary>
  109. ///// 知识分类
  110. ///// </summary>
  111. //[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true, ColumnDescription = "知识分类")]
  112. //public List<Kvs>? KnowledgeType { get; set; }
  113. /// <summary>
  114. /// 知识库类型关联ID
  115. /// </summary>
  116. [Navigate(NavigateType.OneToMany, nameof(KnowledgeRelationType.KnowledgeId))]
  117. public List<KnowledgeRelationType> KnowledgeType { get; set; }
  118. /// <summary>
  119. /// 部门
  120. /// </summary>
  121. [Navigate(NavigateType.OneToOne, nameof(CreatorOrgId))]//一对一
  122. public SystemOrganize SystemOrganize { get; set; }
  123. /// <summary>
  124. /// 用户
  125. /// </summary>
  126. [Navigate(NavigateType.OneToOne, nameof(CreatorId))]//一对一
  127. public User User { get; set; }
  128. /// <summary>
  129. /// 热点
  130. /// </summary>
  131. [Navigate(NavigateType.OneToOne, nameof(HotspotId))]//一对一
  132. public Hotspot HotspotType { get; set; }
  133. /// <summary>
  134. /// 知识归属
  135. /// </summary>
  136. [SugarColumn(ColumnDescription = "知识归属")]
  137. public string? Attribution { get; set; }
  138. /// <summary>
  139. /// 搜索量
  140. /// </summary>
  141. [SugarColumn(ColumnDescription = "搜索量")]
  142. public int? SearchNum { get; set; } = 0;
  143. /// <summary>
  144. /// 评分
  145. /// </summary>
  146. [SugarColumn(ColumnDescription = "评分")]
  147. public decimal? Score { get; set; } = decimal.Zero;
  148. /// <summary>
  149. /// 评论数
  150. /// </summary>
  151. [SugarColumn(ColumnDescription = "评论数")]
  152. public int? CommentNum { get; set; } = 0;
  153. /// <summary>
  154. /// 来源部门
  155. /// </summary>
  156. [SugarColumn(ColumnDescription = "来源部门")]
  157. public string? SourceOrganizeId { get; set; }
  158. /// <summary>
  159. /// 是否更新
  160. /// </summary>
  161. [SugarColumn(ColumnDescription = "是否更新")]
  162. public bool? Renewaln { get; set; } = false;
  163. /// <summary>
  164. /// 来源部门
  165. /// </summary>
  166. [Navigate(NavigateType.OneToOne, nameof(SourceOrganizeId))]//一对一
  167. public SystemOrganize SourceOrganize { get; set; }
  168. [Navigate(NavigateType.OneToOne, nameof(WorkflowId))]
  169. public Workflow Workflow { get; set; }
  170. /// <summary>
  171. /// 是否可办理
  172. /// </summary>
  173. [SugarColumn(IsIgnore = true)]
  174. public bool? IsCanHandle { get; set; }
  175. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
  176. public List<FileJson>? FileJson { get; set; }
  177. /// <summary>
  178. /// 收藏数量
  179. /// </summary>
  180. [SugarColumn(ColumnDescription = "收藏数量")]
  181. public int? CollectCount { get; set; } = 0;
  182. /// <summary>
  183. /// 知识来源
  184. /// </summary>
  185. [SugarColumn(ColumnDescription = "知识来源")]
  186. public string? Source { get; set; }
  187. }