Пример #1
0
        public StatisticsResult Statistics(StatisticsParameter parameter, string securityToken)
        {
            var request = new StatisticsRequest {
                Parameters = parameter
            };
            HttpClientHandler clientHandler = new HttpClientHandler();

            clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); };

            using (var httpClient = new HttpClient(clientHandler)
            {
                BaseAddress = new Uri(url)
            })
            {
                try
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", securityToken);
                    httpClient.Timeout = TimeSpan.FromMinutes(30);
                    var httpResponseMessage = httpClient.PostAsJsonAsync("textProcess/Statistics", request).Result;
                    var response            = httpResponseMessage.Content.ReadAsAsync <StatisticsResponse>().Result;
                    if (response.State.HasError)
                    {
                        throw new Exception(response.State.ErrorMessage);
                    }

                    return(response.Result);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Пример #2
0
        private List <StatisticsParameter> ParamtersSplit(DateTime startTime, DateTime endTime, string sqlWherePart, double offset)
        {
            if (startTime >= endTime)
            {
                return(null);
            }
            List <string> totalTableNames = SqlHelper.GetTableNameByDateTime(TableName, startTime, endTime);
            var           list            = new List <StatisticsParameter>();

            int dayCount = 0;

            bool flag = true;

            while (flag)
            {
                DateTime tempStart = startTime.Date.AddDays(dayCount).AddSeconds(offset);
                if (dayCount == 0)
                {
                    var fristModel = new StatisticsParameter();
                    if (startTime < tempStart)
                    {
                        fristModel.StartDate = startTime;
                        fristModel.EndDate   = tempStart;
                        var sqlStr = BuildSql(fristModel.StartDate, fristModel.EndDate, SqlTablePart, sqlWherePart,
                                              totalTableNames);
                        if (!string.IsNullOrWhiteSpace(sqlStr))
                        {
                            fristModel.SqlList.Add(sqlStr);
                            list.Add(fristModel);
                        }
                    }
                }
                DateTime tempEnd = tempStart.AddDays(1);
                if (tempStart <= startTime)
                {
                    tempStart = startTime;
                }
                if (tempEnd >= endTime)
                {
                    tempEnd = endTime;
                    DateTime endOffsetTime = endTime.Date.AddSeconds(offset);
                    if (tempEnd > endOffsetTime && endOffsetTime > tempStart)
                    {
                        var endModel = new StatisticsParameter()
                        {
                            StartDate = tempStart, EndDate = endOffsetTime
                        };
                        var sqlStr = BuildSql(endModel.StartDate, endModel.EndDate, SqlTablePart, sqlWherePart,
                                              totalTableNames);
                        if (!string.IsNullOrWhiteSpace(sqlStr))
                        {
                            endModel.SqlList.Add(sqlStr);
                            list.Add(endModel);
                        }
                        tempStart = endOffsetTime;
                    }

                    flag = false;
                }
                var dateModel = new StatisticsParameter()
                {
                    StartDate = tempStart,
                    EndDate   = tempEnd
                };

                if (tempEnd.TimeOfDay.TotalMilliseconds != 0 && tempEnd.Date > tempStart.Date)
                {
                    DateTime tempEnd2 = tempEnd.Date;
                    string   sql1     = BuildSql(tempStart, tempEnd2, SqlTablePart, sqlWherePart, totalTableNames);
                    if (!string.IsNullOrWhiteSpace(sql1))
                    {
                        dateModel.SqlList.Add(sql1);
                    }
                    string sql2 = BuildSql(tempEnd2, tempEnd, SqlTablePart, sqlWherePart, totalTableNames);
                    if (!string.IsNullOrWhiteSpace(sql2))
                    {
                        dateModel.SqlList.Add(sql2);
                    }
                }
                else
                {
                    if (tempStart >= tempEnd) //数据不合法
                    {
                        dayCount++;
                        continue;
                    }
                    string sql = BuildSql(tempStart, tempEnd, SqlTablePart, sqlWherePart, totalTableNames);
                    if (!string.IsNullOrWhiteSpace(sql))
                    {
                        dateModel.SqlList.Add(sql);
                    }
                }
                list.Add(dateModel);
                dayCount++;
            }
            return(list);
        }