v1.0.33: 全局唯一性校验 - 手机号/邮箱/身份证/企业注册号/社媒账号ID/主页链接/企业名称 新增与修改时校验,重复弹窗提示并跳转定位(后端duplicate_check引擎+code 1001,前端弹窗+person/company/media页?id=跳转)
This commit is contained in:
+14
-2
@@ -10,6 +10,7 @@ require_once __DIR__ . '/../common/auth.php';
|
||||
require_once __DIR__ . '/../common/logger.php';
|
||||
require_once __DIR__ . '/../common/helpers.php';
|
||||
require_once __DIR__ . '/../common/completeness.php';
|
||||
require_once __DIR__ . '/../common/duplicate_check.php';
|
||||
|
||||
checkAjax();
|
||||
checkPermission('person');
|
||||
@@ -31,13 +32,24 @@ if ((int)$chk->fetchColumn() > 0) {
|
||||
Response::error('union_id 已存在,请更换');
|
||||
}
|
||||
|
||||
// 唯一性校验:身份证号码 / 联系方式(手机/邮箱/社媒账号/主页链接)
|
||||
if (!empty($data['id_number'])) {
|
||||
$dup = findDuplicate($pdo, 'id_number', $data['id_number']);
|
||||
if ($dup) Response::duplicate($dup);
|
||||
}
|
||||
$contacts = json_decode($_POST['contacts'] ?? '[]', true);
|
||||
if (!is_array($contacts)) {
|
||||
$contacts = [];
|
||||
}
|
||||
$dup = checkAccountsDuplicates($pdo, $contacts);
|
||||
if ($dup) Response::duplicate($dup);
|
||||
|
||||
[$sql, $params] = buildInsert($data);
|
||||
$pdo->prepare("INSERT INTO persons $sql")->execute($params);
|
||||
$newId = (int)$pdo->lastInsertId();
|
||||
|
||||
// 写入联系方式(v1.0.16:支持 is_defult 字段,1常用/0备用)
|
||||
$contacts = json_decode($_POST['contacts'] ?? '[]', true);
|
||||
if (is_array($contacts)) {
|
||||
if (is_array($contacts) && count($contacts) > 0) {
|
||||
$ins = $pdo->prepare(
|
||||
"INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary, is_defult)
|
||||
VALUES ('person', ?, ?, ?, ?, ?, ?, ?)"
|
||||
|
||||
Reference in New Issue
Block a user