Пример #1
0
        protected void BuidTable()
        {
            IList <data.indexdefinition> indexList = indexService.FindAll().Where(p => p.state == 1).ToList();

            string dropSql = "drop table if exists `reco_object_rank`";

            string sql = @"create table if not exists `reco_object_rank` ({0}, PRIMARY KEY (`code`));";

            string sql1 = @"code varchar(50) NOT NULL, date datetime NULL,category_code varchar(50) null,object_code varchar(50) null,rank int default 0";

            foreach (var index in indexList)
            {
                sql1 += "," + index.code + " int default 0";
            }

            string result = string.Format(sql, sql1);

            using (var entity = new StockManDBEntities())
            {
                this.Log().Info("删除表:reco_stock_rank");
                entity.Database.ExecuteSqlCommand(dropSql);
                this.Log().Info("构建表:reco_stock_rank");
                entity.Database.ExecuteSqlCommand(result);
            }
        }
Пример #2
0
 public virtual void Delete(T data)
 {
     using (StockManDBEntities db = new StockManDBEntities())
     {
         Type           type    = data.GetType();
         PropertyInfo[] members = type.GetProperties();
         List <string>  ids     = new List <string>();
         foreach (PropertyInfo m in members)
         {
             var temp = m.GetCustomAttribute <KeyAttribute>();
             if (temp != null)
             {
                 object obj = m.GetValue(data);
                 ids.Add(obj.ToString());
                 continue;
             }
         }
         T entity = db.Set <T>().Find(ids.ToArray());
         if (entity != default(T))
         {
             db.Set <T>().Remove(entity);
             db.SaveChanges();
         }
     }
 }
Пример #3
0
        public virtual void DeleteRange(IList <T> datas)
        {
            using (StockManDBEntities db = new StockManDBEntities())
            {
                IList <T> list = new List <T>();
                foreach (T data in datas)
                {
                    Type           type    = data.GetType();
                    PropertyInfo[] members = type.GetProperties();
                    List <string>  ids     = new List <string>();
                    foreach (PropertyInfo m in members)
                    {
                        var temp = m.GetCustomAttribute <KeyAttribute>();
                        if (temp != null)
                        {
                            object obj = m.GetValue(data);
                            ids.Add(obj.ToString());
                            continue;
                        }
                    }
                    T entity = db.Set <T>().Find(ids.ToArray());
                    list.Add(entity);
                }

                if (list.Count > 0)
                {
                    foreach (var l in list)
                    {
                        db.Set <T>().Remove(l);
                    }

                    db.SaveChanges();
                }
            }
        }
        public IList <MyCycleObject> GetMyObject(string userId)
        {
            //三类,大盘,行业,经济数据
//            string sql = @"SELECT  code
//                  ,name
//                  ,state
//                  ,date
//                  ,open
//                  ,low
//                  ,price
//                  ,updown
//                  ,yestclose
//                  ,volume
//                  ,turnover
//                  ,high
//                  ,percent
//              FROM customobject a inner join Object_User_Map b on a.code=b.object_code
//              where b.user_id='0'";
            string sql = @"select a.code,a.name,a.price,a.yestclose,b.object_type as 'type'  from customobject a
                        inner join object_user_map b on a.code=b.object_code and b.object_type='3' and b.user_id=@p0
                        union
                        select a.code,a.name,a.price,a.yestclose,b.object_type as 'type'  from stockcategory a
                        inner join object_user_map b on a.code=b.object_code and b.object_type='2' and b.user_id=@p0
                        union 
                        select a.code,a.name,a.value as 'price',a.last_value as 'yestclose',b.object_type as 'type' from related_object_define a 
                        inner join object_user_map b on a.code =b.object_code and b.object_type='4' and b.user_id=@p0";

            using (var entity = new StockManDBEntities())
            {
                return(entity.Database.SqlQuery <MyCycleObject>(sql, userId).ToList());
            }
        }
        // GET api/values
        public IEnumerable <string> Get()
        {
            StockManDBEntities entity = new StockManDBEntities();
            var stock = entity.stock.Find("1300332");

            return(new string[] { stock.name });
        }
Пример #6
0
 public long GetUserCount()
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.users.Count());
     }
 }
Пример #7
0
 public override related_object_define Find(string code)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.related_object_define.Include("related_object_fields").Where(p => p.code == code).FirstOrDefault());
     }
 }
