[fix] 新增时如果没有IP信息,尝试获取当前IP。更新时不适用,避免原来的更新IP被覆盖为本机IP

This commit is contained in:
智能大石头 2025-05-27 14:43:42 +08:00
parent 266f20568e
commit 003d441d40
3 changed files with 14 additions and 4 deletions

View File

@ -205,12 +205,14 @@ public abstract class EntityModule : IEntityModule
/// <param name="name"></param>
/// <param name="value"></param>
/// <returns>返回是否成功设置了数据</returns>
protected virtual Boolean SetNoDirtyItem(ICollection<FieldItem> fields, IEntity entity, String name, Object value)
protected virtual Boolean SetNoDirtyItem(ICollection<FieldItem> fields, IEntity entity, String name, Object? value)
{
var fi = fields.FirstOrDefault(e => e.Name.EqualIgnoreCase(name));
if (fi == null) { return false; }
if (fi == null) return false;
name = fi.Name;
if (!entity.IsDirty(name)) return entity.SetItem(name, value);
return false;
}

View File

@ -52,7 +52,11 @@ public class IPModule : EntityModule
var fs = GetFields(entity.GetType());
var ip = ManageProvider.UserHost;
ip ??= NetHelper.MyIP()?.ToString();
// 新增时如果没有IP信息尝试获取当前IP。更新时不适用避免原来的更新IP被覆盖为本机IP
if (ip.IsNullOrEmpty() && method == DataMethod.Insert)
ip = NetHelper.MyIP()?.ToString();
if (!ip.IsNullOrEmpty())
{
// 如果不是IPv6去掉后面端口

View File

@ -83,7 +83,11 @@ public class UserModule : EntityModule
// 当前登录用户
var prv = Provider ?? ManageProvider.Provider;
var user = prv?.Current;
user ??= new User { Name = Environment.UserName };
// 新增时如果没有当前用户,尝试使用环境变量中的用户名
if (user == null && method == DataMethod.Insert)
user = new User { Name = Environment.UserName };
if (user != null)
{
switch (method)