Ejemplo n.º 1
0
        public List <PoolDetail> GetTodayPoolDetail(bool withoutST = false)
        {
            var list = new List <PoolDetail>();

            try
            {
                var nowTime       = TimeHelper.ConvertToTimeStamp(DateTime.Now.Date);
                var tomTime       = TimeHelper.ConvertToTimeStamp(DateTime.Now.AddDays(1).Date);
                var dynamicParams = new DynamicParameters();
#if DEBUG
                nowTime = 1601395200;
                tomTime = 1601481600;
#endif
                dynamicParams.Add("todayTime", nowTime);
                dynamicParams.Add("tomorrowTime", tomTime);
                var    coloum = "*";
                string sql    = $"select {coloum} from pool_detail where last_limit_up>=@todayTime and last_limit_up<@tomorrowTime ";
                if (withoutST)
                {
                    sql += " and stock_type!=@stockType";
                    dynamicParams.Add("stockType", 1);
                }
                var totayDBData = _dBService.FinanceDB.Query <LimitUp>(sql, dynamicParams).ToList();
                list = _mapperService.MapCheck <List <PoolDetail> >(totayDBData);
            }
            catch (Exception ex)
            {
                this.SetTaskLog("error_GetTodayPoolDetail", ex.Message + ex.StackTrace);
            }
            return(list);
        }
Ejemplo n.º 2
0
    //加密时间类
    static string GetAuth()
    {
        AuthModel m = new AuthModel()
        {
            DeviceNumber = SystemInfo.deviceUniqueIdentifier,
            Time         = TimeHelper.ConvertToTimeStamp(DateTime.Now)
        };

        return(Encrypt(JsonConvert.SerializeObject(m)));
    }
Ejemplo n.º 3
0
        public List <PoolDetail> GetAllTopPoolDetail(bool withoutST = false)
        {
            var list = new List <PoolDetail>();

            try
            {
                var    coloum        = "last_limit_up,limit_up_days,stock_chi_name,symbol,stock_type";
                string sql           = $"select {coloum} from pool_detail where 1=1 ";
                var    dynamicParams = new DynamicParameters();
                if (withoutST)
                {
                    sql += " and position('ST' in stock_chi_name)=0;";
                    // dynamicParams.Add("stock_type", 1);
                }

                var totayDBData = _dBService.FinanceDB.Query <LimitUp>(sql).ToList();

                var resPoolDetail = new List <LimitUp>();
                foreach (var item in totayDBData)
                {
                    var tp = TimeHelper.ConvertToDateTime((long)item.last_limit_up).Date;
                    var dt = TimeHelper.ConvertToTimeStamp(tp);
                    item.last_limit_up = dt;
                }

                var a = totayDBData.GroupBy(p => p.last_limit_up);
                foreach (var item in a)
                {
                    var max = item.ToList().OrderByDescending(p => p.limit_up_days).FirstOrDefault();
                    resPoolDetail.Add(max);
                }



                list = _mapperService.MapCheck <List <PoolDetail> >(resPoolDetail);
            }
            catch (Exception ex)
            {
                this.SetTaskLog("error_GetTodayPoolDetail", ex.Message + ex.StackTrace);
            }
            return(list);
        }
