怎样实现企业管理系统的操作日志功能
实现思路解析:在做企业管理系统的同一时候,操作日志这一功能是不可缺少的;所谓的操作日志就是记录一个用户从登陆时開始。到退出登陆时结束,记录这一过程中用户的所有操作;这里用.Net MVC为例
第一步:数据库
表1:用户日志(Sys_UserLoginLog)
列名 |
数据类型 |
主键/外键 |
说明 |
LoginID |
int |
主键 |
日志ID |
StaffID |
int |
外键 |
员工ID |
operationLog |
nchar(50) |
|
操作内容 |
operationDate |
datetime |
|
操作时间 |
表2:员工表(sys_YuanGong)
列名 |
数据类型 |
主键/外键 |
说明 |
YuanGongID |
int |
主键 |
员工ID |
LuRuYuanID |
int |
外键 |
录入员ID |
YuanGongZhuangTaiID |
int |
外键 |
员工状态ID |
MenDianID |
int |
外键 |
门店ID |
ZhiWuID |
Int |
外键 |
职务 |
JueSeID |
int |
外键 |
角色ID |
YuanGongBianHao |
nchar(50) |
|
员工编号 |
YuanGongXingMing |
nchar(50) |
|
员工姓名 |
XingBie |
nchar(50) |
|
性别 |
JiGuan |
nchar(50) |
|
籍贯 |
XueLi |
nchar(50) |
|
学历 |
ChuShengRiQi |
date |
|
出生日期 |
ShenFenZhengHao |
nchar(18) |
|
身份证号 |
RuZhiRiQi |
data |
|
入职日期 |
RuZhiDiDian |
nchar(50) |
|
入职地点 |
YiDongShouJi |
int |
|
移动手机 |
JiaTingDianHua |
nchar(50) |
|
家庭电话 |
DiXin |
decimal(18, 2) |
|
底薪 |
JiShiFou |
bit |
|
技术否 |
HunFou |
bit |
|
婚否 |
TongXunDiZhi |
nchar(50) |
|
通讯地址 |
BeiZhu |
nchar(50) |
|
备注 |
MiMa |
nchar(50) |
|
password |
图1
第二步:Controllers(控制器)
在控制器中写一个处理用户操作的方法,这样就能够在须要的地方直接调用这方法,避免了不要的反复代码,/// <summary> /// 设置登陆日志 /// </summary> /// <param name="log">操作信息</param> /// <param name="returnstring">返回值内容</param> /// <param name="intUesrID">登陆用户ID</param> /// <returns></returns> public string UesrLog(string log,string returnstring,int intUesrID) { var logstring = ""; Models.sys_UserLoginLog UserLog = new Models.sys_UserLoginLog(); UserLog.StaffID = Convert.ToInt32(intUesrID);//登陆人 UserLog.operationLog = log;//设置日志内容 UserLog.operationDate = DateTime.Now;//设置当前时间 myMdl.sys_UserLoginLog.AddObject(UserLog); int j = myMdl.SaveChanges(); if (j > 0)//推断是否保存成功 { logstring = returnstring; } return logstring; }
在须要的地方调用:比如:
public void LoginOff()//注销登陆人 { FormsAuthentication.SignOut();//删除身份验证票据 UesrLog("退出登陆", "true", Convert.ToInt32(Session["YongHuID"]));//调用写好的操作日志的方法 Response.Redirect("/Main/Login"); }
操作日志的处理全然是在后台运行,不要要在前台处理,须要记录的地方,就直接使用该写好的操作日志方法,这样就能够记录用户的操作步骤
该资料仅供參考,禁止商业用途