From f93cf568fe1986b9674de569183203fc6a52daf5 Mon Sep 17 00:00:00 2001 From: myname Date: Wed, 28 May 2025 15:17:04 +0900 Subject: [PATCH] =?UTF-8?q?2025-05-28=2015:16=20indexnow=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 --- .../site/web/EgovSiteManagerController.java | 54 ++++++++++++++++++ .../let/utl/user/service/IndexNowUtil.java | 56 +++++++++++++++++++ .../let/sym/site/EgovSiteManage_SQL_Mysql.xml | 3 + .../WEB-INF/jsp/sym/site/metaTagList.jsp | 17 ++++++ 4 files changed, 130 insertions(+) create mode 100644 src/main/java/itn/let/utl/user/service/IndexNowUtil.java diff --git a/src/main/java/itn/let/sym/site/web/EgovSiteManagerController.java b/src/main/java/itn/let/sym/site/web/EgovSiteManagerController.java index 809ec7c..385c9a5 100644 --- a/src/main/java/itn/let/sym/site/web/EgovSiteManagerController.java +++ b/src/main/java/itn/let/sym/site/web/EgovSiteManagerController.java @@ -66,6 +66,7 @@ import itn.let.sym.site.service.SiteManagerVO; import itn.let.sym.site.service.TermsVO; import itn.let.uss.umt.service.EgovUserManageService; import itn.let.uss.umt.service.UserManageVO; +import itn.let.utl.user.service.IndexNowUtil; import itn.let.utl.user.service.MjonNoticeSendUtil; /** @@ -129,6 +130,9 @@ public class EgovSiteManagerController { @Resource(name = "userManageService") private EgovUserManageService userManageService; + + @Resource(name="indexNowUtil") + private IndexNowUtil indexNowUtil; /** 알림전송 Util */ @Resource(name = "mjonNoticeSendUtil") @@ -2063,6 +2067,56 @@ public class EgovSiteManagerController { return "redirect:/sym/site/selectMetaTagList.do"; } + /** + * 메타태그 인택스 + * + * @param metaTagVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/sym/site/selectMetaTagIndex.do") + public String selectMetaTagIndex(@ModelAttribute("searchVO") MetaTagVO metaTagVO, ModelMap model) throws Exception{ + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(1); + paginationInfo.setRecordCountPerPage(100000); + paginationInfo.setPageSize(1); + + metaTagVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + metaTagVO.setLastIndex(paginationInfo.getLastRecordIndex()); + metaTagVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if("".equals(metaTagVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + metaTagVO.setSearchSortCnd("frstRegistPnttm"); + metaTagVO.setSearchSortOrd("desc"); + } + + metaTagVO.setSearchKeyword("10"); + metaTagVO.setSearchCondition("10"); + + List metaTagList = egovSiteManagerService.selectMetaTagList(metaTagVO); + /* + model.addAttribute("metaTagList", metaTagList); + paginationInfo.setTotalRecordCount( metaTagList.size()> 0 ? metaTagList.get(0).getTotCnt() : 0); + model.addAttribute("paginationInfo", paginationInfo); + */ + + for (int i=0;i2) break; + + } + + + //submitUrl("https://yourdomain.com/new-post.html"); // 🔁 여기에 전송할 실제 URL 입력 + + //return "/sym/site/metaTagList"; + return "redirect:/sym/site/selectMetaTagList.do"; + } + + /** * 관리자 알림 여부 * diff --git a/src/main/java/itn/let/utl/user/service/IndexNowUtil.java b/src/main/java/itn/let/utl/user/service/IndexNowUtil.java new file mode 100644 index 0000000..5d2ab36 --- /dev/null +++ b/src/main/java/itn/let/utl/user/service/IndexNowUtil.java @@ -0,0 +1,56 @@ +package itn.let.utl.user.service; + +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.charset.StandardCharsets; + +import org.springframework.stereotype.Service; + +@Service("indexNowUtil") +public class IndexNowUtil { + + private static final String INDEXNOW_API_URL = "https://api.indexnow.org/indexnow"; + private static final String INDEXNOW_KEY = "d09a9f949e6e48eeb221d7a13bdb1d14"; // 🔁 여기에 실제 키 입력 + private static final String HOST = "www.munjaon.co.kr"; // 🔁 도메인만 입력 (https:// 없이) + + public static void submitUrl(String urlToSubmit) { + try { + URL url = new URL(INDEXNOW_API_URL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + connection.setRequestMethod("POST"); + connection.setRequestProperty("Content-Type", "application/json; utf-8"); + connection.setDoOutput(true); + + // JSON 데이터 구성 + String jsonInputString = "{" + + "\"host\":\"" + HOST + "\"," + + "\"key\":\"" + INDEXNOW_KEY + "\"," + + "\"urlList\":[\"" + urlToSubmit + "\"]" + + "}"; + + try (OutputStream os = connection.getOutputStream()) { + byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); + os.write(input, 0, input.length); + } + + int responseCode = connection.getResponseCode(); + if (responseCode == 200 || responseCode == 202) { + System.out.println("✅ IndexNow 전송 성공: " + urlToSubmit); + } else { + System.out.println("❌ 전송 실패 - 응답 코드: " + responseCode + " : " + urlToSubmit); + } + + } catch (Exception e) { + System.err.println("🚫 오류 발생: " + e.getMessage()); + } + } + + /* + public static void main(String[] args) { + // 테스트용 URL 전송 + submitUrl("https://yourdomain.com/new-post.html"); // 🔁 여기에 전송할 실제 URL 입력 + } + */ +} diff --git a/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml index 6db61c9..3e54c8e 100644 --- a/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml @@ -915,6 +915,9 @@ MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%') + + DATE_FORMAT(a.LAST_UPDT_PNTTM,'%Y%m%d') >= DATE_FORMAT(DATE_ADD(NOW(), interval -7 day),'%Y%m%d') + ORDER BY 1=1 diff --git a/src/main/webapp/WEB-INF/jsp/sym/site/metaTagList.jsp b/src/main/webapp/WEB-INF/jsp/sym/site/metaTagList.jsp index cf34a10..8f7810b 100644 --- a/src/main/webapp/WEB-INF/jsp/sym/site/metaTagList.jsp +++ b/src/main/webapp/WEB-INF/jsp/sym/site/metaTagList.jsp @@ -40,6 +40,16 @@ function fnInsertView(){ document.listForm.action = ""; document.listForm.submit(); } + +//indexnow +function fnIndexNow(){ + if(confirm("index 처리 합니까?")) { + document.listForm.action = ""; + document.listForm.submit(); + } + +} + function fnView(metaTagNo){ document.listForm.metaTagNo.value = metaTagNo ; document.listForm.action = ""; @@ -103,6 +113,8 @@ function fnDelete(){ + + @@ -181,6 +193,7 @@ function fnDelete(){ +
    @@ -188,6 +201,10 @@ function fnDelete(){
+ +
+ +