feat: 完成sys模块迁移,对齐PHP/Java框架
- 重构sys模块架构,严格按admin/api/core分层 - 对齐所有sys实体与数据库表结构 - 实现完整的adminapi控制器,匹配PHP/Java契约 - 修复依赖注入问题,确保服务正确注册 - 添加自动迁移工具和契约验证 - 完善多租户支持和审计功能 - 统一命名规范,与PHP业务逻辑保持一致
This commit is contained in:
143
wwjcloud/test-migration-direct.js
Normal file
143
wwjcloud/test-migration-direct.js
Normal file
@@ -0,0 +1,143 @@
|
||||
// 直接测试迁移工具功能
|
||||
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();
|
||||
Reference in New Issue
Block a user