운영자 화면 상품 동적 추가/삭제 기능 구현

This commit is contained in:
2026-01-04 20:59:41 +09:00
parent 1df962b957
commit 4ee2d50a52
2 changed files with 178 additions and 30 deletions

View File

@@ -663,5 +663,55 @@ $response = [
]
];
// DB에서 동적 모델 데이터 로드 시도 (package_pricing 테이블 사용)
require_once __DIR__ . '/../../lib/mydb.php';
try {
$pdo = db_connect();
// 테이블 존재 확인 및 데이터 조회
$check = $pdo->query("SHOW TABLES LIKE 'package_pricing'");
if ($check->rowCount() > 0) {
$stmt = $pdo->prepare("SELECT * FROM package_pricing WHERE item_type = 'model' AND is_active = 1 ORDER BY id ASC");
$stmt->execute();
$dbModels = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!empty($dbModels)) {
$dynamicModels = [];
foreach ($dbModels as $row) {
// commission_rates JSON 파싱
$rates = json_decode($row['commission_rates'] ?? '{}', true);
if (empty($rates)) {
$rates = [
"seller" => ["join" => 0.2, "sub" => 0.5],
"manager" => ["join" => 0.05, "sub" => 0.3],
"educator" => ["join" => 0.03, "sub" => 0.2]
];
}
$dynamicModels[] = [
"id" => $row['item_id'], // unique_id 역할
"db_id" => $row['id'],
"name" => $row['item_name'],
"sub_name" => $row['sub_name'],
"total_amount" => (int)$row['total_amount'],
"join_fee" => (int)$row['join_fee'],
"subscription_fee" => (int)$row['subscription_fee'],
"discretion_allowed" => (bool)$row['allow_flexible_pricing'],
"commission_rates" => $rates
];
}
// package_types의 'select_models' 항목 찾아서 업데이트
foreach ($response['sales_config']['package_types'] as &$pkg) {
if ($pkg['id'] === 'select_models') {
$pkg['models'] = $dynamicModels;
break;
}
}
}
}
} catch (Exception $e) {
// DB 연결 실패 시 기본 하드코딩 데이터 사용 (무시)
}
echo json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
?>