init commit
This commit is contained in:
46
20220330_Vote/Ewide.RoadFlow/Data/Log/ILog.cs
Normal file
46
20220330_Vote/Ewide.RoadFlow/Data/Log/ILog.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RoadFlow.Data
|
||||
{
|
||||
public interface ILog:IRoadFlowRepository<RoadFlow.Model.rf_log>
|
||||
{
|
||||
/// <summary>
|
||||
/// 添加日志
|
||||
/// </summary>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="contents"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="oldContents"></param>
|
||||
/// <param name="newContents"></param>
|
||||
/// <param name="others"></param>
|
||||
/// <param name="browseAgent"></param>
|
||||
/// <param name="ipAddress"></param>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="userName"></param>
|
||||
public void Add(string title, string CurrentUserId = "", string contents = "",
|
||||
LogType type = LogType.其他, string oldContents = "", string newContents = "", string others = "",
|
||||
string browseAgent = "", string ipAddress = "", string url = "", string userId = "", string userName = "");
|
||||
|
||||
/// <summary>
|
||||
/// 得到日志类型
|
||||
/// </summary>
|
||||
/// <param name="type">日志类型</param>
|
||||
/// <param name="language">语言</param>
|
||||
/// <returns></returns>
|
||||
public string GetLogType(string type, string language);
|
||||
|
||||
/// <summary>
|
||||
/// 添加异常日志
|
||||
/// </summary>
|
||||
/// <param name="err">异常类</param>
|
||||
/// <param name="title">标题 如果为空用err.Message</param>
|
||||
public void Add(Exception err, string title = "");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
208
20220330_Vote/Ewide.RoadFlow/Data/Log/Log.cs
Normal file
208
20220330_Vote/Ewide.RoadFlow/Data/Log/Log.cs
Normal file
@@ -0,0 +1,208 @@
|
||||
using Ewide.Core;
|
||||
using Furion.DatabaseAccessor;
|
||||
using Furion.DependencyInjection;
|
||||
using RoadFlow.Utility;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RoadFlow.Data
|
||||
{
|
||||
public class Log :RoadFlowRepository<RoadFlow.Model.rf_log>,ILog, ITransient
|
||||
{
|
||||
private readonly IRepository<SysUser> _sysUserRep =Furion.App.GetService<IRepository<SysUser>>();
|
||||
private readonly IUserManager _userManager=Furion.App.GetService<IUserManager>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加日志
|
||||
/// </summary>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="contents"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="oldContents"></param>
|
||||
/// <param name="newContents"></param>
|
||||
/// <param name="others"></param>
|
||||
/// <param name="browseAgent"></param>
|
||||
/// <param name="ipAddress"></param>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="userName"></param>
|
||||
public void Add(string title, string CurrentUserId = "", string contents = "", LogType type = LogType.其他, string oldContents = "", string newContents = "", string others = "", string browseAgent = "", string ipAddress = "", string url = "", string userId = "", string userName = "")
|
||||
{
|
||||
var logModel = new Model.rf_log
|
||||
{
|
||||
Id = GuidExtensions.NewGuid().ToString(),
|
||||
Title = title,
|
||||
Type = type.ToString(),
|
||||
IPAddress = ipAddress.IsNullOrWhiteSpace() ? Tools.GetIP() : ipAddress,
|
||||
URL = url.IsNullOrWhiteSpace() ? Tools.GetAbsoluteURL() : url,
|
||||
WriteTime = DateExtensions.Now,
|
||||
Referer = Tools.GetReferer()
|
||||
};
|
||||
if (userId.IsGuid(out Guid userGuid))
|
||||
{
|
||||
logModel.UserId = userGuid.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
logModel.UserId = CurrentUserId;
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
if (!userName.IsNullOrWhiteSpace())
|
||||
{
|
||||
logModel.UserName = userName;
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
var userModel = logModel.UserId.IsNullOrWhiteSpace() ?_sysUserRep.DetachedEntities.FirstOrDefault(x=>x.Id==logModel.UserId) : null;
|
||||
|
||||
if (null != userModel)
|
||||
{
|
||||
logModel.UserName = userModel.Name;
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
if (!contents.IsNullOrWhiteSpace())
|
||||
{
|
||||
logModel.Contents = contents;
|
||||
}
|
||||
if (!others.IsNullOrWhiteSpace())
|
||||
{
|
||||
logModel.Others = others;
|
||||
}
|
||||
if (!oldContents.IsNullOrWhiteSpace())
|
||||
{
|
||||
logModel.OldContents = oldContents;
|
||||
}
|
||||
if (!newContents.IsNullOrWhiteSpace())
|
||||
{
|
||||
logModel.NewContents = newContents;
|
||||
}
|
||||
logModel.BrowseAgent = browseAgent.IsNullOrWhiteSpace() ? Tools.GetBrowseAgent() : browseAgent;
|
||||
AddLog(logModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加日志
|
||||
/// </summary>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="contents"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="oldContents"></param>
|
||||
/// <param name="newContents"></param>
|
||||
/// <param name="others"></param>
|
||||
/// <param name="browseAgent"></param>
|
||||
/// <param name="ipAddress"></param>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="userName"></param>
|
||||
public void Add(string title, string contents = "", LogType type = LogType.其他, string oldContents = "", string newContents = "", string others = "", string browseAgent = "", string ipAddress = "", string url = "", string userId = "", string userName = "")
|
||||
{
|
||||
this.Add(title, _userManager.UserId, contents, type, oldContents, newContents, others, browseAgent, ipAddress, url, userId, userName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加日志
|
||||
/// </summary>
|
||||
/// <param name="log"></param>
|
||||
private void AddLog(Model.rf_log log)
|
||||
{
|
||||
log.Type = GetLogType(log.Type, Config.Language_Default);
|
||||
this.Add(log);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到日志类型
|
||||
/// </summary>
|
||||
/// <param name="type">日志类型</param>
|
||||
/// <param name="language">语言</param>
|
||||
/// <returns></returns>
|
||||
public string GetLogType(string type, string language)
|
||||
{
|
||||
switch (language)
|
||||
{
|
||||
case "zh-CN":
|
||||
return type;
|
||||
case "zh":
|
||||
return ZH_Type.TryGetValue(type, out string t) ? t : type;
|
||||
case "en-US":
|
||||
return EN_US_Type.TryGetValue(type, out string t2) ? t2 : type;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
private static readonly Dictionary<string, string> ZH_Type = new Dictionary<string, string>
|
||||
{
|
||||
{"用户登录" ,"用戶登錄"},
|
||||
{"系统管理" ,"系統管理"},
|
||||
{"流程管理" ,"流程管理"},
|
||||
{"表单管理" ,"表單管理"},
|
||||
{"流程运行" ,"流程運行"},
|
||||
{"系统异常" ,"系統異常"},
|
||||
{"其他" ,"其他"},
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, string> EN_US_Type = new Dictionary<string, string>
|
||||
{
|
||||
{"用户登录" ,"User login"},
|
||||
{"系统管理" ,"System management"},
|
||||
{"流程管理" ,"Workflow management"},
|
||||
{"表单管理" ,"Form management"},
|
||||
{"流程运行" ,"Workflow run"},
|
||||
{"系统异常" ,"Exception"},
|
||||
{"其他" ,"Other"},
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// 添加异常日志
|
||||
/// </summary>
|
||||
/// <param name="err">异常类</param>
|
||||
/// <param name="title">标题 如果为空用err.Message</param>
|
||||
public void Add(Exception err, string title = "")
|
||||
{
|
||||
Model.rf_log logModel = new Model.rf_log
|
||||
{
|
||||
Id = GuidExtensions.NewGuid().ToString(),
|
||||
Title = title.IsNullOrWhiteSpace() ? err.Message : title,
|
||||
Type = GetLogType("系统异常", Tools.GetCurrentLanguage()),
|
||||
IPAddress = Tools.GetIP(),
|
||||
URL = Tools.GetAbsoluteURL(),
|
||||
WriteTime = DateExtensions.Now,
|
||||
Referer = Tools.GetReferer()
|
||||
};
|
||||
string uid = _userManager.UserId;
|
||||
/*if (uid.IsNullOrWhiteSpace())
|
||||
{
|
||||
uid = EnterpriseWeiXin.Common.GetUserId();
|
||||
}*/
|
||||
if (uid.IsNotEmptyGuid())
|
||||
{
|
||||
logModel.UserId = uid;
|
||||
}
|
||||
var userModel = _userManager.User;//logModel.UserId.HasValue ? new RoadFlow.Business.User().Get(logModel.UserId.Value) : null;
|
||||
/*if (null == userModel)
|
||||
{
|
||||
userModel = EnterpriseWeiXin.Common.GetUser();
|
||||
}*/
|
||||
if (null != userModel)
|
||||
{
|
||||
logModel.UserName = userModel.Name;
|
||||
}
|
||||
logModel.Contents = err.StackTrace;
|
||||
logModel.Others = err.Source + "(" + err.Message + ")";
|
||||
logModel.BrowseAgent = Tools.GetBrowseAgent();
|
||||
AddLog(logModel);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
19
20220330_Vote/Ewide.RoadFlow/Data/Log/LogType.cs
Normal file
19
20220330_Vote/Ewide.RoadFlow/Data/Log/LogType.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RoadFlow.Data
|
||||
{
|
||||
public enum LogType
|
||||
{
|
||||
用户登录,
|
||||
系统管理,
|
||||
流程管理,
|
||||
表单管理,
|
||||
流程运行,
|
||||
系统异常,
|
||||
其他
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user