/// <summary> /// 设置实体 /// </summary> /// <param name="sqlBuilder">Sql语句生成器</param> /// <param name="entity">实体</param> private void SetEntity(SqlBuilder sqlBuilder, BaseLogonLogEntity entity) { SetEntityExtend(sqlBuilder, entity); sqlBuilder.SetValue(BaseLogonLogEntity.FieldSystemCode, entity.SystemCode); sqlBuilder.SetValue(BaseLogonLogEntity.FieldSourceType, entity.SourceType); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUserId, entity.UserId); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUserName, entity.UserName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldNickName, entity.NickName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldRealName, entity.RealName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCompanyId, entity.CompanyId); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCompanyName, entity.CompanyName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCompanyCode, entity.CompanyCode); sqlBuilder.SetValue(BaseLogonLogEntity.FieldProvince, entity.Province); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCity, entity.City); sqlBuilder.SetValue(BaseLogonLogEntity.FieldService, entity.Service); sqlBuilder.SetValue(BaseLogonLogEntity.FieldElapsedTicks, entity.ElapsedTicks); sqlBuilder.SetValue(BaseLogonLogEntity.FieldTargetApplication, entity.TargetApplication); sqlBuilder.SetValue(BaseLogonLogEntity.FieldTargetIp, entity.TargetIp); sqlBuilder.SetValue(BaseLogonLogEntity.FieldResult, entity.Result); sqlBuilder.SetValue(BaseLogonLogEntity.FieldOperationType, entity.OperationType); sqlBuilder.SetValue(BaseLogonLogEntity.FieldLogonStatus, entity.LogonStatus); sqlBuilder.SetValue(BaseLogonLogEntity.FieldLogLevel, entity.LogLevel); sqlBuilder.SetValue(BaseLogonLogEntity.FieldIpAddress, entity.IpAddress); sqlBuilder.SetValue(BaseLogonLogEntity.FieldIpAddressName, entity.IpAddressName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldMacAddress, entity.MacAddress); sqlBuilder.SetValue(BaseLogonLogEntity.FieldSortCode, entity.SortCode); sqlBuilder.SetValue(BaseLogonLogEntity.FieldDeleted, entity.Deleted); sqlBuilder.SetValue(BaseLogonLogEntity.FieldEnabled, entity.Enabled); }
/// <summary> /// 添加, 这里可以人工干预,提高程序的性能 /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式,表主键是否采用自增的策略</param> /// <param name="returnId">返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的</param> /// <returns>主键</returns> public string Add(BaseLogonLogEntity entity, bool identity = true, bool returnId = true) { Identity = identity; ReturnId = returnId; entity.Id = AddEntity(entity).ToInt(); return(entity.Id.ToString()); }
private static void AddLogTask(object param) { var tuple = param as Tuple <string, string, string, string, string, string, string, Tuple <string> >; if (tuple != null) { var systemCode = tuple.Item1; var userId = tuple.Item2; var userName = tuple.Item3; var nickName = tuple.Item4; var ipAddress = tuple.Item5; var ipAddressName = tuple.Item6; var macAddress = tuple.Item7; var loginStatus = string.Empty; if (tuple.Rest != null) { loginStatus = tuple.Rest.Item1; } var entity = new BaseLogonLogEntity { SystemCode = systemCode, UserId = userId.ToInt(), UserName = userName, //Troy.Cui 20160927 NickName = nickName, IpAddress = ipAddress, IpAddressName = ipAddressName, MacAddress = macAddress, LogonStatus = loginStatus, LogLevel = LogonStatusToLogLevel(loginStatus), CreateTime = DateTime.Now }; var tableName = GetSplitTableName(); using (var dbHelper = DbHelperFactory.Create(BaseSystemInfo.UserCenterDbType, BaseSystemInfo.UserCenterDbConnection)) { var loginLogManager = new BaseLogonLogManager(tableName); try { // 2015-07-13 把登录日志无法正常写入的,进行日志记录 loginLogManager.Add(entity); } catch (Exception ex) { LogUtil.WriteLog("AddLogTask: 异常信息:" + ex.Message + Environment.NewLine + "错误源:" + ex.Source + Environment.NewLine + "堆栈信息:" + ex.StackTrace, "Log"); } } } }
/// <summary> /// 添加或更新(主键是否为0) /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式,表主键是否采用自增的策略</param> /// <param name="returnId">返回主键,不返回程序允许速度会快,主要是为了主细表批量插入数据优化用的</param> /// <returns>主键</returns> public string AddOrUpdate(BaseLogonLogEntity entity, bool identity = true, bool returnId = true) { Identity = identity; ReturnId = returnId; if (entity.Id == 0) { entity.Id = AddEntity(entity).ToInt(); return(entity.Id.ToString()); } else { return(UpdateEntity(entity) > 0 ? entity.Id.ToString() : string.Empty); } }
private static void AddLogTaskByBaseUserInfo(object param) { var tuple = param as Tuple <string, BaseUserInfo, string, string, string, string>; if (tuple != null) { var systemCode = tuple.Item1; var userInfo = tuple.Item2; var ipAddress = tuple.Item3; var ipAddressName = tuple.Item4; var macAddress = tuple.Item5; var loginStatus = tuple.Item6; var entity = new BaseLogonLogEntity { SystemCode = systemCode, UserId = userInfo.UserId, UserName = userInfo.UserName, NickName = userInfo.NickName, RealName = userInfo.RealName, CompanyId = userInfo.CompanyId.ToInt(), CompanyName = userInfo.CompanyName, CompanyCode = userInfo.CompanyCode, IpAddress = ipAddress, IpAddressName = ipAddressName, MacAddress = macAddress, LogonStatus = loginStatus, LogLevel = LogonStatusToLogLevel(loginStatus), CreateTime = DateTime.Now }; var tableName = GetSplitTableName(userInfo); var loginLogManager = new BaseLogonLogManager(tableName); try { // 2015-07-13 把登录日志无法正常写入的,进行日志记录 loginLogManager.Add(entity); } catch (Exception ex) { LogUtil.WriteLog("AddLogTask: ipAddress:" + ipAddress + "macAddress:" + macAddress + "userName:"******"异常信息:" + ex.Message + Environment.NewLine + "错误源:" + ex.Source + Environment.NewLine + "堆栈信息:" + ex.StackTrace, "Log"); } } }
/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> public int UpdateEntity(BaseLogonLogEntity entity) { var sqlBuilder = new SqlBuilder(DbHelper); sqlBuilder.BeginUpdate(CurrentTableName); SetEntity(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateUserId, UserInfo.UserId); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateUserName, UserInfo.UserName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateBy, UserInfo.RealName); } sqlBuilder.SetDbNow(BaseLogonLogEntity.FieldUpdateTime); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateIp, Utils.GetIp()); sqlBuilder.SetWhere(PrimaryKey, entity.Id); //return sqlBuilder.EndUpdate(); var result = sqlBuilder.EndUpdate(); if (result > 0) { RemoveCache(entity.Id); } return(result); }
// 这个是声明扩展方法 partial void SetEntityExtend(SqlBuilder sqlBuilder, BaseLogonLogEntity entity);
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddEntity(BaseLogonLogEntity entity) { var key = string.Empty; if (entity.SortCode == 0) { var managerSequence = new BaseSequenceManager(DbHelper, Identity); if (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2) { key = managerSequence.Increment($"SC_{CurrentTableName}_SEQ"); } else { key = managerSequence.Increment(CurrentTableName); } entity.SortCode = key.ToInt(); } var sqlBuilder = new SqlBuilder(DbHelper, Identity, ReturnId); sqlBuilder.BeginInsert(CurrentTableName, PrimaryKey); if (!Identity) { // 这里已经是指定了主键了,所以不需要返回主键了 sqlBuilder.ReturnId = false; sqlBuilder.SetValue(PrimaryKey, entity.Id); } else { if (!ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(PrimaryKey, $"{CurrentTableName}_SEQ.NEXTVAL"); } if (DbHelper.CurrentDbType == CurrentDbType.Db2) { sqlBuilder.SetFormula(PrimaryKey, $"NEXT VALUE FOR {CurrentTableName}_SEQ"); } } else { if (Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2)) { var managerSequence = new BaseSequenceManager(DbHelper); entity.Id = managerSequence.Increment($"{CurrentTableName}_SEQ").ToInt(); sqlBuilder.SetValue(PrimaryKey, entity.Id); } } } SetEntity(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseLogonLogEntity.FieldCreateUserId, UserInfo.UserId); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCreateUserName, UserInfo.UserName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCreateBy, UserInfo.RealName); } else { sqlBuilder.SetValue(BaseLogonLogEntity.FieldCreateBy, entity.CreateBy); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCreateUserName, entity.CreateUserName); } sqlBuilder.SetDbNow(BaseLogonLogEntity.FieldCreateTime); sqlBuilder.SetValue(BaseLogonLogEntity.FieldCreateIp, Utils.GetIp()); if (UserInfo != null) { sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateUserId, UserInfo.UserId); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateUserName, UserInfo.UserName); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateBy, UserInfo.RealName); } sqlBuilder.SetDbNow(BaseLogonLogEntity.FieldUpdateTime); sqlBuilder.SetValue(BaseLogonLogEntity.FieldUpdateIp, Utils.GetIp()); if (Identity && (DbHelper.CurrentDbType == CurrentDbType.SqlServer || DbHelper.CurrentDbType == CurrentDbType.Access)) { key = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } if (Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.Db2)) { key = entity.Id.ToString(); } if (!string.IsNullOrWhiteSpace(key)) { RemoveCache(); } return(key); }
/// <summary> /// 更新 /// </summary> /// <param name="entity">实体</param> public int Update(BaseLogonLogEntity entity) { return(UpdateEntity(entity)); }
/// <summary> /// 增加日志 /// </summary> /// <param name="systemCode">系统编码</param> /// <param name="userEntity"></param> /// <param name="ipAddress"></param> /// <param name="ipAddressName"></param> /// <param name="macAddress"></param> /// <param name="loginStatus"></param> /// <param name="operationType"></param> /// <param name="loginResult"></param> /// <param name="sourceType"></param> /// <param name="targetApplication"></param> /// <param name="targetIp"></param> /// <returns></returns> public static string AddLog(string systemCode, BaseUserEntity userEntity, string ipAddress, string ipAddressName, string macAddress, string loginStatus, int operationType = 1, int loginResult = 1, string sourceType = null, string targetApplication = null, string targetIp = null) { if (!BaseSystemInfo.RecordLogonLog) { return(string.Empty); } if (userEntity == null) { return(null); } var result = string.Empty; var entity = new BaseLogonLogEntity { SystemCode = systemCode, UserId = userEntity.Id, UserName = userEntity.UserName, NickName = userEntity.NickName, RealName = userEntity.RealName, CompanyId = userEntity.CompanyId, CompanyName = userEntity.CompanyName }; if (BaseSystemInfo.OnInternet && userEntity.CompanyId > 0) { entity.CompanyCode = BaseOrganizationManager.GetCodeByCache(userEntity.CompanyId.ToString()); } entity.Province = userEntity.Province; entity.City = userEntity.City; entity.TargetApplication = targetApplication; entity.TargetIp = targetIp; entity.SourceType = sourceType; entity.IpAddress = ipAddress; entity.IpAddressName = ipAddressName; entity.MacAddress = macAddress; entity.LogonStatus = loginStatus; entity.OperationType = operationType; entity.Result = loginResult; entity.LogLevel = LogonStatusToLogLevel(loginStatus); entity.CreateTime = DateTime.Now; var tableName = GetSplitTableName(userEntity); var loginLogManager = new BaseLogonLogManager(tableName); try { // 2015-07-13 把登录日志无法正常写入的,进行日志记录 result = loginLogManager.Add(entity); } catch (Exception ex) { LogUtil.WriteLog("AddLogTask: 异常信息:" + ex.Message + "userName:"******"错误源:" + ex.Source + Environment.NewLine + "堆栈信息:" + ex.StackTrace, "Log"); } return(result); }