Beispiel #1
0
 public IEnumerable <HouseInfo> SearchHouses(HouseCondition condition)
 {
     if (string.IsNullOrEmpty(condition.Source))
     {
         var houseList = new List <HouseInfo>();
         // 因为会走几个表,默认每个表取N条
         var houseSources = GetCityHouseSources(condition.CityName);
         var limitCount   = condition.HouseCount / houseSources.Count;
         foreach (var houseSource in houseSources)
         {
             //建荣家园数据质量比较差,默认不出
             if (houseSource == ConstConfigName.CCBHouse)
             {
                 continue;
             }
             condition.Source     = houseSource;
             condition.HouseCount = limitCount;
             houseList.AddRange(Search(condition));
         }
         return(houseList.OrderByDescending(h => h.PubTime));
     }
     else
     {
         return(Search(condition));
     }
 }
Beispiel #2
0
        public IEnumerable <HouseInfo> Search(HouseCondition condition)
        {
            string redisKey = condition.RedisKey;
            var    houses   = new List <HouseInfo>();

            if (!condition.Refresh)
            {
                houses = _redisService.ReadCache <List <HouseInfo> >(redisKey, RedisKey.Houses.DBName);
                if (houses != null && houses.Count > 0)
                {
                    return(houses);
                }
            }
            using (IDbConnection dbConnection = GetConnection())
            {
                dbConnection.Open();
                houses = dbConnection.Query <HouseInfo>(condition.QueryText, condition).ToList();
                if (houses != null && houses.Count > 0)
                {
                    _redisService.WriteObject(redisKey, houses, RedisKey.Houses.DBName);
                }
                return(houses);
            }
        }