Пример #8
0
 public IList <indexdefinition> GetIndexByCodes(string[] codes)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.indexdefinition.Where(p => codes.Contains(p.code)).ToList());
     }
 }
Пример #9
0
        protected IList <IndexData> GetLastIndexData(stock stock, IndexDefinitionInfo define)
        {
            using (StockManDBEntities entity = new StockManDBEntities())
            {
                string sql = @"select * from " + define.table_name + " where f_code='" + stock.code + "' order by code desc limit 50";

                entity.Database.Connection.Open();
                using (entity.Database.Connection)
                {
                    System.Data.IDbCommand commond = entity.Database.Connection.CreateCommand();
                    commond.CommandText = sql;
                    IDataReader reader = commond.ExecuteReader();

                    IList <IndexData> list = new List <IndexData>();
                    while (reader.Read())
                    {
                        IndexData id = new IndexData();
                        id.date = DateTime.Parse(reader["date"] + "");
                        foreach (var filed in define.fields)
                        {
                            id.Add(double.Parse(reader[filed.name] + ""));
                        }

                        list.Add(id);
                    }
                    entity.Database.Connection.Close();
                    return(list);
                }
            }
        }
        public IHttpActionResult ReplySuggest(dm.sys_goodidea sys_GoodIdea)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            using (StockManDBEntities db = new StockManDBEntities())
            {
                var item = db.sys_goodidea.FirstOrDefault(p => p.code == sys_GoodIdea.code);
                if (item == null)
                {
                    db.sys_goodidea.Add(sys_GoodIdea);
                }
                else
                {
                    item.description = sys_GoodIdea.description;
                }


                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(Ok());
        }
Пример #11
0
        private void SaveTechContext(string context, IndexDefinitionInfo define)
        {
            string objCode = (int)this.ObjectType + "";
            string code    = objCode + "_" + this.ObjectCode + "_" + define.code + "_" + this.Cycle;

            using (var entity = new StockManDBEntities())
            {
                var item = entity.tech_context.FirstOrDefault(p => p.code == code);
                if (item == null)
                {
                    entity.tech_context.Add(new tech_context()
                    {
                        code          = code,
                        category_code = objCode,
                        object_code   = this.ObjectCode,
                        index_code    = define.code,
                        context       = context,
                        createtime    = DateTime.Now
                    });
                }
                else
                {
                    item.context    = context;
                    item.createtime = DateTime.Now;
                }
                try
                {
                    entity.SaveChanges();
                }
                catch (Exception ex)
                {
                    this.Log().Error(ex.Message);
                }
            }
        }
        // GET api/values/5
        public string Get(string id)
        {
            StockManDBEntities entity = new StockManDBEntities();
            var stock = entity.stock.Find(id);

            return(stock.name);
        }
 public void UpdateCategoryPrice(IList <PriceInfo> spiList)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         string sql = string.Empty;
         foreach (PriceInfo p in spiList)
         {
             // code = item.code,
             //date = today,
             //price = index,
             //high = 0,
             //low = 0,
             //yestclose = yestclose,
             //volume = vol,
             //turnover = turnover
             sql += string.Format(@"UPDATE `stockcategory` SET                      
                     `price` = '{0}',
                     `yestclose` ='{1}',
                     `volume` = '{2}',
                     `turnover` = '{3}',                           
                     `high` = '{4}',                           
                     `low` ='{5}',                         
                     `date` = '{6}',
                     `percent` = '{7}'
                     WHERE code = '{8}';", p.price, p.yestclose, p.volume, p.turnover,
                                  p.high, p.low, p.date.ToString("yyyy-MM-dd"), p.percent, p.code);
         }
         entity.Database.ExecuteSqlCommand(sql);
     }
 }
        public void SetStrategy(string user_id, IList <string> strategry)
        {
            using (StockManDBEntities entity = new StockManDBEntities())
            {
                if (strategry == null)
                {
                    strategry = new List <string>();
                }

                var us = entity.user_strategy.FirstOrDefault(p => p.user_id == user_id);
                if (us == null)
                {
                    entity.user_strategy.Add(new user_strategy
                    {
                        user_id  = user_id,
                        strategy = JsonConvert.SerializeObject(strategry)
                    });
                }
                else
                {
                    us.strategy = JsonConvert.SerializeObject(strategry);
                }
                entity.SaveChanges();
            }
        }
 public IList <user_position> GetUserPosition(string user_id)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.user_position.Where(p => p.user_id == user_id).ToList());
     }
 }
 public user_amount GetAmount(string user_id)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.user_amount.FirstOrDefault(p => p.id == user_id));
     }
 }
