示例#1
0
        /// <summary>
        /// 获取每日手机橱窗新增商品
        /// </summary>
        /// <param name="stDate"></param>
        /// <param name="edDate"></param>
        /// <returns></returns>
        public DxChartModel GetDailyNewGoodsNum(DateTime stDate, DateTime edDate)
        {
            StringBuilder  strSql     = new StringBuilder();
            List <dynamic> listGoods  = new List <dynamic>();
            DxChartModel   chartModel = new DxChartModel();
            DateTime       iter       = stDate;

            while (iter < edDate)
            {
                chartModel.DataList.Add(new DxChartData(iter.ToShortDateString()));
                iter = iter.AddDays(1);
            }
            strSql.Append(
                "select CAST(updateTime as date) opDate,count(*) cnt from [i200].[dbo].[t_GoodsExtend] " +
                "where ge_stat=1 and  updateTime between @stDate and @edDate group by CAST(updateTime as date);");
            listGoods = DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate }).ToList();
            foreach (DxChartData day in chartModel.DataList)
            {
                List <dynamic> dayGoodsList = listGoods.FindAll(x => x.opDate.ToShortDateString() == day.Date);
                if (dayGoodsList.Count > 0)
                {
                    day.Data.Add("当日新增商品", (dayGoodsList.Exists(x => x.opDate.ToShortDateString() == day.Date) ? dayGoodsList.Find(x => x.opDate.ToShortDateString() == day.Date).cnt : 0));
                }
                else
                {
                    day.Data.Add("当日新增商品", 0);
                }
            }
            return(chartModel);
        }
示例#2
0
        /// <summary>
        /// 获取每日订单总数
        /// </summary>
        /// <param name="stDate"></param>
        /// <param name="edDate"></param>
        /// <returns></returns>
        public DxChartModel GetDataSource(DateTime stDate, DateTime edDate)
        {
            StringBuilder  strSql     = new StringBuilder();
            List <dynamic> listGoods  = new List <dynamic>();
            DxChartModel   chartModel = new DxChartModel();
            DateTime       iter       = stDate;

            while (iter < edDate)
            {
                chartModel.DataList.Add(new DxChartData(iter.ToShortDateString()));
                iter = iter.AddDays(1);
            }
            strSql.Append(
                "select CAST(bInsertTime as date) opDate,COUNT(*) cnt from [i200].[dbo].[T_Goods_Booking] " +
                "where bState in (1,2,3,4) and payType=1 and  bInsertTime between @stDate and @edDate group by CAST(bInsertTime as date);");
            listGoods = DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate }).ToList();
            foreach (DxChartData day in chartModel.DataList)
            {
                List <dynamic> dayGoodsList = listGoods.FindAll(x => x.opDate.ToShortDateString() == day.Date);
                if (dayGoodsList.Count > 0)
                {
                    day.Data.Add("手机橱窗当日订单", (dayGoodsList.Exists(x => x.opDate.ToShortDateString() == day.Date) ? dayGoodsList.Find(x => x.opDate.ToShortDateString() == day.Date).cnt : 0));
                }
                else
                {
                    day.Data.Add("手机橱窗当日订单", 0);
                }
            }
            return(chartModel);
        }
