|  | @@ -7,6 +7,9 @@ using Admin.Core.Common.Configs;
 | 
	
		
			
				|  |  |  using Admin.Core.Common.Helpers;
 | 
	
		
			
				|  |  |  using Admin.Core.Common.Auth;
 | 
	
		
			
				|  |  |  using Admin.Core.Common.Dbs;
 | 
	
		
			
				|  |  | +using Admin.Core.Model.Admin;
 | 
	
		
			
				|  |  | +using System.Reflection;
 | 
	
		
			
				|  |  | +using Admin.Core.Common.Attributes;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  namespace Admin.Core.Db
 | 
	
		
			
				|  |  |  {
 | 
	
	
		
			
				|  | @@ -83,8 +86,8 @@ namespace Admin.Core.Db
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              #region 审计数据
 | 
	
		
			
				|  |  |              //计算服务器时间
 | 
	
		
			
				|  |  | -            //var serverTime = fsql.Select<T>().Limit(1).First(a => DateTime.local);
 | 
	
		
			
				|  |  | -            //var timeOffset = DateTime.UtcNow.Subtract(serverTime);
 | 
	
		
			
				|  |  | +            var serverTime = fsql.Select<DualEntity>().Limit(1).First(a => DateTime.UtcNow);
 | 
	
		
			
				|  |  | +            var timeOffset = DateTime.UtcNow.Subtract(serverTime);
 | 
	
		
			
				|  |  |              var user = services.BuildServiceProvider().GetService<IUser>();
 | 
	
		
			
				|  |  |              fsql.Aop.AuditValue += (s, e) =>
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -106,9 +109,12 @@ namespace Admin.Core.Db
 | 
	
		
			
				|  |  |                          case "TenantId":
 | 
	
		
			
				|  |  |                              e.Value = user.TenantId;
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  | -                            //case "CreatedTime":
 | 
	
		
			
				|  |  | -                            //    e.Value = DateTime.Now.Subtract(timeOffset);
 | 
	
		
			
				|  |  | -                            //    break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if (e.Property.GetCustomAttribute<ServerTimeAttribute>(false) != null && (e.Column.CsType == typeof(DateTime) || e.Column.CsType == typeof(DateTime?))
 | 
	
		
			
				|  |  | +                    && (e.Value == null || (DateTime)e.Value == default || (DateTime?)e.Value == default))
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        e.Value = DateTime.Now.Subtract(timeOffset);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  else if (e.AuditValueType == FreeSql.Aop.AuditValueType.Update)
 | 
	
	
		
			
				|  | @@ -121,9 +127,11 @@ namespace Admin.Core.Db
 | 
	
		
			
				|  |  |                          case "ModifiedUserName":
 | 
	
		
			
				|  |  |                              e.Value = user.Name;
 | 
	
		
			
				|  |  |                              break;
 | 
	
		
			
				|  |  | -                            //case "ModifiedTime":
 | 
	
		
			
				|  |  | -                            //    e.Value = DateTime.Now.Subtract(timeOffset);
 | 
	
		
			
				|  |  | -                            //    break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    if (e.Property.GetCustomAttribute<ServerTimeAttribute>(false) != null && (e.Column.CsType == typeof(DateTime) || e.Column.CsType == typeof(DateTime?))
 | 
	
		
			
				|  |  | +                    && (e.Value == null || (DateTime)e.Value == default || (DateTime?)e.Value == default))
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        e.Value = DateTime.Now.Subtract(timeOffset);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              };
 |