This commit is contained in:
张成
2025-12-24 23:02:23 +08:00
parent db574986dd
commit 6b7ce7c9aa

View File

@@ -402,21 +402,52 @@ module.exports = {
// 更新 pla_account 表的 deliver_config 和 auto_deliver 字段 // 更新 pla_account 表的 deliver_config 和 auto_deliver 字段
// 查出来合并原来的字段,如何没传就不覆盖 // 获取原有配置
const original_deliver_config = user.deliver_config || {}; const original_deliver_config = user.deliver_config || {};
const new_deliver_config = { ...original_deliver_config, ...deliver_config };
// 深度合并配置(只覆盖传入的字段,保留原有的其他字段)
const deepMerge = (target, source) => {
const result = { ...target };
Object.keys(source).forEach(key => {
const sourceValue = source[key];
const targetValue = target[key];
// 如果源值是对象且目标值也是对象,递归合并(排除数组)
if (sourceValue && typeof sourceValue === 'object' && !Array.isArray(sourceValue) &&
targetValue && typeof targetValue === 'object' && !Array.isArray(targetValue)) {
result[key] = deepMerge(targetValue, sourceValue);
} else {
// 否则直接覆盖
result[key] = sourceValue;
}
});
return result;
};
const new_deliver_config = deepMerge(original_deliver_config, deliver_config);
// 处理 auto_deliver 字段(支持 auto_deliver 和 auto_delivery 两种字段名)
let auto_deliver_value = 0;
if (deliver_config.auto_deliver !== undefined) {
auto_deliver_value = deliver_config.auto_deliver ? 1 : 0;
} else if (deliver_config.auto_delivery !== undefined) {
auto_deliver_value = deliver_config.auto_delivery ? 1 : 0;
} else {
// 如果没有传入 auto_deliver保持原有值
auto_deliver_value = user.auto_deliver || 0;
}
await pla_account.update( await pla_account.update(
{ {
deliver_config: new_deliver_config, deliver_config: new_deliver_config,
auto_deliver: deliver_config.auto_delivery ? 1 : 0 auto_deliver: auto_deliver_value
}, },
{ where: { id: user.id } } { where: { id: user.id } }
); );
console.log('[保存投递配置成功]', { console.log('[保存投递配置成功]', {
sn_code, sn_code,
auto_delivery: deliver_config.auto_delivery, auto_deliver: auto_deliver_value,
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });