- 重构sys模块架构,严格按admin/api/core分层 - 对齐所有sys实体与数据库表结构 - 实现完整的adminapi控制器,匹配PHP/Java契约 - 修复依赖注入问题,确保服务正确注册 - 添加自动迁移工具和契约验证 - 完善多租户支持和审计功能 - 统一命名规范,与PHP业务逻辑保持一致
144 lines
4.3 KiB
JavaScript
144 lines
4.3 KiB
JavaScript
// 直接测试迁移工具功能
|
|
const { GeneratorService } = require('./dist/common/generator/services/generator.service');
|
|
const { PhpMigrationService } = require('./dist/tools/migration/services/php-migration.service');
|
|
|
|
async function testMigrationDirect() {
|
|
try {
|
|
console.log('🚀 开始直接测试迁移工具...\n');
|
|
|
|
// 模拟数据库连接
|
|
const mockDataSource = {
|
|
query: async (sql, params) => {
|
|
console.log('📝 执行SQL:', sql);
|
|
console.log('📝 参数:', params);
|
|
|
|
if (sql.includes('INFORMATION_SCHEMA.TABLES')) {
|
|
return [
|
|
{ tableName: 'sys_user' },
|
|
{ tableName: 'sys_menu' },
|
|
{ tableName: 'sys_config' },
|
|
{ tableName: 'sys_area' },
|
|
{ tableName: 'sys_dict_type' }
|
|
];
|
|
}
|
|
|
|
if (sql.includes('INFORMATION_SCHEMA.COLUMNS')) {
|
|
return [
|
|
{
|
|
columnName: 'uid',
|
|
columnComment: '用户ID',
|
|
dataType: 'int',
|
|
isNullable: 'NO',
|
|
columnKey: 'PRI',
|
|
columnDefault: null,
|
|
extra: 'auto_increment'
|
|
},
|
|
{
|
|
columnName: 'username',
|
|
columnComment: '用户名',
|
|
dataType: 'varchar',
|
|
isNullable: 'NO',
|
|
columnKey: '',
|
|
columnDefault: null,
|
|
extra: ''
|
|
},
|
|
{
|
|
columnName: 'real_name',
|
|
columnComment: '真实姓名',
|
|
dataType: 'varchar',
|
|
isNullable: 'YES',
|
|
columnKey: '',
|
|
columnDefault: null,
|
|
extra: ''
|
|
},
|
|
{
|
|
columnName: 'status',
|
|
columnComment: '状态',
|
|
dataType: 'tinyint',
|
|
isNullable: 'NO',
|
|
columnKey: '',
|
|
columnDefault: '1',
|
|
extra: ''
|
|
},
|
|
{
|
|
columnName: 'create_time',
|
|
columnComment: '创建时间',
|
|
dataType: 'int',
|
|
isNullable: 'NO',
|
|
columnKey: '',
|
|
columnDefault: null,
|
|
extra: ''
|
|
}
|
|
];
|
|
}
|
|
|
|
if (sql.includes('TABLE_COMMENT')) {
|
|
return [{ tableComment: '系统用户表' }];
|
|
}
|
|
|
|
return [];
|
|
}
|
|
};
|
|
|
|
// 创建生成器服务
|
|
const generatorService = new GeneratorService();
|
|
generatorService.dataSource = mockDataSource;
|
|
generatorService.configService = {
|
|
get: (key, defaultValue) => defaultValue || 'NiuCloud Team'
|
|
};
|
|
|
|
// 测试获取表列表
|
|
console.log('📋 测试获取表列表...');
|
|
const tables = await generatorService.getTables();
|
|
console.log('✅ 表列表:', tables);
|
|
|
|
// 测试获取表信息
|
|
console.log('\n👤 测试获取 sys_user 表信息...');
|
|
const tableInfo = await generatorService.getTableInfo('sys_user');
|
|
console.log('✅ 表信息:', {
|
|
tableName: tableInfo.tableName,
|
|
className: tableInfo.className,
|
|
moduleName: tableInfo.moduleName,
|
|
fieldsCount: tableInfo.fields.length
|
|
});
|
|
|
|
// 测试代码生成
|
|
console.log('\n🔧 测试代码生成...');
|
|
const files = await generatorService.generate({
|
|
tableName: 'sys_user',
|
|
generateType: 1,
|
|
generateController: true,
|
|
generateService: true,
|
|
generateEntity: true,
|
|
generateDto: true,
|
|
generateMapper: true,
|
|
generateEvents: true,
|
|
generateListeners: true
|
|
});
|
|
|
|
console.log('✅ 代码生成成功');
|
|
console.log('📁 生成文件数量:', files.length);
|
|
console.log('📄 生成的文件:');
|
|
files.forEach((file, index) => {
|
|
console.log(` ${index + 1}. ${file.filePath} (${file.type})`);
|
|
console.log(` 内容长度: ${file.content.length} 字符`);
|
|
});
|
|
|
|
// 显示部分生成内容
|
|
console.log('\n📝 生成内容示例 (Controller):');
|
|
const controllerFile = files.find(f => f.type === 'controller');
|
|
if (controllerFile) {
|
|
console.log(controllerFile.content.substring(0, 500) + '...');
|
|
}
|
|
|
|
console.log('\n🎉 直接测试完成!迁移工具工作正常!');
|
|
|
|
} catch (error) {
|
|
console.error('❌ 测试失败:', error.message);
|
|
console.error('错误详情:', error);
|
|
}
|
|
}
|
|
|
|
// 运行测试
|
|
testMigrationDirect();
|