/// <summary> /// 设置缓存 /// </summary> /// <param name="entity">登录信息</param> public static void SetCache(BaseOrganizeLogOnEntity entity) { using (var redisClient = PooledRedisHelper.GetCallLimitClient()) { SetCache(redisClient, entity); } }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseOrganizeLogOnEntity entity) { string result = string.Empty; if (string.IsNullOrEmpty(entity.Id)) { BaseSequenceManager manager = new BaseSequenceManager(DbHelper, this.Identity); result = manager.Increment(this.CurrentTableName); entity.Id = result; } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseOrganizeLogOnEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldId, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseOrganizeLogOnEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseOrganizeLogOnEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (entity.Id == null) { if (string.IsNullOrEmpty(result)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); result = sequenceManager.Increment(this.CurrentTableName); } entity.Id = result; } sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); sqlBuilder.SetDBNow(BaseOrganizeLogOnEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { result = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); result = entity.Id; } return(result); }
/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> public int UpdateObject(BaseOrganizeLogOnEntity entity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetObject(sqlBuilder, entity); sqlBuilder.SetDBNow(BaseOrganizeLogOnEntity.FieldModifiedOn); sqlBuilder.SetWhere(BaseOrganizeLogOnEntity.FieldId, entity.Id); return(sqlBuilder.EndUpdate()); }
/// <summary> /// 设置缓存 /// </summary> /// <param name="entity">登录信息</param> public static void SetCache(IRedisClient redisClient, BaseOrganizeLogOnEntity entity) { string key = string.Empty; if (entity != null && !string.IsNullOrWhiteSpace(entity.Id)) { key = "OrganizeLogOn:" + entity.Id; // 最多存放两天就可以了 redisClient.Set(key, entity, DateTime.Now.AddDays(2)); } }
/// <summary> /// 设置实体 /// </summary> /// <param name="entity">实体</param> private void SetObject(SQLBuilder sqlBuilder, BaseOrganizeLogOnEntity entity) { sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldAgree, entity.Agree); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldOppose, entity.Oppose); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldFirstVisit, entity.FirstVisit); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldLastVisit, entity.LastVisit); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldShowCount, entity.ShowCount); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldLogOnCount, entity.LogOnCount); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldUserOnLine, entity.UserOnLine); sqlBuilder.SetValue(BaseOrganizeLogOnEntity.FieldIPAddress, entity.IPAddress); }
/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> public static int LogOnStatistics() { int result = 0; bool update = false; int i = 0; // 电脑登录系统、没有登记过的,全部登记上来。 BaseOrganizeLogOnEntity organizeLogOnEntity = null; string sqlQuery = string.Empty; sqlQuery = @"SELECT u.companyid id , MIN(l.firstvisit) firstvisit , MAX(l.lastvisit) lastvisit FROM baseuserlogon l , baseuser u WHERE l.id = u.id GROUP BY u.companyid"; BaseOrganizeLogOnManager organizeLogOnManager = new BaseOrganizeLogOnManager(); BaseOrganizeLogOnManager manager = new BaseOrganizeLogOnManager(); using (IDataReader dataReader = manager.ExecuteReader(sqlQuery)) { while (dataReader.Read()) { i++; string id = BaseBusinessLogic.ConvertToString(dataReader[BaseOrganizeLogOnEntity.FieldId]); DateTime?firstVisit = BaseBusinessLogic.ConvertToNullableDateTime(dataReader[BaseOrganizeLogOnEntity.FieldFirstVisit]); DateTime?lastVisit = BaseBusinessLogic.ConvertToNullableDateTime(dataReader[BaseOrganizeLogOnEntity.FieldLastVisit]); organizeLogOnEntity = organizeLogOnManager.GetObject(id); if (organizeLogOnEntity == null) { organizeLogOnEntity = new BaseOrganizeLogOnEntity(); organizeLogOnEntity.Id = id; organizeLogOnEntity.FirstVisit = firstVisit; organizeLogOnEntity.LastVisit = lastVisit; organizeLogOnManager.AddObject(organizeLogOnEntity); } else { update = false; if (firstVisit.HasValue) { if (organizeLogOnEntity.FirstVisit == null || organizeLogOnEntity.FirstVisit > firstVisit) { organizeLogOnEntity.FirstVisit = firstVisit; update = true; } } if (lastVisit.HasValue) { if (organizeLogOnEntity.LastVisit == null || organizeLogOnEntity.LastVisit < lastVisit) { organizeLogOnEntity.LastVisit = lastVisit; update = true; } } if (update) { organizeLogOnManager.UpdateObject(organizeLogOnEntity); } } if (update) { System.Console.WriteLine("第 " + i.ToString() + " companyid : " + id); } else { System.Console.WriteLine("第 " + i.ToString()); } } dataReader.Close(); } // 巴枪登录系统、没有登记过的,全部登记上来。 sqlQuery = @"SELECT u.companyid id , MIN(l.firstvisit) firstvisit , MAX(l.lastvisit) lastvisit FROM pdauserlogon l , baseuser u WHERE l.id = u.id GROUP BY u.companyid"; using (IDataReader dataReader = manager.ExecuteReader(sqlQuery)) { i = 0; while (dataReader.Read()) { i++; string id = BaseBusinessLogic.ConvertToString(dataReader[BaseOrganizeLogOnEntity.FieldId]); DateTime?firstVisit = BaseBusinessLogic.ConvertToNullableDateTime(dataReader[BaseOrganizeLogOnEntity.FieldFirstVisit]); DateTime?lastVisit = BaseBusinessLogic.ConvertToNullableDateTime(dataReader[BaseOrganizeLogOnEntity.FieldLastVisit]); organizeLogOnEntity = organizeLogOnManager.GetObject(id); if (organizeLogOnEntity == null) { organizeLogOnEntity = new BaseOrganizeLogOnEntity(); organizeLogOnEntity.Id = id; organizeLogOnEntity.FirstVisit = firstVisit; organizeLogOnEntity.LastVisit = lastVisit; organizeLogOnManager.Add(organizeLogOnEntity); } else { update = false; if (firstVisit.HasValue) { if (organizeLogOnEntity.FirstVisit == null || organizeLogOnEntity.FirstVisit > firstVisit) { organizeLogOnEntity.FirstVisit = firstVisit; update = true; } } if (lastVisit.HasValue) { if (organizeLogOnEntity.LastVisit == null || organizeLogOnEntity.LastVisit < lastVisit) { organizeLogOnEntity.LastVisit = lastVisit; update = true; } } organizeLogOnManager.UpdateObject(organizeLogOnEntity); } if (update) { System.Console.WriteLine("第 " + i.ToString() + " companyid : " + id); } else { System.Console.WriteLine("第 " + i.ToString()); } } dataReader.Close(); } System.Console.WriteLine("公司整体登录状态已经更新完毕。"); return(result); }
/// <summary> /// 添加 /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式</param> /// <param name="returnId">返回主鍵</param> /// <returns>主键</returns> public string Add(BaseOrganizeLogOnEntity entity, bool identity, bool returnId) { this.Identity = identity; this.ReturnId = returnId; return(this.AddObject(entity)); }
/// <summary> /// 添加 /// </summary> /// <param name="entity">实体</param> /// <returns>主键</returns> public string Add(BaseOrganizeLogOnEntity entity) { return(this.AddObject(entity)); }