Esempio n. 1
0
        public virtual async Task <PagingResponseMessage <ShopInfoResponse> > SimpleSearch(UserInfo user, ShopSearchCondition condition, CancellationToken cancellationToken = default(CancellationToken))
        {
            PagingResponseMessage <ShopInfoResponse> pagingResponse = new PagingResponseMessage <ShopInfoResponse>();

            pagingResponse.Extension = new List <ShopInfoResponse>();
            var q = _shopsStore.GetSimpleQuery();

            q = q.Where(x => !x.IsDeleted);

            if (condition != null)
            {
                if (condition.BuildingIds != null && condition.BuildingIds.Count > 0)
                {
                    q = q.Where(s => condition.BuildingIds.Contains(s.BuildingId));
                }

                if (condition.ExamineStatus != null && condition.ExamineStatus.Count > 0)
                {
                    q = q.Where(s => condition.ExamineStatus.Contains(s.ExamineStatus));
                }
                if (condition.SaleStatus != null && condition.SaleStatus != null)
                {
                    q = q.Where(s => condition.SaleStatus.Contains(s.ShopBaseInfo.SaleStatus));
                }
            }
            q = q.OrderBy(x => x.ExamineStatus).ThenByDescending(x => x.CreateTime);
            pagingResponse.TotalCount = await q.CountAsync(cancellationToken);

            var result = await q.Skip(condition.PageIndex *condition.PageSize).Take(condition.PageSize).ToListAsync(cancellationToken);

            string fr = ApplicationCore.ApplicationContext.Current.FileServerRoot;

            fr = (fr ?? "").TrimEnd('/');
            if (result.Count > 0)
            {
                for (int i = 0; i < result.Count; i++)
                {
                    result[i].Icon = string.IsNullOrEmpty(result[i].Icon) ? "" : fr + "/" + result[i].Icon.TrimStart('/');
                }
                pagingResponse.Extension.AddRange(_mapper.Map <List <ShopInfoResponse> >(result));
            }
            return(pagingResponse);
        }
        public async Task <PagingResponseMessage <ShopInfoResponse> > GetShopsList(UserInfo user, [FromBody] ShopSearchCondition condition)
        {
            PagingResponseMessage <ShopInfoResponse> response = new PagingResponseMessage <ShopInfoResponse>();

            if (!ModelState.IsValid)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = ModelState.GetAllErrors();
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取商铺列表(GetShopsList)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : ""));
                return(response);
            }
            try
            {
                return(await _shopsManager.SimpleSearch(user, condition));
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取商铺列表(GetShopsList)请求失败:\r\n{e.ToString()},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : ""));
            }
            return(response);
        }