PlanList.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. using Hotline.Settings;
  2. using Hotline.Settings.Hotspots;
  3. using Hotline.Users;
  4. using SqlSugar;
  5. using System.ComponentModel;
  6. using XF.Domain.Repository;
  7. using Hotline.Share.Enums.Planlibrary;
  8. using Hotline.KnowledgeBase;
  9. using Hotline.Share.Dtos.File;
  10. namespace Hotline.Planlibrary;
  11. /// <summary>
  12. /// 预案库列表内容
  13. /// </summary>
  14. [Description("预案库列表")]
  15. [SugarIndex("index_planlibrary_hotspotId", nameof(PlanList.HotspotId), OrderByType.Desc)]
  16. [SugarIndex("index_planlibrary_attribution", nameof(PlanList.Attribution), OrderByType.Desc)]
  17. [SugarIndex("index_planlibrary_creatorOrgId", nameof(PlanList.CreatorOrgId), OrderByType.Desc)]
  18. public class PlanList : CreationEntity
  19. {
  20. /// <summary>
  21. /// 标题
  22. /// </summary>
  23. [SugarColumn(ColumnDescription = "标题")]
  24. public string Title { get; set; }
  25. /// <summary>
  26. /// 关键词
  27. /// </summary>
  28. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true, ColumnDescription = "关键词")]
  29. public List<string>? Keywords { get; set; }
  30. /// <summary>
  31. /// 内容
  32. /// </summary>
  33. [SugarColumn(ColumnDataType = "text", ColumnDescription = "内容")]
  34. public string Content { get; set; }
  35. /// <summary>
  36. /// 预案申请状态
  37. /// </summary>
  38. [SugarColumn(ColumnDescription = "预案申请状态")]
  39. public EPlanApplyStatus ApplyStatus { get; set; }
  40. /// <summary>
  41. /// 预案状态
  42. /// </summary>
  43. [SugarColumn(ColumnDescription = "预案状态")]
  44. public EPlanStatus Status { get; set; }
  45. /// <summary>
  46. /// 预案归属
  47. /// </summary>
  48. [SugarColumn(ColumnDescription = "预案归属")]
  49. public string? Attribution { get; set; }
  50. /// <summary>
  51. /// 热点
  52. /// </summary>
  53. [SugarColumn(ColumnDescription = "热点")]
  54. public string? HotspotId { get; set; }
  55. /// <summary>
  56. /// 热点
  57. /// </summary>
  58. [Navigate(NavigateType.OneToOne, nameof(HotspotId))]//一对一
  59. public Hotspot? HotspotType { get; set; }
  60. /// <summary>
  61. /// 是否公开
  62. /// </summary>
  63. [SugarColumn(ColumnDescription = "是否公开")]
  64. public bool? IsPublic { get; set; }
  65. /// <summary>
  66. /// 是否删除
  67. /// </summary>
  68. [SugarColumn(ColumnDescription = "是否删除")]
  69. public bool? IsDeleted { get; set; } = false;
  70. /// <summary>
  71. /// 阅读次数
  72. /// </summary>
  73. [SugarColumn(ColumnDescription = "阅读次数")]
  74. public int PageView { get; set; } = 0;
  75. /// <summary>
  76. /// 上架时间
  77. /// </summary>
  78. [SugarColumn(ColumnDescription = "上架时间")]
  79. public DateTime? OnShelfTime { get; set; }
  80. /// <summary>
  81. /// 下架时间
  82. /// </summary>
  83. [SugarColumn(ColumnDescription = "下架时间")]
  84. public DateTime? OffShelfTime { get; set; }
  85. /// <summary>
  86. /// 创建人
  87. /// </summary>
  88. [Navigate(NavigateType.OneToOne, nameof(CreatorId))]
  89. public User? Creator { get; set; }
  90. /// <summary>
  91. /// 创建部门
  92. /// </summary>
  93. [Navigate(NavigateType.OneToOne, nameof(CreatorOrgId))]//一对一
  94. public SystemOrganize? SystemOrganize { get; set; }
  95. /// <summary>
  96. /// 更新时间
  97. /// </summary>
  98. [SugarColumn(ColumnDescription = "更新时间")]
  99. public DateTime? UpdateTime { get; set; }
  100. /// <summary>
  101. /// 审核人ID
  102. /// </summary>
  103. public string? ExaminManId { get; set; }
  104. /// <summary>
  105. /// 审核人
  106. /// </summary>
  107. [Navigate(NavigateType.OneToOne, nameof(ExaminManId))]
  108. public User? ExaminMan { get; set; }
  109. /// <summary>
  110. /// 审核部门ID
  111. /// </summary>
  112. [SugarColumn(ColumnDescription = "审核部门")]
  113. public string? ExaminOrganizeId { get; set; }
  114. /// <summary>
  115. /// 审核部门
  116. /// </summary>
  117. [Navigate(NavigateType.OneToOne, nameof(ExaminOrganizeId))]//一对一
  118. public SystemOrganize? ExaminOrganize { get; set; }
  119. /// <summary>
  120. /// 审核时间
  121. /// </summary>
  122. public DateTime? ExaminTime { get; set; }
  123. /// <summary>
  124. /// 失效时间
  125. /// </summary>
  126. [SugarColumn(ColumnDescription = "失效时间")]
  127. public DateTime? ExpiredTime { get; set; }
  128. /// <summary>
  129. /// 评分
  130. /// </summary>
  131. [SugarColumn(ColumnDescription = "评分")]
  132. public decimal? Score { get; set; } = decimal.Zero;
  133. /// <summary>
  134. /// 预案库类型关联ID
  135. /// </summary>
  136. [Navigate(NavigateType.OneToMany, nameof(PlanRelationType.PlanId))]
  137. public List<PlanRelationType> PlanTypes { get; set; }
  138. /// <summary>
  139. /// 附件
  140. /// </summary>
  141. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
  142. public List<FileJson>? FileJson { get; set; }
  143. }