diff --git a/Falcon.SugarApi.Test/IGetDataTimeNowTest.cs b/Falcon.SugarApi.Test/IGetDataTimeNowTest.cs new file mode 100644 index 0000000..d9074c1 --- /dev/null +++ b/Falcon.SugarApi.Test/IGetDataTimeNowTest.cs @@ -0,0 +1,41 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; + +namespace Falcon.SugarApi.Test +{ + [TestClass] + public class IGetDataTimeNowTest + { + [TestMethod] + public void nowTest() { + var year = DateTime.Now.Year; + Console.WriteLine($"base year {year}"); + var ic1 = new c1(); + Console.WriteLine($"c1 year {ic1.now.Year}"); + var ic2 = new c2(); + Console.WriteLine($"c2 year {ic2.now.Year}"); + var ic3 = new c3(); + Console.WriteLine($"c3 year {ic3.now.Year}"); + Assert.IsTrue(ic1.now.Year == year); + Assert.IsTrue(ic3.now.Year == year); + Assert.IsTrue(ic2.now.Year == year + 1); + } + } + + public class c1 + { + public c1() { + this.now = this is IGetDataTimeNow gdn ? gdn.GetDataTimeNow() : DateTime.Now; + } + public DateTime now { get; set; } + } + + public class c2:c1, IGetDataTimeNow + { + public DateTime GetDataTimeNow() { + return DateTime.Now.AddYears(1); + } + } + + public class c3:c1 { } +} diff --git a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs index da337c3..2d843fc 100644 --- a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs +++ b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs @@ -9,6 +9,12 @@ namespace Falcon.SugarApi.DatabaseDefinitions /// public abstract class SugarBasicTable:EntityGuidId { + /// + /// 构造数据表基类 + /// + public SugarBasicTable() { + this.CreateTime = this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now; + } /// /// 创建时间 /// @@ -24,7 +30,7 @@ namespace Falcon.SugarApi.DatabaseDefinitions /// 本条数据 public virtual SugarBasicTable SetNew(DateTime? now = null) { this.Id = Guid.NewGuid(); - this.CreateTime = now ?? DateTime.Now; + this.CreateTime = now ?? (this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now); return this; } } diff --git a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs index e6402f1..1b7accc 100644 --- a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs +++ b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs @@ -9,6 +9,12 @@ namespace Falcon.SugarApi.DatabaseDefinitions /// public abstract class SugarBasicTable2:EntityStringId { + /// + /// 构造数据表基类 + /// + public SugarBasicTable2() { + this.CreateTime = this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now; + } /// /// 创建时间 /// diff --git a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs index 19c85c4..02438c9 100644 --- a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs +++ b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs @@ -9,6 +9,12 @@ namespace Falcon.SugarApi.DatabaseDefinitions /// public abstract class SugarBasicTable3:EntityStringId { + /// + /// 构造数据表基类 + /// + public SugarBasicTable3() { + this.CreateTime = this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now; + } /// /// 记录状态 /// @@ -18,6 +24,6 @@ namespace Falcon.SugarApi.DatabaseDefinitions /// 创建时间 /// [Required, SugarColumn(ColumnDescription = "创建时间")] - public DateTime CreateTime { get; set; } = DateTime.Now; + public DateTime CreateTime { get; set; } } } diff --git a/Falcon.SugarApi/IGetDataTimeNow.cs b/Falcon.SugarApi/IGetDataTimeNow.cs new file mode 100644 index 0000000..f9eb305 --- /dev/null +++ b/Falcon.SugarApi/IGetDataTimeNow.cs @@ -0,0 +1,16 @@ +using System; + +namespace Falcon.SugarApi +{ + /// + /// 获取当前时间接口 + /// + public interface IGetDataTimeNow + { + /// + /// 获取当前时间 + /// + /// + DateTime GetDataTimeNow(); + } +}