/// <summary> /// 区域农药销售统计 /// </summary> /// <param name="httpContext"></param> /// <param name="request"></param> /// <returns></returns> public async Task <ResponseBase> ProcessAction(HttpContext httpContext, GetStatisticsRetailRequest request) { _appTicket = AppTicket.GetAppTicket(httpContext); if (request.AreaId == 0 || _appTicket.DataLimitType == (int)DataLimitTypeEnum.Shop) { return(await GetStatisticsRetailDefault(request)); } return(await GetStatisticsRetailLevel(request)); }
public async Task <ResponseBase> GetStatisticsRetail([FromBody] GetStatisticsRetailRequest request) { try { var action = new GetStatisticsRetailAction(_areaBll, _reportBll); return(await action.ProcessAction(this.HttpContext, request)); } catch (Exception ex) { Log.Error(request, ex, this.GetType()); return(new ResponsePagingBase().GetResponseCodeError()); } }
/// <summary> /// 获取默认数据 /// </summary> /// <param name="request"></param> /// <returns></returns> private async Task <ResponseBase> GetStatisticsRetailDefault(GetStatisticsRetailRequest request) { List <DbStatisticsRetailView> statisticsRetail = null; var statisticsTime = ComLib.GetAreaStatisticsTime(request.StartTime, request.EndTime); var limitShops = string.Empty; var arealevel = string.Empty; switch (_appTicket.DataLimitType) { case (int)DataLimitTypeEnum.All: var province = await _areaBll.GetProvince(); statisticsRetail = await _reportBll.GetStatisticsRetail(string.Join(',', province.Select(p => p.AreaId)), statisticsTime.Item1, statisticsTime.Item2, AreaLevelEnum.Province); arealevel = AreaLevelEnum.Province; break; case (int)DataLimitTypeEnum.Area: if (!string.IsNullOrEmpty(_appTicket.DataLimitArea)) { var areaInfo = await ComLib.GetGetAreaStatisticsAreaId(_areaBll, _appTicket.DataLimitArea); statisticsRetail = await _reportBll.GetStatisticsRetail(areaInfo.Item1, statisticsTime.Item1, statisticsTime.Item2, areaInfo.Item2); arealevel = areaInfo.Item2; } break; case (int)DataLimitTypeEnum.Shop: limitShops = _appTicket.DataLimitShop; if (!string.IsNullOrEmpty(_appTicket.DataLimitShop)) { statisticsRetail = await _reportBll.GetStatisticsRetailByShop(_appTicket.DataLimitShop, statisticsTime.Item1, statisticsTime.Item2); arealevel = AreaLevelEnum.Street; } break; } var result = await GetStatisticsRetailView(statisticsTime.Item1, statisticsTime.Item2, statisticsRetail, request.Type, limitShops, arealevel); return(ResponseBase.Success(result)); }
/// <summary> /// 获取选择的地区下一级数据 /// </summary> /// <param name="request"></param> /// <returns></returns> private async Task <ResponseBase> GetStatisticsRetailLevel(GetStatisticsRetailRequest request) { if (_appTicket.DataLimitType == (int)DataLimitTypeEnum.Area && _appTicket.DataLimitArea.IndexOf(request.AreaId.ToString()) < 0) { return(new ResponseBase().GetResponseError(StatusCode.DataForbidden, "数据无权访问")); } var statisticsTime = ComLib.GetAreaStatisticsTime(request.StartTime, request.EndTime); var newLevel = string.Empty; List <Area> areas = null; switch (request.Level) { case AreaLevelEnum.Province: //获取市 newLevel = AreaLevelEnum.City; areas = await _areaBll.GetCity(request.AreaId); break; case AreaLevelEnum.City: //获取县、区 newLevel = AreaLevelEnum.District; areas = await _areaBll.GetDistrict(request.AreaId); break; case AreaLevelEnum.District: //获取乡镇 newLevel = AreaLevelEnum.Street; areas = await _areaBll.GetStreet(request.AreaId); break; } if (areas == null || !areas.Any()) { return(ResponseBase.Success(GetEmptyData(statisticsTime.Item1, statisticsTime.Item2))); } var statisticsRetail = await _reportBll.GetStatisticsRetail(string.Join(',', areas.Select(p => p.AreaId)), statisticsTime.Item1, statisticsTime.Item2, newLevel); var result = await GetStatisticsRetailView(statisticsTime.Item1, statisticsTime.Item2, statisticsRetail, request.Type, string.Empty, newLevel); return(ResponseBase.Success(result)); }