You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

72 lines
2.5 KiB

// 测试单个用户数据同步
const mysql = require('mysql2/promise');
const config = require('./src/config/config');
const jiandaoyunService = require('./src/services/jiandaoyunService');
async function testSingleUserSync() {
console.log('===== 测试单个用户数据同步 =====');
try {
// 连接数据库
const connection = await mysql.createConnection(config.db);
// 查询指定用户数据
const [users] = await connection.execute(
`SELECT DISTINCT ${config.tables.users.fields.userId},
${config.tables.users.fields.nickName},
${config.tables.users.fields.phoneNumber},
${config.tables.users.fields.company},
${config.tables.users.fields.level},
${config.tables.users.fields.demand},
${config.tables.users.fields.region},
${config.tables.users.fields.detailedaddress},
${config.tables.users.fields.type},
dataid
FROM ${config.tables.users.name}
WHERE ${config.tables.users.fields.userId} = ?`,
['user_1768360161521_zz8rtwtip']
);
if (users.length === 0) {
console.log('未找到指定用户数据');
return;
}
const user = users[0];
console.log('用户数据:', JSON.stringify(user, null, 2));
// 查询负责人信息
const [userManagements] = await connection.execute(
`SELECT ${config.tables.userManagements.fields.userName}
FROM ${config.tables.userManagements.name}
WHERE ${config.tables.userManagements.fields.userId} = ?`,
[user.userId]
);
const syncData = [{
user: user,
userManagement: userManagements[0] || {},
userId: user.userId
}];
// 转换数据格式
const transformedData = jiandaoyunService.transformDataToJiandaoyunFormat(syncData[0]);
console.log('转换后的数据:', JSON.stringify(transformedData, null, 2));
// 检查地址字段是否正确包含在子表中
const subTableData = transformedData[config.subTableFields.subTable].value;
console.log('子表数据:', JSON.stringify(subTableData, null, 2));
// 执行同步
const results = await jiandaoyunService.batchSubmitData(syncData, connection);
console.log('同步结果:', JSON.stringify(results, null, 2));
await connection.end();
console.log('测试完成');
} catch (error) {
console.error('测试过程中发生错误:', error.message);
console.error('错误堆栈:', error.stack);
}
}
testSingleUserSync();