운영자 화면 상품 동적 추가/삭제 기능 구현
This commit is contained in:
@@ -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);
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user