public async Task <ResponseMessage <BuildingDealStatisticsResponse> > GetBuildingStatistics(UserInfo user, [FromBody] BuildingDealStatisticsRequest buildingDealStatisticsRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})成交信息统计(GetBuildingStatistics):\r\n请求参数为:\r\n" + (buildingDealStatisticsRequest != null ? JsonHelper.ToJson(buildingDealStatisticsRequest) : ""));

            var response = new ResponseMessage <BuildingDealStatisticsResponse>();

            if (!ModelState.IsValid)
            {
                var error  = "";
                var errors = ModelState.Values.ToList();
                foreach (var item in errors)
                {
                    foreach (var e in item.Errors)
                    {
                        error += e.ErrorMessage + "  ";
                    }
                }
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = error;
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})成交信息统计(GetBuildingStatistics)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (buildingDealStatisticsRequest != null ? JsonHelper.ToJson(buildingDealStatisticsRequest) : ""));
                return(response);
            }
            try
            {
                if (await _permissionExpansionManager.HavePermission(user.Id, "CustomerDealStatistical"))
                {
                    response.Extension = await _customerDealManager.BuildingDealStatistics(user.Id, buildingDealStatisticsRequest, HttpContext.RequestAborted);
                }
                else
                {
                    response.Code    = ResponseCodeDefines.ServiceError;
                    response.Message = "权限不足";
                }
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = "服务器错误:" + e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})成交信息统计(GetBuildingStatistics)请求失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (buildingDealStatisticsRequest != null ? JsonHelper.ToJson(buildingDealStatisticsRequest) : ""));
            }
            return(response);
        }
Esempio n. 2
0
        public virtual async Task <BuildingDealStatisticsResponse> BuildingDealStatistics(string userid, BuildingDealStatisticsRequest buildingDealStatisticsRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            var query = await _icustomerDealStore.CustomerDealAll().Where(x => x.ProjectId == buildingDealStatisticsRequest.BuildingId && x.CreateTime >= buildingDealStatisticsRequest.StartTime && x.CreateTime < buildingDealStatisticsRequest.EndTime && !x.IsDeleted && x.ExamineStatus == (int)ExamineStatusEnum.Approved).ToListAsync(cancellationToken);

            if (query.Count() == 0)
            {
                return(null);
            }
            var response = new BuildingDealStatisticsResponse()
            {
                DealCount  = query.Count(),
                Commission = query.Sum(x => x.Commission),
                DealPrice  = query.Sum(x => x.TotalPrice)
            };

            return(response);
        }