Notice.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. /// 源数据的id
  41. /// </summary>
  42. public string sid { get; set; }
  43. /// <summary>
  44. /// 源数据的code
  45. /// </summary>
  46. public string scode { get; set; }
  47. /// <summary>
  48. /// 源数据的pk
  49. /// </summary>
  50. public string spk { get; set; }
  51. /// <summary>
  52. /// 源数据的学校编码
  53. /// </summary>
  54. public string school { get; set; }
  55. /// <summary>
  56. /// 源数据的scope
  57. /// </summary>
  58. public string scope { get; set; }
  59. /// <summary>
  60. /// 通知的业务类型,做什么事情用,具体业务类型再定义。 vote-join
  61. /// </summary>
  62. public string type { get; set; }
  63. /// <summary>
  64. /// 重要等级1置顶,2非常重要,3重要,4普通消息,5不重要
  65. /// </summary>
  66. public int level { get; set; }
  67. /// <summary>
  68. /// 传输数据josn
  69. /// </summary>
  70. public string data { get; set; }
  71. /// <summary>
  72. /// 创建时间
  73. /// </summary>
  74. public long stime { get; set; }
  75. /// <summary>
  76. /// 到期时间,发给接收者的cosmosDB ttl是从当前时间到结束时间为止
  77. /// </summary>
  78. public long etime { get; set; }
  79. /// <summary>
  80. /// 创建者
  81. /// </summary>
  82. public string creatorId { get; set; }
  83. /// 通知主体的被通知人存放位置: /notice/{业务id}_receiver.json
  84. /// <summary>
  85. /// 被通知的醍摩豆账号
  86. /// </summary>
  87. public List<string> tmdids { get; set; }
  88. /// <summary>
  89. /// 被通知的学校学生账号
  90. /// </summary>
  91. public List<Students> stuids { get; set; }
  92. }
  93. /*
  94. {
  95. "id":"通知id"
  96. "code":"接收者1",
  97. "status":"接收状态/已发送/已查看",
  98. "pk":"receiver",
  99. "ttl":2592000,不能超过30天(2592000),一天(3600),一周(25200)
  100. }
  101. */
  102. /// <summary>
  103. /// id :源数据id
  104. /// code:Receiver-{hbcn}-{rid}
  105. /// ttl :Notice的etime-当前时间戳
  106. /// pk :Receiver
  107. /// </summary>
  108. /// /student/{stuid}/
  109. public class Receiver : CosmosEntity
  110. {
  111. public string pk { get; set; } = "Receiver";
  112. /// <summary>
  113. /// 0 已发送,1已查看,2已处理,-1已过期
  114. /// </summary>
  115. public int status { get; set; }=0;
  116. /// <summary>
  117. /// 通知接收者
  118. /// </summary>
  119. public string rid { get; set; }
  120. /// <summary>
  121. /// 当rid是学校的学生时,学校编码不能为空
  122. /// </summary>
  123. public string school { get; set; }
  124. /// <summary>
  125. /// 源数据的scope school则接收者是学校的学生/teacher接收者是醍摩豆账号
  126. /// </summary>
  127. public string scope { get; set; }
  128. /// <summary>
  129. /// 创建时间
  130. /// </summary>
  131. public long ctime { get; set; }
  132. /// <summary>
  133. /// 通知url
  134. /// </summary>
  135. public string urlNotice { get; set; }
  136. }
  137. }