From 121b2ca12792fdd7ca3a7344afe16a15f31ea5fa Mon Sep 17 00:00:00 2001
From: Falcon <12919280+falconfly@user.noreply.gitee.com>
Date: Wed, 21 Aug 2024 15:36:07 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EIGetDataTimeNow=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=EF=BC=8C=E8=BF=94=E5=9B=9E=E5=BD=93=E5=89=8D=E7=B3=BB?=
=?UTF-8?q?=E7=BB=9F=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Falcon.SugarApi.Test/IGetDataTimeNowTest.cs | 41 +++++++++++++++++++
.../DatabaseDefinitions/SugarBasicTable.cs | 8 +++-
.../DatabaseDefinitions/SugarBasicTable2.cs | 6 +++
.../DatabaseDefinitions/SugarBasicTable3.cs | 8 +++-
Falcon.SugarApi/IGetDataTimeNow.cs | 16 ++++++++
5 files changed, 77 insertions(+), 2 deletions(-)
create mode 100644 Falcon.SugarApi.Test/IGetDataTimeNowTest.cs
create mode 100644 Falcon.SugarApi/IGetDataTimeNow.cs
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();
+ }
+}