BulletinDto.cs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. using Hotline.Share.Enums.Article;
  2. using Hotline.Share.Requests;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using XF.Utility.EnumExtensions;
  9. namespace Hotline.Share.Dtos.Article
  10. {
  11. public record BulletinDto
  12. {
  13. public string Id { get; set; }
  14. public DateTime CreationTime { get; set; }
  15. public string Title { get; set; }
  16. public string Content { get; set; }
  17. public string BulletinTypeId { get; set; }
  18. public string BulletinTypeName { get; set; }
  19. /// <summary>
  20. /// 阅读量
  21. /// </summary>
  22. public int ReadedNum { get; set; }
  23. /// <summary>
  24. /// 通知时间
  25. /// </summary>
  26. public DateTime? BulletinTime { get; set; }
  27. /// <summary>
  28. /// 失效时间
  29. /// </summary>
  30. public DateTime LoseEfficacyTime { get; set; }
  31. /// <summary>
  32. /// 公告状态
  33. /// </summary>
  34. public EBulletinState BulletinState { get; set; }
  35. /// <summary>
  36. /// 流程ID
  37. /// </summary>
  38. public string? WorkflowId { get; set; }
  39. /// <summary>
  40. /// 发布范围(多选) 位枚举 EPushRange
  41. /// </summary>
  42. public List<Kv> PushRanges { get; set; }
  43. /// <summary>
  44. /// 来源单位ID
  45. /// </summary>
  46. public string SourceOrgId { get; set; }
  47. /// <summary>
  48. /// 来源单位名称
  49. /// </summary>
  50. public string SourceOrgName { get; set; }
  51. /// <summary>
  52. /// 组织Id
  53. /// </summary>
  54. public string? CreatorOrgId { get; set; }
  55. public string? CreatorOrgName { get; set; }
  56. /// <summary>
  57. /// 创建人
  58. /// </summary>
  59. public string? CreatorId { get; set; }
  60. public string? CreatorName { get; set; }
  61. public string BulletinStateText => BulletinState.GetDescription();
  62. public string PushRangesText => PushRanges.Any() ? string.Join("、", PushRanges.Select(x => x.Value)) : "-";
  63. }
  64. public record CircularDto
  65. {
  66. public string Id { get; set; }
  67. public DateTime CreationTime { get; set; }
  68. /// <summary>
  69. /// 标题
  70. /// </summary>
  71. public string Title { get; set; }
  72. /// <summary>
  73. /// 内容
  74. /// </summary>
  75. public string Content { get; set; }
  76. /// <summary>
  77. /// 通知类型
  78. /// </summary>
  79. public string CircularTypeId { get; set; }
  80. /// <summary>
  81. /// 通知类型名称
  82. /// </summary>
  83. public string CircularTypeName { get; set; }
  84. /// <summary>
  85. /// 是否必读
  86. /// </summary>
  87. public bool IsMustRead { get; set; }
  88. /// <summary>
  89. /// 通知对象
  90. /// </summary>
  91. public ECircularType CircularType { get; set; }
  92. public string CircularTypeText => CircularType.GetDescription();
  93. /// <summary>
  94. /// 通知时间
  95. /// </summary>
  96. public DateTime? CircularTime { get; set; }
  97. /// <summary>
  98. /// 失效时间
  99. /// </summary>
  100. public DateTime LostEfficacyTime { get; set; }
  101. /// <summary>
  102. /// 通知状态
  103. /// </summary>
  104. public ECircularState CircularState { get; set; }
  105. public string CircularStateText => CircularState.GetDescription();
  106. /// <summary>
  107. /// 来源单位ID
  108. /// </summary>
  109. public string SourceOrgId { get; set; }
  110. /// <summary>
  111. /// 来源单位名称
  112. /// </summary>
  113. public string SourceOrgName { get; set; }
  114. /// <summary>
  115. /// 需要阅读数量
  116. /// </summary>
  117. public int NeedReadNum { get; set; }
  118. /// <summary>
  119. /// 已读数量
  120. /// </summary>
  121. public int ReadedNum { get; set; }
  122. /// <summary>
  123. /// 流程ID
  124. /// </summary>
  125. public string? WorkflowId { get; set; }
  126. /// <summary>
  127. /// 阅读明细
  128. /// </summary>
  129. public List<CircularReadGroupDto> CircularReadGroups { get; set; }
  130. }
  131. public record CircularReadGroupDto
  132. {
  133. public string? CircularId { get; set; }
  134. public string? UserId { get; set; }
  135. public string? UserName { get; set; }
  136. public string? OrgId { get; set; }
  137. public string? OrgName { get; set; }
  138. public bool? IsRead { get; set; }
  139. public DateTime? ReadTime { get; set; }
  140. public bool? IsTimeOut { get; set; }
  141. }
  142. public record AddCircularDto
  143. {
  144. /// <summary>
  145. /// 标题
  146. /// </summary>
  147. public string Title { get; set; }
  148. /// <summary>
  149. /// 内容
  150. /// </summary>
  151. public string Content { get; set; }
  152. /// <summary>
  153. /// 通知类型
  154. /// </summary>
  155. public string CircularTypeId { get; set; }
  156. /// <summary>
  157. /// 通知类型名称
  158. /// </summary>
  159. public string CircularTypeName { get; set; }
  160. /// <summary>
  161. /// 通知对象
  162. /// </summary>
  163. public ECircularType CircularType { get; set; }
  164. /// <summary>
  165. /// 是否必读
  166. /// </summary>
  167. public bool IsMustRead { get; set; }
  168. /// <summary>
  169. /// 失效时间
  170. /// </summary>
  171. public DateTime LostEfficacyTime { get; set; }
  172. /// <summary>
  173. /// 来源单位ID
  174. /// </summary>
  175. public string SourceOrgId { get; set; }
  176. /// <summary>
  177. /// 来源单位名称
  178. /// </summary>
  179. public string SourceOrgName { get; set; }
  180. public List<CircularReadGroupDto> CircularReadGroups { get; set; }
  181. }
  182. public record AddBulletinDto
  183. {
  184. /// <summary>
  185. /// 标题
  186. /// </summary>
  187. public string Title { get; set; }
  188. /// <summary>
  189. /// 内容
  190. /// </summary>
  191. public string Content { get; set; }
  192. /// <summary>
  193. /// 公告类型
  194. /// </summary>
  195. public string BulletinTypeId { get; set; }
  196. /// <summary>
  197. /// 公告类型名称
  198. /// </summary>
  199. public string BulletinTypeName { get; set; }
  200. /// <summary>
  201. /// 失效时间
  202. /// </summary>
  203. public DateTime LoseEfficacyTime { get; set; }
  204. /// <summary>
  205. /// 发布范围 EPushRange
  206. /// </summary>
  207. public List<Kv> PushRanges { get; set; }
  208. /// <summary>
  209. /// 来源单位ID
  210. /// </summary>
  211. public string SourceOrgId { get; set; }
  212. /// <summary>
  213. /// 来源单位名称
  214. /// </summary>
  215. public string SourceOrgName { get; set; }
  216. }
  217. public record QueryCircularListRequestDto:PagedRequest
  218. {
  219. /// <summary>
  220. /// 标题
  221. /// </summary>
  222. public string Title { get; set; }
  223. /// <summary>
  224. /// 通知类型
  225. /// </summary>
  226. public string CircularTypeId { get; set; }
  227. /// <summary>
  228. /// 开始时间
  229. /// </summary>
  230. public DateTime? CircularTimeStart { get; set; }
  231. /// <summary>
  232. /// 结束时间
  233. /// </summary>
  234. public DateTime? CircularTimeEnd { get; set; }
  235. /// <summary>
  236. /// 状态
  237. /// </summary>
  238. public ECircularState? CircularState { get; set; }
  239. /// <summary>
  240. /// 是否阅读
  241. /// </summary>
  242. public bool? IsRead { get; set; }
  243. }
  244. public record QueryBulletinListRequestDto:PagedRequest
  245. {
  246. /// <summary>
  247. /// 标题
  248. /// </summary>
  249. public string Title { get; set; }
  250. /// <summary>
  251. /// 通知类型
  252. /// </summary>
  253. public string BulletinTypeId { get; set; }
  254. /// <summary>
  255. /// 开始时间
  256. /// </summary>
  257. public DateTime? BulletinTimeStart { get; set; }
  258. /// <summary>
  259. /// 结束时间
  260. /// </summary>
  261. public DateTime? BulletinTimeEnd { get; set; }
  262. /// <summary>
  263. /// 公告状态
  264. /// </summary>
  265. public EBulletinState? BulletinState { get; set; }
  266. }
  267. public record CircularRecordDto
  268. {
  269. public int PersonCount { get; set; }
  270. public int OrgCount { get; set; }
  271. }
  272. }