Exemple #1
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }
            if (IsPostBack)
            {
                return;
            }

            VerifySystemPermissions(ConfigManager.SettingsPermissions.Chart);
            LtlPageTitle.Text = $"用户增加最近{_count}{EStatictisXTypeUtils.GetText(EStatictisXTypeUtils.GetEnumType(AuthRequest.GetQueryString("XType")))}分配图表";

            EStatictisXTypeUtils.AddListItems(DdlXType);

            _xType = EStatictisXTypeUtils.GetEnumType(AuthRequest.GetQueryString("XType"));

            if (Equals(_xType, EStatictisXType.Day))
            {
                _count = 30;
            }
            else if (Equals(_xType, EStatictisXType.Month))
            {
                _count = 12;
            }
            else if (Equals(_xType, EStatictisXType.Year))
            {
                _count = 10;
            }

            TbDateFrom.Text        = AuthRequest.GetQueryString("DateFrom");
            TbDateTo.Text          = AuthRequest.GetQueryString("DateTo");
            DdlXType.SelectedValue = EStatictisXTypeUtils.GetValue(_xType);

            //用户添加量统计
            var trackingDayDict = DataProvider.UserDao.GetTrackingDictionary(TranslateUtils.ToDateTime(AuthRequest.GetQueryString("DateFrom")), TranslateUtils.ToDateTime(AuthRequest.GetQueryString("DateTo"), DateTime.Now), EStatictisXTypeUtils.GetValue(_xType));

            var now = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);

            for (var i = 0; i < _count; i++)
            {
                var datetime = now.AddDays(-i);
                if (Equals(_xType, EStatictisXType.Day))
                {
                    now      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
                    datetime = now.AddDays(-i);
                }
                else if (Equals(_xType, EStatictisXType.Month))
                {
                    now      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0);
                    datetime = now.AddMonths(-i);
                }
                else if (Equals(_xType, EStatictisXType.Year))
                {
                    now      = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0);
                    datetime = now.AddYears(-i);
                }

                var accessNum = 0;
                if (trackingDayDict.ContainsKey(datetime))
                {
                    accessNum = trackingDayDict[datetime];
                }
                _userNumHashtable.Add(_count - i, accessNum);
                if (accessNum > _maxUserNum)
                {
                    _maxUserNum = accessNum;
                }
            }

            for (var i = 1; i <= _count; i++)
            {
                StrArray += $@"
xArray.push('{GetGraphicX(i)}');
yArray.push('{GetGraphicY(i)}');
";
            }
        }
Exemple #2
0
        /// <summary>
        /// 统计管理员actionType的操作次数
        /// </summary>
        /// <param name="dateFrom"></param>
        /// <param name="dateTo"></param>
        /// <param name="xType"></param>
        /// <param name="actionType"></param>
        /// <returns></returns>
        public Dictionary <DateTime, int> GetAdminLoginDictionaryByDate(DateTime dateFrom, DateTime dateTo, string xType, string actionType)
        {
            var dict = new Dictionary <DateTime, int>();

            if (string.IsNullOrEmpty(xType))
            {
                xType = EStatictisXTypeUtils.GetValue(EStatictisXType.Day);
            }

            var builder = new StringBuilder();

            if (dateFrom > DateUtils.SqlMinValue)
            {
                builder.Append($" AND AddDate >= {SqlUtils.GetComparableDate(dateFrom)}");
            }
            if (dateTo != DateUtils.SqlMinValue)
            {
                builder.Append($" AND AddDate < {SqlUtils.GetComparableDate(dateTo)}");
            }

            string sqlSelectTrackingDay = $@"
SELECT COUNT(*) AS AddNum, AddYear, AddMonth, AddDay FROM (
    SELECT {SqlUtils.GetDatePartYear("AddDate")} AS AddYear, {SqlUtils.GetDatePartMonth("AddDate")} AS AddMonth, {SqlUtils.GetDatePartDay("AddDate")} AS AddDay 
    FROM siteserver_Log 
    WHERE {SqlUtils.GetDateDiffLessThanDays("AddDate", 30.ToString())} {builder}
) DERIVEDTBL GROUP BY AddYear, AddMonth, AddDay ORDER BY AddNum DESC";//添加日统计

            if (EStatictisXTypeUtils.Equals(xType, EStatictisXType.Month))
            {
                sqlSelectTrackingDay = $@"
SELECT COUNT(*) AS AddNum, AddYear, AddMonth FROM (
    SELECT {SqlUtils.GetDatePartYear("AddDate")} AS AddYear, {SqlUtils.GetDatePartMonth("AddDate")} AS AddMonth 
    FROM siteserver_Log 
    WHERE {SqlUtils.GetDateDiffLessThanMonths("AddDate", 12.ToString())} {builder}
) DERIVEDTBL GROUP BY AddYear, AddMonth ORDER BY AddNum DESC";//添加月统计
            }
            else if (EStatictisXTypeUtils.Equals(xType, EStatictisXType.Year))
            {
                sqlSelectTrackingDay = $@"
SELECT COUNT(*) AS AddNum, AddYear FROM (
    SELECT {SqlUtils.GetDatePartYear("AddDate")} AS AddYear
    FROM siteserver_Log
    WHERE {SqlUtils.GetDateDiffLessThanYears("AddDate", 10.ToString())} {builder}
) DERIVEDTBL GROUP BY AddYear ORDER BY AddNum DESC
";//添加年统计
            }

            using (var rdr = ExecuteReader(sqlSelectTrackingDay))
            {
                while (rdr.Read())
                {
                    var accessNum = GetInt(rdr, 0);
                    if (EStatictisXTypeUtils.Equals(xType, EStatictisXType.Day))
                    {
                        var year     = GetString(rdr, 1);
                        var month    = GetString(rdr, 2);
                        var day      = GetString(rdr, 3);
                        var dateTime = TranslateUtils.ToDateTime($"{year}-{month}-{day}");
                        dict.Add(dateTime, accessNum);
                    }
                    else if (EStatictisXTypeUtils.Equals(xType, EStatictisXType.Month))
                    {
                        var year  = GetString(rdr, 1);
                        var month = GetString(rdr, 2);

                        var dateTime = TranslateUtils.ToDateTime($"{year}-{month}-1");
                        dict.Add(dateTime, accessNum);
                    }
                    else if (EStatictisXTypeUtils.Equals(xType, EStatictisXType.Year))
                    {
                        var year     = GetString(rdr, 1);
                        var dateTime = TranslateUtils.ToDateTime($"{year}-1-1");
                        dict.Add(dateTime, accessNum);
                    }
                }
                rdr.Close();
            }
            return(dict);
        }
