// 测试分包商收款信息API const BASE_URL = 'http://localhost:3003/api'; async function testSubcontractorPaymentAPIs() { console.log('=== 测试分包商收款信息API ===\n'); try { // 1. 首先获取一个现有的分包商 console.log('1. 获取分包商列表...'); const listRes = await fetch(`${BASE_URL}/subcontractors`); const listData = await listRes.json(); if (!listData.success || listData.data.length === 0) { console.log('没有找到分包商,需要先创建测试数据'); return; } const subcontractor = listData.data[0]; console.log(`找到分包商: ${subcontractor.name} (ID: ${subcontractor.id})`); const subcontractorId = subcontractor.id; // 2. 测试获取分包商收款信息 console.log('\n2. 测试获取分包商收款信息...'); const getRes = await fetch(`${BASE_URL}/subcontractors/${subcontractorId}/payment-infos`); const getData = await getRes.json(); console.log(`状态: ${getRes.status}`); console.log(`成功: ${getData.success}`); console.log(`收款信息数量: ${getData.count || 0}`); if (getData.data && getData.data.length > 0) { console.log('收款信息:'); getData.data.forEach((payment, i) => { console.log(` ${i+1}. ${payment.account_name} - ${payment.bank_name} (${payment.bank_account})`); }); } // 3. 测试添加收款信息 console.log('\n3. 测试添加收款信息...'); const newPayment = { account_name: '测试账户', bank_account: '1234567890123456', bank_name: '测试银行', qr_code: 'https://example.com/qr.png', is_primary: true }; const addRes = await fetch(`${BASE_URL}/subcontractors/${subcontractorId}/payment-infos`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(newPayment) }); const addData = await addRes.json(); console.log(`状态: ${addRes.status}`); console.log(`成功: ${addData.success}`); console.log(`消息: ${addData.message}`); if (addData.data) { console.log(`添加的收款信息ID: ${addData.data.id}`); const paymentId = addData.data.id; // 4. 测试更新收款信息 console.log('\n4. 测试更新收款信息...'); const updatedPayment = { account_name: '更新后的测试账户', bank_account: '6543210987654321', bank_name: '更新银行', qr_code: 'https://example.com/updated-qr.png', is_primary: false }; const updateRes = await fetch(`${BASE_URL}/subcontractors/payment-infos/${paymentId}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(updatedPayment) }); const updateData = await updateRes.json(); console.log(`状态: ${updateRes.status}`); console.log(`成功: ${updateData.success}`); console.log(`消息: ${updateData.message}`); // 5. 测试删除收款信息 console.log('\n5. 测试删除收款信息...'); const deleteRes = await fetch(`${BASE_URL}/subcontractors/payment-infos/${paymentId}`, { method: 'DELETE' }); const deleteData = await deleteRes.json(); console.log(`状态: ${deleteRes.status}`); console.log(`成功: ${deleteData.success}`); console.log(`消息: ${deleteData.message}`); } console.log('\n=== 测试完成 ==='); } catch (error) { console.error('测试失败:', error.message); } } // 运行测试 testSubcontractorPaymentAPIs();