최초 커밋
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
|
||||
// header("Content-Type: application/json; charset=utf-8");
|
||||
// require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
||||
|
||||
// try {
|
||||
// $pdo = new PDO(
|
||||
// "mysql:host=localhost;dbname=egbim;charset=utf8mb4",
|
||||
// "egbim", "baron3840!!",
|
||||
// [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
|
||||
// );
|
||||
|
||||
// $productCode = $_POST['product_code'] ?? '';
|
||||
// $version = $_POST['version'] ?? '';
|
||||
// $userName = $_SESSION['user']['name'] ?? '알수없음';
|
||||
|
||||
// if(!$productCode){
|
||||
// echo json_encode(['status'=>'fail','message'=>'제품 코드 누락']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// // ✅ 버전이 비어있으면 기본값 "0.0.0"
|
||||
// $version = trim($version) !== '' ? $version : '0.0.0';
|
||||
|
||||
// // ✅ family_version = external_version 동일하게 저장
|
||||
// $st = $pdo->prepare("
|
||||
// INSERT INTO deploy_versions (product_code, family_version, external_version, external_updated_by, updated_at)
|
||||
// VALUES (:pc, :ver, :ver, :user, NOW())
|
||||
// ON DUPLICATE KEY UPDATE
|
||||
// family_version = VALUES(family_version),
|
||||
// external_version = VALUES(external_version),
|
||||
// external_updated_by = VALUES(external_updated_by),
|
||||
// updated_at = NOW()
|
||||
// ");
|
||||
// $st->execute([
|
||||
// ':pc' => $productCode,
|
||||
// ':ver' => $version,
|
||||
// ':user' => $userName
|
||||
// ]);
|
||||
|
||||
// echo json_encode([
|
||||
// 'status' => 'ok',
|
||||
// 'family_version' => $version,
|
||||
// 'external_version' => $version,
|
||||
// 'updated_by' => $userName
|
||||
// ]);
|
||||
|
||||
// } catch(Exception $e){
|
||||
// echo json_encode(['status'=>'fail','message'=>$e->getMessage()]);
|
||||
// }
|
||||
?>
|
||||
|
||||
<?php
|
||||
// header("Content-Type: application/json; charset=utf-8");
|
||||
// require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
||||
|
||||
// try {
|
||||
// $pdo = new PDO(
|
||||
// "mysql:host=localhost;dbname=egbim;charset=utf8mb4",
|
||||
// "egbim", "baron3840!!",
|
||||
// [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
|
||||
// );
|
||||
|
||||
// $productCode = $_POST['product_code'] ?? '';
|
||||
// $version = trim($_POST['version'] ?? ''); // 프론트에서 "" 혹은 "1.2.3" 전달
|
||||
// $userName = $_SESSION['user']['name'] ?? '알수없음';
|
||||
|
||||
// if(!$productCode){
|
||||
// echo json_encode(['status'=>'fail','message'=>'제품 코드 누락']);
|
||||
// exit;
|
||||
// }
|
||||
|
||||
// // 1. 현재 테이블의 최신 정보를 먼저 가져옵니다 (내부 버전 유지 목적)
|
||||
// $st = $pdo->prepare("SELECT family_version FROM deploy_versions WHERE product_code=? ORDER BY updated_at DESC LIMIT 1");
|
||||
// $st->execute([$productCode]);
|
||||
// $currentFamily = $st->fetchColumn() ?: '0.0.0';
|
||||
|
||||
// // 2. "사용안함" 처리 로직
|
||||
// // upload_version_get.php 로직에 맞춰 "사용안함"일 때는 외부 버전을 내부 버전과 동일하게 세팅
|
||||
// if ($version === '' || $version === '0.0.0') {
|
||||
// $targetExternal = $currentFamily;
|
||||
// } else {
|
||||
// $targetExternal = $version;
|
||||
// }
|
||||
|
||||
// // 3. DB 업데이트
|
||||
// $st = $pdo->prepare("
|
||||
// INSERT INTO deploy_versions (product_code, family_version, external_version, external_updated_by, updated_at)
|
||||
// VALUES (:pc, :family, :external, :user, NOW())
|
||||
// ON DUPLICATE KEY UPDATE
|
||||
// family_version = VALUES(family_version),
|
||||
// external_version = VALUES(external_version),
|
||||
// external_updated_by = VALUES(external_updated_by),
|
||||
// updated_at = NOW()
|
||||
// ");
|
||||
|
||||
// $st->execute([
|
||||
// ':pc' => $productCode,
|
||||
// ':family' => $currentFamily, // 내부 버전은 그대로 유지
|
||||
// ':external' => $targetExternal, // 외부 버전만 변경
|
||||
// ':user' => $userName
|
||||
// ]);
|
||||
|
||||
// echo json_encode([
|
||||
// 'status' => 'ok',
|
||||
// 'family_version' => $currentFamily,
|
||||
// 'external_version' => ($version === '' ? '' : $version),
|
||||
// 'updated_by' => $userName
|
||||
// ]);
|
||||
|
||||
// } catch(Exception $e){
|
||||
// echo json_encode(['status'=>'fail','message'=>$e->getMessage()]);
|
||||
// }
|
||||
?>
|
||||
|
||||
<?php
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/egbim/skin/member/basic/descope_session.php';
|
||||
|
||||
try {
|
||||
$pdo = new PDO(
|
||||
"mysql:host=localhost;dbname=egbim;charset=utf8mb4",
|
||||
"egbim", "baron3840!!",
|
||||
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
|
||||
);
|
||||
|
||||
$productCode = $_POST['product_code'] ?? '';
|
||||
// ✅ 프론트에서 넘어온 값이 빈 문자열("")이면 "사용안함"을 의미함
|
||||
$version = isset($_POST['version']) ? trim($_POST['version']) : '';
|
||||
$userName = $_SESSION['user']['name'] ?? '알수없음';
|
||||
|
||||
if(!$productCode){
|
||||
echo json_encode(['status'=>'fail','message'=>'제품 코드 누락']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// 1️⃣ 현재 DB에 저장된 내부 최신 버전(family_version)을 가져옵니다.
|
||||
// 외부 버전만 바꿀 때 내부 버전 정보를 잃어버리지 않기 위함입니다.
|
||||
$st = $pdo->prepare("SELECT family_version FROM deploy_versions WHERE product_code=? ORDER BY updated_at DESC LIMIT 1");
|
||||
$st->execute([$productCode]);
|
||||
$currentFamily = $st->fetchColumn();
|
||||
|
||||
// 만약 데이터가 아예 없다면 기본값 설정
|
||||
if (!$currentFamily) $currentFamily = '0.0.0';
|
||||
|
||||
// 2️⃣ "사용안함" 처리 핵심 로직
|
||||
// GET API 로직(if $externalVer === $familyVer)에 맞춰서,
|
||||
// 사용자가 "사용안함"을 선택했다면 external_version을 family_version과 똑같이 맞춰 저장합니다.
|
||||
if ($version === '') {
|
||||
$targetExternal = $currentFamily; // 내부 버전과 동일하게 변경
|
||||
} else {
|
||||
$targetExternal = $version; // 선택한 특정 버전으로 변경
|
||||
}
|
||||
|
||||
// 3️⃣ DB 업데이트 (INSERT ... ON DUPLICATE KEY UPDATE)
|
||||
// product_code가 PK이거나 Unique 인덱스여야 기존 데이터가 수정됩니다.
|
||||
$st = $pdo->prepare("
|
||||
INSERT INTO deploy_versions
|
||||
(product_code, family_version, external_version, external_updated_by, updated_at)
|
||||
VALUES
|
||||
(:pc, :family, :external, :user, NOW())
|
||||
ON DUPLICATE KEY UPDATE
|
||||
family_version = VALUES(family_version),
|
||||
external_version = VALUES(external_version),
|
||||
external_updated_by = VALUES(external_updated_by),
|
||||
updated_at = NOW()
|
||||
");
|
||||
|
||||
$st->execute([
|
||||
':pc' => $productCode,
|
||||
':family' => $currentFamily,
|
||||
':external' => $targetExternal,
|
||||
':user' => $userName
|
||||
]);
|
||||
|
||||
echo json_encode([
|
||||
'status' => 'ok',
|
||||
'family_version' => $currentFamily,
|
||||
'external_version' => $targetExternal, // 외부 버전은 targetExternal로 설정
|
||||
'updated_by' => $userName
|
||||
]);
|
||||
|
||||
} catch(Exception $e){
|
||||
echo json_encode(['status'=>'fail', 'message'=> $e->getMessage()]);
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user