let bnfInnb = ""; // StepcntSettings.js - 만보기 설정 관련 스크립트 $(document).ready(function() { // bnfInnb 값 가져오기 bnfInnb = $("#bnfInnb").val(); console.log("bnfInnb ::: ", bnfInnb); // 1. 초기 로딩 시 만보기 동의 여부 확인 checkStepcntAgreement(); // 2. 이벤트 설명 로딩 loadEventDescription(); // 3. 토글 스위치 이벤트 리스너 등록 $("#stepcntUseYn").on("change", function() { updateStepcntAgreement($(this).is(":checked") ? "Y" : "N"); }); }); /** * 현재 만보기 동의 상태 확인 */ function checkStepcntAgreement() { $.ajax({ url: "/sopmal/bnft/checkCurrentStepcntAgreement", type: "POST", contentType: "application/json", data: JSON.stringify({ bnfInnb: bnfInnb }), success: function(response) { try { // 응답 파싱 const resultData = response.resBody ? JSON.parse(response.resBody.result) : response; // 응답이 정상이고 데이터가 존재하는 경우 if (response.statusCode === 0 && resultData) { // 동의 상태에 따라 토글 스위치 설정 const useAt = resultData.useAt === "Y"; $("#stepcntUseYn").prop("checked", useAt); } else { // 기본값으로 체크 해제 $("#stepcntUseYn").prop("checked", false); console.error("만보기 동의 상태 조회 실패:", response); showToast("만보기 동의 상태 조회 중 오류가 발생했습니다."); } } catch (e) { console.error("응답 파싱 오류:", e); $("#stepcntUseYn").prop("checked", false); showToast("만보기 동의 상태 조회 중 오류가 발생했습니다."); } }, error: function(xhr, status, error) { console.error("AJAX 오류:", error); showToast("만보기 동의 상태 조회 중 오류가 발생했습니다."); } }); } /** * 만보기 동의 상태 업데이트 * @param {string} agreeYn - 동의 여부 (Y/N) */ function updateStepcntAgreement(agreeYn) { $.ajax({ url: "/sopmal/bnft/updateStepcntAgreement", type: "POST", contentType: "application/json", data: JSON.stringify({ agreeYn: agreeYn, bnfInnb: bnfInnb }), success: function(response) { try { // 응답 파싱 const resultData = response.resBody ? JSON.parse(response.resBody.result) : response; // 응답이 정상인 경우 if (response.statusCode === 0) { // 성공 메시지 표시 if (agreeYn === "Y") { showToast("만보기 기능이 활성화되었습니다."); } else { showToast("만보기 기능이 비활성화되었습니다."); } } else { // 실패 시 토글 상태 되돌리기 $("#stepcntUseYn").prop("checked", agreeYn !== "Y"); console.error("만보기 동의 상태 업데이트 실패:", response); showToast("만보기 설정 변경 중 오류가 발생했습니다."); } } catch (e) { // 오류 발생 시 토글 상태 되돌리기 $("#stepcntUseYn").prop("checked", agreeYn !== "Y"); console.error("응답 파싱 오류:", e); showToast("만보기 설정 변경 중 오류가 발생했습니다."); } }, error: function(xhr, status, error) { // 오류 발생 시 토글 상태 되돌리기 $("#stepcntUseYn").prop("checked", agreeYn !== "Y"); console.error("AJAX 오류:", error); showToast("만보기 설정 변경 중 오류가 발생했습니다."); } }); } /** * 토스트 메시지 표시 * @param {string} message - 표시할 메시지 */ function showToast(message) { // 토스트 요소가 없으면 동적으로 생성 if ($("#toastPop").length === 0) { $("body").append('

'); } $('#toastPop p').text(message); $('#toastPop').addClass('show'); // 2초 후 토스트 메시지 숨김 setTimeout(function() { $('#toastPop').removeClass('show'); }, 2000); } /** * 이벤트 설명만 별도로 로딩하는 함수 */ function loadEventDescription() { console.log("loadEventDescription 함수 시작"); $.ajax({ url: "/sopmal/bnft/selectStepcntGuide", type: "POST", contentType: "application/json", data: JSON.stringify({ bnfInnb: bnfInnb }), success: function(response) { console.log("loadEventDescription 응답:", response); try { // 응답이 정상이고 resBody와 result가 존재하는 경우 if (response.statusCode === 0 && response.resBody && response.resBody.result) { console.log("응답 상태 정상, result 파싱 시작"); // result를 JSON으로 파싱 const resultData = JSON.parse(response.resBody.result); console.log("파싱된 resultData:", resultData); if (resultData && resultData.bnfWordsCn) { console.log("bnfWordsCn 데이터 존재:", resultData.bnfWordsCn); // comment-box 요소 확인 const commentBox = $(".comment-box"); console.log("comment-box 요소 찾기:", commentBox.length); if (commentBox.length > 0) { // comment-box에 이벤트 설명 표시 const htmlContent = `

이벤트 설명

${resultData.bnfWordsCn}

`; console.log("설정할 HTML 내용:", htmlContent); commentBox.html(htmlContent); console.log("comment-box 내용 설정 완료"); } else { console.error("comment-box 요소를 찾을 수 없습니다"); } } else { console.log("bnfWordsCn 데이터가 없어서 기본 설명 표시"); showDefaultDescription(); } } else { console.log("응답 상태 오류 또는 데이터 없음, 기본 설명 표시"); showDefaultDescription(); } } catch (e) { console.error("이벤트 설명 파싱 오류:", e); showDefaultDescription(); } }, error: function(xhr, status, error) { console.error("이벤트 설명 조회 오류:", error); showDefaultDescription(); } }); } /** * 기본 이벤트 설명 표시 */ function showDefaultDescription() { $(".comment-box").html(`

이벤트 설명

만보기 이벤트에 참여하여 다양한 혜택을 받아보세요!
매일 만보를 달성하시면 마일리지와 깜짝선물을 받을 수 있습니다.
`); } /** * 세션에서 bnfInnb 값을 가져오는 함수 (필요시) */ function getBnfInnb() { // 세션 저장소나 다른 방법으로 bnfInnb 값을 가져오는 로직 // 현재는 서버에서 자동으로 세션 값을 사용하므로 빈 값으로 처리 return null; }