Пример #17
0
 public virtual IList <T> FindAll()
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.Set <T>().ToList());
     }
 }
Пример #18
0
        public DateTime GetLatestDate(ObjectType objType, string code)
        {
            using (var entity = new StockManDBEntities())
            {
                string tableName = string.Format("data_{0}_{1}_latest", objType.ToString(), TechCycle.day);
                string where = string.Empty;

                string sql = string.Format(@"SELECT date FROM {0} where object_code='{1}' {2} order by date desc limit 1", tableName, code, where);

                entity.Database.Connection.Open();
                using (entity.Database.Connection)
                {
                    System.Data.IDbCommand commond = entity.Database.Connection.CreateCommand();
                    commond.CommandText = sql;
                    object val = commond.ExecuteScalar();

                    entity.Database.Connection.Close();

                    if (string.IsNullOrEmpty(val + ""))
                    {
                        return(DateTime.Now);
                    }
                    return(DateTime.Parse(val + ""));
                }
            }
        }
Пример #19
0
        /// <summary>
        /// {date:'',a:0,b:0}
        /// </summary>
        /// <param name="defineCode"></param>
        /// <param name="data"></param>
        public void InsertData(string defineCode, string jsonData)
        {
            using (StockManDBEntities entity = new StockManDBEntities())
            {
                var data   = JsonConvert.DeserializeObject(jsonData) as JObject;
                var define = entity.related_object_define
                             .Include("related_object_fields").FirstOrDefault(p => p.code == defineCode);
                string sql = @"insert into related_object_data (code,type,date,createtime,{{0}}) values ('{0}','{1}','{2}','{3}',{{1}})"
                             .Format(Guid.NewGuid(), defineCode, data["date"], DateTime.Now);

                string fieldStr = "", fieldValue = "";
                foreach (var field in define.related_object_fields)
                {
                    if (fieldStr.Length == 0)
                    {
                        fieldStr = "pro" + field.map;
                    }
                    else
                    {
                        fieldStr += ",pro" + field.map;
                    }

                    if (fieldValue.Length == 0)
                    {
                        fieldValue = "'" + data[field.name] + "'";
                    }
                    else
                    {
                        fieldValue += ",'" + data[field.name] + "'";
                    }
                }
                sql = string.Format(sql, fieldStr, fieldValue);
                entity.Database.ExecuteSqlCommand(sql);
            }
        }
        public void Execute(IJobExecutionContext context)
        {
            using (StockManDBEntities entity = new StockManDBEntities())
            {
                var msgList = entity.user_message.Where(p => p.notice_state == 0).ToList();

                foreach (var u in msgList)
                {
                    string email  = "";
                    var    config = entity.sys_userconfig.Where(p => p.code == u.user_id).FirstOrDefault();
                    if (config != null && !string.IsNullOrEmpty(config.config))
                    {
                        var configDetail = JsonConvert.DeserializeObject <UserConfigItem>(config.config);
                        email = configDetail.email;
                    }

                    if (string.IsNullOrEmpty(email))
                    {
                        if (u.user_id.IndexOf("@") > 0)
                        {
                            email = u.user_id;
                        }
                    }

                    if (!string.IsNullOrEmpty(email))
                    {
                        sendmail("慢牛提醒", u.content, "*****@*****.**", email, "*****@*****.**", "18669040658");

                        u.notice_state = 1;
                    }
                }
                entity.SaveChanges();
            }
        }
Пример #21
0
 public sys_userconfig GetUserConfig(string userId)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.sys_userconfig.Find(userId));
     }
 }
Пример #22
0
 public override IList <indexdefinition> FindAll()
 {
     using (var entity = new StockManDBEntities())
     {
         return(entity.indexdefinition.Include("indexdefinegroup").ToList <indexdefinition>());
     }
 }
Пример #23
0
 public IList <indexdefinegroup> GetGroups()
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         return(entity.indexdefinegroup.ToList());
     }
 }
