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; } } }
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); }