From fc093e0908c4e214f79562521e242de979662945 Mon Sep 17 00:00:00 2001 From: KWON Date: Fri, 20 Feb 2026 14:52:06 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20VIP=20=EB=A7=8C=EB=A3=8C=EC=9D=BC=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?-=20=ED=85=8C=EC=9D=B4=EB=B8=94=EC=97=90=20=EB=A7=8C=EB=A3=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=BB=AC=EB=9F=BC=20=EC=B6=94=EA=B0=80,=20?= =?UTF-8?q?=EC=9E=85=EC=9E=A5=20=EC=8B=9C=20=EC=9E=90=EB=8F=99=20=EB=A7=8C?= =?UTF-8?q?=EB=A3=8C=EC=9D=BC=20=EC=84=A4=EC=A0=95,=20=EC=9D=BC=EA=B4=84?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/vip/vip_list.php | 3 + manager/vip/vip_list_ent.enter.php | 16 +++- manager/vip/vip_list_expire_date.php | 117 +++++++++++++++++++++++++++ 3 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 manager/vip/vip_list_expire_date.php diff --git a/manager/vip/vip_list.php b/manager/vip/vip_list.php index 9573c2afa..9bf978240 100644 --- a/manager/vip/vip_list.php +++ b/manager/vip/vip_list.php @@ -157,6 +157,7 @@ $table = "{$fg['vip_list_table']} AS a LEFT JOIN {$fg['vip_category_table']} AS + @@ -167,6 +168,7 @@ $table = "{$fg['vip_list_table']} AS a LEFT JOIN {$fg['vip_category_table']} AS 성명 연락처 생년월일 + 만료일 최종이용일 방문횟수 "1"){ ?> @@ -182,6 +184,7 @@ $table = "{$fg['vip_list_table']} AS a LEFT JOIN {$fg['vip_category_table']} AS + $result); @@ -30,7 +40,7 @@ if(isset($_POST['mode']) && trim($_POST['mode']) === "enter") { // log 기록 $work = "VIP입장"; - $work_detail = "카드번호 : ".$list['vip_card_no']." 처리자 : ".$_SESSION['user_name']; + $work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 설정 : ".$vip_date." 처리자 : ".$_SESSION['user_name']; $logUpdate = log_update($work, $work_detail, $_SESSION['user_id'], $datetime); if ($isDebug && !$logUpdate) echo '로그 등록 실패\n'; diff --git a/manager/vip/vip_list_expire_date.php b/manager/vip/vip_list_expire_date.php new file mode 100644 index 000000000..d55fc44f8 --- /dev/null +++ b/manager/vip/vip_list_expire_date.php @@ -0,0 +1,117 @@ + $result, + "vip_date" => $vip_date, + "logic" => $logic_desc, + "ent_count" => $ent_count + ); + + // log 기록 + $work = "VIP만료일설정"; + $work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 : ".$vip_date." (".$logic_desc.") 처리자 : ".$_SESSION['user_name']; + + $logUpdate = log_update($work, $work_detail, $_SESSION['user_id'], $datetime); + if ($isDebug && !$logUpdate) echo '로그 등록 실패\n'; + } else { + $data = array("isSuccess" => false, "error" => "존재하지 않는 VIP입니다."); + } + } else if ($mode === "bulk_set_expire_date") { + /** + * 일괄 만료일 설정 + */ + $status = isset($_POST['status']) ? trim($_POST['status']) : "정상"; + $gr_id = isset($_POST['gr_id']) ? trim($_POST['gr_id']) : ""; + + // 검색 조건 만들기 + $where = " WHERE status='{$status}'"; + if (!empty($gr_id)) { + $where .= " AND gr_id='{$gr_id}'"; + } + + $squery = "SELECT * FROM {$fg['vip_list_table']}{$where}"; + $result_list = sql_query($squery); + + $updated_count = 0; + $error_count = 0; + $datetime = date("Y-m-d H:i:s"); + + while($list = sql_fetch_array($result_list)) { + $ent_count = $list['ent_count']; + + // 만료일 설정 로직 + if ($ent_count == 0) { + // 방문횟수가 0: 등록일 + 1년 + $vip_date = date("Y-m-d", strtotime($list['join_datetime'] . " +1 year")); + } else { + // 방문횟수가 1 이상: 최종이용일 + 1년 + $vip_date = date("Y-m-d", strtotime($list['last_ent_date'] . " +1 year")); + } + + // DB 업데이트 + $updateQuery = "UPDATE {$fg['vip_list_table']} SET vip_date='{$vip_date}' WHERE idx='{$list['idx']}'"; + $update_result = sql_query($updateQuery); + + if ($update_result) { + $updated_count++; + } else { + $error_count++; + } + + // log 기록 + $work = "VIP만료일일괄설정"; + $work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 : ".$vip_date." 처리자 : ".$_SESSION['user_name']; + + $logUpdate = log_update($work, $work_detail, $_SESSION['user_id'], $datetime); + } + + $data = array( + "isSuccess" => true, + "updated_count" => $updated_count, + "error_count" => $error_count + ); + } +} else { + $data = array("isSuccess" => false, "error" => "요청이 없습니다."); +} + +header("Content-Type: application/json"); +echo json_encode($data);