123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- using SqlSugar;
- using XF.Domain.Events;
- namespace XF.Domain.Entities;
- public abstract class Entity : IEntity<string>, IDomainEvents
- {
- private List<IAppNotification> _domainEvents = new();
- public string Id { get; set; }//todo 判断为空时生成递增Id
- public void AddEvent(IAppNotification notification)
- {
- if (_domainEvents.Contains(notification)) return;
- _domainEvents.Add(notification);
- }
- public void ClearEvents() => _domainEvents.Clear();
- public ICollection<IAppNotification> QueryAllEvents() => _domainEvents;
- }
- /// <summary>
- /// 实体(带有创建时间)
- /// </summary>
- public abstract class CreationEntity : Entity, IHasCreationTime
- {
- /// <summary>
- /// 创建时间
- /// </summary>
- [SugarColumn(ColumnDescription = "创建时间")]
- public DateTime CreationTime { get; set; }
- }
- /// <summary>
- /// 实体(带有软删除)
- /// </summary>
- public abstract class SoftDeleteEntity : Entity, IHasDeletionTime, ISoftDelete
- {
- /// <summary>
- /// 删除时间
- /// </summary>
- [SugarColumn(ColumnDescription = "删除时间")]
- public DateTime? DeletionTime { get; private set; }
- [SugarColumn(ColumnDescription = "是否删除")]
- public bool IsDeleted { get; private set; }
- public void SoftDelete()
- {
- IsDeleted = true;
- DeletionTime = DateTime.Now;
- }
- }
- /// <summary>
- /// 实体(带有创建时间和软删除)
- /// </summary>
- public abstract class CreationSoftDeleteEntity : CreationEntity, IHasDeletionTime, ISoftDelete
- {
- [SugarColumn(ColumnDescription = "是否删除")]
- public bool IsDeleted { get; private set; }
- /// <summary>
- /// 删除时间
- /// </summary>
- [SugarColumn(ColumnDescription = "删除时间")]
- public DateTime? DeletionTime { get; set; }
- public void SoftDelete()
- {
- IsDeleted = true;
- DeletionTime = DateTime.Now;
- }
- public void Recover() => IsDeleted = false;
- }
- public abstract class CreationModificationEntity : CreationEntity, IHasModificationTime
- {
- /// <summary>
- /// 最近更新时间
- /// </summary>
- [SugarColumn(ColumnDescription = "最近更新时间")]
- public DateTime? LastModificationTime { get; set; }
- public void Modified() => LastModificationTime = DateTime.Now;
- }
- /// <summary>
- /// 全状态实体(创建时间、更新时间、软删除)
- /// </summary>
- public abstract class FullStateEntity : CreationSoftDeleteEntity, IHasModificationTime
- {
- /// <summary>
- /// 最近更新时间
- /// </summary>
- [SugarColumn(ColumnDescription = "最近更新时间")]
- public DateTime? LastModificationTime { get; set; }
- public void Modified() => LastModificationTime = DateTime.Now;
- }
- /// <summary>
- /// 实体(权限、创建时间)
- /// </summary>
- public abstract class CreationEntityHasAuth : Entity, IHasCreationTime, IHasAuth
- {
- /// <summary>
- /// 创建时间
- /// </summary>
- [SugarColumn(ColumnDescription = "创建时间")]
- public DateTime CreationTime { get; set; }
- /// <summary>
- /// 组织编码
- /// </summary>
- [SugarColumn(ColumnDescription ="组织编码")]
- public string OrgCode { get; set; }
- /// <summary>
- /// 创建人
- /// </summary>
- [SugarColumn(ColumnDescription ="创建人")]
- public string CreateUserId { get; set; }
- }
- /// <summary>
- /// 实体(权限、创建时间、软删除)
- /// </summary>
- public abstract class CreationSoftDeleteEntityHasAuth:CreationEntityHasAuth, IHasDeletionTime, ISoftDelete
- {
- [SugarColumn(ColumnDescription = "是否删除")]
- public bool IsDeleted { get; private set; }
- /// <summary>
- /// 删除时间
- /// </summary>
- [SugarColumn(ColumnDescription = "删除时间")]
- public DateTime? DeletionTime { get; set; }
- public void SoftDelete()
- {
- IsDeleted = true;
- DeletionTime = DateTime.Now;
- }
- public void Recover() => IsDeleted = false;
- }
- /// <summary>
- /// 实体(权限、修改时间)
- /// </summary>
- public abstract class CreationModifycationHasAuth: CreationEntityHasAuth, IHasModificationTime
- {
- /// <summary>
- /// 最近更新时间
- /// </summary>
- [SugarColumn(ColumnDescription = "最近更新时间")]
- public DateTime? LastModificationTime { get; set; }
- public void Modified() => LastModificationTime = DateTime.Now;
- }
- /// <summary>
- /// 全状态实体(权限、创建时间、更新时间、软删除)
- /// </summary>
- public abstract class FullStateEntityHasAuthEntity: CreationSoftDeleteEntityHasAuth, IHasModificationTime
- {
- /// <summary>
- /// 最近更新时间
- /// </summary>
- [SugarColumn(ColumnDescription = "最近更新时间")]
- public DateTime? LastModificationTime { get; set; }
- public void Modified() => LastModificationTime = DateTime.Now;
- }
|