Exemplo n.º 1
0
        public void Send(IMessageSender sender)
        {
            this.Log().Info("清空数据");
            ClearRecormend();

            var groups = new string[] { "tencent", "market" };

            foreach (var group in groups)
            {
                this.Log().Info("推荐" + group + "股票");

                IList <data.stockcategory>   cateList  = cateService.GetCategoryList(group);
                IList <data.indexdefinition> indexList = indexService.FindAll().Where(p => p.state == 1).ToList();
                foreach (var cate in cateList)
                {
                    foreach (var index in indexList)
                    {
                        RecoCateStock msg = new RecoCateStock
                        {
                            CateCode  = cate.code,
                            CateName  = cate.name,
                            IndexCode = index.code,
                            IndexName = index.name
                        };
                        sender.Send(JsonConvert.SerializeObject(msg));
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void Excute(string message)
        {
            RecoCateStock msg       = JsonConvert.DeserializeObject <RecoCateStock>(message);
            string        cateCode  = msg.CateCode;
            string        cateName  = msg.CateName;
            string        indexCode = msg.IndexCode;
            string        indexName = msg.IndexName;

            this.Log().Info("计算开始:推荐行业:" + cateName + ",技术" + indexName);

            //and (c.day=1 or ( c.last_day=-1 and c.day=0))
            string sql = string.Format(@"select distinct CONCAT(b.cate_code,'_',c.index_code,'_',a.code) as code, a.code as object_code,a.name as object_name,a.price,a.yestclose,a.percent,a.pe,
                            a.pb,a.mv,a.fv,b.cate_code as cate_code,d.name as cate_name,c.index_code as index_code,e.name as index_name,
                            c.day,c.week,c.month,c.last_day,c.last_week,c.last_month  
                            from stock a 
                            inner join stock_category_map b on b.stock_code=a.code
                            inner join stockcategory d on b.cate_code=d.code
                            inner join objectstate c on a.code=c.object_code
                            inner join indexdefinition e on c.index_code=e.code
                            where b.cate_code ='{0}' and c.index_code ='{1}'  and c.week=1 and c.month=1 and (c.day=1 or ( c.last_day=-1 and c.day=0))
                            LIMIT 5;", cateCode, indexCode);

            using (var entity = new StockManDBEntities())
            {
                var recos = entity.Database.SqlQuery <data.reco_stock_category_index>(sql).ToList();
                foreach (var reco in recos)
                {
                    this.Log().Info("推荐股票:" + reco.object_code + "_" + reco.object_name);
                    if (entity.reco_stock_category_index.Any(x => x.code == reco.code))
                    {
                        entity.Entry(reco).State = EntityState.Modified;
                    }
                    else
                    {
                        entity.reco_stock_category_index.Add(reco);
                    }
                }
                entity.SaveChanges();
            }
            this.Log().Info("计算完成:推荐行业:" + cateName + ",技术" + indexName);
        }