|
|
|
@ -255,21 +255,36 @@ async function loadFuturesList() {
|
|
|
|
async function loadAllAIAnalysis() {
|
|
|
|
async function loadAllAIAnalysis() {
|
|
|
|
console.log('开始加载所有合约的AI分析结果...');
|
|
|
|
console.log('开始加载所有合约的AI分析结果...');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取今天的日期字符串用于比较
|
|
|
|
|
|
|
|
const today = new Date();
|
|
|
|
|
|
|
|
const todayStr = today.toISOString().split('T')[0]; // YYYY-MM-DD
|
|
|
|
|
|
|
|
|
|
|
|
// 分批加载,避免并发请求过多
|
|
|
|
// 分批加载,避免并发请求过多
|
|
|
|
const batchSize = 5;
|
|
|
|
const batchSize = 5;
|
|
|
|
for (let i = 0; i < allFuturesData.length; i += batchSize) {
|
|
|
|
for (let i = 0; i < allFuturesData.length; i += batchSize) {
|
|
|
|
const batch = allFuturesData.slice(i, i + batchSize);
|
|
|
|
const batch = allFuturesData.slice(i, i + batchSize);
|
|
|
|
const promises = batch.map(async (item) => {
|
|
|
|
const promises = batch.map(async (item) => {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
const response = await fetch(`${API_BASE}/ai-analysis/${item.symbol}`);
|
|
|
|
// 获取历史记录
|
|
|
|
|
|
|
|
const response = await fetch(`${API_BASE}/ai-analysis/${item.symbol}/history?limit=1`);
|
|
|
|
const data = await response.json();
|
|
|
|
const data = await response.json();
|
|
|
|
|
|
|
|
|
|
|
|
if (data.success && data.data && data.data.result) {
|
|
|
|
if (data.success && data.data && data.data.length > 0) {
|
|
|
|
const result = data.data.result;
|
|
|
|
const latestRecord = data.data[0]; // 最新的一条记录
|
|
|
|
|
|
|
|
const analysisTime = latestRecord.analysis_time;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 判断是否是今天的记录
|
|
|
|
|
|
|
|
const recordDate = new Date(analysisTime);
|
|
|
|
|
|
|
|
const recordDateStr = recordDate.toISOString().split('T')[0];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (recordDateStr === todayStr) {
|
|
|
|
|
|
|
|
// 是今天的记录,加载数据
|
|
|
|
|
|
|
|
const result = latestRecord.analysis_data;
|
|
|
|
const analysisItem = allFuturesData.find(d => d.symbol === item.symbol);
|
|
|
|
const analysisItem = allFuturesData.find(d => d.symbol === item.symbol);
|
|
|
|
if (analysisItem) {
|
|
|
|
if (analysisItem) {
|
|
|
|
analysisItem.hasAIAnalysis = true;
|
|
|
|
analysisItem.hasAIAnalysis = true;
|
|
|
|
analysisItem.aiResult = result;
|
|
|
|
analysisItem.aiResult = result;
|
|
|
|
|
|
|
|
analysisItem.analysisTime = analysisTime;
|
|
|
|
|
|
|
|
|
|
|
|
// 更新操作建议
|
|
|
|
// 更新操作建议
|
|
|
|
if (result.trading_suggestion?.direction) {
|
|
|
|
if (result.trading_suggestion?.direction) {
|
|
|
|
@ -296,6 +311,11 @@ async function loadAllAIAnalysis() {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
console.log(`${item.symbol} 的分析记录不是今天的 (${recordDateStr}),不加载`);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
console.log(`${item.symbol} 没有AI分析记录`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (error) {
|
|
|
|
} catch (error) {
|
|
|
|
console.error(`加载 ${item.symbol} AI分析失败:`, error);
|
|
|
|
console.error(`加载 ${item.symbol} AI分析失败:`, error);
|
|
|
|
|