Notice.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. using Microsoft.Azure.Cosmos.Table;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using TEAMModelOS.SDK.Models.Cosmos.Common;
  6. namespace TEAMModelOS.SDK.Models
  7. {
  8. /// <summary>
  9. /// 前端多语言处理
  10. /// </summary>
  11. //public string title { get; set; }
  12. /// <summary>
  13. /// 前端多语言处理
  14. /// </summary>
  15. //public string content { get; set; }
  16. /*
  17. {
  18. "title":"通知标题",
  19. "type":"通知类型",
  20. "level":"重要程度",
  21. "content":"通知内容",
  22. "data":"传输数据josn",
  23. "stime":"发起时间戳",
  24. "etime":"到期时间戳",
  25. "id":"通知id",
  26. "code":"发起人"
  27. "pk":"notice"
  28. }
  29. */
  30. /// <summary>
  31. /// 通知主体存放位置:/notice/{业务id}.json
  32. /// 活跃通知放在CosmosDB Common表中,并设置"ttl":2592000,不能超过30天(2592000),一天(3600),一周(25200),允许删除
  33. /// 过期通知存放至blob中,存放位置, 允许被删除,直接删除记录
  34. /// stuid:/student/stuid/receiver/xxxx时间戳排序.json
  35. /// tmdid:/receiver/xxxx时间戳排序.json
  36. /// </summary>
  37. public class Notice
  38. {
  39. /// <summary>
  40. /// 訊息種類 message:訊息,收取會另存至儲存體(blob or table) notice:通知,收取後不另存
  41. /// XXXX通知的业务类型,做什么事情用,具体业务类型再定义。 vote-join
  42. /// </summary>
  43. public string type { get; set; }
  44. /// <summary>
  45. /// 重要等级 emergency、high、normal、low 1置顶,2非常重要,3重要,4普通消息,5不重要
  46. /// </summary>
  47. public string priority { get; set; }
  48. /// <summary>
  49. /// 發信源服務 IES5
  50. /// </summary>
  51. public string from { get; set; } = "IES5";
  52. /// <summary>
  53. /// 服務收信對象 若任一服務皆可收,則不填;指定某服務才收,則填服務名稱 例:HiT
  54. /// </summary>
  55. public string toservice { get; set; }
  56. /// <summary>
  57. /// 到期时间,发给接收者的cosmosDB ttl是从当前时间到结束时间为止
  58. /// </summary>
  59. public long expire { get; set; }
  60. /// <summary>
  61. /// 创建时间
  62. /// </summary>
  63. public long creation { get; set; }
  64. /// <summary>
  65. /// 消息id
  66. /// </summary>
  67. public string msgId { get; set; }
  68. /// <summary>
  69. /// 正文內容
  70. /// </summary>
  71. public Body body { get; set; }
  72. /// <summary>
  73. /// 创建者
  74. /// </summary>
  75. public string creatorId { get; set; }
  76. /// <summary>
  77. /// 源数据的学校编码
  78. /// </summary>
  79. public string school { get; set; }
  80. /// <summary>
  81. /// 源数据的scope
  82. /// </summary>
  83. public string scope { get; set; }
  84. /// 通知主体的被通知人存放位置: /notice/{业务id}_receiver.json
  85. /// <summary>
  86. /// 被通知的醍摩豆账号
  87. /// </summary>
  88. public List<string> tmdids { get; set; }
  89. /// <summary>
  90. /// 被通知的学校学生账号
  91. /// </summary>
  92. public List<Students> stuids { get; set; }
  93. }
  94. /// <summary>
  95. /// 传输数据josn
  96. /// </summary>
  97. public class Body {
  98. /// <summary>
  99. /// 业务类型 vote-join exam-join survey-join
  100. /// </summary>
  101. public string biztype { get; set; }
  102. /// <summary>
  103. /// 源数据的id
  104. /// </summary>
  105. public string sid { get; set; }
  106. /// <summary>
  107. /// 源数据的code
  108. /// </summary>
  109. public string scode { get; set; }
  110. /// <summary>
  111. /// 源数据的pk
  112. /// </summary>
  113. public string spk { get; set; }
  114. }
  115. /*
  116. {
  117. "id":"通知id"
  118. "code":"接收者1",
  119. "status":"接收状态/已发送/已查看",
  120. "pk":"receiver",
  121. "ttl":2592000,不能超过30天(2592000),一天(3600),一周(25200)
  122. }
  123. */
  124. /// <summary>
  125. /// id :源数据id
  126. /// code:Receiver-{hbcn}-{rid}
  127. /// ttl :Notice的etime-当前时间戳
  128. /// pk :Receiver
  129. /// </summary>
  130. /// /student/{stuid}/
  131. public class Receiver
  132. {
  133. public string id { get; set; }
  134. /// <summary>
  135. /// 0 已发送,1已查看,2已处理,-1已过期
  136. /// </summary>
  137. public int status { get; set; }=0;
  138. /// <summary>
  139. /// 创建时间
  140. /// </summary>
  141. public long ctime { get; set; }
  142. /// <summary>
  143. /// 通知url
  144. /// </summary>
  145. public string urlNotice { get; set; }
  146. }
  147. }