Ejemplo n.º 4
0
        //used
        public async Task <MsgResult> GetLimitUpBroken(string taskName)
        {
            var result = new MsgResult();

            try
            {
                var request = new HttpRequestMessage(HttpMethod.Get,
                                                     "https://flash-api.xuangubao.cn/api/pool/detail?pool_name=limit_up_broken");
                //request.Headers.Add("Accept", "application/vnd.github.v3+json");
                //request.Headers.Add("User-Agent", "HttpClientFactory-Sample");

                var client = _clientFactory.CreateClient();

                var response = await client.SendAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    var responseString = await response.Content.ReadAsStringAsync();

                    var res = JsonConvert.DeserializeObject <MsgResult>(responseString);
                    if (res.code == 20000)
                    {
                        var data    = JsonConvert.DeserializeObject <List <PoolDetail> >(JsonConvert.SerializeObject(res.data));
                        var nowTime = TimeHelper.ConvertToTimeStamp(DateTime.Now.Date);
                        var tomTime = TimeHelper.ConvertToTimeStamp(DateTime.Now.AddDays(1).Date);

                        data = data.Where(p => p.last_break_limit_up >= nowTime && p.last_break_limit_up < tomTime).ToList();
                        if (data.Count == 0)
                        {
                            throw new Exception("无更新数据");
                        }

                        var dynamicParams = new DynamicParameters();

                        dynamicParams.Add("todayTime", nowTime);
                        dynamicParams.Add("tomorrowTime", tomTime);
                        var totayDBData = _dBService.FinanceDB.Query <limitUpBroken>("select * from limit_up_broken where last_break_limit_up>=@todayTime and last_break_limit_up<@tomorrowTime", dynamicParams).ToList();

                        var listData = new List <int>();
                        foreach (var item in data)
                        {
                            var hasItem = totayDBData.Where(p => p.symbol == item.symbol).FirstOrDefault();
                            var k       = _mapperService.MapCheck <limitUpBroken>(item);
                            if (hasItem != null)
                            {
                                k.id = hasItem.id;
                                var b = _dBService.FinanceDB.Update <limitUpBroken>(k);

                                listData.Add(k.id);
                            }
                            else
                            {
                                var a = _dBService.FinanceDB.Insert <limitUpBroken>(k);
                                listData.Add(k.id);
                            }
                        }
                        _redisService.RemoveCache(Constants.Redis.FAPI_BrokenPercent);
                        _redisService.RemoveCache(Constants.Redis.FAPI_GetEverydayBrokenLBS);
                        _redisService.RemoveCache(Constants.Redis.FAPI_GetEverydayLBS);
                        _redisService.RemoveCache(Constants.Redis.FAPI_GetEverydayUpLBS);
                        _redisService.RemoveCache(Constants.Redis.FAPI_GetPoolDetail);
                        result.code = 200;
                        result.data = listData;
                        this.SetTaskLog(taskName, listData);
                    }
                    else
                    {
                        result.message = res.message;
                        result.code    = 500;
                    }
                }
                else
                {
                    result.message = "HTTP失败";
                    result.code    = 400;
                }
            }
            catch (Exception ex)
            {
                result.code    = 500;
                result.message = ex.Message + ex.StackTrace;
                this.SetTaskLog("error_" + taskName, result.message);
            }
            return(result);
        }
Ejemplo n.º 5
0
        public async Task <MsgResult> GetHistoryFromXuangubaoAsync(string taskName)
        {
            var result = new MsgResult();

            var tTime = Convert.ToDateTime("2020/10/21");

            for (var tT = tTime; tT < DateTime.Now; tT.AddDays(1))
            {
                try
                {
                    var request = new HttpRequestMessage(HttpMethod.Get,
                                                         $"https://flash-api.xuangubao.cn/api/pool/detail?pool_name=limit_up&date={tT.Date.ToString("yyyy-MM-dd")}");


                    var client = _clientFactory.CreateClient();

                    var response = await client.SendAsync(request);

                    if (response.IsSuccessStatusCode)
                    {
                        var responseString = await response.Content.ReadAsStringAsync();

                        var res = JsonConvert.DeserializeObject <MsgResult>(responseString);
                        if (res.code == 20000)
                        {
                            var data    = JsonConvert.DeserializeObject <List <PoolDetail> >(JsonConvert.SerializeObject(res.data));
                            var nowTime = TimeHelper.ConvertToTimeStamp(tT.Date);
                            var tomTime = TimeHelper.ConvertToTimeStamp(tT.AddDays(1).Date);
                            //nowTime = 1601395200;
                            //tomTime = 1601481600;
                            data = data.Where(p => p.last_limit_up >= nowTime && p.last_limit_up < tomTime).ToList();
                            if (data.Count == 0)
                            {
                                throw new Exception("无更新数据");
                            }

                            var dynamicParams = new DynamicParameters();

                            dynamicParams.Add("todayTime", nowTime);
                            dynamicParams.Add("tomorrowTime", tomTime);
                            var totayDBData = _dBService.FinanceDB.Query <LimitUp>("select * from pool_detail where last_limit_up>=@todayTime and last_limit_up<@tomorrowTime", dynamicParams).ToList();

                            var listData = new List <int>();
                            foreach (var item in data)
                            {
                                var hasItem = totayDBData.Where(p => p.symbol == item.symbol).FirstOrDefault();
                                var k       = _mapperService.MapCheck <LimitUp>(item);
                                if (hasItem != null)
                                {
                                    k.id = hasItem.id;
                                    var b = _dBService.FinanceDB.Update <LimitUp>(k);

                                    listData.Add(k.id);
                                }
                                else
                                {
                                    var a = _dBService.FinanceDB.Insert <LimitUp>(k);
                                    listData.Add(k.id);
                                }
                            }
                            result.code = 200;
                            result.data = listData;
                            this.SetTaskLog(taskName, listData);
                            _dBService.FinanceDB.Close();
                            Console.WriteLine(tT);
                        }
                        else
                        {
                            result.message = res.message;
                            result.code    = 500;
                        }
                    }
                    else
                    {
                        result.message = "HTTP失败";
                        result.code    = 400;
                    }
                }
                catch (Exception ex)
                {
                    if (ex.Message != "Value cannot be null. (Parameter 'source')")
                    {
                        var a = "";
                    }
                    continue;
                }
                finally
                {
                    tT = tT.AddDays(1);
                }
            }


            return(result);
        }