AssetManager.API/AssetManager.Services/PortfolioService.cs
niannian zheng d39a6347cd feat: 实现微信登录和用户信息管理功能
- 添加微信登录功能,支持通过微信小程序登录
- 实现用户信息管理接口,包括获取用户信息和统计数据
- 新增投资组合列表和总资产统计接口
- 完善JWT令牌生成逻辑,支持可选用户名
- 添加数据库初始化配置和连接字符串
- 移除传统登录和注册功能,专注微信登录方案
2026-02-26 11:56:14 +08:00

181 lines
5.8 KiB
C#

using AssetManager.Models.DTOs;
namespace AssetManager.Services;
public class PortfolioService : IPortfolioService
{
public CreatePortfolioResponse CreatePortfolio(CreatePortfolioRequest request)
{
// 模拟创建投资组合
return new CreatePortfolioResponse
{
id = "port-" + Guid.NewGuid().ToString().Substring(0, 8),
totalValue = request.stocks.Sum(s => s.price * s.amount),
returnRate = 0,
currency = request.currency,
createdAt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
};
}
public PortfolioDetailResponse GetPortfolioById(string id)
{
// 模拟获取投资组合详情
return new PortfolioDetailResponse
{
id = id,
name = "我的投资组合",
currency = "CNY",
strategy = new StrategyInfo
{
id = "hfea",
name = "HFEA 风险平价策略",
description = "高风险高收益策略"
},
portfolioValue = 125000,
totalReturn = 12500,
todayProfit = 2500,
todayProfitCurrency = "CNY",
positions = new List<PositionItem>
{
new PositionItem
{
id = "pos-001",
stockCode = "UPRO",
stockName = "标普500三倍杠杆ETF",
amount = 100,
averagePrice = 50,
currentPrice = 55,
totalValue = 5500,
profit = 500,
profitRate = 10,
currency = "USD"
}
},
transactions = new List<TransactionItem>
{
new TransactionItem
{
id = "trans-001",
portfolioId = id,
date = "2026-02-24",
time = "14:30:00",
type = "buy",
title = "购买 UPRO",
amount = 5000,
currency = "USD",
status = "completed",
remark = "初始建仓"
}
}
};
}
public GetTransactionsResponse GetTransactions(string portfolioId, int limit, int offset)
{
// 模拟获取交易记录
return new GetTransactionsResponse
{
items = new List<TransactionItem>
{
new TransactionItem
{
id = "trans-001",
portfolioId = portfolioId,
date = "2026-02-24",
time = "14:30:00",
type = "buy",
title = "购买 UPRO",
amount = 5000,
currency = "USD",
status = "completed",
remark = "初始建仓"
}
},
total = 1,
page = offset / limit + 1,
pageSize = limit
};
}
public CreateTransactionResponse CreateTransaction(CreateTransactionRequest request)
{
// 模拟执行交易
return new CreateTransactionResponse
{
id = "trans-" + Guid.NewGuid().ToString().Substring(0, 8),
totalAmount = request.price * request.amount,
status = "processing",
createdAt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
};
}
public GetPortfoliosResponse GetPortfolios()
{
// 模拟获取投资组合列表
return new GetPortfoliosResponse
{
items = new List<PortfolioListItem>
{
new PortfolioListItem
{
id = "hfea-001",
name = "美股全天候杠杆",
tags = "HFEA · 季度调仓",
status = "监控中",
statusType = "green",
iconChar = "H",
iconBgClass = "bg-green-100",
iconTextClass = "text-green-700",
value = 156240,
currency = "USD",
returnRate = 42.82,
returnType = "positive"
},
new PortfolioListItem
{
id = "ma-002",
name = "纳指双均线趋势",
tags = "趋势跟踪 · 日线",
status = "等待信号",
statusType = "gray",
iconChar = "T",
iconBgClass = "bg-blue-100",
iconTextClass = "text-blue-700",
value = 412500,
currency = "USD",
returnRate = -1.79,
returnType = "negative"
},
new PortfolioListItem
{
id = "hk-003",
name = "港股价值投资",
tags = "价值投资 · 蓝筹",
status = "持有中",
statusType = "green",
iconChar = "H",
iconBgClass = "bg-green-100",
iconTextClass = "text-green-700",
value = 896000,
currency = "HKD",
returnRate = 12.56,
returnType = "positive"
}
}
};
}
public TotalAssetsResponse GetTotalAssets()
{
// 模拟获取总资产情况
return new TotalAssetsResponse
{
totalValue = 1284592.4,
currency = "CNY",
todayProfit = 12482,
todayProfitCurrency = "CNY",
totalReturnRate = 24.82
};
}
}