/// <summary> /// 根据相关信息,写入用户的操作日志记录 /// </summary> /// <param name="userId">操作用户</param> /// <param name="tableName">操作表名称</param> /// <param name="operationType">操作类型 0-增加; 1-修改; 2-删除;</param> /// <param name="note">操作详细表述</param> /// <param name="trans">事务对象</param> /// <returns></returns> public static bool OnOperationLog(Int32 userId, string tableName, OperationType operationType, string remark, DbTransaction trans = null) { //虽然实现了这个事件,但是我们还需要判断该表是否在配置表里面,如果不在,则不记录操作日志。 OperationLogSettingInfo settingInfo = BLLFactory <OperationLogSetting> .Instance.FindByTableName(tableName, trans); if (settingInfo != null) { bool insert = OperationType.新增 == operationType && (settingInfo.IsInsertLog == (short)IsInsertLog.是); bool update = OperationType.修改 == operationType && (settingInfo.IsUpdateLog == (short)IsInsertLog.是); bool delete = OperationType.除 == operationType && (settingInfo.IsDeleteLog == (short)IsInsertLog.是); if (insert || update || delete) { OperationLogInfo info = new OperationLogInfo(); info.TableName = tableName; info.OperationType = (short)operationType; info.Remark = remark; info.CreatorTime = DateTimeHelper.GetServerDateTime2(); UserInfo userInfo = BLLFactory <User> .Instance.FindById(userId, trans); if (userInfo != null) { info.UserId = userId; info.Name = userInfo.Name; info.LoginName = userInfo.LoginName; info.CompanyId = userInfo.CompanyId; info.Mac = userInfo.LastLoginMac; info.IP = userInfo.LastLoginIp; } return(BLLFactory <OperationLog> .Instance.Insert(info, trans)); } } return(false); }
/// <summary> /// 数据显示的函数 /// </summary> public override void DisplayData() { InitDictItem();//数据字典加载(公用) if (!string.IsNullOrEmpty(ID)) { #region 显示信息 OperationLogSettingInfo info = BLLFactory <OperationLogSetting> .Instance.FindByID(ID); if (info != null) { tempInfo = info;//重新给临时对象赋值,使之指向存在的记录对象 txtForbid.Checked = info.Forbid; txtTableName.Text = info.TableName; txtInsertLog.Checked = info.InsertLog; txtDeleteLog.Checked = info.DeleteLog; txtUpdateLog.Checked = info.UpdateLog; txtNote.Text = info.Note; txtCreator.Text = info.Creator; txtCreateTime.SetDateTime(info.CreateTime); txtEditor.Text = info.Editor; txtEditTime.SetDateTime(info.EditTime); } #endregion } else { txtCreateTime.DateTime = DateTimeHelper.GetServerDateTime2(); //默认当前时间 txtCreator.Text = Portal.gc.UserInfo.FullName; //默认为当前登录用户 txtEditor.Text = Portal.gc.UserInfo.FullName; //默认为当前登录用户 txtEditTime.DateTime = DateTimeHelper.GetServerDateTime2(); //默认当前时间 } }
/// <summary> /// 编辑或者保存状态下取值函数 /// </summary> /// <param name="info"></param> private void SetInfo(OperationLogSettingInfo info) { info.IsForbid = (short)(txtForbid.Checked ? 0 : 1); info.TableName = txtTableName.Text; info.IsInsertLog = (short)(txtInsertLog.Checked ? 0 : 1); info.IsDeleteLog = (short)(txtDeleteLog.Checked ? 0 : 1); info.IsUpdateLog = (short)(txtUpdateLog.Checked ? 0 : 1); info.Remark = txtNote.Text; //info.Editor = Portal.gc.UserInfo.LoginName; info.EditorId = Portal.gc.UserInfo.Id; info.LastUpdateTime = txtCreateTime.DateTime; info.CurrentLoginUserId = Portal.gc.UserInfo.Id; }
/// <summary> /// 编辑或者保存状态下取值函数 /// </summary> /// <param name="info"></param> private void SetInfo(OperationLogSettingInfo info) { info.Forbid = txtForbid.Checked; info.TableName = txtTableName.Text; info.InsertLog = txtInsertLog.Checked; info.DeleteLog = txtDeleteLog.Checked; info.UpdateLog = txtUpdateLog.Checked; info.Note = txtNote.Text; info.Editor = Portal.gc.UserInfo.FullName; info.Editor_ID = Portal.gc.UserInfo.ID.ToString(); info.EditTime = txtCreateTime.DateTime; info.CurrentLoginUserId = Portal.gc.UserInfo.ID; }
/// <summary> /// 根据相关信息,写入用户的操作日志记录 /// </summary> /// <param name="userId">操作用户</param> /// <param name="tableName">操作表名称</param> /// <param name="operationType">操作类型</param> /// <param name="note">操作详细表述</param> /// <param name="trans">事务对象</param> /// <returns></returns> public static bool OnOperationLog(string userId, string tableName, string operationType, string note, DbTransaction trans = null) { //虽然实现了这个事件,但是我们还需要判断该表是否在配置表里面,如果不在,则不记录操作日志。 OperationLogSettingInfo settingInfo = BLLFactory <OperationLogSetting> .Instance.FindByTableName(tableName, trans); if (settingInfo != null) { bool insert = operationType == "增加" && settingInfo.InsertLog; bool update = operationType == "修改" && settingInfo.UpdateLog; bool delete = operationType == "删除" && settingInfo.DeleteLog; if (insert || update || delete) { OperationLogInfo info = new OperationLogInfo(); info.TableName = tableName; info.OperationType = operationType; info.Note = note; info.CreateTime = DateTime.Now; if (!string.IsNullOrEmpty(userId)) { UserInfo userInfo = BLLFactory <User> .Instance.FindByID(userId, trans); if (userInfo != null) { info.User_ID = userId; info.LoginName = userInfo.Name; info.FullName = userInfo.FullName; info.Company_ID = userInfo.Company_ID; info.CompanyName = userInfo.CompanyName; info.MacAddress = userInfo.CurrentMacAddress; info.IPAddress = userInfo.CurrentLoginIP; } } return(BLLFactory <OperationLog> .Instance.Insert(info, trans)); } } return(false); }
/// <summary> /// 编辑状态下的数据保存 /// </summary> /// <returns></returns> public override bool SaveUpdated() { //检查不同ID是否还有其他相同关键字的记录 string condition = string.Format("TableName ='{0}' and ID <> '{1}' ", this.txtTableName.Text, ID); bool exist = BLLFactory <OperationLogSetting> .Instance.IsExistRecord(condition); if (exist) { MessageDxUtil.ShowTips("指定的【数据库表】已经存在,不能重复添加,请修改"); return(false); } OperationLogSettingInfo info = BLLFactory <OperationLogSetting> .Instance.FindByID(ID); if (info != null) { SetInfo(info); try { #region 更新数据 bool succeed = BLLFactory <OperationLogSetting> .Instance.Update(info, info.ID); if (succeed) { //可添加其他关联操作 return(true); } #endregion } catch (Exception ex) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmEditOperationLogSetting)); MessageDxUtil.ShowError(ex.Message); } } return(false); }
/// <summary> /// 新增状态下的数据保存 /// </summary> /// <returns></returns> public override bool SaveAddNew() { OperationLogSettingInfo info = tempInfo;//必须使用存在的局部变量,因为部分信息可能被附件使用 SetInfo(info); //info.Creator = Portal.gc.UserInfo.LoginName; info.CreatorId = Portal.gc.UserInfo.Id; info.CreatorTime = txtCreateTime.DateTime; try { #region 新增数据 //检查是否还有其他相同关键字的记录 bool exist = BLLFactory <OperationLogSetting> .Instance.IsExistKey("TableName", info.TableName); if (exist) { MessageDxUtil.ShowTips("指定的【数据库表】已经存在,不能重复添加,请修改"); return(false); } bool succeed = BLLFactory <OperationLogSetting> .Instance.Insert(info); if (succeed) { //可添加其他关联操作 return(true); } #endregion } catch (Exception ex) { LogHelper.WriteLog(LogLevel.LOG_LEVEL_CRIT, ex, typeof(FrmEditOperationLogSetting)); MessageDxUtil.ShowError(ex.Message); } return(false); }
public override void ClearScreen() { this.tempInfo = new OperationLogSettingInfo(); base.ClearScreen(); }