/// <summary> /// 获取报表数据主入口 /// </summary> /// <param name="context">请求context</param> /// <returns></returns> public Model.ReturnValue GetReport(HttpContext context) { Model.ReturnValue rv = new Model.ReturnValue(); string GetResult = context.Request["GetResult"]; switch (GetResult) { case "WheaterStatistics": rv = GetWheaterStatistics(); break; case "PartakeTrend": rv = GetPartakeTrend(); break; case "WholeCountry": rv = GetWholeCountry(); break; case "AwardStatistics": rv = GetAwardStatistics(); break; } return(rv); }
/// <summary> /// 参与趋势与中奖趋势 /// </summary> /// <returns></returns> public Model.ReturnValue GetPartakeTrend() { Model.ReturnValue rv = new Model.ReturnValue(); Dictionary <string, string> Person = new Dictionary <string, string>(); Db.OrderInfoDal OrderInfoDal = new Db.OrderInfoDal(); #region 参与人次 string sql = " select a.Hours name,(select COUNT(1) from OrderInfo where DATEPART(hh, CreateTime) = a.hours) as value from hoursinfo a"; DataTable dt = Db.ConDal.GetList(sql); Person.Add("Data1", Common.JsonHelper.DataTableToJson(dt)); #endregion #region 中奖人次 string sql2 = " select a.Hours name,(select COUNT(1) from OrderInfo where DATEPART(hh, CreateTime) = a.hours and Jx<>'参与奖') as value from hoursinfo a"; DataTable dt2 = Db.ConDal.GetList(sql2); Person.Add("Data2", Common.JsonHelper.DataTableToJson(dt2)); #endregion rv.ObjectValue = Person; rv.Success = true; rv.ErrMessage = "获取成功"; return(rv); }
public Model.ReturnValue LoadRibbon(ViewModel.ViewModelBase vm) { var pageID = vm.PageID; var path = vm.Path; var rv = new Model.ReturnValue(); var realPath=ResourceFile.MapXMLPath(path, "Ribbon"); if(!ResourceFile.Exists(realPath)) { rv.Result = false; rv.Message = "file does not exist."; return rv; } var root = XDocument.Load(System.Windows.Application.GetResourceStream( new Uri(realPath)).Stream).Root; var tabs = root.Elements("RibbonTab"); List<RibbonTab> pageTabs; if (_ribTabs.ContainsKey(pageID)) pageTabs = _ribTabs[pageID]; else { pageTabs = new List<RibbonTab>(); _ribTabs.Add(pageID, pageTabs); } foreach (var xt in tabs) { var rt = CreateRibbonTab(xt); var rtHeader = rt.Header.ToString(); //子页面与子页面之间的header允许重复 //但是任何一个子页面的header 不能与默认页面的header重复. //所以, 当遇到与默认页面header重复时, 认为是在覆盖默认tab if (_defaultTabs.ContainsKey(rtHeader)) { if (rt.Tag != null && rt.Tag.ToString().ToLower() == "overwrite") _defaultTabs[rtHeader].Items.Clear(); while (rt.Items.Count > 0) { var rg = rt.Items[0]; rt.Items.Remove(rg); _defaultTabs[rtHeader].Items.Add(rg); } if (rt.IsSelected) _defaultTabs[rtHeader].IsSelected = true; } else { _rib.Items.Add(rt); pageTabs.Add(rt); } } return rv; }
/// <summary> /// 奖项统计 /// </summary> /// <returns></returns> public Model.ReturnValue GetAwardStatistics() { Model.ReturnValue rv = new Model.ReturnValue(); Dictionary <string, object> Person = new Dictionary <string, object>(); Db.OrderInfoDal OrderInfoDal = new Db.OrderInfoDal(); Db.AwardsStatisticsDal AwardsStatisticsDal = new Db.AwardsStatisticsDal(); //获取中奖奖项统计订单 List <Model.AwardsStatisticsModel> AwardsStatisticsList = AwardsStatisticsDal.GetModelList().Where(w => w.AwardsType == 1 && w.AwardsId != 7).ToList(); #region 中奖人数 List <SeriesData> DrawData = new List <SeriesData>(); foreach (var model in AwardsStatisticsList) { DrawData.Add(new SeriesData() { name = model.AwardsName, value = model.AllTotal }); } Person.Add("Data1", DrawData); #endregion #region 发奖人数 string sql = " select a.AwardsName name,(select COUNT(1) from [OrderInfo] where Jx=a.AwardsName) as value from AwardsStatistics a where AwardsType = 1 and AwardsId <> 7"; //string sql = "select jx as name,count(jx) as value FROM [OrderInfo] group by jx"; DataTable dt = Db.ConDal.GetList(sql); Person.Add("Data2", Common.JsonHelper.DataTableToJson(dt)); #endregion rv.ObjectValue = Person; rv.Success = true; rv.ErrMessage = "获取成功"; return(rv); }
/// <summary> /// 全国参与分布图 /// </summary> /// <returns></returns> public Model.ReturnValue GetWholeCountry() { Model.ReturnValue rv = new Model.ReturnValue(); Dictionary <string, string> Person = new Dictionary <string, string>(); Db.OrderInfoDal OrderInfoDal = new Db.OrderInfoDal(); #region IP地归 string sql = " select right([IpAddress],(charindex('-',[IpAddress])-1)) as name,count([IpAddress]) as value FROM [OrderInfo] group by [IpAddress]"; DataTable dt = Db.ConDal.GetList(sql); Person.Add("Data1", Common.JsonHelper.DataTableToJson(dt)); #endregion rv.ObjectValue = Person; rv.Success = true; rv.ErrMessage = "获取成功"; return(rv); }
public Model.ReturnValue LoadRibbon(ViewModel.ViewModelBase vm) { var pageID = vm.PageID; var path = vm.Path; var rv = new Model.ReturnValue(); var realPath = ResourceFile.MapXMLPath(path, "Ribbon"); if (!ResourceFile.Exists(realPath)) { rv.Result = false; rv.Message = "file does not exist."; return(rv); } var root = XDocument.Load(System.Windows.Application.GetResourceStream( new Uri(realPath)).Stream).Root; var tabs = root.Elements("RibbonTab"); List <RibbonTab> pageTabs; if (_ribTabs.ContainsKey(pageID)) { pageTabs = _ribTabs[pageID]; } else { pageTabs = new List <RibbonTab>(); _ribTabs.Add(pageID, pageTabs); } foreach (var xt in tabs) { var rt = CreateRibbonTab(xt); var rtHeader = rt.Header.ToString(); //子页面与子页面之间的header允许重复 //但是任何一个子页面的header 不能与默认页面的header重复. //所以, 当遇到与默认页面header重复时, 认为是在覆盖默认tab if (_defaultTabs.ContainsKey(rtHeader)) { if (rt.Tag != null && rt.Tag.ToString().ToLower() == "overwrite") { _defaultTabs[rtHeader].Items.Clear(); } while (rt.Items.Count > 0) { var rg = rt.Items[0]; rt.Items.Remove(rg); _defaultTabs[rtHeader].Items.Add(rg); } if (rt.IsSelected) { _defaultTabs[rtHeader].IsSelected = true; } } else { _rib.Items.Add(rt); pageTabs.Add(rt); } } return(rv); }
/// <summary> /// 参与统计 /// </summary> /// <returns></returns> public Model.ReturnValue GetWheaterStatistics() { Model.ReturnValue rv = new Model.ReturnValue(); Dictionary <string, List <SeriesData> > Person = new Dictionary <string, List <SeriesData> >(); Db.OrderInfoDal OrderInfoDal = new Db.OrderInfoDal(); Db.AwardsStatisticsDal AwardsStatisticsDal = new Db.AwardsStatisticsDal(); //获取奖项统计订单 List <Model.AwardsStatisticsModel> AwardsStatisticsList = AwardsStatisticsDal.GetModelList().Where(w => w.AwardsType == 1).ToList(); #region 昨日 List <SeriesData> YesterdayData = new List <SeriesData>(); YesterdayData.Add(new SeriesData() { name = "参与人次", value = AwardsStatisticsList.Sum(s => s.YesterdayTotal) }); YesterdayData.Add(new SeriesData() { name = "中奖人次", value = AwardsStatisticsList.Where(w => w.AwardsId != 7).ToList().Sum(s => s.YesterdayTotal) }); YesterdayData.Add(new SeriesData() { name = "发奖人次", value = OrderInfoDal.CheckCount(string.Format(" and Jx<>'参与奖' and States=1 and DateStamp='{0}'", DateTime.Now.AddDays(-1).ToString("yyyyMMdd"))) }); Person.Add("Data1", YesterdayData); #endregion #region 今日 List <SeriesData> TodayData = new List <SeriesData>(); TodayData.Add(new SeriesData() { name = "参与人次", value = AwardsStatisticsList.Sum(s => s.TodayTotal) }); TodayData.Add(new SeriesData() { name = "中奖人次", value = AwardsStatisticsList.Where(w => w.AwardsId != 7).ToList().Sum(s => s.TodayTotal) }); TodayData.Add(new SeriesData() { name = "发奖人次", value = OrderInfoDal.CheckCount(string.Format(" and Jx<>'参与奖' and States=1 and DateStamp='{0}'", DateTime.Now.ToString("yyyyMMdd"))) }); Person.Add("Data2", TodayData); #endregion #region 累计 List <SeriesData> AllData = new List <SeriesData>(); AllData.Add(new SeriesData() { name = "参与人次", value = AwardsStatisticsList.Sum(s => s.AllTotal) }); AllData.Add(new SeriesData() { name = "中奖人次", value = AwardsStatisticsList.Where(w => w.AwardsId != 7).ToList().Sum(s => s.AllTotal) }); AllData.Add(new SeriesData() { name = "发奖人次", value = OrderInfoDal.CheckCount(string.Format(" and Jx<>'参与奖' and States=1 ")) }); Person.Add("Data3", AllData); #endregion rv.ObjectValue = Person; rv.Success = true; rv.ErrMessage = "获取成功"; return(rv); }