« Back to History
enroll_embedding.php
|
20260722_120325.php
Initial Domain Snapshot
Copy Code
<?php // enroll_embedding.php header('Content-Type: application/json; charset=utf-8'); try { require_once __DIR__ . '/../../modules/auth/auth.php'; require_login(); $u = auth_user(); $company_id = (int)($u['company_id'] ?? 0); $user_id = (int)($u['id'] ?? 0); require_once __DIR__ . '/../../core/db.php'; $pdo = $GLOBALS['pdo'] ?? null; if(!$pdo) throw new Exception('DB not available'); $raw = json_decode(file_get_contents('php://input'), true); if(!$raw) throw new Exception('Bad input'); $employee_id = (int)($raw['employee_id'] ?? 0); $embeddings = $raw['embeddings'] ?? null; // array of arrays if($employee_id<=0 || !is_array($embeddings) || empty($embeddings)) { http_response_code(400); echo json_encode(['error'=>'employee_id and embeddings required']); exit; } // Save each embedding as a JSON string (one row per embedding) OR combine to one row // We'll save one row per employee with JSON array of embeddings (append) $stmt = $pdo->prepare("SELECT id, embedding FROM fc_face_templates WHERE company_id=:cid AND employee_id=:eid LIMIT 1"); $stmt->execute([':cid'=>$company_id, ':eid'=>$employee_id]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if($row){ // append new embeddings to existing embedding array $existing = json_decode($row['embedding'] ?: '[]', true) ?: []; foreach($embeddings as $e) $existing[] = $e; $upd = $pdo->prepare("UPDATE fc_face_templates SET embedding=:emb, updated_at=NOW() WHERE id=:id"); $upd->execute([':emb'=>json_encode($existing), ':id'=>$row['id']]); } else { $ins = $pdo->prepare("INSERT INTO fc_face_templates (company_id, employee_id, embedding, created_at) VALUES (:cid, :eid, :emb, NOW())"); $ins->execute([':cid'=>$company_id, ':eid'=>$employee_id, ':emb'=>json_encode($embeddings)]); } echo json_encode(['ok'=>1]); } catch(Throwable $e) { error_log('enroll_embedding error: '.$e->getMessage()); http_response_code(500); echo json_encode(['error'=>'internal','msg'=>$e->getMessage()]); }