protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (stock_code.Length != 6) { Response.Write("股票代码不正确"); Response.End(); return; } if (!Utils.tokenCk(url, time, token)) { Response.Write("token校验失败"); Response.End(); return; } if (!IPLimitHelper.CheckIsAble()) { Response.Write("访问频率过高,请稍后访问"); Response.End(); return; } string code = Utils.GetFullStockCode(stock_code, flag); var stockList = RedisHelper.GetValues(code).Split(','); if (stockList.Length > 30) { decimal yesterday_price = decimal.Parse(stockList[2]); //昨收价格 decimal open_price = decimal.Parse(stockList[1]); //开盘价格 decimal now_price_api = decimal.Parse(stockList[3]); //当前价格 decimal now_price_h = decimal.Parse(stockList[4]); //今日最高价 decimal now_price_l = decimal.Parse(stockList[5]); //今日最低价 if (yesterday_price == 0 && open_price == 0 && now_price_api == 0 && now_price_h == 0 && now_price_l == 0) { Response.Write("该票已退市,无法提供行情信息"); Response.End(); return; } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (stock_code.Length != 6) { Response.Write("股票代码不正确"); Response.End(); return; } if (!Utils.tokenCk(url, time, token)) { Response.Write("token校验失败"); Response.End(); return; } if (!IPLimitHelper.CheckIsAble()) { Response.Write("访问频率过高,请稍后访问"); Response.End(); return; } } }
private void stock_t(HttpContext context) { string url = AppRequest.GetQueryString("url", true); string time = AppRequest.GetQueryString("time", true); string token = AppRequest.GetQueryString("token", true); int flag = AppRequest.GetQueryInt("flag", 0); string code = AppRequest.GetQueryString("code", true);//股票代码 if (code.Length != 6) { context.Response.Write("fail"); return; } if (!Utils.tokenCk(url, time, token)) { context.Response.Write("token校验失败,请刷新页面重试"); return; } if (!IPLimitHelper.CheckIsAble()) { context.Response.Write("访问频率过高,请稍后访问"); return; } string json_str = "", key; if (flag == 100) { key = code + "t_bak" + (flag > 0 ? flag.ToString() : ""); } else { key = code + "t" + (flag > 0 ? flag.ToString() : ""); } if (Utils.IsTradeTime() == 1) { decimal open = 0, preClose = 0, highest = 0, lowest = 0, fprice = 0, deal_num = 0, deal_price = 0; string[] stock_info = Utils.GetStockData(code, 0, flag).Split(','); if (stock_info.Length > 30) { #region ====================更新数据 //redis-Key值、旧值 DateTime dt = DateTime.Now; string old_str = RedisHelper.GetValues(key); //旧数据 string time_hhmm = dt.ToString("HHmm"); //行情时间; //开盘价、收盘价、最高、最低、当前价、成交量、成交额 open = Utils.StrToDecimal(stock_info[1], 0); preClose = Utils.StrToDecimal(stock_info[2], 0); highest = Utils.StrToDecimal(stock_info[4], 0); lowest = Utils.StrToDecimal(stock_info[5], 0); fprice = Utils.StrToDecimal(stock_info[3], 0); deal_num = Utils.StrToDecimal(stock_info[8], 0) / 100; deal_price = Utils.StrToDecimal(stock_info[9], 0); if (old_str.Length > 32) { Model.StockTLine modelt = JsonHelper.ParseFromJson <Model.StockTLine>(old_str); bool is_has = modelt.mins.Any(p => p.time == time_hhmm); if (is_has == true) { modelt.mins.Remove(modelt.mins.Where(p => p.time == time_hhmm).Single()); } Model.quote quote = new Model.quote() { stock_name = stock_info[0], time = dt.ToString("yyyyMMddHHmmss"), open = open, preClose = preClose, highest = highest, lowest = lowest, price = fprice, volume = deal_num, amount = deal_price }; if (modelt.mins.Count > 0) { decimal deal_num_his = modelt.mins.Sum(p => p.volume);//以前的成交量 decimal volume = (deal_num - deal_num_his) / 100; Model.mins mins = new Model.mins() { price = fprice, volume = volume < 0 ? 0 : volume, amount = deal_price, time = time_hhmm }; modelt.quote = quote; modelt.mins.Add(mins); } json_str = JsonHelper.GetJson <Model.StockTLine>(modelt); } #endregion } } else { json_str = RedisHelper.GetValues(key);//旧数据 } context.Response.Write(json_str); return; }