public async Task <ResponseMessage <List <BuildingResponse> > > GetResponsibleBuildingList(UserInfo user) { ResponseMessage <List <BuildingResponse> > response = new ResponseMessage <List <BuildingResponse> >(); BuildingSearchCondition condition = new BuildingSearchCondition() { ResidentUser = user.Id }; try { response.Extension = await _buildingsManager.SimpleSearchOld(user, condition, HttpContext.RequestAborted); } catch (Exception e) { response.Code = ResponseCodeDefines.ServiceError; response.Message = e.ToString(); Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取负责楼盘(GetResponsibleBuildingList)报错:\r\n{e.ToString()}"); } return(response); }
public virtual async Task <List <BuildingResponse> > SimpleSearch(UserInfo user, BuildingSearchCondition condition, CancellationToken cancellationToken = default(CancellationToken)) { var q = _buildingsStore.GetSimpleSerchQuery().Where(a => !a.IsDeleted); var organ = await _ipermissionExpansionManager.GetOrganizationOfPermission(user.Id, "MyManagerBuildings"); if (organ.Count == 0) { q = q.Where(a => a.ResidentUser1 == user.Id || a.ResidentUser2 == user.Id || a.ResidentUser3 == user.Id || a.ResidentUser4 == user.Id); } else { q = q.Where(a => organ.Contains(a.OrganizationId) || a.ResidentUser1 == user.Id || a.ResidentUser2 == user.Id || a.ResidentUser3 == user.Id || a.ResidentUser4 == user.Id); } //if (!String.IsNullOrEmpty(condition?.ResidentUser)) //{ // q = q.Where(b => (b.ResidentUser1 == condition.ResidentUser || b.ResidentUser2 == condition.ResidentUser || b.ResidentUser3 == condition.ResidentUser)); //} if (!String.IsNullOrEmpty(condition?.KeyWord)) { q = q.Where(b => (b.BuildingBaseInfo.Name.Contains(condition.KeyWord))); } if (condition?.HasBank == true) { q = q.Where(a => a.BuildingFacilities.HasBank ?? true); } if (condition?.HasBus == true) { q = q.Where(a => a.BuildingFacilities.HasBus ?? true); } if (condition?.HasKindergarten == true) { q = q.Where(a => a.BuildingFacilities.HasKindergarten ?? true); } if (condition?.HasMarket == true) { q = q.Where(a => a.BuildingFacilities.HasMarket ?? true); } if (condition?.HasMiddleSchool == true) { q = q.Where(a => a.BuildingFacilities.HasMiddleSchool ?? true); } if (condition?.HasOtherTraffic == true) { q = q.Where(a => a.BuildingFacilities.HasOtherTraffic ?? true); } if (condition?.HasPrimarySchool == true) { q = q.Where(a => a.BuildingFacilities.HasPrimarySchool ?? true); } if (condition?.HasRail == true) { q = q.Where(a => a.BuildingFacilities.HasRail ?? true); } if (condition?.HasSupermarket == true) { q = q.Where(a => a.BuildingFacilities.HasSupermarket ?? true); } if (condition?.HasUniversity == true) { q = q.Where(a => a.BuildingFacilities.HasUniversity ?? true); } if (!string.IsNullOrEmpty(condition.KeyWord)) { q = q.Where(a => a.BuildingBaseInfo.Name.Contains(condition.KeyWord)); } if (!string.IsNullOrEmpty(condition.City)) { q = q.Where(a => a.BuildingBaseInfo.City == condition.City); } if (!string.IsNullOrEmpty(condition.Area)) { q = q.Where(a => a.BuildingBaseInfo.Area == condition.Area); } if (!string.IsNullOrEmpty(condition.District)) { q = q.Where(a => a.BuildingBaseInfo.District == condition.District); } if (condition?.LowPrice != null) { q = q.Where(a => ((a.BuildingBaseInfo.MinPrice ?? 0 + a.BuildingBaseInfo.MaxPrice ?? 0).CompareTo(condition.LowPrice) > 0)); } if (condition?.HighPrice != null) { q = q.Where(a => ((a.BuildingBaseInfo.MinPrice ?? 0 + a.BuildingBaseInfo.MaxPrice ?? 0).CompareTo(condition.HighPrice) < 0)); } if (condition?.SaleStatus?.Count > 0) { q = q.Where(a => condition.SaleStatus.Contains(a.BuildingShopInfo.SaleStatus)); } if (condition?.PriceIsAscSort == null) { q = q.OrderBy(a => a.BuildingBaseInfo.OpenDate); } if (condition?.PriceIsAscSort == true) { q = q.OrderBy(a => (a.BuildingBaseInfo.MinPrice ?? 0 + a.BuildingBaseInfo.MinPrice ?? 0) / (decimal)2); } if (condition?.PriceIsAscSort == false) { q = q.OrderByDescending(a => (a.BuildingBaseInfo.MinPrice ?? 0 + a.BuildingBaseInfo.MinPrice ?? 0) / (decimal)2); } if (condition?.ExamineStatus != null && condition?.ExamineStatus.Count != 0) { q = q.Where(a => condition.ExamineStatus.Contains(a.ExamineStatus)); } q = q.OrderByDescending(x => x.CreateTime); //var result = await q.Skip(condition.PageIndex * condition.PageSize).Take(condition.PageSize).ToListAsync(cancellationToken); var result = await q.ToListAsync(cancellationToken); string fr = ApplicationCore.ApplicationContext.Current.FileServerRoot; fr = (fr ?? "").TrimEnd('/'); result = result.Select(x => { x.Icon = string.IsNullOrEmpty(x.Icon) ? "" : fr + "/" + x.Icon.TrimStart('/'); return(x); }).ToList(); return(_mapper.Map <List <BuildingResponse> >(result)); }
public virtual async Task <List <BuildingResponse> > SimpleSearchOld(UserInfo user, BuildingSearchCondition condition, CancellationToken cancellationToken = default(CancellationToken)) { List <BuildingResponse> list = new List <BuildingResponse>(); var q = _buildingsStore.GetSimpleSerchQuery(); q = q.Where(x => !x.IsDeleted); if (condition != null) { if (!String.IsNullOrEmpty(condition.ResidentUser)) { q = q.Where(b => (b.ResidentUser1 == condition.ResidentUser || b.ResidentUser2 == condition.ResidentUser || b.ResidentUser3 == condition.ResidentUser || b.ResidentUser4 == condition.ResidentUser)); } if (!String.IsNullOrEmpty(condition.KeyWord)) { q = q.Where(b => (b.BuildingBaseInfo.Name.Contains(condition.KeyWord))); } } q = q.OrderByDescending(x => x.CreateTime); var result = await q.ToListAsync(); string fr = ApplicationCore.ApplicationContext.Current.FileServerRoot; fr = (fr ?? "").TrimEnd('/'); result = result.Select(x => { x.Icon = string.IsNullOrEmpty(x.Icon) ? "" : fr + "/" + x.Icon.TrimStart('/'); return(x); }).ToList(); list.AddRange(_mapper.Map <List <BuildingResponse> >(result)); return(list); }
public async Task <ResponseMessage <List <BuildingResponse> > > PostResponsibleBuildingSreach(UserInfo user, [FromBody] BuildingSearchCondition condition) { ResponseMessage <List <BuildingResponse> > response = new ResponseMessage <List <BuildingResponse> >(); if (!ModelState.IsValid) { response.Code = ResponseCodeDefines.ModelStateInvalid; response.Message = ModelState.GetAllErrors(); Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取负责楼盘(PostResponsibleBuildingSreach)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); return(response); } try { condition.ResidentUser = user.Id; response.Extension = await _buildingsManager.SimpleSearch(user, condition, HttpContext.RequestAborted); } catch (Exception e) { response.Code = ResponseCodeDefines.ServiceError; response.Message = e.ToString(); Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取负责楼盘(PostResponsibleBuildingSreach)模型验证失败:\r\n{e.ToString()},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); } return(response); }