示例#3
0
        /// <summary>
        /// 获取每日UV和PV
        /// </summary>
        /// <param name="stDate"></param>
        /// <param name="edDate"></param>
        /// <returns></returns>
        public DxChartModel GetDailyViewData(DateTime stDate, DateTime edDate)
        {
            StringBuilder  strSql     = new StringBuilder();
            List <dynamic> uvList     = new List <dynamic>();
            List <dynamic> pvList     = new List <dynamic>();
            DxChartModel   chartModel = new DxChartModel();
            DateTime       iter       = stDate;

            while (iter < edDate)
            {
                chartModel.DataList.Add(new DxChartData(iter.ToShortDateString()));
                iter = iter.AddDays(1);
            }
            strSql.Append(
                "select CAST(l_time as date) opDate,count(distinct l_ip) cnt from [I200_Log].[dbo].[HTML_Log] " +
                "where l_time between @stDate and @edDate group by CAST(l_time as date);");
            uvList = DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate }).ToList();

            strSql.Clear();

            strSql.Append(
                "select CAST(l_time as date) opDate,count(*) cnt from [I200_Log].[dbo].[HTML_Log] " +
                "where l_time between @stDate and @edDate group by CAST(l_time as date);");
            pvList = DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate }).ToList();

            foreach (DxChartData day in chartModel.DataList)
            {
                List <dynamic> dailyUv = uvList.FindAll(x => x.opDate.ToShortDateString() == day.Date);
                List <dynamic> dailyPv = pvList.FindAll(x => x.opDate.ToShortDateString() == day.Date);

                if (dailyUv.Count > 0)
                {
                    day.Data.Add("日UV", (dailyUv.Exists(x => x.opDate.ToShortDateString() == day.Date) ? dailyUv.Find(x => x.opDate.ToShortDateString() == day.Date).cnt : 0));
                }
                else
                {
                    day.Data.Add("日UV", 0);
                }

                if (dailyPv.Count > 0)
                {
                    day.Data.Add("日PV", (dailyPv.Exists(x => x.opDate.ToShortDateString() == day.Date) ? dailyPv.Find(x => x.opDate.ToShortDateString() == day.Date).cnt : 0));
                }
                else
                {
                    day.Data.Add("日PV", 0);
                }
            }
            return(chartModel);
        }
