From 057f5655b764fdba1da753079ea2cc7f568b30ba Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 20 Sep 2024 17:22:52 +0900 Subject: [PATCH] =?UTF-8?q?2024-09-20=2017:22=20=EC=9E=A5=EC=95=A0?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EB=AA=A9=EB=A1=9D=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ManagerErrorLogsService.java | 17 + .../service/ManagerErrorLogsServiceImpl.java | 36 ++ .../web/ManagerErrorLogsController.java | 320 ++++++++++++++++++ .../jsp/manager/errorlogs/errorLogsList.jsp | 143 ++++++++ .../jsp/manager/errorlogs/errorLogsLive.jsp | 234 +++++++++++++ 5 files changed, 750 insertions(+) create mode 100644 src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsService.java create mode 100644 src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsServiceImpl.java create mode 100644 src/main/java/seed/manager/errorlogs/web/ManagerErrorLogsController.java create mode 100644 src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsList.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsLive.jsp diff --git a/src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsService.java b/src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsService.java new file mode 100644 index 00000000..95dacf56 --- /dev/null +++ b/src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsService.java @@ -0,0 +1,17 @@ +package seed.manager.errorlogs.service; + +import java.util.List; + +import seed.map.T_ERROR_LOGS; + +public interface ManagerErrorLogsService { + + //ManagerErrorLogsController + public T_ERROR_LOGS getErrorLogsForm(Integer errorLogsIdx); + + //ManagerErrorLogsController + public Long getErrorLogsListCnt(String column, String search); + + //ManagerErrorLogsController + public List getErrorLogsList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); +} \ No newline at end of file diff --git a/src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsServiceImpl.java b/src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsServiceImpl.java new file mode 100644 index 00000000..c015ee91 --- /dev/null +++ b/src/main/java/seed/manager/errorlogs/service/ManagerErrorLogsServiceImpl.java @@ -0,0 +1,36 @@ +package seed.manager.errorlogs.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.ErrorLogsDAO; +import seed.map.T_ERROR_LOGS; + +@Service +public class ManagerErrorLogsServiceImpl extends AbstractServiceImpl implements ManagerErrorLogsService{ + + @Autowired + private ErrorLogsDAO errorLogsDAO; + + //ManagerErrorLogsController + public T_ERROR_LOGS getErrorLogsForm(Integer errorLogsIdx){ + + return errorLogsDAO.getErrorLogsForm(errorLogsIdx); + } + + //ManagerErrorLogsController + public Long getErrorLogsListCnt(String column, String search){ + + return errorLogsDAO.getErrorLogsListCnt(column, search); + } + + //ManagerErrorLogsController + public List getErrorLogsList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return errorLogsDAO.getErrorLogsList(((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } +} \ No newline at end of file diff --git a/src/main/java/seed/manager/errorlogs/web/ManagerErrorLogsController.java b/src/main/java/seed/manager/errorlogs/web/ManagerErrorLogsController.java new file mode 100644 index 00000000..d353f236 --- /dev/null +++ b/src/main/java/seed/manager/errorlogs/web/ManagerErrorLogsController.java @@ -0,0 +1,320 @@ +package seed.manager.errorlogs.web; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.RandomAccessFile; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import com.google.gson.Gson; + +import seed.manager.errorlogs.service.ManagerErrorLogsService; +import seed.manager.member.service.ManagerMemberService; +import seed.manager.site.service.ManagerSiteManagerService; +import seed.utils.InterceptorCheck; +import seed.utils.Paging; +import seed.utils.SeedUtils; + +@Controller +public class ManagerErrorLogsController { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private ManagerErrorLogsService managerErrorLogsService; + + @Autowired + private ManagerMemberService managerMemberService; + + @Autowired + private ManagerSiteManagerService managerSiteManagerService; + + @Value("#{config['was.log.path']}") + private String wasLogPath; + + public void getSeedLicense(HttpServletResponse httpServletResponse){ + + if(SeedUtils.setReplaceNull(InterceptorCheck.getLicenseKey()).equals("")){ + try { + httpServletResponse.sendRedirect("/common/seed.do"); + } catch (IOException ex) { + log.error("CHECK ERROR:",ex); + } + } + } + + public void setSessionRemove(HttpSession session){ + session.removeAttribute("memberIdx"); + session.removeAttribute("memberId"); + session.removeAttribute("memberName"); + session.removeAttribute("memberDept"); + session.removeAttribute("memberPosition"); + session.removeAttribute("memberTel"); + session.removeAttribute("memberPhone"); + session.removeAttribute("memberEmail1"); + session.removeAttribute("memberEmail2"); + session.removeAttribute("memberGrant"); + + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + } + + public void setSessionMessageRemove(HttpSession session){ + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + } + + public void setPaging(@ModelAttribute("paging") Paging paging){ + + if(paging != null){ + if(paging.getPage() == null){paging.setPage(1);} + if(paging.getRow() == null){paging.setRow(10);} + if(paging.getPagec() == null){paging.setPagec(1);} + if(paging.getRowc() == null){paging.setRowc(10);} + } + } + + @RequestMapping(value = "/gtm/{siteIdx}/errorLogsLive.do") + public ModelAndView getErrorLogsLive(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + + if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){ + setSessionRemove(session); + map.put("url", "/gtm/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + //해당 WAS폴더의 파일리스트 가져옴 + ArrayList> fileList = SeedUtils.getSeedDirFiles(wasLogPath, "F"); + + map.put("fileList", fileList); + + return new ModelAndView("/manager/errorlogs/errorLogsLive"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/errorLogsLiveProc.do", method=RequestMethod.POST) + public ModelAndView setErrorLogsLiveProc(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="fileName", defaultValue="", required=false) String fileName, + @RequestParam(value="preEndPoint", defaultValue="0", required=false) Long preEndPoint){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + + if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){ + setSessionRemove(session); + map.put("url", "/gtm/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + StringBuilder logBuilder = new StringBuilder(); + + // ajax 요청에 응답하기 위한 response작업 + httpServletResponse.setContentType("text/html;charset=UTF-8"); + + HashMap hashMap = new HashMap(); + + Gson gson = new Gson(); + + String ajaxData = ""; + + PrintWriter writer = null; + + if (!"".equals(fileName.trim())) { + + fileName = wasLogPath + fileName.trim().replaceAll("\\.\\.", ""); + + long startPoint = 0; + long endPoint = 0; + + RandomAccessFile randomAccessFile = null; + + try { + + randomAccessFile = new RandomAccessFile(fileName, "r"); + endPoint = randomAccessFile.length(); + + startPoint = preEndPoint > 0 ? preEndPoint : endPoint < 2000 ? 0 : endPoint - 2000; + + randomAccessFile.seek(startPoint); + + String str; + while ((str = randomAccessFile.readLine()) != null) { + logBuilder.append(str); + logBuilder.append("\n"); + endPoint = randomAccessFile.getFilePointer(); + randomAccessFile.seek(endPoint); + } + + } catch (FileNotFoundException fnfe) { + logBuilder.append("File does not exist."); + log.error("CHECK ERROR:",fnfe); + } catch (Exception e) { + logBuilder.append("Sorry. An error has occurred."); + log.error("CHECK ERROR:",e); + } finally { + try {randomAccessFile.close();} catch (Exception e) { + log.error("CHECK ERROR:",e); + } + } + + ajaxData = gson.toJson(hashMap); + + try { + hashMap.put("logBuilder", new String(logBuilder.toString().replaceAll("<", "<").replaceAll(">", ">").getBytes("ISO-8859-1"),"EUC-KR")); + } catch (UnsupportedEncodingException e) { + log.error("CHECK ERROR:",e); + } + + hashMap.put("endPoint", endPoint); + + ajaxData = gson.toJson(hashMap); + + }else{ + + ajaxData = gson.toJson(hashMap); + } + + try { + writer = httpServletResponse.getWriter(); + writer.write(ajaxData); + } catch (IOException e) { + log.error("IOException ERROR"); + } finally{ + if(writer!=null){writer.flush();writer.close();} + } + + //out.print("{\"endPoint\":\"" + endPoint + "\", \"log\":\"" + URLEncoder.encode(new String(log.toString().getBytes("ISO-8859-1"),"UTF-8"), "UTF-8").replaceAll("\\+", "%20") + "\"}"); + + return null; + } + + @RequestMapping(value = "/gtm/{siteIdx}/errorLogsList.do") + public ModelAndView getErrorLogsList(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="errorLogsIdx", required=false) String orderColumn, + @RequestParam(value="order", defaultValue="DESC", required=false) String order, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + setPaging(paging); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + + if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){ + setSessionRemove(session); + map.put("url", "/gtm/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + String[] qryColumns = {"errorLogsIdx", "errorLogsUrl", "errorLogsType", "errorLogsRegDate"}; + + paging.setCount(managerErrorLogsService.getErrorLogsListCnt(column, search)); + + map.put("errorLogsList", managerErrorLogsService.getErrorLogsList(paging.getPage(), paging.getRow(), orderColumn, order, column, search, qryColumns)); + map.put("errorLogsListCnt", paging.getCount()); + + map.put("page", paging.getPage()); + map.put("row", paging.getRow()); + map.put("pages", paging.getPages()); + map.put("blocks", paging.getBlocks()); + map.put("block", paging.getBlock()); + map.put("fPage", paging.getfPage()); + map.put("lPage", paging.getlPage()); + + map.put("orderColumn", orderColumn); + map.put("order", order); + map.put("column", column); + map.put("search", search); + + return new ModelAndView("/manager/errorlogs/errorLogsList"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/errorLogsView/{errorLogsIdx}.do", method=RequestMethod.GET) + public ModelAndView getErrorLogsEdit(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="errorLogsIdx") Integer errorLogsIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="errorLogsIdx", required=false) String orderColumn, + @RequestParam(value="order", defaultValue="DESC", required=false) String order, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + setPaging(paging); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + + if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){ + setSessionRemove(session); + map.put("url", "/gtm/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + map.put("page", paging.getPage()); + map.put("row", paging.getRow()); + + map.put("orderColumn", orderColumn); + map.put("order", order); + map.put("column", column); + map.put("search", search); + + map.put("tErrorLogsDB", managerErrorLogsService.getErrorLogsForm(errorLogsIdx)); + + return new ModelAndView("/manager/errorlogs/errorLogsView"); + } +} diff --git a/src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsList.jsp b/src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsList.jsp new file mode 100644 index 00000000..054c15d1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsList.jsp @@ -0,0 +1,143 @@ +<%@ page contentType="text/html;charset=utf-8" %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%> +<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + + + + + <s:message code="manager.errorLogs.errorLogsList.title"/> + + + + +
+
+

+
+ +
+

+
+
+
+
+ + + + + +
+ 검색 폼 + + " class="sch-text"> + +
+
+
+
+ +
+ +
+ + + +
+
+ +
    + + + +
  • " >
  • +
    + +
  • " >
  • +
    +
    +
    +
+ +
+
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsLive.jsp b/src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsLive.jsp new file mode 100644 index 00000000..623917a6 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/manager/errorlogs/errorLogsLive.jsp @@ -0,0 +1,234 @@ +<%@ page contentType="text/html;charset=utf-8" %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + + + + + <s:message code="manager.errorLogs.errorLogsLive.title"/> + + + + + + + + + + +
+ +
+
+

+
+ +
+

+
+
+
+ +
+ +
+ + +
+
+ + +
+
+
+ + + + \ No newline at end of file