/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> public int UpdateObject(BaseLoginLogEntity entity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetObject(sqlBuilder, entity); sqlBuilder.SetWhere(this.PrimaryKey, entity.Id); return(sqlBuilder.EndUpdate()); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseLoginLogEntity entity) { string result = string.Empty; if (string.IsNullOrEmpty(entity.Id)) { entity.Id = System.Guid.NewGuid().ToString("N"); } result = entity.Id.ToString(); SQLBuilder sqlBuilder = new SQLBuilder(this.DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, this.PrimaryKey); if (!string.IsNullOrEmpty(entity.Id)) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } else { if ((DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(this.PrimaryKey, "SEQ_BASE_LOGINLOG.NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(this.PrimaryKey, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { entity.Id = System.Guid.NewGuid().ToString("N"); sqlBuilder.SetValue(this.PrimaryKey, entity.Id); } } this.SetObject(sqlBuilder, entity); sqlBuilder.SetDBNow(BaseLoginLogEntity.FieldCreateOn); if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { result = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { return(entity.Id.ToString()); } return(result); }
public static string AddLog(string systemCode, BaseUserEntity userEntity, string ipAddress, string ipAddressName, string macAddress, string loginStatus) { if (!BaseSystemInfo.RecordLogOnLog) { return(string.Empty); } if (userEntity == null) { return(null); } string result = string.Empty; BaseLoginLogEntity entity = new BaseLoginLogEntity(); entity.SystemCode = systemCode; entity.UserId = userEntity.Id; entity.UserName = userEntity.NickName; entity.RealName = userEntity.RealName; entity.CompanyId = userEntity.CompanyId; entity.CompanyName = userEntity.CompanyName; if (BaseSystemInfo.OnInternet && !string.IsNullOrEmpty(userEntity.CompanyId)) { entity.CompanyCode = BaseOrganizeManager.GetCodeByCache(userEntity.CompanyId); } entity.IPAddress = ipAddress; entity.IPAddressName = ipAddressName; entity.MACAddress = macAddress; entity.LoginStatus = loginStatus; entity.LogLevel = LoginStatusToLogLevel(loginStatus); entity.CreateOn = DateTime.Now; string tableName = GetSplitTableName(userEntity); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.LoginLogDbType, BaseSystemInfo.LoginLogDbConnection)) { BaseLoginLogManager loginLogManager = new BaseLoginLogManager(dbHelper, tableName); try { // 2015-07-13 把登录日志无法正常写入的,进行日志记录 result = loginLogManager.Add(entity, false, false); } catch (System.Exception ex) { FileUtil.WriteMessage("AddLogTask: 异常信息:" + ex.Message + System.Environment.NewLine + "错误源:" + ex.Source + System.Environment.NewLine + "堆栈信息:" + ex.StackTrace, System.Web.HttpContext.Current.Server.MapPath("~/Log/") + "Log" + DateTime.Now.ToString(BaseSystemInfo.DateFormat) + ".txt"); } } return(result); }
/// <summary> /// 设置实体 /// </summary> /// <param name="entity">实体</param> private void SetObject(SQLBuilder sqlBuilder, BaseLoginLogEntity entity) { SetObjectExpand(sqlBuilder, entity); sqlBuilder.SetValue(BaseLoginLogEntity.FieldSystemCode, entity.SystemCode); sqlBuilder.SetValue(BaseLoginLogEntity.FieldUserName, entity.UserName); sqlBuilder.SetValue(BaseLoginLogEntity.FieldUserId, entity.UserId); sqlBuilder.SetValue(BaseLoginLogEntity.FieldCompanyId, entity.CompanyId); sqlBuilder.SetValue(BaseLoginLogEntity.FieldCompanyName, entity.CompanyName); sqlBuilder.SetValue(BaseLoginLogEntity.FieldCompanyCode, entity.CompanyCode); sqlBuilder.SetValue(BaseLoginLogEntity.FieldLoginStatus, entity.LoginStatus); sqlBuilder.SetValue(BaseLoginLogEntity.FieldMACAddress, entity.MACAddress); sqlBuilder.SetValue(BaseLoginLogEntity.FieldIPAddress, entity.IPAddress); sqlBuilder.SetValue(BaseLoginLogEntity.FieldIPAddressName, entity.IPAddressName); }
private static void AddLogTaskByBaseUserInfo(object param) { var tuple = param as Tuple <string, BaseUserInfo, string, string, string, string>; string systemCode = tuple.Item1; BaseUserInfo userInfo = tuple.Item2; string ipAddress = tuple.Item3; string ipAddressName = tuple.Item4; string macAddress = tuple.Item5; string loginStatus = tuple.Item6; BaseLoginLogEntity entity = new BaseLoginLogEntity(); entity.SystemCode = systemCode; entity.UserId = userInfo.Id; entity.UserName = userInfo.NickName; entity.RealName = userInfo.RealName; entity.CompanyId = userInfo.CompanyId; entity.CompanyName = userInfo.CompanyName; entity.CompanyCode = userInfo.CompanyCode; entity.IPAddress = ipAddress; entity.IPAddressName = ipAddressName; entity.MACAddress = macAddress; entity.LoginStatus = loginStatus; entity.LogLevel = LoginStatusToLogLevel(loginStatus); entity.CreateOn = DateTime.Now; string tableName = GetSplitTableName(userInfo); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.LoginLogDbType, BaseSystemInfo.LoginLogDbConnection)) { BaseLoginLogManager loginLogManager = new BaseLoginLogManager(dbHelper, tableName); try { // 2015-07-13 把登录日志无法正常写入的,进行日志记录 loginLogManager.Add(entity, false, false); } catch (System.Exception ex) { FileUtil.WriteMessage("AddLogTask: ipAddress:" + ipAddress + "macAddress:" + macAddress + System.Environment.NewLine + "异常信息:" + ex.Message + System.Environment.NewLine + "错误源:" + ex.Source + System.Environment.NewLine + "堆栈信息:" + ex.StackTrace, System.Web.HttpContext.Current.Server.MapPath("~/Log/") + "Log" + DateTime.Now.ToString(BaseSystemInfo.DateFormat) + ".txt"); } } }
// 这个是声明扩展方法 partial void SetObjectExpand(SQLBuilder sqlBuilder, BaseLoginLogEntity entity);
/// <summary> /// 更新 /// </summary> /// <param name="entity">实体</param> public int Update(BaseLoginLogEntity entity) { return(this.UpdateObject(entity)); }
/// <summary> /// 添加, 这里可以人工干预,提高程序的性能 /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式,表主键是否采用自增的策略</param> /// <param name="returnId">返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的</param> /// <returns>主键</returns> public string Add(BaseLoginLogEntity entity, bool identity = false, bool returnId = false) { this.Identity = identity; this.ReturnId = returnId; return(this.AddObject(entity)); }