Browse Source

修改字段名:jiandaoyun_record_id 改为 dataid

Integration
Trae AI 2 months ago
parent
commit
c17d882e61
  1. 6
      check-specific-user.js
  2. 8
      src/services/databaseService.js
  3. 12
      src/services/jiandaoyunService.js

6
check-specific-user.js

@ -26,7 +26,7 @@ async function checkSpecificUser() {
console.log(`\n2. 查询用户 ${targetUserId} 的详细信息...`);
const checkSql = `
SELECT userId, phoneNumber, nickName, type, authorized_region, sync_status,
last_sync_time, jiandaoyun_record_id, jiandao_record_id
last_sync_time, dataid, jiandao_record_id
FROM ${config.tables.users.name}
WHERE userId = ?
`;
@ -43,10 +43,10 @@ async function checkSpecificUser() {
// 3. 检查是否有该用户的同步记录
console.log(`\n3. 检查用户 ${targetUserId} 是否在同步队列中...`);
const syncSql = `
SELECT userId, phoneNumber, sync_status, jiandaoyun_record_id
SELECT userId, phoneNumber, sync_status, dataid
FROM ${config.tables.users.name}
WHERE (sync_status = 0 OR sync_status IS NULL)
AND (jiandaoyun_record_id IS NULL OR jiandaoyun_record_id = '')
AND (dataid IS NULL OR dataid = '')
LIMIT 10
`;
const [syncRows] = await connection.execute(syncSql);

8
src/services/databaseService.js

@ -43,7 +43,7 @@ class DatabaseService {
${config.tables.users.fields.type},
${config.tables.users.fields.authorizedRegion},
${config.tables.users.fields.nickName},
jiandaoyun_record_id
dataid
FROM ${config.tables.users.name}`;
// 如果是增量同步,查询未同步的数据以及有收藏产品的用户
@ -69,7 +69,7 @@ class DatabaseService {
for (const user of users) {
const userId = user[config.tables.users.fields.userId];
const phoneNumber = user[config.tables.users.fields.phoneNumber];
const jiandaoyunRecordId = user.jiandaoyun_record_id;
const jiandaoyunRecordId = user.dataid;
// 手动映射字段名,确保数据库的authorized_region正确映射到user.authorizedRegion
// 这是因为数据库查询结果中的字段名保持原始的蛇形命名,而转换方法使用驼峰命名
@ -122,12 +122,12 @@ class DatabaseService {
console.log(`用户 ${userId} 有收藏商品,同步状态已重置为未同步`);
}
// 确保user对象始终包含jiandaoyun_record_id字段
// 确保user对象始终包含dataid字段
// 即使该字段的值为null
const userWithRecordId = {
...user,
// 直接使用之前获取的jiandaoyunRecordId变量,确保字段存在
jiandaoyun_record_id: jiandaoyunRecordId
dataid: jiandaoyunRecordId
};
syncData.push({

12
src/services/jiandaoyunService.js

@ -170,8 +170,8 @@ class JiandaoyunService {
try {
// 检查数据库中是否已有简道云记录ID
let recordId = null;
if (item.user && 'jiandaoyun_record_id' in item.user) {
recordId = item.user.jiandaoyun_record_id;
if (item.user && 'dataid' in item.user) {
recordId = item.user.dataid;
console.log(`从数据库获取到简道云记录ID: ${recordId}`);
}
@ -229,9 +229,9 @@ class JiandaoyunService {
if (dbConnection && item.user && item.user.userId) {
try {
console.log(`准备更新用户 ${item.user.userId}jiandaoyun_record_id为 ${newRecordId} 并设置同步状态`);
console.log(`准备更新用户 ${item.user.userId}dataid为 ${newRecordId} 并设置同步状态`);
const [updateResult] = await dbConnection.execute(
`UPDATE ${config.tables.users.name} SET jiandaoyun_record_id = ?, ${config.sync.statusField} = ${config.sync.syncedValue}, ${config.sync.timeField} = NOW() WHERE userId = ?`,
`UPDATE ${config.tables.users.name} SET dataid = ?, ${config.sync.statusField} = ${config.sync.syncedValue}, ${config.sync.timeField} = NOW() WHERE userId = ?`,
[newRecordId, item.user.userId]
);
@ -239,10 +239,10 @@ class JiandaoyunService {
if (updateResult.affectedRows > 0) {
console.log(`✅ 成功将简道云记录ID ${newRecordId} 保存到数据库并更新同步状态`);
} else {
console.log(`⚠️ 更新用户 ${item.user.userId}jiandaoyun_record_id和同步状态失败: 未找到匹配的用户`);
console.log(`⚠️ 更新用户 ${item.user.userId}dataid和同步状态失败: 未找到匹配的用户`);
}
} catch (updateError) {
console.error(`❌ 更新数据库jiandaoyun_record_id和同步状态时发生错误:`, updateError.message);
console.error(`❌ 更新数据库dataid和同步状态时发生错误:`, updateError.message);
console.error(`错误堆栈:`, updateError.stack);
}
} else {

Loading…
Cancel
Save