fix: fb_leads 导入时对 full_name 增加 URL 过滤与长度截断

修复询盘自动导入因 full_name 含粘连 URL(如 "Saif Ullahhttps://...")
导致同步到 inquiry_log.contacts(varchar 255) 时超长报错、整批回滚卡死的问题。

- 新增 normalizeFullName():去掉粘连 URL + 截断到 255
- switch 新增 full_name 分支

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
mzl
2026-06-16 16:47:42 +08:00
parent 35d98c16e9
commit 71dca13119
@@ -114,6 +114,11 @@ class FbFileImportService
$item['phone'] = $this->normalizePhone($raw);
break;
// ✅ 姓名:去掉粘连的 URL,并截断到下游 inquiry_log.contacts 列长度(255)
case 'full_name':
$item['full_name'] = $this->normalizeFullName($raw);
break;
default:
if (is_string($raw)) $raw = trim($raw);
$item[$field] = $raw;
@@ -192,6 +197,27 @@ class FbFileImportService
return $s;
}
/**
* 姓名清洗:
* - 去掉粘连的 URL(如 "Saif Ullahhttps://..." → "Saif Ullah")
* - 纯链接记录清洗后为空字符串
* - 截断到 255(下游 inquiry_log.contacts 列长度,避免同步入库时超长报错)
*/
protected function normalizeFullName($raw): string
{
if ($raw === null) return '';
$s = trim((string)$raw);
if ($s === '') return '';
// 去掉 URL(连同前面可能的空白/不可见字符)
$s = preg_replace('#\s*https?://\S+#i', '', $s);
$s = trim($s);
// 截断到下游 contacts 列长度兜底
return mb_substr($s, 0, 255);
}
/**
* 规范化 is_organic 字段为 0/1