v1.0.35: 重复校验支持多字段同时提示 - 校验引擎改收集模式返回全部重复,Response::duplicates单弹窗列出,前端遍历展示所有重复项
This commit is contained in:
+5
-4
@@ -32,17 +32,18 @@ if ((int)$chk->fetchColumn() > 0) {
|
||||
Response::error('union_id 已存在,请更换');
|
||||
}
|
||||
|
||||
// 唯一性校验:身份证号码 / 联系方式(手机/邮箱/社媒账号/主页链接)
|
||||
// 唯一性校验:身份证号码 / 联系方式(手机/邮箱/社媒账号/主页链接),收集全部重复
|
||||
$dups = [];
|
||||
if (!empty($data['id_number'])) {
|
||||
$dup = findDuplicate($pdo, 'id_number', $data['id_number']);
|
||||
if ($dup) Response::duplicate($dup);
|
||||
if ($dup) $dups[] = $dup;
|
||||
}
|
||||
$contacts = json_decode($_POST['contacts'] ?? '[]', true);
|
||||
if (!is_array($contacts)) {
|
||||
$contacts = [];
|
||||
}
|
||||
$dup = checkAccountsDuplicates($pdo, $contacts);
|
||||
if ($dup) Response::duplicate($dup);
|
||||
$dups = array_merge($dups, checkAccountsDuplicates($pdo, $contacts));
|
||||
if (!empty($dups)) Response::duplicates($dups);
|
||||
|
||||
[$sql, $params] = buildInsert($data);
|
||||
$pdo->prepare("INSERT INTO persons $sql")->execute($params);
|
||||
|
||||
@@ -30,10 +30,11 @@ if (!$old) {
|
||||
Response::error('人员不存在');
|
||||
}
|
||||
|
||||
// 唯一性校验(排除自身):身份证号码 / 联系方式
|
||||
// 唯一性校验(排除自身):身份证号码 / 联系方式,收集全部重复
|
||||
$dups = [];
|
||||
if (!empty($data['id_number'])) {
|
||||
$dup = findDuplicate($pdo, 'id_number', $data['id_number'], [$id]);
|
||||
if ($dup) Response::duplicate($dup);
|
||||
if ($dup) $dups[] = $dup;
|
||||
}
|
||||
$contacts = null;
|
||||
if (isset($_POST['contacts'])) {
|
||||
@@ -43,9 +44,9 @@ if (isset($_POST['contacts'])) {
|
||||
}
|
||||
// 整体替换:排除人员自身既有联系方式ID
|
||||
$ownIds = $pdo->query("SELECT id FROM social_accounts WHERE owner_type = 'person' AND owner_id = $id")->fetchAll(PDO::FETCH_COLUMN);
|
||||
$dup = checkAccountsDuplicates($pdo, $contacts, $ownIds);
|
||||
if ($dup) Response::duplicate($dup);
|
||||
$dups = array_merge($dups, checkAccountsDuplicates($pdo, $contacts, $ownIds));
|
||||
}
|
||||
if (!empty($dups)) Response::duplicates($dups);
|
||||
|
||||
$contactsChanged = false;
|
||||
if ($contacts !== null) {
|
||||
|
||||
Reference in New Issue
Block a user