feat: 添加相关股票模块

This commit is contained in:
zdl
2025-11-01 12:19:47 +08:00
parent 571d5e68bc
commit 3b8b749eb1
6 changed files with 663 additions and 15 deletions

View File

@@ -99,22 +99,48 @@ const Community = () => {
const fetchDynamicNews = async () => {
setDynamicNewsLoading(true);
try {
const timeRange = getCurrentTradingTimeRange();
const response = await fetch(
`/api/events/dynamic-news?start_time=${timeRange.startTime.toISOString()}&end_time=${timeRange.endTime.toISOString()}&count=30`,
{ credentials: 'include' }
);
const data = await response.json();
// 检查是否使用 mock 模式
// 开发阶段默认使用 mock 数据
const useMock = true; // TODO: 生产环境改为环境变量控制
// const useMock = process.env.REACT_APP_USE_MOCK === 'true' ||
// localStorage.getItem('use_mock_data') === 'true';
if (data.success && data.data) {
setDynamicNewsEvents(data.data);
logger.info('Community', '动态新闻加载成功', {
count: data.data.length,
timeRange: timeRange.description
if (useMock) {
// 使用 mock 数据
const { generateMockEvents } = await import('../../mocks/data/events');
const mockData = generateMockEvents({ page: 1, per_page: 30 });
// 调试:检查第一个事件的 related_stocks 数据
if (mockData.events[0]?.related_stocks) {
console.log('Mock 数据第一个事件的股票:', mockData.events[0].related_stocks);
}
setDynamicNewsEvents(mockData.events);
logger.info('Community', '动态新闻(Mock)加载成功', {
count: mockData.events.length,
mode: 'mock',
firstEventStocks: mockData.events[0]?.related_stocks?.length || 0
});
} else {
logger.warn('Community', '动态新闻加载失败', data);
setDynamicNewsEvents([]);
// 使用真实 API
const timeRange = getCurrentTradingTimeRange();
const response = await fetch(
`/api/events/dynamic-news?start_time=${timeRange.startTime.toISOString()}&end_time=${timeRange.endTime.toISOString()}&count=30`,
{ credentials: 'include' }
);
const data = await response.json();
if (data.success && data.data) {
setDynamicNewsEvents(data.data);
logger.info('Community', '动态新闻加载成功', {
count: data.data.length,
timeRange: timeRange.description,
mode: 'api'
});
} else {
logger.warn('Community', '动态新闻加载失败', data);
setDynamicNewsEvents([]);
}
}
} catch (error) {
logger.error('Community', '动态新闻加载异常', error);