public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 400, int withAnyDays = 3) { var houses = _dataContent.HouseInfos.Where(h => h.LocationCityName == cityName && h.PubTime > DateTime.Now.Date.AddDays(-withAnyDays)); if (!string.IsNullOrEmpty(source)) { houses = houses.Where(h => h.Source == source); } var lstHouseInfo = houses.OrderByDescending(h => h.PubTime).Take(houseCount).ToList(); var lstRoomInfo = lstHouseInfo.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(CultureInfo.CurrentCulture), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = lstRoomInfo })); }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 500, int withAnyDays = 7, string keyword = "") { var houses = houseDapper.SearchHouseInfo(cityName, source, houseCount, withAnyDays, keyword); var rooms = houses.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Source = house.Source, Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HouseTitle = house.HouseTitle, HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); ElasticsearchService.AddHouse(houses.ToList()); return(Json(new { IsSuccess = true, HouseInfos = rooms })); }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 100, int withAnyDays = 3, bool showDoubanInvalidData = true, string keyword = "") { try { var lstHouseInfo = new DBHouseInfoDAL().SearchHouseInfo(cityName, source, houseCount, withAnyDays, showDoubanInvalidData, keyword); var lstRoomInfo = lstHouseInfo.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = lstRoomInfo })); }catch (Exception ex) { return(Json(new { IsSuccess = false, error = ex.ToString() })); } }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 100, int intervalDay = 7, string keyword = "", bool refresh = false) { try { var houseList = CrawlerDataDapper.SearchHouseInfo(cityName, source, houseCount, intervalDay, keyword, refresh); var rooms = houseList.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = rooms })); } catch (Exception ex) { return(Json(new { IsSuccess = false, error = ex.ToString() })); } }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 400, int withAnyDays = 3, string keyword = "") { var houses = new DBHouseInfoDAL().SearchHouseInfo(cityName, source, houseCount, withAnyDays, keyword); var lstRoomInfo = houses.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(CultureInfo.CurrentCulture), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = lstRoomInfo })); }
public static IEnumerable <BaseHouseInfo> Search(string cityName, string source = "", int houseCount = 100, int intervalDay = 7, string keyword = "", bool refresh = false) { string redisKey = $"{cityName}-{source}-{intervalDay}-{houseCount}-{keyword}"; var houses = new List <BaseHouseInfo>(); if (!refresh) { houses = RedisService.ReadSearchCache(redisKey); if (houses != null) { return(houses); } } using (IDbConnection dbConnection = Connection) { dbConnection.Open(); string search_SQL = $"SELECT * from { ConstConfigurationName.GetTableName(source)} where 1=1 " + $"and LocationCityName = @LocationCityName and PubTime >= @PubTime"; if (!string.IsNullOrEmpty(keyword)) { search_SQL = search_SQL + " and (HouseText like @KeyWord or HouseLocation like @KeyWord or HouseTitle like @KeyWord) "; } search_SQL = search_SQL + $" order by PubTime desc limit {houseCount} "; houses = dbConnection.Query <BaseHouseInfo>(search_SQL, new { LocationCityName = cityName, KeyWord = $"%{keyword}%", PubTime = DateTime.Now.Date.AddDays(-intervalDay) }).ToList(); RedisService.WriteSearchCache(redisKey, houses); return(houses); } }
public static void BulkInsertHouses(List <BaseHouseInfo> list) { if (list == null || list.Count == 0) { return; } var tableName = ConstConfigurationName.GetTableName(list.FirstOrDefault().Source); using (IDbConnection dbConnection = Connection) { dbConnection.Open(); IDbTransaction transaction = dbConnection.BeginTransaction(); var result = dbConnection.Execute("INSERT INTO " + tableName + @" (`HouseTitle`, `HouseOnlineURL`, `HouseLocation`, `DisPlayPrice`, `PubTime`, `HousePrice`, `LocationCityName`, `Source`, `HouseText`, `IsAnalyzed`, `Status`,`PicURLs`) VALUES (@HouseTitle, @HouseOnlineURL, @HouseLocation, @DisPlayPrice, @PubTime, @HousePrice, @LocationCityName, @Source, @HouseText, @IsAnalyzed, @Status,@PicURLs) ON DUPLICATE KEY UPDATE DataChange_LastTime=now();", list, transaction: transaction); transaction.Commit(); } }
public static List <Models.HouseDashboard> GetHouseDashboard() { using (IDbConnection dbConnection = Connection) { dbConnection.Open(); var list = new List <Models.HouseDashboard>(); foreach (var key in ConstConfigurationName.HouseTableNameDic.Keys) { var tableName = ConstConfigurationName.GetTableName(key); var dashboards = dbConnection.Query <Models.HouseDashboard>(@"SELECT LocationCityName AS CityName, Source, COUNT(id) AS HouseSum, MAX(PubTime) AS LastRecordPubTime FROM " + tableName + $" GROUP BY LocationCityName, Source ORDER BY HouseSum desc;"); list.AddRange(dashboards); } return(list.Where(dash => dash.LastRecordPubTime.CompareTo(DateTime.Now.AddDays(-30)) > 0) .ToList()); } }
public IActionResult GetUserCollectionHouses(string cityName, string source = "") { try { var userID = GetUserID(); if (userID == 0) { return(Json(new { IsSuccess = false, error = "用户未登陆,无法查看房源收藏。" })); } var houseList = UserCollectionDapper.FindUserCollections(userID, cityName, source); var rooms = houseList.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { ID = house.Id, Source = house.Source, Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HouseTitle = house.HouseTitle, HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = rooms })); } catch (Exception ex) { return(Json(new { IsSuccess = false, error = ex.ToString() })); } }