v1.0.35: 重复校验支持多字段同时提示 - 校验引擎改收集模式返回全部重复,Response::duplicates单弹窗列出,前端遍历展示所有重复项

This commit is contained in:
nanguaboss
2026-08-09 22:38:35 +08:00
parent 5179a51967
commit 2587c55ab6
12 changed files with 72 additions and 57 deletions
+3 -3
View File
@@ -43,9 +43,9 @@ if ((int)$chk->fetchColumn() > 0) {
Response::error('该平台账号已存在', 400);
}
// 唯一性校验:社媒账号ID(同平台)/ 手机 / 邮箱 / 主页链接
$dup = checkSingleAccountDuplicate($pdo, $data['platform'] ?? '', $data['account_id'] ?? '', $data['profile_url'] ?? '');
if ($dup) Response::duplicate($dup);
// 唯一性校验:社媒账号ID(同平台)/ 手机 / 邮箱 / 主页链接,收集全部重复
$dups = checkSingleAccountDuplicate($pdo, $data['platform'] ?? '', $data['account_id'] ?? '', $data['profile_url'] ?? '');
if (!empty($dups)) Response::duplicates($dups);
[$sql, $params] = buildInsert($data);
$pdo->prepare("INSERT INTO social_accounts $sql")->execute($params);
+3 -3
View File
@@ -30,16 +30,16 @@ if (!$old) {
$data = extractFields(MEDIA_FIELDS);
unset($data['owner_type'], $data['owner_id']); // 归属关系不允许改
// 唯一性校验(排除自身):社媒账号ID(同平台)/ 手机 / 邮箱 / 主页链接
// 唯一性校验(排除自身):社媒账号ID(同平台)/ 手机 / 邮箱 / 主页链接,收集全部重复
if (isset($_POST['platform']) || isset($_POST['account_id']) || isset($_POST['profile_url'])) {
$dup = checkSingleAccountDuplicate(
$dups = checkSingleAccountDuplicate(
$pdo,
$_POST['platform'] ?? ($old['platform'] ?? ''),
$_POST['account_id'] ?? ($old['account_id'] ?? ''),
$_POST['profile_url'] ?? ($old['profile_url'] ?? ''),
[$id]
);
if ($dup) Response::duplicate($dup);
if (!empty($dups)) Response::duplicates($dups);
}
if (!empty($data)) {