/// <summary>
 /// 设置缓存
 /// </summary>
 /// <param name="entity">登录信息</param>
 public static void SetCache(BaseOrganizeLogOnEntity entity)
 {
     using (var redisClient = PooledRedisHelper.GetCallLimitClient())
     {
         SetCache(redisClient, entity);
     }
 }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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));
            }
        }
Beispiel #5
0
 /// <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);
        }
Beispiel #7
0
 /// <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));
 }
Beispiel #8
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="entity">实体</param>
 /// <returns>主键</returns>
 public string Add(BaseOrganizeLogOnEntity entity)
 {
     return(this.AddObject(entity));
 }