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); }
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); }