getPdo(); // union_id 唯一性 $chk = $pdo->prepare("SELECT COUNT(*) FROM persons WHERE union_id = ?"); $chk->execute([$data['union_id']]); if ((int)$chk->fetchColumn() > 0) { Response::error('union_id 已存在,请更换'); } [$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)) { $ins = $pdo->prepare( "INSERT INTO social_accounts (owner_type, owner_id, platform, account_id, profile_url, remark, is_primary, is_defult) VALUES ('person', ?, ?, ?, ?, ?, ?, ?)" ); foreach ($contacts as $c) { $platform = trim($c['platform'] ?? ''); $accountId = trim($c['account_id'] ?? ''); if ($platform === '' || $accountId === '') continue; $ins->execute([$newId, $platform, $accountId, $c['profile_url'] ?? null, $c['remark'] ?? null, !empty($c['is_primary']) ? 1 : 0, !empty($c['is_defult']) ? 1 : 0]); } } logCurrent('add', 'person', 'persons', $newId, ['data' => $data, 'contacts' => $contacts]); Response::success(['id' => $newId], '新增成功');