コード例 #1
0
ファイル: k.aspx.cs プロジェクト: hanwenzh/TradeWjf
        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;
                    }
                }
            }
        }
コード例 #2
0
 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;
         }
     }
 }
コード例 #3
0
ファイル: api_ajax.ashx.cs プロジェクト: hanwenzh/TradeWjf
        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;
        }