using IStation.Common; using IStation.Dto; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Web; using System.Web.Http; using System.Web.UI.WebControls; namespace IStation.WebApi.Controllers { /// /// 供水总量 /// [RoutePrefix("TotalWaterOut")] public class TotalWaterOutController : ApiController { /// /// 获取某日的供水总量 /// /// /// [Route("GetByDay")] [HttpGet] public async Task GetByDay(string day) { if (day == null) { return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day null" }; } DateTime dayD; if (!DateTime.TryParse(day, out dayD)) { return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 格式不正确" }; } if (dayD > DateTime.Today) { return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不能查询今日的数据" }; } double sum = -1; if (dayD < DateTime.Today) { sum = TotalWaterOutHelper.Read(dayD); } if (sum < 0) { sum = await ZyConnectHelper.GetTotalWaterByDay_Out(DateTime.Parse(day));//.Result;//.GetAwaiter().GetResult(); if (dayD < DateTime.Today) { TotalWaterOutHelper.Save(dayD, sum); } } return new IStation.Dto.ApiResult(sum / 10000); } /// /// 获取最近三天的供水总量 /// /// /// [Route("GetLastDay3")] [HttpGet] public async Task GetLastDay3() { DateTime yest1 = DateTime.Today.AddDays(-1); var sum1 = TotalWaterOutHelper.Read(yest1); if (sum1 < 0) { sum1 = await ZyConnectHelper.GetTotalWaterByDay_Out(yest1);//.Result;//.GetAwaiter().GetResult(); TotalWaterOutHelper.Save(yest1, sum1); } DateTime yest2 = DateTime.Today.AddDays(-2); var sum2 = TotalWaterOutHelper.Read(yest2); if (sum2 < 0) { sum2 = await ZyConnectHelper.GetTotalWaterByDay_Out(yest2);//.Result;//.GetAwaiter().GetResult(); TotalWaterOutHelper.Save(yest2, sum2); } DateTime yest3 = DateTime.Today.AddDays(-3); var sum3 = TotalWaterOutHelper.Read(yest3); if (sum3 < 0) { sum3 = await ZyConnectHelper.GetTotalWaterByDay_Out(yest3);//.Result;//.GetAwaiter().GetResult(); TotalWaterOutHelper.Save(yest3, sum3); } return new IStation.Dto.ApiResult>(new List { sum1 / 10000, sum2 / 10000, sum3 / 10000 }); } /// /// 获取web客户端ip /// /// public static string GetWebClientIp() { string userIP = ""; try { if (System.Web.HttpContext.Current == null || System.Web.HttpContext.Current.Request == null || System.Web.HttpContext.Current.Request.ServerVariables == null) { return ""; } string CustomerIP = ""; //CDN加速后取到的IP simone 090805 CustomerIP = System.Web.HttpContext.Current.Request.Headers["Cdn-Src-Ip"]; if (!string.IsNullOrEmpty(CustomerIP)) { return CustomerIP; } CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!String.IsNullOrEmpty(CustomerIP)) { return CustomerIP; } if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) { CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (CustomerIP == null) { CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } } else { CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } if (string.Compare(CustomerIP, "unknown", true) == 0 || String.IsNullOrEmpty(CustomerIP)) { return System.Web.HttpContext.Current.Request.UserHostAddress; } return CustomerIP; } catch { } return userIP; } } }