Files
edu/ajax/get_users_info2.php

175 lines
5.6 KiB
PHP

<?php
// // 1. DB 연결 파일 불러오기 (bbs 폴더 안에 있으므로 경로 주의)
// require_once __DIR__ . '/../bbs/db_conn.php';
// // 2. 프로시저 파일 불러오기
// require_once __DIR__ . '/pros_users_inup.php';
// extract($_REQUEST);
// /* https://baroncs.co.kr/ajax/get_users_info.php
// * https://baroncs.co.kr/ajax/get_users_info.php?sys_comp_code=30
// *
// * $sys_comp_code 필수입력값. EduJsonAPI.php데이터 로직상에는 파라미터가 없을 시,
// * 가족사 전체 통합인사정보를 가져와서 일정부분 부하가 예상된다.
// * 때문에
// * 기본적으로 최소한의 조건 sys_comp_code를 전달받아서
// * 해당 회사 인원들에 대한 데이터만 업데이트하는 것으로 한다.
// * ※필요 시, 조건에 따라서 가족사전인원 업데이트도 가능하게 할 수 있음
// * (예시: 특정 시간대(24:00~05:00)에 접근시에는 전인원 업데이트)
// * $member_id
// */
// //배치작업 진행후 작업결과 로그 남길것
// $sys_comp_code = $sys_comp_code==""?"":$sys_comp_code;
// $member_id = $member_id==""?"":$member_id;
// /*
// if($sys_comp_code==""){
// //echo "Parameter Fail : sys_comp_code is null";
// //exit;
// }else{
// if( $sys_comp_code=="10" ||
// $sys_comp_code=="20" ||
// $sys_comp_code=="30" ||
// $sys_comp_code=="40" ||
// $sys_comp_code=="50"
// ){
// echo "Success :";
// echo "<br>";
// echo "sys_comp_code=".$sys_comp_code;
// echo "<br>";
// echo "member_id=".$member_id;
// //exit;
// }else{
// echo "Parameter Fail : This is not allowed sys_comp_code";
// exit;
// }
// }
// */
// $url = "http://erp.hanmaceng.co.kr/intranet/sys/model/EduJsonAPI.php";
// //$url = "http://erp.hanmaceng.co.kr/intranet/sys/model/EduJsonAPI.php?sys_comp_code=".$sys_comp_code;
// $ch = curl_init();
// curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// curl_setopt($ch, CURLOPT_HTTPHEADER, ["Accept: application/json"]);
// $response = curl_exec($ch);
// $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// if (curl_errno($ch)) {
// die("CURL 에러: " . curl_error($ch));
// }
// curl_close($ch);
// if ($httpCode !== 200) {
// die("API 호출 실패 (HTTP 상태 코드: $httpCode)");
// }
// $data = json_decode($response, true);
// //print_r($data);
// // echo "<br><br>";
// // echo "총인원=".count($data['data'])."명";
// // echo "<br><br>";
// // $TEMP_array_data = $data['data'];
// // echo "<br><br>";
// // print_r($TEMP_array_data[80]);
// // echo "<br><br>";
// // print_r($TEMP_array_data);
// // echo "<br><br>";
// if ($httpCode !== 200) {
// die("API 호출 실패 (HTTP 상태 코드: $httpCode)");
// }
// $data = json_decode($response, true);
// // 3. 실행 및 결과 출력
// if (function_exists('db_conn')) {
// $pdo = db_conn(); // bbs/db_conn.php에 정의된 함수 호출
// if (!empty($data['data'])) {
// // 송 선임님이 검토 요청하신 그 함수 호출!
// $result = processUserSync($pdo, $data['data']);
// echo "──────────────────────────<br>";
// echo "동기화 결과 요약 (".date('Y-m-d H:i:s').")<br>";
// echo "- 신규 등록: {$result['ins']}건<br>";
// echo "- 정보 수정: {$result['upd']}건<br>";
// if($result['err'] > 0) echo "- 오류 발생: {$result['err']}건<br>";
// echo "──────────────────────────";
// }
// } else {
// die("에러: db_conn() 함수를 찾을 수 없습니다. 경로를 확인해주세요.");
// }
?>
<?php
// get_users_info2.php
ini_set('display_errors', 1); // 에러 확인용
require_once __DIR__ . '/../bbs/db_conn.php';
require_once __DIR__ . '/pros_users_inup.php';
extract($_REQUEST);
// 1. 파라미터 체크 (테스트를 위해 30번 고정하거나 파라미터 우선)
$target_comp = isset($sys_comp_code) && $sys_comp_code != "" ? $sys_comp_code : "30";
// 2. API URL에 파라미터 붙이기
$url = "http://erp.hanmaceng.co.kr/intranet/sys/model/EduJsonAPI.php?sys_comp_code=" . $target_comp;
echo "Target Company: " . $target_comp . " (데이터 가져오는 중...)<br>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 시간을 넉넉히 60초로 늘림
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Accept: application/json"]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
die("CURL 에러: " . curl_error($ch));
}
curl_close($ch);
$data = json_decode($response, true);
if (empty($data['data'])) {
die("해당 회사({$target_comp})의 데이터가 없거나 API 응답이 비어있습니다.");
}
// 3. DB 연결 및 실행
if (function_exists('db_conn')) {
$pdo = db_conn();
echo "총 인원: " . count($data['data']) . "명 처리 시작...<br>";
// pros_users_inup.php의 함수 호출
$result = processUserSync($pdo, $data['data']);
echo "──────────────────────────<br>";
echo "동기화 결과 요약<br>";
echo "- 대상 회사 코드: {$target_comp}<br>";
echo "- 신규 등록: {$result['ins']}건<br>";
echo "- 정보 수정: {$result['upd']}건<br>";
if($result['err'] > 0) echo "- 오류 발생: {$result['err']}건<br>";
echo "──────────────────────────";
}
?>