update pay function
This commit is contained in:
184
verify-prediction-market.js
Normal file
184
verify-prediction-market.js
Normal file
@@ -0,0 +1,184 @@
|
||||
/**
|
||||
* 预测市场功能验证脚本
|
||||
* 检查所有必需的文件和配置是否正确
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
console.log('🔍 开始验证预测市场功能...\n');
|
||||
|
||||
let errors = 0;
|
||||
let warnings = 0;
|
||||
|
||||
// 颜色输出
|
||||
const colors = {
|
||||
green: '\x1b[32m',
|
||||
red: '\x1b[31m',
|
||||
yellow: '\x1b[33m',
|
||||
blue: '\x1b[34m',
|
||||
reset: '\x1b[0m',
|
||||
};
|
||||
|
||||
function success(msg) {
|
||||
console.log(`${colors.green}✅ ${msg}${colors.reset}`);
|
||||
}
|
||||
|
||||
function error(msg) {
|
||||
console.log(`${colors.red}❌ ${msg}${colors.reset}`);
|
||||
errors++;
|
||||
}
|
||||
|
||||
function warning(msg) {
|
||||
console.log(`${colors.yellow}⚠️ ${msg}${colors.reset}`);
|
||||
warnings++;
|
||||
}
|
||||
|
||||
function info(msg) {
|
||||
console.log(`${colors.blue}ℹ️ ${msg}${colors.reset}`);
|
||||
}
|
||||
|
||||
// 1. 检查必需文件
|
||||
console.log('📂 检查文件结构...\n');
|
||||
|
||||
const requiredFiles = [
|
||||
'src/services/creditSystemService.js',
|
||||
'src/services/predictionMarketService.js',
|
||||
'src/views/ValueForum/index.js',
|
||||
'src/views/ValueForum/PredictionTopicDetail.js',
|
||||
'src/views/ValueForum/components/PredictionTopicCard.js',
|
||||
'src/views/ValueForum/components/CreatePredictionModal.js',
|
||||
'src/views/ValueForum/components/TradeModal.js',
|
||||
'src/theme/forumTheme.js',
|
||||
'src/routes/lazy-components.js',
|
||||
'src/routes/routeConfig.js',
|
||||
];
|
||||
|
||||
requiredFiles.forEach(file => {
|
||||
const fullPath = path.join(__dirname, file);
|
||||
if (fs.existsSync(fullPath)) {
|
||||
success(`${file}`);
|
||||
} else {
|
||||
error(`文件不存在: ${file}`);
|
||||
}
|
||||
});
|
||||
|
||||
// 2. 检查主题文件
|
||||
console.log('\n🎨 检查主题配置...\n');
|
||||
|
||||
const themeFile = path.join(__dirname, 'src/theme/forumTheme.js');
|
||||
if (fs.existsSync(themeFile)) {
|
||||
const content = fs.readFileSync(themeFile, 'utf8');
|
||||
|
||||
const requiredColors = ['success:', 'error:', 'warning:', 'info:', 'primary:'];
|
||||
requiredColors.forEach(color => {
|
||||
if (content.includes(color)) {
|
||||
success(`主题包含 ${color} 定义`);
|
||||
} else {
|
||||
error(`主题缺少 ${color} 定义`);
|
||||
}
|
||||
});
|
||||
|
||||
// 检查具体的颜色值
|
||||
if (content.includes('500: \'#4CAF50\'') || content.includes('500: "#4CAF50"')) {
|
||||
success('success[500] 颜色已定义');
|
||||
} else {
|
||||
error('success[500] 颜色缺失');
|
||||
}
|
||||
|
||||
if (content.includes('500: \'#F44336\'') || content.includes('500: "#F44336"')) {
|
||||
success('error[500] 颜色已定义');
|
||||
} else {
|
||||
error('error[500] 颜色缺失');
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 检查路由配置
|
||||
console.log('\n🛣️ 检查路由配置...\n');
|
||||
|
||||
const routeConfigFile = path.join(__dirname, 'src/routes/routeConfig.js');
|
||||
if (fs.existsSync(routeConfigFile)) {
|
||||
const content = fs.readFileSync(routeConfigFile, 'utf8');
|
||||
|
||||
if (content.includes('value-forum/prediction/:topicId')) {
|
||||
success('预测话题详情路由已配置');
|
||||
} else {
|
||||
error('预测话题详情路由未配置');
|
||||
}
|
||||
}
|
||||
|
||||
const lazyComponentsFile = path.join(__dirname, 'src/routes/lazy-components.js');
|
||||
if (fs.existsSync(lazyComponentsFile)) {
|
||||
const content = fs.readFileSync(lazyComponentsFile, 'utf8');
|
||||
|
||||
if (content.includes('PredictionTopicDetail')) {
|
||||
success('PredictionTopicDetail 懒加载已配置');
|
||||
} else {
|
||||
error('PredictionTopicDetail 懒加载未配置');
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 检查依赖
|
||||
console.log('\n📦 检查npm依赖...\n');
|
||||
|
||||
const packageJsonFile = path.join(__dirname, 'package.json');
|
||||
if (fs.existsSync(packageJsonFile)) {
|
||||
const packageJson = JSON.parse(fs.readFileSync(packageJsonFile, 'utf8'));
|
||||
const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
||||
|
||||
const requiredDeps = [
|
||||
'@chakra-ui/react',
|
||||
'react',
|
||||
'react-router-dom',
|
||||
'framer-motion',
|
||||
'lucide-react',
|
||||
];
|
||||
|
||||
requiredDeps.forEach(dep => {
|
||||
if (deps[dep]) {
|
||||
success(`${dep}: ${deps[dep]}`);
|
||||
} else {
|
||||
error(`缺少依赖: ${dep}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 5. 检查ES配置
|
||||
console.log('\n🔌 检查Elasticsearch配置...\n');
|
||||
|
||||
const esServiceFile = path.join(__dirname, 'src/services/elasticsearchService.js');
|
||||
if (fs.existsSync(esServiceFile)) {
|
||||
const content = fs.readFileSync(esServiceFile, 'utf8');
|
||||
|
||||
if (content.includes('222.128.1.157:19200')) {
|
||||
success('ES开发环境地址已配置: 222.128.1.157:19200');
|
||||
} else {
|
||||
warning('ES地址可能已修改,请检查配置');
|
||||
}
|
||||
|
||||
if (content.includes('forum_posts')) {
|
||||
success('ES索引 forum_posts 已定义');
|
||||
}
|
||||
}
|
||||
|
||||
// 6. 输出总结
|
||||
console.log('\n' + '='.repeat(50));
|
||||
console.log(`\n📊 验证结果总结:\n`);
|
||||
|
||||
if (errors === 0 && warnings === 0) {
|
||||
console.log(`${colors.green}🎉 所有检查通过!预测市场功能已正确配置。${colors.reset}\n`);
|
||||
console.log(`${colors.blue}👉 下一步: 运行 npm start 启动应用${colors.reset}\n`);
|
||||
process.exit(0);
|
||||
} else {
|
||||
if (errors > 0) {
|
||||
console.log(`${colors.red}❌ 发现 ${errors} 个错误${colors.reset}`);
|
||||
}
|
||||
if (warnings > 0) {
|
||||
console.log(`${colors.yellow}⚠️ 发现 ${warnings} 个警告${colors.reset}`);
|
||||
}
|
||||
|
||||
console.log(`\n${colors.blue}📚 查看故障排除指南:${colors.reset}`);
|
||||
console.log(` cat TROUBLESHOOTING.md\n`);
|
||||
|
||||
process.exit(errors > 0 ? 1 : 0);
|
||||
}
|
||||
Reference in New Issue
Block a user