コード例 #1
0
 /// <summary>
 /// 区域采购统计
 /// </summary>
 /// <param name="httpContext"></param>
 /// <param name="request"></param>
 /// <returns></returns>
 public async Task <ResponseBase> ProcessAction(HttpContext httpContext, GetStatisticsPurchaseRequest request)
 {
     _appTicket = AppTicket.GetAppTicket(httpContext);
     if (request.AreaId == 0 || _appTicket.DataLimitType == (int)DataLimitTypeEnum.Shop)
     {
         return(await GetStatisticsPurchaseDefault(request));
     }
     return(await GetStatisticsPurchaseLevel(request));
 }
コード例 #2
0
ファイル: ReportController.cs プロジェクト: chenjian8541/gmp
 public async Task <ResponseBase> GetStatisticsPurchase([FromBody] GetStatisticsPurchaseRequest request)
 {
     try
     {
         var action = new GetStatisticsPurchaseAction(_areaBll, _reportBll);
         return(await action.ProcessAction(this.HttpContext, request));
     }
     catch (Exception ex)
     {
         Log.Error(request, ex, this.GetType());
         return(new ResponsePagingBase().GetResponseCodeError());
     }
 }
コード例 #3
0
        /// <summary>
        /// 获取默认数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <ResponseBase> GetStatisticsPurchaseDefault(GetStatisticsPurchaseRequest request)
        {
            List <DbStatisticsPurchaseView> statisticsPurchase = 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();

                statisticsPurchase = await _reportBll.GetStatisticsPurchase(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);

                    statisticsPurchase = await _reportBll.GetStatisticsPurchase(areaInfo.Item1, statisticsTime.Item1,
                                                                                statisticsTime.Item2, areaInfo.Item2);

                    arealevel = areaInfo.Item2;
                }
                break;

            case (int)DataLimitTypeEnum.Shop:
                limitShops = _appTicket.DataLimitShop;
                if (!string.IsNullOrEmpty(_appTicket.DataLimitShop))
                {
                    statisticsPurchase = await _reportBll.GetStatisticsPurchaseByShop(_appTicket.DataLimitShop,
                                                                                      statisticsTime.Item1, statisticsTime.Item2);

                    arealevel = AreaLevelEnum.Street;
                }
                break;
            }
            var result = await GetStatisticsPurchaseView(statisticsTime.Item1, statisticsTime.Item2, statisticsPurchase, request.Type, limitShops, arealevel);

            return(ResponseBase.Success(result));
        }
コード例 #4
0
        /// <summary>
        /// 获取选择的地区下一级数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <ResponseBase> GetStatisticsPurchaseLevel(GetStatisticsPurchaseRequest 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 statisticsPurchase = await _reportBll.GetStatisticsPurchase(string.Join(',', areas.Select(p => p.AreaId)),
                                                                            statisticsTime.Item1, statisticsTime.Item2, newLevel);

            var result = await GetStatisticsPurchaseView(statisticsTime.Item1, statisticsTime.Item2, statisticsPurchase, request.Type, string.Empty, newLevel);

            return(ResponseBase.Success(result));
        }