EntityBase.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // 麻省理工学院许可证
  2. //
  3. // 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司 联系电话/微信:18020030720 QQ:515096995
  4. //
  5. // 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
  6. //
  7. // 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
  8. // 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
  9. namespace Admin.NET.Core;
  10. /// <summary>
  11. /// 框架实体基类Id
  12. /// </summary>
  13. public abstract class EntityBaseId
  14. {
  15. /// <summary>
  16. /// 雪花Id
  17. /// </summary>
  18. [SugarColumn(ColumnName = "Id", ColumnDescription = "主键Id", IsPrimaryKey = true, IsIdentity = false)]
  19. public virtual long Id { get; set; }
  20. }
  21. /// <summary>
  22. /// 框架实体基类
  23. /// </summary>
  24. [SugarIndex("index_{table}_CT", nameof(CreateTime), OrderByType.Asc)]
  25. public abstract class EntityBase : EntityBaseId, IDeletedFilter
  26. {
  27. /// <summary>
  28. /// 创建时间
  29. /// </summary>
  30. [SugarColumn(ColumnDescription = "创建时间", IsOnlyIgnoreUpdate = true)]
  31. public virtual DateTime? CreateTime { get; set; }
  32. /// <summary>
  33. /// 更新时间
  34. /// </summary>
  35. [SugarColumn(ColumnDescription = "更新时间")]
  36. public virtual DateTime? UpdateTime { get; set; }
  37. /// <summary>
  38. /// 创建者Id
  39. /// </summary>
  40. [SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)]
  41. public virtual long? CreateUserId { get; set; }
  42. /// <summary>
  43. /// 创建者
  44. /// </summary>
  45. [Newtonsoft.Json.JsonIgnore]
  46. [System.Text.Json.Serialization.JsonIgnore]
  47. [Navigate(NavigateType.OneToOne, nameof(CreateUserId))]
  48. public virtual SysUser CreateUser { get; set; }
  49. /// <summary>
  50. /// 创建者姓名
  51. /// </summary>
  52. [SugarColumn(ColumnDescription = "创建者姓名", Length = 64, IsOnlyIgnoreUpdate = true)]
  53. public virtual string? CreateUserName { get; set; }
  54. /// <summary>
  55. /// 修改者Id
  56. /// </summary>
  57. [SugarColumn(ColumnDescription = "修改者Id")]
  58. public virtual long? UpdateUserId { get; set; }
  59. /// <summary>
  60. /// 修改者
  61. /// </summary>
  62. [Newtonsoft.Json.JsonIgnore]
  63. [System.Text.Json.Serialization.JsonIgnore]
  64. [Navigate(NavigateType.OneToOne, nameof(UpdateUserId))]
  65. public virtual SysUser UpdateUser { get; set; }
  66. /// <summary>
  67. /// 修改者姓名
  68. /// </summary>
  69. [SugarColumn(ColumnDescription = "修改者姓名", Length = 64)]
  70. public virtual string? UpdateUserName { get; set; }
  71. /// <summary>
  72. /// 软删除
  73. /// </summary>
  74. [SugarColumn(ColumnDescription = "软删除")]
  75. public virtual bool IsDelete { get; set; } = false;
  76. }
  77. /// <summary>
  78. /// 业务数据实体基类(数据权限)
  79. /// </summary>
  80. public abstract class EntityBaseData : EntityBase, IOrgIdFilter
  81. {
  82. /// <summary>
  83. /// 创建者部门Id
  84. /// </summary>
  85. [SugarColumn(ColumnDescription = "创建者部门Id", IsOnlyIgnoreUpdate = true)]
  86. public virtual long? CreateOrgId { get; set; }
  87. /// <summary>
  88. /// 创建者部门
  89. /// </summary>
  90. [Newtonsoft.Json.JsonIgnore]
  91. [System.Text.Json.Serialization.JsonIgnore]
  92. [Navigate(NavigateType.OneToOne, nameof(CreateOrgId))]
  93. public virtual SysOrg CreateOrg { get; set; }
  94. /// <summary>
  95. /// 创建者部门名称
  96. /// </summary>
  97. [SugarColumn(ColumnDescription = "创建者部门名称", Length = 64, IsOnlyIgnoreUpdate = true)]
  98. public virtual string? CreateOrgName { get; set; }
  99. }
  100. /// <summary>
  101. /// 租户实体基类
  102. /// </summary>
  103. public abstract class EntityTenant : EntityBase, ITenantIdFilter
  104. {
  105. /// <summary>
  106. /// 租户Id
  107. /// </summary>
  108. [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
  109. public virtual long? TenantId { get; set; }
  110. }
  111. /// <summary>
  112. /// 租户实体基类Id
  113. /// </summary>
  114. public abstract class EntityTenantId : EntityBaseId, ITenantIdFilter
  115. {
  116. /// <summary>
  117. /// 租户Id
  118. /// </summary>
  119. [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
  120. public virtual long? TenantId { get; set; }
  121. }
  122. /// <summary>
  123. /// 租户实体基类 + 业务数据(数据权限)
  124. /// </summary>
  125. public abstract class EntityTenantBaseData : EntityBaseData, ITenantIdFilter
  126. {
  127. /// <summary>
  128. /// 租户Id
  129. /// </summary>
  130. [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
  131. public virtual long? TenantId { get; set; }
  132. }