Пример #24
0
        public string GetData <TM>(string code, DateTime start, DateTime end) where TM : ObjectDataBase, new()
        {
            //e[0],//日期
            //e[1],//开盘
            //e[2],//收盘
            //e[3],//最高
            //e[4],//最低
            //e[5],//成交量
            //e[6],//涨跌额
            //e[7],//涨跌幅

            string tableName = typeof(TM).Name;
            string sql       = string.Format(@"SELECT 
                      date
                      ,open
                      ,price
                      ,high
                      ,low
                      ,volume
                      ,updown 
                      ,percent                  
                      ,yestclose                      
                      ,turnover
                  FROM {0} where object_code='{1}' and date between '{2}' and '{3}' order by date", tableName, code, start.ToString("yyyy-MM-dd"), end.ToString("yyyy-MM-dd"));

            using (var entity = new StockManDBEntities())
            {
                entity.Database.Connection.Open();
                using (entity.Database.Connection)
                {
                    System.Data.IDbCommand commond = entity.Database.Connection.CreateCommand();
                    commond.CommandText = sql;
                    IDataReader reader = commond.ExecuteReader();

                    string dataStr = "";
                    while (reader.Read())
                    {
                        string fstr = "\"" + DateTime.Parse(reader["date"] + "").ToString("yyyyMMdd") + "\"";
                        for (var i = 1; i < reader.FieldCount; i++)
                        {
                            fstr += "," + reader[i];
                        }
                        fstr = "[" + fstr + "]";

                        if (dataStr.Length == 0)
                        {
                            dataStr = fstr;
                        }
                        else
                        {
                            dataStr += "," + fstr;
                        }
                    }
                    dataStr = "[" + dataStr + "]";
                    entity.Database.Connection.Close();
                    return(dataStr);
                }
            }
        }
Пример #25
0
        private void SaveTechState(IndexDefinitionInfo define, IndexState result)
        {
            using (StockManDBEntities entity = new StockManDBEntities())
            {
                var cate        = (int)this.ObjectType + "";
                var code        = cate + "_" + this.ObjectCode + "_" + define.code;
                var objectState = entity.objectstate.FirstOrDefault(p => p.code == code);
                if (objectState == null)
                {
                    var temp = new objectstate()
                    {
                        code          = code,
                        category_code = cate,
                        object_code   = this.ObjectCode,
                        index_code    = define.code,
                        date          = DateTime.Now
                    };

                    switch (this.Cycle)
                    {
                    case TechCycle.day:
                        temp.day = (int)result;
                        break;

                    case TechCycle.week:
                        temp.week = (int)result;
                        break;

                    default:
                        temp.month = (int)result;
                        break;
                    }
                    entity.objectstate.Add(temp);
                }
                else
                {
                    switch (this.Cycle)
                    {
                    case TechCycle.day:
                        objectState.last_day = objectState.day;
                        objectState.day      = (int)result;
                        break;

                    case TechCycle.week:
                        objectState.last_week = objectState.week;
                        objectState.week      = (int)result;
                        break;

                    default:
                        objectState.last_month = objectState.month;
                        objectState.month      = (int)result;
                        break;
                    }
                    objectState.date = DateTime.Now;
                }

                entity.SaveChanges();
            }
        }
Пример #26
0
 public virtual void Update(T data)
 {
     using (StockManDBEntities db = new StockManDBEntities())
     {
         db.Entry <T>(data).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
 private void clearTechData(data.stock stock)
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         string sql = string.Format("delete from tech_context where object_code='{0}'", stock.code);
         entity.Database.ExecuteSqlCommand(sql);
     }
 }
Пример #28
0
 public virtual T Find(string id)
 {
     using (StockManDBEntities db = new StockManDBEntities())
     {
         T entity = db.Set <T>().Find(id);
         return(entity);
     }
 }
Пример #29
0
 /// <summary>
 /// 技术状态计算之前的初始化工作
 /// </summary>
 private void Init()
 {
     using (StockManDBEntities entity = new StockManDBEntities())
     {
         string sql = "DELETE FROM `object_tag_map`;";
         entity.Database.ExecuteSqlCommand(sql);
     }
 }
Пример #30
0
        private void ClearRecormend()
        {
            string sql = string.Format(@"delete from  `reco_stock_category_index`");

            using (var entity = new StockManDBEntities())
            {
                entity.Database.ExecuteSqlCommand(sql);
            }
        }