public ChartDataViewModel(LineChartDataModel <float> chart) : this() { SeriesData = new List <SeriesViewModel>(); string[] xAxisData = chart.XAxisData; for (int i = 0; i < xAxisData.Length; i++) { string str = xAxisData[i]; ChartDataViewModel chartDataViewModel = this; chartDataViewModel.xAxis = string.Concat(chartDataViewModel.xAxis, "'", str, "',"); } foreach (ChartSeries <float> seriesDatum in chart.SeriesData) { SeriesViewModel seriesViewModel = new SeriesViewModel() { Name = seriesDatum.Name, SeriesData = "" }; SeriesViewModel seriesViewModel1 = seriesViewModel; float[] data = seriesDatum.Data; for (int j = 0; j < data.Length; j++) { float single = data[j]; SeriesViewModel seriesViewModel2 = seriesViewModel1; seriesViewModel2.SeriesData = string.Concat(seriesViewModel2.SeriesData, single.ToString(), ","); } SeriesData.Add(seriesViewModel1); } }
public JsonResult GetShopRankingChart(string day = "", int year = 0, int month = 0, int weekIndex = 0, SaleDimension dimension = SaleDimension.Count, DateTime?begin = null, DateTime?end = null) { LineChartDataModel <int> model = new LineChartDataModel <int>(); var rank = 15; if (begin.HasValue && end.HasValue) { model = StatisticApplication.GetShopRankingChart(begin.Value, end.Value, dimension, rank); } else if (!string.IsNullOrWhiteSpace(day)) { var date = DateTime.Parse(day); model = StatisticApplication.GetShopRankingChart(date, date, dimension, rank); } else { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } model = StatisticApplication.GetShopRankingChart(year, month, weekIndex, dimension, rank); } return(Json(new { success = true, chart = model })); }
public JsonResult GetSaleRankingChart(string day = "", int year = 0, int month = 0, int weekIndex = 0, SaleDimension dimension = SaleDimension.Count, DateTime?begin = null, DateTime?end = null) { var shop = CurrentSellerManager.ShopId; LineChartDataModel <int> model = new LineChartDataModel <int>(); if (begin.HasValue && end.HasValue) { model = StatisticApplication.GetProductSaleRankingChart(shop, begin.Value, end.Value, dimension, 15); } else if (!string.IsNullOrWhiteSpace(day)) { var date = DateTime.Parse(day);//单日 model = StatisticApplication.GetProductSaleRankingChart(shop, date, date, dimension, 15); } else { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } model = StatisticApplication.GetProductSaleRankingChart(shop, year, month, weekIndex, dimension, 15); } return(Json(new { success = true, chart = model }, JsonRequestBehavior.AllowGet)); }
public ActionResult ProductRecentMonthSaleRank() { long shopId = base.CurrentSellerManager.ShopId; LineChartDataModel <int> recentMonthSaleRankChart = ServiceHelper.Create <IStatisticsService>().GetRecentMonthSaleRankChart(shopId); return(Json(new { successful = true, chart = recentMonthSaleRankChart }, JsonRequestBehavior.AllowGet)); }
public JsonResult GetSaleRankingChart(string day = "", int year = 0, int month = 0, int weekIndex = 0, int dimension = 1) { DateTime now; LineChartDataModel <int> lineChartDataModel = new LineChartDataModel <int>(); if (string.IsNullOrWhiteSpace(day)) { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } lineChartDataModel = (weekIndex != 0 ? ServiceHelper.Create <IStatisticsService>().GetProductSaleRankingChart(base.CurrentSellerManager.ShopId, year, month, weekIndex, (SaleDimension)dimension, 15) : ServiceHelper.Create <IStatisticsService>().GetProductSaleRankingChart(base.CurrentSellerManager.ShopId, year, month, (SaleDimension)dimension, 15)); } else { if (!DateTime.TryParse(day, out now)) { now = DateTime.Now; } lineChartDataModel = ServiceHelper.Create <IStatisticsService>().GetProductSaleRankingChart(base.CurrentSellerManager.ShopId, now, (SaleDimension)dimension, 15); } return(Json(new { successful = true, chart = lineChartDataModel }, JsonRequestBehavior.AllowGet)); }
public ActionResult GetPieGroupChart(PieGroupModel model) { db = new ChartsDatabaseManager(); var response = new LineChartDataModel(); var dates = new List <string>(); return(Json(response, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 图表对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="name"></param> /// <param name="dt1"></param> /// <param name="dt2"></param> /// <param name="dataSource"></param> /// <param name="selector"></param> /// <returns></returns> static LineChartDataModel <T> GetChartDataModel <T>(DateTime dt1, DateTime dt2, IEnumerable <TradeStatisticModel> dataSource, Func <TradeStatisticModel, T> selector) where T : struct { LineChartDataModel <T> chartData = new LineChartDataModel <T>(); chartData.XAxisData = GetDateXAxisData(dt1, dt2);//X轴数据(日期) chartData.SeriesData = GetSeriesData <T>(dt1, dt2, dataSource, selector); return(chartData); }
public ActionResult NewShop() { ViewBag.YearDrop = GetYearDrop(2014, 2024); ViewBag.MonthDrop = GetMonthDrop(); LineChartDataModel <int> newsShopChart = ServiceHelper.Create <IStatisticsService>().GetNewsShopChart(DateTime.Now.Year, DateTime.Now.Month); return(View(new ChartDataViewModel(newsShopChart))); }
public ActionResult ExportSaleRanking(string day = "", int year = 0, int month = 0, int weekIndex = 0) { #region 获取查询结果 var result = new List <SalesExportModel>(); var SaleCountmodel = new LineChartDataModel <int>(); var Salesmodel = new LineChartDataModel <int>(); var Title = string.Empty; if (!string.IsNullOrWhiteSpace(day)) { DateTime date = DateTime.Parse(day); SaleCountmodel = StatisticApplication.GetProductSaleRankingChart(0, date, date, SaleDimension.Count, 15); Salesmodel = StatisticApplication.GetProductSaleRankingChart(0, date, date, SaleDimension.Amount, 15); Title = "按天统计:" + day; } else { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } if (weekIndex == 0) { Title = "按月统计:" + year + "年" + month + "月"; } else { Title = "按周统计:" + year + "年" + month + "月 第" + weekIndex + "周"; } SaleCountmodel = StatisticApplication.GetProductSaleRankingChart(0, year, month, weekIndex, SaleDimension.Count, 15); Salesmodel = StatisticApplication.GetProductSaleRankingChart(0, year, month, weekIndex, SaleDimension.Amount, 15); } for (int i = 0; i < SaleCountmodel.ExpandProp.Length; i++) { SalesExportModel model = new SalesExportModel(); if (!string.IsNullOrEmpty(SaleCountmodel.ExpandProp[i])) { model.ProductName = SaleCountmodel.ExpandProp[i]; model.SaleCount = SaleCountmodel.SeriesData[0].Data[i]; model.SaleAmount = Salesmodel.SeriesData[0].Data[i]; result.Add(model); } } #endregion #region 构建EXCEL ViewData.Model = result; ViewData.Add("Title", Title); string viewHtml = RenderPartialViewToString(this, "ExportSaleRanking"); return(File(System.Text.Encoding.UTF8.GetBytes(viewHtml), "application/ms-excel", string.Format("销量分析_{0}.xls", DateTime.Now.ToString("yyyy-MM-dd")))); #endregion }
public ActionResult DealConversionRate() { ViewBag.YearDrop = GetYearDrop(2014, 2024); ViewBag.MonthDrop = GetMonthDrop(); IStatisticsService statisticsService = ServiceHelper.Create <IStatisticsService>(); long shopId = base.CurrentSellerManager.ShopId; int year = DateTime.Now.Year; DateTime now = DateTime.Now; LineChartDataModel <float> dealConversionRateChart = statisticsService.GetDealConversionRateChart(shopId, year, now.Month); return(View(new ChartDataViewModel(dealConversionRateChart))); }
public LineChartDataModel <decimal> GetTradeChart(DateTime start, DateTime end, long?shopId) { LineChartDataModel <decimal> chart = new LineChartDataModel <decimal>() { SeriesData = new List <ChartSeries <decimal> >() }; var data = DbFactory.Default.Get <OrderInfo>().Where(a => a.PayDate >= start && a.PayDate <= end); if (shopId.HasValue && shopId.Value > 0) { data.Where(a => a.ShopId == shopId); } var list = data.Select(a => new { Amount = (a.ProductTotalAmount + a.Freight + a.Tax - a.DiscountAmount), PayDate = a.PayDate }).ToList <dynamic>(); var days = (end - start).Days; //相差的天数 string[] arr = new string[days + 1]; for (int i = 0; i <= days; i++) { arr[i] = start.Date.AddDays(i).ToString("MM/dd"); } chart.XAxisData = arr; var arrEx = new string[days + 1]; var chartItem = new ChartSeries <decimal> { Name = "交易额走势图", Data = new decimal[days + 1] }; for (int i = 0; i <= days; i++) { var date = start.Date.AddDays(i).Date; var m = list.Where(a => DateTime.Parse(a.PayDate.ToString("yyyy/MM/dd")) == date).ToList(); if (m.Count > 0) { chartItem.Data[i] = m.Sum(a => (decimal)a.Amount); arrEx[i] = date + "的销售额为:" + chartItem.Data[i]; } else { chartItem.Data[i] = 0; arrEx[i] = date + "的销售额为:" + chartItem.Data[i]; } } chart.ExpandProp = arrEx; chart.SeriesData.Add(chartItem); return(chart); }
public JsonResult GetNewShopChartByMonth(int year = 0, int month = 0) { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } LineChartDataModel <int> newsShopChart = ServiceHelper.Create <IStatisticsService>().GetNewsShopChart(year, month); return(Json(new { successful = true, chart = newsShopChart }, JsonRequestBehavior.AllowGet)); }
public JsonResult GetDealConversionRateChartByMonth(int year = 0, int month = 0) { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } LineChartDataModel <float> dealConversionRateChart = ServiceHelper.Create <IStatisticsService>().GetDealConversionRateChart(base.CurrentSellerManager.ShopId, year, month); return(Json(new { successful = true, chart = dealConversionRateChart }, JsonRequestBehavior.AllowGet)); }
public LineChartDataModel <decimal> GetTradeChartMonth(DateTime start, DateTime end, long?shopId) { LineChartDataModel <decimal> chart = new LineChartDataModel <decimal>() { SeriesData = new List <ChartSeries <decimal> >() }; var data = Context.OrderInfo.Where(a => a.PayDate.HasValue && a.PayDate >= start && a.PayDate < end); if (shopId.HasValue && shopId.Value > 0) { data = data.Where(a => a.ShopId == shopId); } var list = data.Select(a => new { Amount = (a.ProductTotalAmount + a.Freight + a.Tax - a.DiscountAmount), PayDate = a.PayDate }).ToList(); int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);//本月天数 string[] arr = new string[days]; for (int i = 0; i <= days - 1; i++) { arr[i] = start.Date.AddDays(i).ToString("MM/dd"); } chart.XAxisData = arr; var chartItem = new ChartSeries <decimal> { Name = "交易额走势图", Data = new decimal[days + 1] }; var ExpandProp = new string[days + 1]; for (int i = 0; i <= days; i++) { var date = start.Date.AddDays(i).Date; var m = list.Where(a => a.PayDate.Value.Date == date).ToList(); if (m.Count > 0) { chartItem.Data[i] = m.Sum(a => a.Amount); } else { chartItem.Data[i] = 0; } } chart.SeriesData.Add(chartItem); return(chart); }
// Line Chart Ajax public async Task <ActionResult> GetLineChart(LineChartModel model) { try { db = new ChartsDatabaseManager(); var response = new LineChartDataModel(); var details = new ChartDetails(); response.Result = await db.GetLineChartMeters(details, model.From, model.To, model.period, model.Ids); response.Details = details; return(Json(response, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(ex, JsonRequestBehavior.AllowGet)); } }
public ChartDataViewModel(LineChartDataModel <float> chart) : this() { this.SeriesData = new List <SeriesViewModel>(); foreach (var item in chart.XAxisData) { this.xAxis += ("'" + item + "',"); } foreach (var item in chart.SeriesData) { var series = new SeriesViewModel { Name = item.Name, SeriesData = "" }; foreach (var s in item.Data) { series.SeriesData += (s.ToString() + ","); } this.SeriesData.Add(series); } }
public JsonResult GetMemberChartByMonth(int year = 0, int month = 0, DateTime?begin = null, DateTime?end = null) { var chart = new LineChartDataModel <int>(); if (begin.HasValue && end.HasValue) { chart = StatisticApplication.GetNewMemberChartByRange(begin.Value, end.Value); } else { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } chart = StatisticApplication.GetNewMemberChartByMonth(year, month); } return(Json(new { success = true, chart = chart })); }
public JsonResult GetSaleRankingChart(string day = "", int year = 0, int month = 0, int weekIndex = 0, SaleDimension dimension = SaleDimension.Count) { var model = new LineChartDataModel <int>(); if (!string.IsNullOrWhiteSpace(day)) { DateTime date = DateTime.Parse(day); StatisticApplication.GetProductSaleRankingChart(0, date, date, dimension, 15); } else { if (year == 0) { year = DateTime.Now.Year; } if (month == 0) { month = DateTime.Now.Month; } StatisticApplication.GetProductSaleRankingChart(0, year, month, weekIndex, dimension, 15); } return(Json(new { success = true, chart = model })); }
public ActionResult ProductRecentMonthSaleRank() { LineChartDataModel <int> recentMonthSaleRankChart = ServiceHelper.Create <IStatisticsService>().GetRecentMonthSaleRankChart(); return(Json(new { successful = true, chart = recentMonthSaleRankChart }, JsonRequestBehavior.AllowGet)); }