Example #1
0
        /// <summary>
        /// 获取充值统计
        /// </summary>
        private void GetConsumeStat()
        {
            var sellerId = CurSellerId;
            var type     = (StatisticsType)GetInt("type"); //统计类型
            var start    = GetInt("start");                //传0
            var limit    = GetInt("limit");                //传10 只取前十名

            var data = new ConsumeStatResponse();

            data.Stat = new ConsumeStatisticsHelper.ReqConsumeStatistics(type);
            switch (type)
            {
            case StatisticsType.Day:
                data.Stat = ConsumeStatisticsHelper.GetConsumeDateStatisticsList(sellerId, DateTime.Now); break;

            case StatisticsType.Month:
                data.Stat = ConsumeStatisticsHelper.GetConsumeMonthStatisticsList(sellerId, DateTime.Now.Year, DateTime.Now.Month); break;

            case StatisticsType.Quarter:
                data.Stat = ConsumeStatisticsHelper.GetConsumeQuarterStatisticsList(sellerId, DateTime.Now.Year); break;

            case StatisticsType.Year:
                data.Stat = ConsumeStatisticsHelper.GetConsumeYearStatisticsList(sellerId, DateTime.Now.Year); break;
            }

            var startTime = DateTime.Now;
            var endTime   = DateTime.Now;

            switch (type)
            {
            case StatisticsType.Day:
                startTime = DateTime.Now.Date;
                endTime   = startTime.AddDays(1).AddMilliseconds(-1);
                break;

            case StatisticsType.Month:
                startTime = new DateTime(startTime.Year, startTime.Month, 1).Date;
                endTime   = startTime.AddMonths(1).AddMilliseconds(-1);
                break;

            case StatisticsType.Quarter:
            case StatisticsType.Year:
                startTime = new DateTime(startTime.Year, 1, 1).Date;
                endTime   = startTime.AddYears(1).AddMilliseconds(-1);
                break;
            }

            var glist = new List <ConsumeGoodsItem>();
            var list  = ChargeLogHelper.GetChargeLogList(CurSellerId, startTime, endTime, start * limit, limit);
            var index = 0;

            foreach (var chargeLog in list)
            {
                index = 0;
                foreach (var i in chargeLog.GidList)
                {
                    var item = glist.FirstOrDefault(o => o.Gid == i);
                    if (item == null)
                    {
                        item     = new ConsumeGoodsItem();
                        item.Gid = i;
                        item.Num = chargeLog.NumList[index];
                        glist.Add(item);
                    }
                    else
                    {
                        item.Num += chargeLog.NumList[index];
                    }
                    index++;
                }
            }

            var goodslist = GoodsHelper.GetGoodsList(glist.Select(o => o.Gid).ToList());

            foreach (var goodse in goodslist)
            {
                var ritem = new ReqConsumeStatItem();
                ritem.GoodsName           = goodse.Title;
                ritem.GoodsCategoriesName = goodse.Cname;

                var gitem = glist.FirstOrDefault(o => o.Gid == goodse.Id);
                if (gitem != null)
                {
                    ritem.Num = gitem.Num;
                    ritem.Pre = (ritem.Num * 1.0 / data.Stat.TotalGoodsNum * 100).ToString("F2");
                }

                data.List.Add(ritem);
            }

            data.List = data.List.OrderBy(o => o.Num).ToList();//排序

            var jt = new JsonTransfer();

            jt.Add("data", data);
            Response.Write(jt.ToJson());
            Response.End();
        }