175 lines
5.6 KiB
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 "──────────────────────────";
|
|
}
|
|
?>
|