/** * 贷款申请API测试 * @file test-loan-applications-api.js */ const axios = require('axios'); async function testLoanApplicationsAPI() { try { console.log('🔍 测试贷款申请API...'); // 1. 登录获取token console.log('\n1. 登录测试...'); const loginResponse = await axios.post('http://localhost:5351/api/auth/login', { username: 'admin', password: 'Admin123456' }); if (!loginResponse.data.success) { throw new Error('登录失败: ' + loginResponse.data.message); } const token = loginResponse.data.data.token; console.log('✅ 登录成功'); // 设置授权头 const authHeaders = { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }; // 2. 获取贷款申请列表 console.log('\n2. 获取申请列表...'); const listResponse = await axios.get('http://localhost:5351/api/loan-applications', { headers: authHeaders }); if (!listResponse.data.success) { throw new Error('获取列表失败: ' + listResponse.data.message); } console.log('✅ 获取申请列表成功'); console.log(`📊 申请数量: ${listResponse.data.data.applications.length}`); console.log(`📊 总数: ${listResponse.data.data.pagination.total}`); if (listResponse.data.data.applications.length > 0) { const firstApp = listResponse.data.data.applications[0]; console.log(`📋 第一个申请: ${firstApp.applicationNumber} - ${firstApp.productName} - ${firstApp.status}`); // 3. 获取申请详情 console.log('\n3. 获取申请详情...'); const detailResponse = await axios.get(`http://localhost:5351/api/loan-applications/${firstApp.id}`, { headers: authHeaders }); if (!detailResponse.data.success) { throw new Error('获取详情失败: ' + detailResponse.data.message); } console.log('✅ 获取申请详情成功'); console.log(`📋 申请详情: ${detailResponse.data.data.applicationNumber}`); console.log(`📋 审核记录数: ${detailResponse.data.data.auditRecords.length}`); // 4. 测试审核功能(仅对待审核的申请) if (firstApp.status === 'pending_review') { console.log('\n4. 测试审核功能...'); const auditResponse = await axios.post(`http://localhost:5351/api/loan-applications/${firstApp.id}/audit`, { action: 'approve', comment: 'API测试审核通过' }, { headers: authHeaders }); if (!auditResponse.data.success) { throw new Error('审核失败: ' + auditResponse.data.message); } console.log('✅ 审核功能测试成功'); console.log(`📋 审核结果: ${auditResponse.data.message}`); } } // 5. 获取统计信息 console.log('\n5. 获取统计信息...'); const statsResponse = await axios.get('http://localhost:5351/api/loan-applications/stats', { headers: authHeaders }); if (!statsResponse.data.success) { throw new Error('获取统计失败: ' + statsResponse.data.message); } console.log('✅ 获取统计信息成功'); console.log(`📊 总申请数: ${statsResponse.data.data.total.applications}`); console.log(`📊 总金额: ${statsResponse.data.data.total.amount.toFixed(2)}元`); console.log('📊 按状态统计:'); Object.entries(statsResponse.data.data.byStatus.counts).forEach(([status, count]) => { if (count > 0) { console.log(` - ${status}: ${count}个申请`); } }); console.log('\n🎉 所有API测试完成!'); } catch (error) { console.error('\n❌ API测试失败:', error.message); if (error.response) { console.error('响应状态:', error.response.status); console.error('响应数据:', error.response.data); } else if (error.code) { console.error('错误代码:', error.code); } console.error('完整错误:', error); } } // 运行测试 testLoanApplicationsAPI();