Files
nxxmdata/bank-backend/test-supervision-tasks-api.js

173 lines
6.5 KiB
JavaScript
Raw Normal View History

/**
* 监管任务API测试脚本
* @file test-supervision-tasks-api.js
* @description 测试监管任务相关的API接口
*/
const axios = require('axios');
const API_BASE_URL = 'http://localhost:5351';
async function testSupervisionTasksAPI() {
try {
console.log('🚀 开始测试监管任务API...\n');
// 1. 先登录获取token
console.log('1. 登录获取认证token...');
const loginResponse = await axios.post(`${API_BASE_URL}/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('✅ 登录成功获取到token\n');
const headers = {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
};
// 2. 测试获取监管任务列表
console.log('2. 测试获取监管任务列表...');
const listResponse = await axios.get(`${API_BASE_URL}/api/supervision-tasks`, { headers });
if (listResponse.data.success) {
console.log('✅ 获取监管任务列表成功');
console.log(`📊 共 ${listResponse.data.data.tasks.length} 个监管任务`);
console.log(`📈 分页信息: 第${listResponse.data.data.pagination.currentPage}页,共${listResponse.data.data.pagination.totalPages}\n`);
} else {
console.log('❌ 获取监管任务列表失败:', listResponse.data.message);
}
// 3. 测试获取监管任务统计
console.log('3. 测试获取监管任务统计...');
const statsResponse = await axios.get(`${API_BASE_URL}/api/supervision-tasks/stats`, { headers });
if (statsResponse.data.success) {
console.log('✅ 获取监管任务统计成功');
console.log('📊 统计信息:');
console.log(` 总计: ${statsResponse.data.data.total}`);
console.log(` 待监管: ${statsResponse.data.data.pending}`);
console.log(` 监管中: ${statsResponse.data.data.supervising}`);
console.log(` 已完成: ${statsResponse.data.data.completed}`);
console.log(` 已暂停: ${statsResponse.data.data.suspended}\n`);
} else {
console.log('❌ 获取监管任务统计失败:', statsResponse.data.message);
}
// 4. 测试创建监管任务
console.log('4. 测试创建监管任务...');
const newTask = {
applicationNumber: 'APP_TEST_' + Date.now(),
contractNumber: 'CONTRACT_TEST_' + Date.now(),
productName: '测试农业贷款产品',
customerName: '测试客户',
idType: 'id_card',
idNumber: '110101199001011234',
assetType: 'cattle',
assetQuantity: 10,
supervisionStatus: 'pending',
startTime: '2024-12-20',
endTime: '2024-12-31',
loanAmount: 100000.00,
interestRate: 0.0600,
loanTerm: 12,
supervisorName: '测试监管员',
supervisorPhone: '13800138000',
farmAddress: '测试养殖场地址',
remarks: '这是一个测试监管任务'
};
const createResponse = await axios.post(`${API_BASE_URL}/api/supervision-tasks`, newTask, { headers });
if (createResponse.data.success) {
console.log('✅ 创建监管任务成功');
console.log(`📋 任务ID: ${createResponse.data.data.id}`);
console.log(`📋 申请单号: ${createResponse.data.data.applicationNumber}\n`);
const taskId = createResponse.data.data.id;
// 5. 测试获取监管任务详情
console.log('5. 测试获取监管任务详情...');
const detailResponse = await axios.get(`${API_BASE_URL}/api/supervision-tasks/${taskId}`, { headers });
if (detailResponse.data.success) {
console.log('✅ 获取监管任务详情成功');
console.log(`📋 客户姓名: ${detailResponse.data.data.customerName}`);
console.log(`📋 监管状态: ${detailResponse.data.data.supervisionStatus}\n`);
} else {
console.log('❌ 获取监管任务详情失败:', detailResponse.data.message);
}
// 6. 测试更新监管任务
console.log('6. 测试更新监管任务...');
const updateData = {
supervisionStatus: 'supervising',
remarks: '更新后的备注信息'
};
const updateResponse = await axios.put(`${API_BASE_URL}/api/supervision-tasks/${taskId}`, updateData, { headers });
if (updateResponse.data.success) {
console.log('✅ 更新监管任务成功');
console.log(`📋 新状态: ${updateResponse.data.data.supervisionStatus}\n`);
} else {
console.log('❌ 更新监管任务失败:', updateResponse.data.message);
}
// 7. 测试批量更新状态
console.log('7. 测试批量更新状态...');
const batchUpdateData = {
ids: [taskId],
supervisionStatus: 'completed'
};
const batchUpdateResponse = await axios.put(`${API_BASE_URL}/api/supervision-tasks/batch/status`, batchUpdateData, { headers });
if (batchUpdateResponse.data.success) {
console.log('✅ 批量更新状态成功');
console.log(`📋 更新数量: ${batchUpdateResponse.data.data.updatedCount}\n`);
} else {
console.log('❌ 批量更新状态失败:', batchUpdateResponse.data.message);
}
// 8. 测试删除监管任务
console.log('8. 测试删除监管任务...');
const deleteResponse = await axios.delete(`${API_BASE_URL}/api/supervision-tasks/${taskId}`, { headers });
if (deleteResponse.data.success) {
console.log('✅ 删除监管任务成功\n');
} else {
console.log('❌ 删除监管任务失败:', deleteResponse.data.message);
}
} else {
console.log('❌ 创建监管任务失败:', createResponse.data.message);
}
// 9. 测试搜索功能
console.log('9. 测试搜索功能...');
const searchResponse = await axios.get(`${API_BASE_URL}/api/supervision-tasks?search=张三&supervisionStatus=supervising`, { headers });
if (searchResponse.data.success) {
console.log('✅ 搜索功能测试成功');
console.log(`📊 搜索结果: ${searchResponse.data.data.tasks.length} 条记录\n`);
} else {
console.log('❌ 搜索功能测试失败:', searchResponse.data.message);
}
console.log('🎉 所有API测试完成');
} catch (error) {
console.error('❌ 测试失败:', error.message);
if (error.response) {
console.error('响应数据:', error.response.data);
}
}
}
// 运行测试
testSupervisionTasksAPI();