示例#4
0
        public DxChartModel GetDataSource(DateTime stDate, DateTime edDate, string[] sourceType,
                                          string[] conditions)
        {
            StringBuilder  strSql    = new StringBuilder();
            List <dynamic> listSale  = new List <dynamic>();
            List <dynamic> listReg   = new List <dynamic>();
            List <dynamic> listGoods = new List <dynamic>();

            DxChartModel chartModel = new DxChartModel();
            //List<DxChartData> dataList = new List<DxChartData>();

            DateTime iter = stDate;

            while (iter < edDate)
            {
                chartModel.DataList.Add(new DxChartData(iter.ToShortDateString()));
                iter = iter.AddDays(1);
            }

            foreach (string conds in conditions)
            {
                strSql.Clear();
                switch (conds)
                {
                case "销售":
                    strSql.Append(
                        "select CAST(saleTime as date) opDate,COUNT(*) cnt,saleFlag from [i200].[dbo].[T_SaleInfo] " +
                        "where saleTime between @stDate and @edDate group by CAST(saleTime as date),saleFlag;");
                    listSale =
                        DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate })
                        .ToList();
                    break;

                case "商品":
                    strSql.Append(
                        "select CAST(gAddTime as date) opDate,COUNT(*) cnt,gFlag from [i200].[dbo].[T_GoodsInfo] " +
                        "where gAddTime between @stDate and @edDate group by CAST(gAddTime as date),gFlag;");
                    listGoods =
                        DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate })
                        .ToList();
                    break;

                case "会员":
                    strSql.Append(
                        "select CAST(uRegTime as date) opDate,COUNT(*) cnt,uFlag from [i200].[dbo].[T_UserInfo] " +
                        "where uRegTime between @stDate and @edDate group by CAST(uRegTime as date),uFlag;");
                    listReg =
                        DapperHelper.Query <dynamic>(strSql.ToString(), new { stDate = stDate, edDate = edDate })
                        .ToList();
                    break;
                }
            }

            foreach (DxChartData day in chartModel.DataList)
            {
                List <dynamic> daySaleList  = listSale.FindAll(x => x.opDate.ToShortDateString() == day.Date);
                List <dynamic> dayGoodsList = listGoods.FindAll(x => x.opDate.ToShortDateString() == day.Date);
                List <dynamic> dayRegList   = listReg.FindAll(x => x.opDate.ToShortDateString() == day.Date);

                if (daySaleList.Count > 0)
                {
                    if (sourceType.Contains("IPHONE"))
                    {
                        day.Data.Add("IPHONE销售",
                                     (daySaleList.Exists(x => x.saleFlag == 1)
                            ? daySaleList.Find(x => x.saleFlag == 1).cnt
                            : 0));
                    }

                    if (sourceType.Contains("Android"))
                    {
                        day.Data.Add("Android销售",
                                     (daySaleList.Exists(x => x.saleFlag == 2)
                            ? daySaleList.Find(x => x.saleFlag == 2).cnt
                            : 0));
                    }

                    if (sourceType.Contains("Web"))
                    {
                        day.Data.Add("Web销售",
                                     (daySaleList.Exists(x => x.saleFlag == 0)
                            ? daySaleList.Find(x => x.saleFlag == 0).cnt
                            : 0));
                    }

                    if (sourceType.Contains("iPad"))
                    {
                        day.Data.Add("iPad销售",
                                     (daySaleList.Exists(x => x.saleFlag == 3)
                            ? daySaleList.Find(x => x.saleFlag == 3).cnt
                            : 0));
                    }
                }
                else if (conditions.Contains("销售"))
                {
                    foreach (string str in sourceType)
                    {
                        day.Data.Add(str + "销售", 0);
                    }
                }


                if (dayGoodsList.Count > 0)
                {
                    if (sourceType.Contains("IPHONE"))
                    {
                        day.Data.Add("IPHONE商品",
                                     (dayGoodsList.Exists(x => x.gFlag == 1)
                            ? dayGoodsList.Find(x => x.gFlag == 1).cnt
                            : 0));
                    }

                    if (sourceType.Contains("Android"))
                    {
                        day.Data.Add("Android商品",
                                     (dayGoodsList.Exists(x => x.gFlag == 2)
                            ? dayGoodsList.Find(x => x.gFlag == 2).cnt
                            : 0));
                    }

                    if (sourceType.Contains("Web"))
                    {
                        day.Data.Add("Web商品",
                                     (dayGoodsList.Exists(x => x.gFlag == 0)
                              ? dayGoodsList.Find(x => x.gFlag == 0).cnt
                              : 0));
                    }

                    if (sourceType.Contains("iPad"))
                    {
                        day.Data.Add("iPad商品",
                                     (dayGoodsList.Exists(x => x.gFlag == 3)
                            ? dayGoodsList.Find(x => x.gFlag == 3).cnt
                            : 0));
                    }
                }
                else if (conditions.Contains("商品"))
                {
                    foreach (string str in sourceType)
                    {
                        day.Data.Add(str + "商品", 0);
                    }
                }

                if (dayRegList.Count > 0)
                {
                    if (sourceType.Contains("IPHONE"))
                    {
                        day.Data.Add("IPHONE会员",
                                     (dayRegList.Exists(x => x.uFlag == 1)
                            ? dayRegList.Find(x => x.uFlag == 1).cnt
                            : 0));
                    }

                    if (sourceType.Contains("Android"))
                    {
                        day.Data.Add("Android会员",
                                     (dayRegList.Exists(x => x.uFlag == 2)
                            ? dayRegList.Find(x => x.uFlag == 2).cnt
                            : 0));
                    }

                    if (sourceType.Contains("Web"))
                    {
                        day.Data.Add("Web会员",
                                     (dayRegList.Exists(x => x.uFlag == 0)
                            ? dayRegList.Find(x => x.uFlag == 0).cnt
                            : 0));
                    }

                    if (sourceType.Contains("iPad"))
                    {
                        day.Data.Add("iPad会员",
                                     (dayRegList.Exists(x => x.uFlag == 3)
                            ? dayRegList.Find(x => x.uFlag == 3).cnt
                            : 0));
                    }
                }
                else if (conditions.Contains("会员"))
                {
                    foreach (string str in sourceType)
                    {
                        day.Data.Add(str + "会员", 0);
                    }
                }
            }

            return(chartModel);
        }