using SqlSugar;
namespace AssetManager.Data;
public class DatabaseService
{
private readonly ISqlSugarClient _db;
public DatabaseService(ISqlSugarClient db)
{
_db = db;
}
public void InitializeDatabase()
{
_db.CodeFirst.InitTables(
typeof(User),
typeof(Strategy),
typeof(Portfolio),
typeof(Position),
typeof(Transaction),
typeof(TiingoTicker),
typeof(MarketPriceCache),
typeof(MarketKlineCache)
);
}
public ISqlSugarClient GetDb()
{
return _db;
}
///
/// 根据ID获取投资组合(校验用户ID)
///
public Portfolio? GetPortfolioById(string id, string userId)
{
return _db.Queryable()
.First(p => p.Id == id && p.UserId == userId);
}
///
/// 根据投资组合ID获取持仓列表
///
public List GetPositionsByPortfolioId(string portfolioId)
{
return _db.Queryable()
.Where(p => p.PortfolioId == portfolioId)
.ToList();
}
}