Basf_FCL/FCL/BLL/SysManage/Sys_LogService.cs

146 lines
4.6 KiB
C#

namespace BLL
{
using System;
using System.Collections;
using System.Linq;
using System.Net;
using System.Web.UI.WebControls;
public class Sys_LogService
{
/// <summary>
/// 记录数
/// </summary>
private static int count
{
get;
set;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.Sys_Log> qq = from x in Funs.DB.Sys_Log orderby x.OperationTime descending select x;
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="startRowIndex"></param>
/// <param name="maximumRows"></param>
/// <returns></returns>
public static IEnumerable getListData(string systemId, string projectId, string userId, string startTime, string endTime, int startRowIndex, int maximumRows)
{
IQueryable<Model.Sys_Log> q = qq;
if (userId != "0" && !string.IsNullOrEmpty(userId))
{
q = q.Where(e => e.UserId == userId);
}
if (!String.IsNullOrEmpty(startTime))
{
q = q.Where(e => e.OperationTime >= Convert.ToDateTime(startTime));
}
if (!String.IsNullOrEmpty(endTime))
{
q = q.Where(e => e.OperationTime <= Convert.ToDateTime(endTime));
}
if (projectId != "0" && !string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
if (systemId != "0" && !string.IsNullOrEmpty(systemId))
{
q = q.Where(e => e.SystemId == systemId);
}
count = q.Count();
if (count == 0)
{
return new object[] { "" };
}
return from x in q.Skip(startRowIndex).Take(maximumRows)
select new
{
UserName = (from u in Funs.DB.Sys_User where u.UserId == x.UserId select u.UserName).FirstOrDefault(),
x.OperationTime,
x.Ip,
x.HostName,
x.OperationLog,
//ProjectName = (from u in db.Base_Project where u.ProjectId == x.ProjectId select u.ProjectName).FirstOrDefault(),
//SystemName = (from u in db.Sys_System where u.SystemId == x.SystemId select u.SystemName).FirstOrDefault(),
};
}
/// <summary>
/// 获取列表数
/// </summary>
/// <returns></returns>
public static int getListCount(string systemId, string projectId, string userId, string startTime, string endTime)
{
return count;
}
/// <summary>
/// 添加操作日志
/// </summary>
/// <param name="userId"></param>
/// <param name="opLog"></param>
public static void AddLog(string userId, string opLog)
{
//SetOvertime(userId);
Model.Sys_Log log = new Model.Sys_Log();
log.LogId = SQLHelper.GetNewID(typeof(Model.Sys_Log));
log.HostName = Dns.GetHostName();
IPAddress[] ips = Dns.GetHostAddresses(log.HostName);
if (ips.Length > 0)
{
foreach (IPAddress ip in ips)
{
if (ip.ToString().IndexOf('.') != -1)
{
log.Ip = ip.ToString();
}
}
}
log.OperationTime = DateTime.Now;
log.OperationLog = opLog;
log.UserId = userId;
//log.ProjectId = projectId;
//log.SystemId = systemId;
Funs.DB.Sys_Log.InsertOnSubmit(log);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 根据人员Id查询所有日志信息的数量
/// </summary>
/// <param name="userId">人员Id</param>
/// <returns>日志信息的数量</returns>
public static int GetLogCountByUserId(string userId)
{
var q = (from x in Funs.DB.Sys_Log where x.UserId == userId select x).ToList();
return q.Count();
}
/// <summary>
/// 根据人员Id删除所有相关日志信息
/// </summary>
/// <param name="userId"></param>
public static void DeleteLogByUserId(string userId)
{
var q = (from x in Funs.DB.Sys_Log where x.UserId == userId select x).ToList();
if (q != null)
{
Funs.DB.Sys_Log.DeleteAllOnSubmit(q);
Funs.DB.SubmitChanges();
}
}
}
}