Exemple #3
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }
            if (IsPostBack)
            {
                return;
            }

            VerifySystemPermissions(ConfigManager.SettingsPermissions.Chart);

            LtlPageTitle1.Text = $"管理员登录最近{_count}{EStatictisXTypeUtils.GetText(EStatictisXTypeUtils.GetEnumType(AuthRequest.GetQueryString("XType")))}分配图表(按日期统计)";
            LtlPageTitle2.Text = $"管理员登录最近{_count}{EStatictisXTypeUtils.GetText(EStatictisXTypeUtils.GetEnumType(AuthRequest.GetQueryString("XType")))}分配图表(按管理员统计)";

            EStatictisXTypeUtils.AddListItems(DdlXType);

            _xType = EStatictisXTypeUtils.GetEnumType(AuthRequest.GetQueryString("XType"));

            if (Equals(_xType, EStatictisXType.Day))
            {
                _count = 30;
            }
            else if (Equals(_xType, EStatictisXType.Month))
            {
                _count = 12;
            }
            else if (Equals(_xType, EStatictisXType.Year))
            {
                _count = 10;
            }


            TbDateFrom.Text        = AuthRequest.GetQueryString("DateFrom");
            TbDateTo.Text          = AuthRequest.GetQueryString("DateTo");
            DdlXType.SelectedValue = EStatictisXTypeUtils.GetValue(_xType);

            //管理员登录量统计,按照日期
            var trackingDayDictionary = DataProvider.LogDao.GetAdminLoginDictionaryByDate(TranslateUtils.ToDateTime(AuthRequest.GetQueryString("DateFrom")), TranslateUtils.ToDateTime(AuthRequest.GetQueryString("DateTo"), DateTime.Now), EStatictisXTypeUtils.GetValue(_xType), LogInfo.AdminLogin);

            //管理员登录量统计,按照用户名
            var adminNumDictionaryName = DataProvider.LogDao.GetAdminLoginDictionaryByName(TranslateUtils.ToDateTime(AuthRequest.GetQueryString("DateFrom")), TranslateUtils.ToDateTime(AuthRequest.GetQueryString("DateTo"), DateTime.Now), LogInfo.AdminLogin);

            var now = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);

            for (var i = 0; i < _count; i++)
            {
                var datetime = now.AddDays(-i);
                if (Equals(_xType, EStatictisXType.Day))
                {
                    now      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
                    datetime = now.AddDays(-i);
                }
                else if (Equals(_xType, EStatictisXType.Month))
                {
                    now      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0);
                    datetime = now.AddMonths(-i);
                }
                else if (Equals(_xType, EStatictisXType.Year))
                {
                    now      = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0);
                    datetime = now.AddYears(-i);
                }

                var accessNum = 0;
                if (trackingDayDictionary.ContainsKey(datetime))
                {
                    accessNum = trackingDayDictionary[datetime];
                }
                _adminNumDictionaryDay.Add(_count - i, accessNum);
                if (accessNum > _maxAdminNum)
                {
                    _maxAdminNum = accessNum;
                }
            }

            for (var i = 1; i <= _count; i++)
            {
                StrArray1 += $@"
xArray.push('{GetGraphicX(i)}');
yArray.push('{GetGraphicY(i)}');
";
            }

            foreach (var key in adminNumDictionaryName.Keys)
            {
                StrArray2 += $@"
xArray.push('{key}');
yArray.push('{GetGraphicYUser(adminNumDictionaryName, key)}');
";
            }
        }