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);
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }