diff --git a/pom.xml b/pom.xml index 94df928f..1ebf6c50 100644 --- a/pom.xml +++ b/pom.xml @@ -342,11 +342,11 @@ 3.16 - + @@ -390,11 +390,11 @@ - + + + javax.media + jai-core + 1.1.3 + + + + + com.jcraft + jsch + 0.1.44-1 + + + + + fr.opensagres.xdocreport + org.apache.poi.xwpf.converter.core + 1.0.4 + + + + + fr.opensagres.xdocreport + org.apache.poi.xwpf.converter.pdf + 1.0.4 + + + + + fr.opensagres.xdocreport + org.apache.poi.xwpf.converter.xhtml + 1.0.4 + + + + + org.apache.pdfbox + pdfbox-app + 1.8.1 + + + + + org.apache.poi + poi-ooxml + 3.9 + + + + diff --git a/src/main/java/kcc/com/cmm/spring/data/util/ExcelUtil.java b/src/main/java/kcc/com/cmm/spring/data/util/ExcelUtil.java index 605daa65..dc1d8352 100644 --- a/src/main/java/kcc/com/cmm/spring/data/util/ExcelUtil.java +++ b/src/main/java/kcc/com/cmm/spring/data/util/ExcelUtil.java @@ -44,97 +44,97 @@ public class ExcelUtil { * * *********************************************************************************************** */ - public static SXSSFWorkbook makeSimpleFruitExcelWorkbook(List voList, String[] header, String[] order, int[] width, String title) throws Exception { - // 시트 생성 - SXSSFWorkbook workbook = new SXSSFWorkbook(); - SXSSFSheet sheet = workbook.createSheet(title); - - for (int i = 0; i < width.length; i++) { -// sheet.setColumnWidth(0, width[width.length - (i + 1)]); - sheet.setColumnWidth(i, width[i]); - } - - - - int r = 2;// 줄부터 찍기 - - Font font = workbook.createFont(); - font.setBoldweight(font.BOLDWEIGHT_BOLD); - - CellStyle styleTh = workbook.createCellStyle(); // 표 Th - styleTh.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 - styleTh.setBorderLeft(CellStyle.BORDER_THIN); - styleTh.setBorderRight(CellStyle.BORDER_THIN); - styleTh.setBorderTop(CellStyle.BORDER_THIN); - styleTh.setAlignment(CellStyle.ALIGN_CENTER); // 정렬 - styleTh.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); - styleTh.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); - styleTh.setFont(font); - - CellStyle styleTd = workbook.createCellStyle(); // 표 Td - styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 - styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 - styleTd.setBorderLeft(CellStyle.BORDER_THIN); - styleTd.setBorderRight(CellStyle.BORDER_THIN); - styleTd.setBorderTop(CellStyle.BORDER_THIN); - styleTd.setAlignment(CellStyle.ALIGN_CENTER); // 정렬 - styleTd.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); - styleTd.setWrapText(true); // 자동 줄바꿈 - - - // 헤더 행 생 - Row headerRow = sheet.createRow(r); - // 해더 값 채움 (우측 방향으로) - Cell headerCell = null; - for (int i = 0; i < header.length; i++) { - headerCell = headerRow.createCell(i); - headerCell.setCellValue(header[i]); - headerCell.setCellStyle(styleTh); - } - - // 내용 행 및 셀 생성 - Row bodyRow = null; - Cell bodyCell = null; - - - bodyRow = sheet.createRow(0); - bodyCell = bodyRow.createCell(0); - bodyCell.setCellValue(title);// 읽어온 데이터 표시 - - - int c = 0;// 컬럼 - for (Object vo : voList) { - bodyRow = sheet.createRow(r + 1); - bodyCell = bodyRow.createCell(0); - //bodyCell.setCellValue(r + 1); // 첫 컬럼은 줄 번호 - - PropertyDescriptor pd; // 클래스의 필드 메소드를 찾아줌. 이름을 기존에 vo.setUserId() 란 메소드를 통해서만 호출이 가능 했다면, PropertyDescriptor는 이름만으로 메소드 - // 호출이 가능함. 클래스가 변경 되어도 동일한 작동으로 getter&setter 호출이 가능하도록 도와줌 - Method[] methods = vo.getClass().getDeclaredMethods(); // 메소드들 호출함 - // 배열로 준 이름 과 같으면 해당 열 데이터 쓰기 - - for (int i = 0; i < order.length; i++) { - for (Method method : methods) { // vo 내부 메소드 반복 - - if (method.getName().equals("get" + (order[i] == null ? "" : order[i]))) { // vo메소드 이름과 order의 이름 비교 - // getter 호출 준비 - String getMethodName = method.getName().substring(3); // getter의 이름 가져옴 - pd = new PropertyDescriptor(getMethodName, vo.getClass()); - - // vo의 데이터 세팅 - String cellData = (pd.getReadMethod().invoke(vo) != null ? pd.getReadMethod().invoke(vo) : "").toString(); -//log.debug("CellData {}", cellData); - bodyCell = bodyRow.createCell(c++); // 데이터 순서 - bodyCell.setCellValue(cellData);// 읽어온 데이터 표시 - bodyCell.setCellStyle(styleTd); - } - } - } - c = 0; - r++; - } - - return workbook; - } +// public static SXSSFWorkbook makeSimpleFruitExcelWorkbook(List voList, String[] header, String[] order, int[] width, String title) throws Exception { +// // 시트 생성 +// SXSSFWorkbook workbook = new SXSSFWorkbook(); +// SXSSFSheet sheet = workbook.createSheet(title); +// +// for (int i = 0; i < width.length; i++) { +//// sheet.setColumnWidth(0, width[width.length - (i + 1)]); +// sheet.setColumnWidth(i, width[i]); +// } +// +// +// +// int r = 2;// 줄부터 찍기 +// +// Font font = workbook.createFont(); +// font.setBoldweight(font.BOLDWEIGHT_BOLD); +// +// CellStyle styleTh = workbook.createCellStyle(); // 표 Th +// styleTh.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 +// styleTh.setBorderLeft(CellStyle.BORDER_THIN); +// styleTh.setBorderRight(CellStyle.BORDER_THIN); +// styleTh.setBorderTop(CellStyle.BORDER_THIN); +// styleTh.setAlignment(CellStyle.ALIGN_CENTER); // 정렬 +// styleTh.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); +// styleTh.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); +// styleTh.setFont(font); +// +// CellStyle styleTd = workbook.createCellStyle(); // 표 Td +// styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 +// styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 +// styleTd.setBorderLeft(CellStyle.BORDER_THIN); +// styleTd.setBorderRight(CellStyle.BORDER_THIN); +// styleTd.setBorderTop(CellStyle.BORDER_THIN); +// styleTd.setAlignment(CellStyle.ALIGN_CENTER); // 정렬 +// styleTd.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); +// styleTd.setWrapText(true); // 자동 줄바꿈 +// +// +// // 헤더 행 생 +// Row headerRow = sheet.createRow(r); +// // 해더 값 채움 (우측 방향으로) +// Cell headerCell = null; +// for (int i = 0; i < header.length; i++) { +// headerCell = headerRow.createCell(i); +// headerCell.setCellValue(header[i]); +// headerCell.setCellStyle(styleTh); +// } +// +// // 내용 행 및 셀 생성 +// Row bodyRow = null; +// Cell bodyCell = null; +// +// +// bodyRow = sheet.createRow(0); +// bodyCell = bodyRow.createCell(0); +// bodyCell.setCellValue(title);// 읽어온 데이터 표시 +// +// +// int c = 0;// 컬럼 +// for (Object vo : voList) { +// bodyRow = sheet.createRow(r + 1); +// bodyCell = bodyRow.createCell(0); +// //bodyCell.setCellValue(r + 1); // 첫 컬럼은 줄 번호 +// +// PropertyDescriptor pd; // 클래스의 필드 메소드를 찾아줌. 이름을 기존에 vo.setUserId() 란 메소드를 통해서만 호출이 가능 했다면, PropertyDescriptor는 이름만으로 메소드 +// // 호출이 가능함. 클래스가 변경 되어도 동일한 작동으로 getter&setter 호출이 가능하도록 도와줌 +// Method[] methods = vo.getClass().getDeclaredMethods(); // 메소드들 호출함 +// // 배열로 준 이름 과 같으면 해당 열 데이터 쓰기 +// +// for (int i = 0; i < order.length; i++) { +// for (Method method : methods) { // vo 내부 메소드 반복 +// +// if (method.getName().equals("get" + (order[i] == null ? "" : order[i]))) { // vo메소드 이름과 order의 이름 비교 +// // getter 호출 준비 +// String getMethodName = method.getName().substring(3); // getter의 이름 가져옴 +// pd = new PropertyDescriptor(getMethodName, vo.getClass()); +// +// // vo의 데이터 세팅 +// String cellData = (pd.getReadMethod().invoke(vo) != null ? pd.getReadMethod().invoke(vo) : "").toString(); +////log.debug("CellData {}", cellData); +// bodyCell = bodyRow.createCell(c++); // 데이터 순서 +// bodyCell.setCellValue(cellData);// 읽어온 데이터 표시 +// bodyCell.setCellStyle(styleTd); +// } +// } +// } +// c = 0; +// r++; +// } +// +// return workbook; +// } } diff --git a/src/main/java/seed/com/gtm/counsel/OnlineCounselController.java b/src/main/java/seed/com/gtm/counsel/OnlineCounselController.java new file mode 100644 index 00000000..22c3605c --- /dev/null +++ b/src/main/java/seed/com/gtm/counsel/OnlineCounselController.java @@ -0,0 +1,439 @@ +package seed.com.gtm.counsel; + +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import seed.com.gtm.seedfile.SeedFileService; +import seed.com.gtm.util.SeedCriteria; +import seed.com.gtm.util.PageMaker; +import seed.com.user.counsel.CounselService; +import seed.utils.SeedUtils; + +@Controller +@RequestMapping("/gtm/case") +public class OnlineCounselController { + @Autowired + private OnlineCounselService service; + + @Autowired + private SeedFileService fileService; + + @Autowired + private CounselService service2; + + public void setSessionMessageRemove(HttpSession session){ + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + } + + // /gtm/case/onlineCounsel/list.do + @RequestMapping("/onlineCounsel/list.do") + public String counselList(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + session.setAttribute("siteIdx", "case"); + //페이징 관련 + paramMap.put("pageStart", cri.getPageStart()); + paramMap.put("perPageNum", cri.getPerPageNum()); + paramMap.put("civilType", "online"); + + List> data = service.counselList(paramMap); + + PageMaker pageMaker = new PageMaker(); + pageMaker.setCri(cri); + pageMaker.setTotalCount(service.counselTot(paramMap)); + + model.addAttribute("data", data); + model.addAttribute("pageMaker", pageMaker); + + return "/_extra/gtm/onlineCounsel/list"; + } + + @RequestMapping("/onlineCounsel/view.do") + public String counselView(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + paramMap.put("dataIdx", paramMap.get("counselSeq")); + paramMap.put("memberDept", session.getAttribute("memberDept")); + Map data = service.counselView(paramMap); + List> memberList = service.memberSelect(paramMap); + + model.addAttribute("data", data); + model.addAttribute("memberList", memberList); + model.addAttribute("fileList", fileService.fileList(paramMap)); + + return "/_extra/gtm/onlineCounsel/view"; + + } + + @RequestMapping("/onlineCounsel/writePage.do") + public String counselWritePage(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + paramMap.put("memberDept", session.getAttribute("memberDept")); + List> memberList = service.memberSelect(paramMap); + + model.addAttribute("memberList", memberList); + + return "/_extra/gtm/onlineCounsel/write"; + } + + @RequestMapping("/onlineCounsel/write.do") + public String counselWrite(ModelMap model,HttpServletRequest request, HttpSession session, @RequestParam Map paramMap, Map map){ + + String applcntTel01 = SeedUtils.setReplaceNull(paramMap.get("applcntTel01")); + String applcntTel02 = SeedUtils.setReplaceNull(paramMap.get("applcntTel02")); + String applcntTel03 = SeedUtils.setReplaceNull(paramMap.get("applcntTel03")); + String applcntTel = applcntTel01 + "-" + applcntTel02 + "-" + applcntTel03; + paramMap.put("applcntTel", applcntTel); + + paramMap.put("applcntCi", ""); + paramMap.put("applcntDi", ""); + paramMap.put("memberId", session.getAttribute("memberId")); + paramMap.put("managerNm", session.getAttribute("memberName")); + + service2.onlineCounselInsert(paramMap); + paramMap.put("dataIdx", paramMap.get("seq")); + fileService.fileInsert(paramMap, request, session); + + + map.put("message", "common.message.reg"); + map.put("url", "/gtm/case/onlineCounsel/list.do"); + + return "/_common/jsp/message"; + + } + + @RequestMapping("/onlineCounsel/edit.do") + public String counselEdit(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + if( SeedUtils.setReplaceNull(paramMap.get("managerNm")).equals("") ){ + paramMap.put("managerNm", session.getAttribute("memberName")); + } + + if( SeedUtils.setReplaceNull(paramMap.get("managerId")).equals("") ){ + paramMap.put("managerId", session.getAttribute("memberId")); + } + + + service.counselUpdate(paramMap); + + String counselSeq = SeedUtils.setReplaceNull(paramMap.get("counselSeq")); + String page = SeedUtils.setReplaceNull(paramMap.get("page")); + String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1")); + String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2")); + String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3")); + String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4")); + String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5")); + String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6")); + String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp")); + String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa")); + String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle")); + String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType")); + String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState")); + String fileFuncType = SeedUtils.setReplaceNull(paramMap.get("fileFuncType")); + + this.setSessionMessageRemove(session); + + map.put("message", "common.message.reg"); + map.put("url", "/gtm/case/onlineCounsel/view.do?counselSeq=" + counselSeq + "&page=" + page + + "&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 + + "&searchDate4=" + searchDate4 + "&searchDate5=" + searchDate5 + "&searchDate6=" + searchDate6 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle + + "&searchType=" + searchType + "&searchState=" + searchState + "&fileFuncType=" + fileFuncType); + + return "/_common/jsp/message"; + + } + + @RequestMapping("/onlineCounsel/state.do") + public String counselState(HttpServletRequest request ,ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + String[] checkList = request.getParameterValues("okCheck"); + + //센터장(memberPosition : 0902000000)만 승인가능 하도록 + String memberPosition = SeedUtils.setReplaceNull(session.getAttribute("memberPosition")); + String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx")); + if(!"0902000000".equals(memberPosition)){ + session.setAttribute("sSiteIdx", siteIdx); + session.setAttribute("message", "(message)승인 권한이 없습니다."); + session.setAttribute("self", "history"); + + return "/_common/jsp/message"; + } + + if(checkList != null && checkList.length > 0){ + for(int i = 0; i < checkList.length; i++){ + paramMap.put("counselSeq", checkList[i]); + service.counselUpdateState(paramMap); + } + }else{ + service.counselUpdateState(paramMap); + } + + + /*service.counselUpdateState(paramMap);*/ + + String page = SeedUtils.setReplaceNull(paramMap.get("page")); + String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1")); + String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2")); + String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3")); + String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4")); + String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp")); + String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa")); + String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle")); + String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType")); + String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState")); + + this.setSessionMessageRemove(session); + + map.put("message", "common.message.reg"); + map.put("url", "/gtm/case/onlineCounsel/list.do?page=" + page + + "&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 + + "&searchDate4=" + searchDate4 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle + + "&searchType=" + searchType + "&searchState=" + searchState); + + return "/_common/jsp/message"; + + } + + + @RequestMapping("/onlineCounsel/del.do") + public String counselDel(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + service.counselDelete(paramMap); + map.put("message", "common.message.del"); + map.put("url", "/gtm/case/onlineCounsel/list.do"); + + return "/_common/jsp/message"; + + } + + + // /gtm/case/onlineCounsel/lawList.do + @RequestMapping("/onlineCounsel/lawList.do") + public String lawCounselList(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + session.setAttribute("siteIdx", "case"); + //페이징 관련 + paramMap.put("pageStart", cri.getPageStart()); + paramMap.put("perPageNum", cri.getPerPageNum()); + paramMap.put("civilType", "law"); + + List> data = service.counselList(paramMap); + + PageMaker pageMaker = new PageMaker(); + pageMaker.setCri(cri); + pageMaker.setTotalCount(service.counselTot(paramMap)); + + model.addAttribute("data", data); + model.addAttribute("pageMaker", pageMaker); + + return "/_extra/gtm/onlineCounsel/lawList"; + } + + @RequestMapping("/onlineCounsel/lawView.do") + public String lawCounselView(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + paramMap.put("dataIdx", paramMap.get("counselSeq")); + paramMap.put("memberDept", session.getAttribute("memberDept")); + Map data = service.counselView(paramMap); + List> memberList = service.memberSelect(paramMap); + + model.addAttribute("data", data); + model.addAttribute("memberList", memberList); + model.addAttribute("fileList", fileService.fileList(paramMap)); + paramMap.put("fileFuncType", SeedUtils.setReplaceNull(paramMap.get("fileFuncType2"))); + model.addAttribute("fileList2", fileService.fileList(paramMap)); + + return "/_extra/gtm/onlineCounsel/lawView"; + } + + @RequestMapping("/onlineCounsel/lawWritePage.do") + public String lawWritePage(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + paramMap.put("memberDept", session.getAttribute("memberDept")); + List> memberList = service.memberSelect(paramMap); + + model.addAttribute("memberList", memberList); + + return "/_extra/gtm/onlineCounsel/lawWrite"; + } + + + @RequestMapping("/onlineCounsel/lawWrite.do") + public String lawWrite(ModelMap model,HttpServletRequest request, HttpSession session, @RequestParam Map paramMap, Map map){ + + paramMap.put("applcntCi", ""); + paramMap.put("applcntDi", ""); + paramMap.put("memberId", session.getAttribute("memberId")); + paramMap.put("managerNm", session.getAttribute("memberName")); + paramMap.put("memberDept", session.getAttribute("memberDept")); + + service2.lawCounselInsert(paramMap); + paramMap.put("dataIdx", paramMap.get("seq")); + fileService.fileInsert(paramMap, request, session); + + map.put("message", "common.message.reg"); + map.put("url", "/gtm/case/onlineCounsel/lawList.do"); + + return "/_common/jsp/message"; + + } + + @RequestMapping("/onlineCounsel/rawEdit.do") + public String lawCounselEdit(ModelMap model, HttpServletRequest request,HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + if( SeedUtils.setReplaceNull(paramMap.get("managerNm")).equals("") ){ + paramMap.put("managerNm", session.getAttribute("memberName")); + } + + if( SeedUtils.setReplaceNull(paramMap.get("managerId")).equals("") ){ + paramMap.put("managerId", session.getAttribute("memberId")); + } + + paramMap.put("dataIdx", paramMap.get("counselSeq")); + + service.lawCounselUpdate(paramMap); + fileService.fileInsert(paramMap, request, session); + fileService.fileDel(paramMap); + + String counselSeq = SeedUtils.setReplaceNull(paramMap.get("counselSeq")); + String page = SeedUtils.setReplaceNull(paramMap.get("page")); + String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1")); + String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2")); + String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3")); + String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4")); + String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5")); + String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6")); + String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp")); + String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa")); + String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle")); + String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType")); + String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState")); + String fileFuncType = "law"; + String fileFuncType2 = "lawCard"; + + this.setSessionMessageRemove(session); + + map.put("message", "common.message.reg"); + map.put("url", "/gtm/case/onlineCounsel/lawView.do?counselSeq=" + counselSeq + "&page=" + page + + "&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 + + "&searchDate4=" + searchDate4 + "&searchDate5=" + searchDate5 + "&searchDate6=" + searchDate6 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle + + "&searchType=" + searchType + "&searchState=" + searchState + "&fileFuncType=" + fileFuncType + "&fileFuncType2=" + fileFuncType2); + + return "/_common/jsp/message"; + + } + + @RequestMapping("/onlineCounsel/lawState.do") + public String lawCounselState(HttpServletRequest request ,ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + String[] checkList = request.getParameterValues("okCheck"); + + //센터장(memberPosition : 0902000000)만 승인가능 하도록 + String memberPosition = SeedUtils.setReplaceNull(session.getAttribute("memberPosition")); + String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx")); + if(!"0902000000".equals(memberPosition)){ + session.setAttribute("sSiteIdx", siteIdx); + session.setAttribute("message", "(message)승인 권한이 없습니다."); + session.setAttribute("self", "history"); + + return "/_common/jsp/message"; + } + + if(checkList != null && checkList.length > 0){ + for(int i = 0; i < checkList.length; i++){ + paramMap.put("counselSeq", checkList[i]); + service.counselUpdateState(paramMap); + } + }else{ + service.counselUpdateState(paramMap); + } + + + /*service.counselUpdateState(paramMap);*/ + + String page = SeedUtils.setReplaceNull(paramMap.get("page")); + String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1")); + String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2")); + String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3")); + String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4")); + String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5")); + String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6")); + String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp")); + String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa")); + String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle")); + String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType")); + String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState")); + + this.setSessionMessageRemove(session); + + map.put("message", "common.message.reg"); + map.put("url", "/gtm/case/onlineCounsel/lawList.do?page=" + page + + "&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 + + "&searchDate4=" + searchDate4 + "&searchDate5=" + searchDate5 + "&searchDate6=" + searchDate6 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle + + "&searchType=" + searchType + "&searchState=" + searchState); + + return "/_common/jsp/message"; + + } + + + @RequestMapping("/onlineCounsel/lawDel.do") + public String counselLawDel(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + service.counselDelete(paramMap); + map.put("message", "common.message.del"); + map.put("url", "/gtm/case/onlineCounsel/lawList.do"); + + return "/_common/jsp/message"; + + } + + @RequestMapping("/onlineCounsel/civilChange.do") + public String counselCivilChange(ModelMap model, HttpSession session, @RequestParam Map paramMap, Map map, SeedCriteria cri){ + + if( SeedUtils.setReplaceNull(paramMap.get("managerNm")).equals("") ){ + paramMap.put("managerNm", session.getAttribute("memberName")); + } + + if( SeedUtils.setReplaceNull(paramMap.get("managerId")).equals("") ){ + paramMap.put("managerId", session.getAttribute("memberId")); + } + + service.counselCivilChange(paramMap); + + String counselSeq = SeedUtils.setReplaceNull(paramMap.get("counselSeq")); + String civilType = SeedUtils.setReplaceNull(paramMap.get("civilType")); + String page = SeedUtils.setReplaceNull(paramMap.get("page")); + String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1")); + String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2")); + String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3")); + String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4")); + String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5")); + String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6")); + String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp")); + String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa")); + String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle")); + String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType")); + String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState")); + + this.setSessionMessageRemove(session); + + map.put("message", "common.message.mod"); + + if(civilType.equals("online")) { + map.put("url", "/gtm/case/onlineCounsel/list.do#onlineCounsel_17"); + } else { + map.put("url", "/gtm/case/onlineCounsel/lawList.do#onlineCounsel_18"); + } + + return "/_common/jsp/message"; + + } +} diff --git a/src/main/java/seed/com/gtm/counsel/OnlineCounselService.java b/src/main/java/seed/com/gtm/counsel/OnlineCounselService.java new file mode 100644 index 00000000..cd10fb86 --- /dev/null +++ b/src/main/java/seed/com/gtm/counsel/OnlineCounselService.java @@ -0,0 +1,51 @@ +package seed.com.gtm.counsel; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import seed.com.gtm.dao.OnlineConunselDao; + +@Service +public class OnlineCounselService { + @Autowired + private OnlineConunselDao dao; + + public List> counselList(Map paramMap){ + return dao.counselList(paramMap); + } + + public int counselTot(Map paramMap){ + return dao.counselTot(paramMap); + } + + public Map counselView(Map paramMap){ + return dao.counselView(paramMap); + } + + public void counselUpdate(Map paramMap){ + dao.counselUpdate(paramMap); + } + + public void counselUpdateState(Map paramMap){ + dao.counselUpdateState(paramMap); + } + + public void lawCounselUpdate(Map paramMap){ + dao.lawCounselUpdate(paramMap); + } + + public List> memberSelect(Map paramMap){ + return dao.memberSelect(paramMap); + } + + public void counselDelete(Map paramMap){ + dao.counselDelete(paramMap); + } + + public void counselCivilChange(Map paramMap){ + dao.counselCivilChange(paramMap); + } +} diff --git a/src/main/java/seed/com/gtm/dao/OnlineConunselDao.java b/src/main/java/seed/com/gtm/dao/OnlineConunselDao.java new file mode 100644 index 00000000..dc005ca3 --- /dev/null +++ b/src/main/java/seed/com/gtm/dao/OnlineConunselDao.java @@ -0,0 +1,16 @@ +package seed.com.gtm.dao; + +import java.util.List; +import java.util.Map; + +public interface OnlineConunselDao { + public List> counselList(Map paramMap); + public int counselTot(Map paramMap); + public Map counselView(Map paramMap); + public void counselUpdate(Map paramMap); + public void counselUpdateState(Map paramMap); + public void lawCounselUpdate(Map paramMap); + public List> memberSelect(Map paramMap); + public void counselDelete(Map paramMap); + public void counselCivilChange(Map paramMap); +} diff --git a/src/main/java/seed/com/gtm/dao/OnlineCounselDaoImpl.java b/src/main/java/seed/com/gtm/dao/OnlineCounselDaoImpl.java new file mode 100644 index 00000000..8a681e01 --- /dev/null +++ b/src/main/java/seed/com/gtm/dao/OnlineCounselDaoImpl.java @@ -0,0 +1,60 @@ +package seed.com.gtm.dao; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.session.SqlSession; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class OnlineCounselDaoImpl implements OnlineConunselDao { + + @Autowired + private SqlSession sqlSession; + + @Override + public List> counselList(Map paramMap) { + return sqlSession.selectList("onlineCounsel.select", paramMap); + } + + @Override + public int counselTot(Map paramMap) { + return sqlSession.selectOne("onlineCounsel.selectTot", paramMap); + } + + @Override + public Map counselView(Map paramMap) { + return sqlSession.selectOne("onlineCounsel.view", paramMap); + } + + @Override + public void counselUpdate(Map paramMap) { + sqlSession.update("onlineCounsel.update", paramMap); + } + + @Override + public void counselUpdateState(Map paramMap) { + sqlSession.update("onlineCounsel.updateState", paramMap); + } + + @Override + public void lawCounselUpdate(Map paramMap) { + sqlSession.update("onlineCounsel.lawUpdate", paramMap); + } + + @Override + public List> memberSelect(Map paramMap) { + return sqlSession.selectList("onlineCounsel.memberSelect", paramMap); + } + + @Override + public void counselDelete(Map paramMap) { + sqlSession.update("onlineCounsel.delete", paramMap); + } + + @Override + public void counselCivilChange(Map paramMap) { + sqlSession.update("onlineCounsel.civilChange", paramMap); + } +} diff --git a/src/main/java/seed/com/gtm/util/Criteria.java b/src/main/java/seed/com/gtm/util/Criteria.java new file mode 100644 index 00000000..2aa8f82b --- /dev/null +++ b/src/main/java/seed/com/gtm/util/Criteria.java @@ -0,0 +1,42 @@ +package seed.com.gtm.util; + +public class Criteria { + private int page; + private int perPageNum; + + public Criteria(){ + this.page= 1; + this.perPageNum = 10; + } + + public void setPage(int page){ + if(page <= 0){ + this.page = 1; + return; + } + + this.page = page; + } + + public void setPerPageNum(int perPageNum){ + if(perPageNum <= 0 || perPageNum > 100){ + this.perPageNum = 10; + return; + } + + this.perPageNum = perPageNum; + } + + public int getPage(){ + return page; + } + + public int getPageStart(){ + return (this.page - 1) * perPageNum; + } + + public int getPerPageNum(){ + return this.perPageNum; + } + +} diff --git a/src/main/java/seed/com/user/counsel/CounselController.java b/src/main/java/seed/com/user/counsel/CounselController.java new file mode 100644 index 00000000..3eb29ff9 --- /dev/null +++ b/src/main/java/seed/com/user/counsel/CounselController.java @@ -0,0 +1,1568 @@ +package seed.com.user.counsel; + +import java.text.ParseException; +import java.util.Date; +import java.util.List; +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.ui.ModelMap; +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.ibm.icu.text.SimpleDateFormat; + +import seed.com.gtm.seedfile.SeedFileService; +import seed.manager.group.service.ManagerGroupService; +import seed.manager.member.service.ManagerMemberService; +import seed.manager.site.service.ManagerSiteManagerService; +import seed.manager.site.service.ManagerSiteMenuAuthService; +import seed.manager.site.service.ManagerSiteMenuManagerService; +import seed.manager.site.service.ManagerSiteMenuService; +import seed.utils.SeedUtils; + + +@Controller +public class CounselController { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private ManagerSiteMenuService managerSiteMenuService; + + @Autowired + private ManagerSiteManagerService managerSiteManagerService; + + @Autowired + private ManagerMemberService managerMemberService; + + @Autowired + private ManagerSiteMenuManagerService managerSiteMenuManagerService; + + @Autowired + private ManagerSiteMenuAuthService managerSiteMenuAuthService; + + @Autowired + private ManagerGroupService managerGroupService; + + @Autowired + private CounselService service; + + @Autowired + private SeedFileService fileService; + + @Value("#{config['member.merge']}") + private String memberMerge; + + @Value("#{config['member.merge.siteIdx']}") + private String memberMergeSiteIdx; + + 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"); + } + + // /user/onlineCounsel/case/01/158/write.do + @RequestMapping(value="/user/onlineCounsel/{siteIdx}/01/{siteMenuIdx}/write.do", method=RequestMethod.GET) + public ModelAndView onlineCounselWrite(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck")); + if(tempHpDi.equals("") || tempPersonalCheck.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + return new ModelAndView("/_extra/user/onlineCounsel/write"); + } + + // /user/onlineCounsel/case/01/158/write.do + @RequestMapping(value="/user/onlineCounsel/{siteIdx}/01/{siteMenuIdx}/write.do", method=RequestMethod.POST) + public ModelAndView onlineCounselWrite(ModelMap map, HttpServletRequest request , HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck")); + if(tempHpDi.equals("") || tempPersonalCheck.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + + + String applcntTel01 = SeedUtils.setReplaceNull(paramMap.get("applcntTel01")); + String applcntTel02 = SeedUtils.setReplaceNull(paramMap.get("applcntTel02")); + String applcntTel03 = SeedUtils.setReplaceNull(paramMap.get("applcntTel03")); + String applcntTel = applcntTel01 + "-" + applcntTel02 + "-" + applcntTel03; + paramMap.put("applcntTel", applcntTel); + + service.onlineCounselInsert(paramMap); + paramMap.put("dataIdx", paramMap.get("seq")); + fileService.fileInsert(paramMap, request, session); + + map.put("siteIdx", "case"); + map.put("url", "/user/mypage/case/02/170/myOnlinCounsel.do"); + map.put("message", "user.message.mod"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + // /user/onlineCounsel/case/01/158/step01.do + @RequestMapping("/user/onlineCounsel/{siteIdx}/01/{siteMenuIdx}/step01.do") + public ModelAndView onlineCounselStep01(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + return new ModelAndView("/_extra/user/onlineCounsel/counselStep01"); + } + + // /user/onlineCounsel/case/01/158/step02.do + @RequestMapping("/user/onlineCounsel/{siteIdx}/01/{siteMenuIdx}/step02.do") + public ModelAndView onlineCounselStep02(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + return new ModelAndView("/_extra/user/onlineCounsel/counselStep02"); + } + + // /user/onlineCounsel/case/01/158/step03.do + @RequestMapping("/user/onlineCounsel/{siteIdx}/01/{siteMenuIdx}/step03.do") + public ModelAndView onlineCounselStep03(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempSrvNo = SeedUtils.setReplaceNull(session.getAttribute("srvNo")); + String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck")); + if(tempSrvNo.equals("") || tempPersonalCheck.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + map.put("id", session.getAttribute("id")); + map.put("retUrl", session.getAttribute("retUrl")); + map.put("srvNo", session.getAttribute("srvNo")); + map.put("reqNum", session.getAttribute("reqNum")); + map.put("reqInfo", session.getAttribute("reqInfo")); + map.put("hpRetUrl", session.getAttribute("hpRetUrl")); + map.put("hpReqInfo", session.getAttribute("hpReqInfo")); + + session.removeAttribute("id"); + session.removeAttribute("retUrl"); + session.removeAttribute("srvNo"); + session.removeAttribute("reqNum"); + session.removeAttribute("reqInfo"); + session.removeAttribute("hpRetUrl"); + session.removeAttribute("hpReqInfo"); + + return new ModelAndView("/_extra/user/onlineCounsel/counselStep03"); + } + + + // /user/lawCounsel/case/02/159/step01.do + @RequestMapping("/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/step01.do") + public ModelAndView lawCounselStep01(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + return new ModelAndView("/_extra/user/onlineCounsel/lawCounselStep01"); + } + + + // /user/lawCounsel/case/02/159/step02.do + @RequestMapping("/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/step02.do") + public ModelAndView lawCounselStep02(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + return new ModelAndView("/_extra/user/onlineCounsel/lawCounselStep02"); + } + + + // /user/lawCounsel/case/02/159/step03.do + @RequestMapping("/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/step03.do") + public ModelAndView lawCounselStep03(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempSrvNo = SeedUtils.setReplaceNull(session.getAttribute("srvNo")); + String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck")); + if(tempSrvNo.equals("") || tempPersonalCheck.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + map.put("id", session.getAttribute("id")); + map.put("retUrl", session.getAttribute("retUrl")); + map.put("srvNo", session.getAttribute("srvNo")); + map.put("reqNum", session.getAttribute("reqNum")); + map.put("reqInfo", session.getAttribute("reqInfo")); + map.put("hpRetUrl", session.getAttribute("hpRetUrl")); + map.put("hpReqInfo", session.getAttribute("hpReqInfo")); + + session.removeAttribute("id"); + session.removeAttribute("retUrl"); + session.removeAttribute("srvNo"); + session.removeAttribute("reqNum"); + session.removeAttribute("reqInfo"); + session.removeAttribute("hpRetUrl"); + session.removeAttribute("hpReqInfo"); + + return new ModelAndView("/_extra/user/onlineCounsel/lawCounselStep03"); + } + + // /user/lawCounsel/case/02/159/lawWrite.do + @RequestMapping(value="/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/lawWrite.do", method=RequestMethod.GET) + public ModelAndView lawCounselWrite(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck")); + if(tempHpDi.equals("") || tempPersonalCheck.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + return new ModelAndView("/_extra/user/onlineCounsel/lawWrite"); + } + + + // /user/lawCounsel/case/02/159/lawWrite.do + @RequestMapping(value="/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/lawWrite.do", method=RequestMethod.POST) + public ModelAndView lawCounselWrite(ModelMap map, HttpServletRequest request , HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck")); + if(tempHpDi.equals("") || tempPersonalCheck.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + 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 memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true; + + //메뉴 권한설정 + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && + !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ + + map.put("message", "common.message.no.grant"); + + if(memberIdx.equals(0)){ + map.put("url", "/"+siteIdx+"/index.do"); + }else{ + map.put("self", "history"); + } + + return new ModelAndView("/_common/jsp/umessage"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + String reserveTel01 = SeedUtils.setReplaceNull(paramMap.get("reserveTel01")); + String reserveTel02 = SeedUtils.setReplaceNull(paramMap.get("reserveTel02")); + String reserveTel03 = SeedUtils.setReplaceNull(paramMap.get("reserveTel03")); + String reserveTel = reserveTel01 + "-" + reserveTel02 + "-" + reserveTel03; + paramMap.put("reserveTel", reserveTel); + + String applcntTel01 = SeedUtils.setReplaceNull(paramMap.get("applcntTel01")); + String applcntTel02 = SeedUtils.setReplaceNull(paramMap.get("applcntTel02")); + String applcntTel03 = SeedUtils.setReplaceNull(paramMap.get("applcntTel03")); + String applcntTel = applcntTel01 + "-" + applcntTel02 + "-" + applcntTel03; + paramMap.put("applcntTel", applcntTel); + + service.lawCounselInsert(paramMap); + paramMap.put("dataIdx", paramMap.get("seq")); + fileService.fileInsert(paramMap, request, session); + + map.put("siteIdx", "case"); + map.put("url", "/user/mypage/case/03/242/myLawCounsel.do"); + map.put("message", "user.message.mod"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + @RequestMapping("/onlineCounsel/user/check.do") + public ModelAndView counselUserCheck(ModelMap map, HttpServletRequest req, HttpServletResponse response, HttpSession session) { + String reqCert = SeedUtils.setReplaceNull(req.getParameter("reqCert")); + String reqName = SeedUtils.setReplaceNull(req.getParameter("reqName")); + + if(reqCert.equals("") || reqName.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + session.setAttribute("hpName", reqName); + session.setAttribute("hpDi", reqCert); + session.setAttribute("personalCheck", "Y"); + + //세션유지 2시간 + session.setMaxInactiveInterval(60*60*2); + + return new ModelAndView("redirect:/user/onlineCounsel/case/01/158/write.do"); + } + + @RequestMapping("/lawCounsel/user/check.do") + public ModelAndView lawCounselUserCheck(ModelMap map, HttpServletRequest req, HttpServletResponse response, HttpSession session) { + String reqCert = SeedUtils.setReplaceNull(req.getParameter("reqCert")); + String reqName = SeedUtils.setReplaceNull(req.getParameter("reqName")); + + if(reqCert.equals("") || reqName.equals("")){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.alert"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + session.setAttribute("hpName", reqName); + session.setAttribute("hpDi", reqCert); + session.setAttribute("personalCheck", "Y"); + + //세션유지 2시간 + session.setMaxInactiveInterval(60*60*2); + + return new ModelAndView("redirect:/user/lawCounsel/case/02/159/lawWrite.do"); + } +} + + diff --git a/src/main/java/seed/com/user/counsel/CounselService.java b/src/main/java/seed/com/user/counsel/CounselService.java new file mode 100644 index 00000000..e18294a8 --- /dev/null +++ b/src/main/java/seed/com/user/counsel/CounselService.java @@ -0,0 +1,22 @@ +package seed.com.user.counsel; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import seed.com.user.dao.CounselDao; + +@Service +public class CounselService { + @Autowired + private CounselDao dao; + + public void onlineCounselInsert(Map paramMap){ + dao.onlineCounselInsert(paramMap); + } + + public void lawCounselInsert(Map paramMap){ + dao.lawCounselInsert(paramMap); + } +} diff --git a/src/main/java/seed/com/user/dao/CounselDao.java b/src/main/java/seed/com/user/dao/CounselDao.java new file mode 100644 index 00000000..a541f630 --- /dev/null +++ b/src/main/java/seed/com/user/dao/CounselDao.java @@ -0,0 +1,8 @@ +package seed.com.user.dao; + +import java.util.Map; + +public interface CounselDao { + public void onlineCounselInsert(Map paramMap); + public void lawCounselInsert(Map paramMap); +} diff --git a/src/main/java/seed/com/user/dao/CounselDaoImpl.java b/src/main/java/seed/com/user/dao/CounselDaoImpl.java new file mode 100644 index 00000000..6a1258d3 --- /dev/null +++ b/src/main/java/seed/com/user/dao/CounselDaoImpl.java @@ -0,0 +1,27 @@ +package seed.com.user.dao; + +import java.util.Map; + +import org.apache.ibatis.session.SqlSession; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class CounselDaoImpl implements CounselDao { + + @Autowired + private SqlSession sqlSession; + + @Override + public void onlineCounselInsert(Map paramMap) { + // TODO Auto-generated method stub + sqlSession.insert("onlineCounsel.insert", paramMap); + } + + @Override + public void lawCounselInsert(Map paramMap) { + // TODO Auto-generated method stub + sqlSession.insert("onlineCounsel.lawInsert", paramMap); + } + +} diff --git a/src/main/java/seed/common/service/CommonFileService.java b/src/main/java/seed/common/service/CommonFileService.java new file mode 100644 index 00000000..ac17526e --- /dev/null +++ b/src/main/java/seed/common/service/CommonFileService.java @@ -0,0 +1,20 @@ +package seed.common.service; + +import java.util.List; + +import org.springframework.web.multipart.MultipartFile; + +import seed.map.T_COMMON_FILE; + +public interface CommonFileService { + + public T_COMMON_FILE getCommonFileForm(Integer commonFileIdx); + + public List getCommonFileList(Integer funcIdx, String fileCode); + + public T_COMMON_FILE setCommonFileRegProc(T_COMMON_FILE tCommonFile, MultipartFile upFile, String siteIdx, boolean fileEncryChk, Integer funcIdx, String fileCode, String rootPath); + + public boolean setCommonFileDelProc(Integer commonFileIdx, String siteIdx, String rootPath); + + public boolean setMultiFileRegProc(List upFiles, String siteIdx, String filePath, String rootPath); +} diff --git a/src/main/java/seed/common/service/CommonFileServiceImpl.java b/src/main/java/seed/common/service/CommonFileServiceImpl.java new file mode 100644 index 00000000..a65a4ded --- /dev/null +++ b/src/main/java/seed/common/service/CommonFileServiceImpl.java @@ -0,0 +1,191 @@ +package seed.common.service; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +import net.coobird.thumbnailator.Thumbnails; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.CommonFileDAO; +import seed.map.T_COMMON_FILE; +import seed.utils.SeedFileUtils; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Service +public class CommonFileServiceImpl extends AbstractServiceImpl implements CommonFileService{ + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private CommonFileDAO commonFileDAO; + + public List getCommonFileList(Integer funcIdx, String fileCode){ + + return commonFileDAO.getCommonFileList(funcIdx, fileCode); + } + + public T_COMMON_FILE getCommonFileForm(Integer commonFileIdx){ + + return commonFileDAO.getCommonFileForm(commonFileIdx); + } + + @Transactional + public T_COMMON_FILE setCommonFileRegProc(T_COMMON_FILE tCommonFile, MultipartFile upFile, String siteIdx, boolean fileEncryChk, Integer funcIdx, String fileCode, String rootPath){ + + try{ + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + + String toDate = sdfFormat.format(new Date()).substring(0, 8); + + //오늘날짜 18시 이후면 다른 폴더 삭제 및 DB삭제 + if(Integer.parseInt(sdfFormat.format(new Date()).substring(8, 10)) >= 18){ + SeedUtils.setSeedDeleteFiles(rootPath + "/" + siteIdx + "/upload/tempFiles/", toDate); + + List tCommonFileList = commonFileDAO.getCommonFileList(toDate); + if(tCommonFileList != null && tCommonFileList.size() > 0){ + for(int i=0; i upFiles, String siteIdx, String filePath, String rootPath){ + + boolean success = false; + + try{ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + for(int f=0; f getMenuAuthList(String siteIdx, String[] qryColumns); + + //CommonController + public List> getMenuAuthMapList(String siteIdx, String[] qryColumns);} diff --git a/src/main/java/seed/common/service/CommonMenuAuthServiceImpl.java b/src/main/java/seed/common/service/CommonMenuAuthServiceImpl.java new file mode 100644 index 00000000..078ce68f --- /dev/null +++ b/src/main/java/seed/common/service/CommonMenuAuthServiceImpl.java @@ -0,0 +1,31 @@ +package seed.common.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.MenuAuthDAO; +import seed.map.T_MENU_AUTH; + +@Service +public class CommonMenuAuthServiceImpl extends AbstractServiceImpl implements CommonMenuAuthService{ + + @Autowired + private MenuAuthDAO menuAuthDAO; + + //AdminSiteController + public List getMenuAuthList(String siteIdx, String[] qryColumns){ + + return menuAuthDAO.getMenuAuthList(siteIdx, qryColumns); + } + + //CommonController + public List> getMenuAuthMapList(String siteIdx, String[] qryColumns){ + + return menuAuthDAO.getMenuAuthMapList(siteIdx, qryColumns); + } +} diff --git a/src/main/java/seed/common/service/CommonSatisfactionService.java b/src/main/java/seed/common/service/CommonSatisfactionService.java new file mode 100644 index 00000000..a8303e25 --- /dev/null +++ b/src/main/java/seed/common/service/CommonSatisfactionService.java @@ -0,0 +1,14 @@ +package seed.common.service; + +import java.util.List; + +import seed.map.T_SITE_SATISFACTION; + +public interface CommonSatisfactionService { + + //AdminSiteController + public List getCommonSatisfactionList(Integer siteMenuIdx, String[] qryColumns); + + //CommonController + public boolean setCommonSatisfactionRegProc(T_SITE_SATISFACTION tSiteSatisfaction, String memberIp); +} diff --git a/src/main/java/seed/common/service/CommonSatisfactionServiceImpl.java b/src/main/java/seed/common/service/CommonSatisfactionServiceImpl.java new file mode 100644 index 00000000..14cda62f --- /dev/null +++ b/src/main/java/seed/common/service/CommonSatisfactionServiceImpl.java @@ -0,0 +1,36 @@ +package seed.common.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.SiteSatisfactionDAO; +import seed.map.T_SITE_SATISFACTION; + +@Service +public class CommonSatisfactionServiceImpl extends AbstractServiceImpl implements CommonSatisfactionService{ + + @Autowired + private SiteSatisfactionDAO siteSatisfactionDAO; + + //AdminSiteController + public List getCommonSatisfactionList(Integer siteMenuIdx, String[] qryColumns){ + + return siteSatisfactionDAO.getCommonSatisfactionList(siteMenuIdx, qryColumns); + } + + //CommonController + @Transactional + public boolean setCommonSatisfactionRegProc(T_SITE_SATISFACTION tSiteSatisfaction, String memberIp){ + + tSiteSatisfaction.setSiteSatisfactionMemberIp(memberIp); + tSiteSatisfaction.setSiteSatisfactionRegDate(new Date()); + + return siteSatisfactionDAO.setCommonSatisfactionRegProc(tSiteSatisfaction); + } +} diff --git a/src/main/java/seed/common/service/LogsService.java b/src/main/java/seed/common/service/LogsService.java new file mode 100644 index 00000000..040529ea --- /dev/null +++ b/src/main/java/seed/common/service/LogsService.java @@ -0,0 +1,10 @@ +package seed.common.service; + +import java.util.Map; + +public interface LogsService { + + public void setLogsRegProc(Integer memberIdx, Integer memberModIdx, String memberIp, Map memberOldMap, String logsType); + + public void setLogsRegProc(String memberId, String memberName, Integer memberModIdx, String memberIp, Map memberOldMap, String logsType); +} diff --git a/src/main/java/seed/common/service/LogsServiceImpl.java b/src/main/java/seed/common/service/LogsServiceImpl.java new file mode 100644 index 00000000..664b8a78 --- /dev/null +++ b/src/main/java/seed/common/service/LogsServiceImpl.java @@ -0,0 +1,228 @@ +package seed.common.service; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.LogsDAO; +import seed.dao.MemberDAO; +import seed.map.T_LOGS; +import seed.map.T_MEMBER; +import seed.utils.SeedUtils; + +@Service +public class LogsServiceImpl extends AbstractServiceImpl implements LogsService{ + + @Autowired + private LogsDAO logsDAO; + + @Autowired + private MemberDAO memberDAO; + + @Transactional + public void setLogsRegProc(Integer memberIdx, Integer memberModIdx, String memberIp, Map memberOldMap, String logsType){ + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + ArrayList logsText = new ArrayList(); + + T_MEMBER tMember = memberDAO.getMemberForm(memberIdx); + + T_MEMBER tMemberMod = memberDAO.getMemberForm(memberModIdx); + + if(logsType.equals("M")){ + + if(!SeedUtils.setReplaceNull(tMember.getMemberId()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberId").toString()))){ + logsText.add("memberId"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberName()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberName")).toString())){ + logsText.add("memberName"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberPost()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPost")).toString())){ + logsText.add("memberPost"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberAddress1()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberAddress1")).toString())){ + logsText.add("memberAddress1"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberAddress2()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberAddress2")).toString())){ + logsText.add("memberAddress2"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberEmail1()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberEmail1")).toString()) || + !SeedUtils.setReplaceNull(tMember.getMemberEmail2()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberEmail2")).toString())){ + logsText.add("memberEmail"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberPw()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPw")).toString())){ + logsText.add("memberPw"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberDept()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberDept")).toString())){ + logsText.add("memberDept"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberPosition()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPosition")).toString())){ + logsText.add("memberPosition"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberTel()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberTel")).toString())){ + logsText.add("memberTel"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberPhone()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPhone")).toString())){ + logsText.add("memberPhone"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemA1()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemA1")).toString())){ + logsText.add("memberItemA1"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemB2()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemB2")).toString())){ + logsText.add("memberItemB2"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemC3()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemC3")).toString())){ + logsText.add("memberItemC3"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemD4()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemD4")).toString())){ + logsText.add("memberItemD4"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemE5()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemE5")).toString())){ + logsText.add("memberItemE5"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemF6()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemF6")).toString())){ + logsText.add("memberItemF6"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemG7()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemG7")).toString())){ + logsText.add("memberItemG7"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemH8()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemH8")).toString())){ + logsText.add("memberItemH8"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemI9()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemI9")).toString())){ + logsText.add("memberItemI9"); + } + + if(!SeedUtils.setReplaceNull(tMember.getMemberItemJ10()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemJ10")).toString())){ + logsText.add("memberItemJ10"); + } + + if(logsText.size() > 0){ + + for(int i=0; i memberOldMap, String logsType){ + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + T_LOGS tLogsDB = new T_LOGS(); + + //사용자 페이지에서 회원탈퇴한 경우 + if(memberModIdx.equals(0)){ + + tLogsDB.setMemberId(memberId); + tLogsDB.setMemberName(memberName); + tLogsDB.setLogsType("MEMBER"); + tLogsDB.setLogsSubType(logsType); + tLogsDB.setLogsYYYY(getDate.substring(0, 4)); + tLogsDB.setLogsMM(getDate.substring(4, 6)); + tLogsDB.setLogsDD(getDate.substring(6, 8)); + tLogsDB.setLogsHour(getDate.substring(8, 10)); + tLogsDB.setLogsMinute(getDate.substring(10, 12)); + tLogsDB.setLogsSecond(getDate.substring(12, 14)); + tLogsDB.setMemberIp(memberIp); + tLogsDB.setMemberModId(memberId); + tLogsDB.setMemberModName(memberName); + tLogsDB.setLogsRegDate(new Date()); + + }else{ + + T_MEMBER tMemberMod = memberDAO.getMemberForm(memberModIdx); + + tLogsDB.setMemberId(memberId); + tLogsDB.setMemberName(memberName); + tLogsDB.setLogsType("MEMBER"); + tLogsDB.setLogsSubType(logsType); + tLogsDB.setLogsYYYY(getDate.substring(0, 4)); + tLogsDB.setLogsMM(getDate.substring(4, 6)); + tLogsDB.setLogsDD(getDate.substring(6, 8)); + tLogsDB.setLogsHour(getDate.substring(8, 10)); + tLogsDB.setLogsMinute(getDate.substring(10, 12)); + tLogsDB.setLogsSecond(getDate.substring(12, 14)); + tLogsDB.setMemberIp(memberIp); + tLogsDB.setMemberModId(tMemberMod.getMemberId()); + tLogsDB.setMemberModName(tMemberMod.getMemberName()); + tLogsDB.setLogsRegDate(new Date()); + } + + logsDAO.setLogsRegProc(tLogsDB); + } +} \ No newline at end of file diff --git a/src/main/java/seed/dao/SiteManagerDAO.java b/src/main/java/seed/dao/SiteManagerDAO.java new file mode 100644 index 00000000..23c4ee3a --- /dev/null +++ b/src/main/java/seed/dao/SiteManagerDAO.java @@ -0,0 +1,41 @@ +package seed.dao; + +import java.util.List; + +import seed.map.T_SITE_MANAGER; +import seed.map.VIEW_MANAGER_DATA; + +public interface SiteManagerDAO { + + //AdminMemberService, ManagerMemberService + public List getSiteManagerList(Integer memberIdx); + + //ManagerMemberService + public List getSiteManagerList(Integer memberIdx, String[] qryColumns); + + public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx); + + //AdminGroupsService , AdminSiteService + public Long getSiteManagerListCnt(Integer memberIdx); + + //AdminSiteManagerService + public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search); + + //AdminSiteManagerService + public List getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //ManagerSiteManagerService + public List getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns); + + //AdminSiteService, AdminSiteManagerService + public T_SITE_MANAGER getSiteManagerForm(Integer siteManagerIdx); + + //AdminSiteManagerService + public boolean setSiteManagerRegProc(T_SITE_MANAGER tSiteManager); + + //AdminSiteService, AdminSiteManagerService + public boolean setSiteManagerModProc(T_SITE_MANAGER tSiteManager); + + //AdminSiteManagerService + public boolean setSiteManagerDelProc(T_SITE_MANAGER tSiteManager); +} diff --git a/src/main/java/seed/dao/SiteManagerDAOImpl.java b/src/main/java/seed/dao/SiteManagerDAOImpl.java new file mode 100644 index 00000000..bdb322eb --- /dev/null +++ b/src/main/java/seed/dao/SiteManagerDAOImpl.java @@ -0,0 +1,311 @@ +package seed.dao; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.hibernate.Criteria; +import org.hibernate.HibernateException; +import org.hibernate.SessionFactory; +import org.hibernate.criterion.MatchMode; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.ProjectionList; +import org.hibernate.criterion.Projections; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Repository; + +import seed.map.T_SITE_MANAGER; +import seed.map.VIEW_MANAGER_DATA; + +@Repository +public class SiteManagerDAOImpl implements SiteManagerDAO{ + + private Logger log = Logger.getLogger(this.getClass()); + + private SessionFactory sessionFactory; + + public void setSessionFactory(SessionFactory sessionFactory) { + this.sessionFactory = sessionFactory; + } + + //AdminMemberService, ManagerMemberService + @SuppressWarnings("unchecked") + public List getSiteManagerList(Integer memberIdx){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class); + + criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx)); + + return criteria.list(); + } + + //ManagerMemberService + @SuppressWarnings("unchecked") + public List getSiteManagerList(Integer memberIdx, String[] qryColumns){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_MANAGER_DATA.class); + + if(qryColumns != null && qryColumns.length > 0){ + ProjectionList projectionList = Projections.projectionList(); + boolean groupCheck = false; + for(int q=0; q= 0){ + groupCheck = true; + continue; + } + if(groupCheck){ + if(qryColumns[q].indexOf("Cnt") >= 0){ + String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt")); + projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + }else{ + projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + } + }else{ + projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + } + } + + criteria.setProjection(projectionList); + criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); + } + + criteria.add(Restrictions.eq("memberIdx", memberIdx)); + + return criteria.list(); + } + + @SuppressWarnings("deprecation") + public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class); + + criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN); + + criteria.add( + Restrictions.and( + Restrictions.and( + Restrictions.and( + Restrictions.eq("tSite.siteIdx", siteIdx), + Restrictions.eq("siteManagerStatus", "U")), + Restrictions.eq("tMember.memberIdx", memberIdx)), + Restrictions.eq("tMember.memberStatus", "U"))); + + criteria.setProjection(Projections.rowCount()); + + return (Long)criteria.uniqueResult(); + } + + //AdminGroupsService , AdminSiteService + public Long getSiteManagerListCnt(Integer memberIdx){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class); + + criteria.add( + Restrictions.and( + Restrictions.eq("siteManagerStatus", "U"), + Restrictions.eq("tMember.memberIdx", memberIdx))); + + criteria.setProjection(Projections.rowCount()); + + return (Long)criteria.uniqueResult(); + } + + //AdminSiteManagerService + @SuppressWarnings("deprecation") + public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class); + + criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN); + criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN); + + criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx)); + + if(!selGroup.equals(0)){ + criteria.add(Restrictions.eq("tGroups.tGroup.groupIdx", selGroup)); + } + + if(!column.equals("")){ + if(column.equals("A")){ + if(!search.equals("")){ + criteria.add( + Restrictions.or( + Restrictions.like("tMember.memberId", search, MatchMode.ANYWHERE), + Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE))); + } + }else{ + criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE)); + } + } + + criteria.setProjection(Projections.rowCount()); + + return (Long)criteria.uniqueResult(); + } + + //AdminSiteManagerService + @SuppressWarnings({ "unchecked", "deprecation" }) + public List getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class); + + criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN); + criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN); + + if(qryColumns != null && qryColumns.length > 0){ + ProjectionList projectionList = Projections.projectionList(); + boolean groupCheck = false; + for(int q=0; q= 0){ + groupCheck = true; + continue; + } + if(groupCheck){ + if(qryColumns[q].indexOf("Cnt") >= 0){ + String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt")); + projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + }else{ + projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + } + }else{ + projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + } + } + + criteria.setProjection(projectionList); + criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); + } + + criteria.setFirstResult(page); + criteria.setMaxResults(row); + + criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx)); + + if(!selGroup.equals(0)){ + criteria.add(Restrictions.eq("tGroups.tGroup.groupIdx", selGroup)); + } + + if(!column.equals("")){ + if(column.equals("A")){ + if(!search.equals("")){ + criteria.add( + Restrictions.or( + Restrictions.like("tMember.memberId", search, MatchMode.ANYWHERE), + Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE))); + } + }else{ + criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE)); + } + } + + if(orderColumn.equals("")){ + orderColumn = "siteManagerIdx"; + } + + if(order.equals("DESC")){ + criteria.addOrder(Order.desc(orderColumn)); + }else{ + criteria.addOrder(Order.asc(orderColumn)); + } + + return criteria.list(); + } + + //ManagerSiteManagerService + @SuppressWarnings({ "unchecked", "deprecation" }) + public List getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){ + + Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class); + + criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN); + criteria.createCriteria("tSite", "tSite", Criteria.LEFT_JOIN); + + if(qryColumns != null && qryColumns.length > 0){ + ProjectionList projectionList = Projections.projectionList(); + boolean groupCheck = false; + for(int q=0; q= 0){ + groupCheck = true; + continue; + } + if(groupCheck){ + if(qryColumns[q].indexOf("Cnt") >= 0){ + String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt")); + projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + }else{ + projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + } + }else{ + projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1))); + } + } + + criteria.setProjection(projectionList); + criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); + } + + if(!memberMergeSiteIdx.equals("")){ + criteria.add(Restrictions.ne("tSite.siteIdx", memberMergeSiteIdx)); + } + + criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx)); + + return criteria.list(); + } + + //AdminSiteService, AdminSiteManagerService + public T_SITE_MANAGER getSiteManagerForm(Integer siteManagerIdx){ + + return (T_SITE_MANAGER) this.sessionFactory.getCurrentSession().load(T_SITE_MANAGER.class, siteManagerIdx); + } + + //AdminSiteService, AdminSiteManagerService, ManagerSiteService + public boolean setSiteManagerRegProc(T_SITE_MANAGER tSiteManager){ + + boolean success = false; + + try{ + this.sessionFactory.getCurrentSession().save(tSiteManager); + this.sessionFactory.getCurrentSession().flush(); + this.sessionFactory.getCurrentSession().clear(); + success = true; + }catch(HibernateException ex){ + log.error("CHECK ERROR:",ex); + } + + return success; + } + + //AdminSiteService, AdminSiteManagerService + public boolean setSiteManagerModProc(T_SITE_MANAGER tSiteManager){ + + boolean success = false; + + try{ + this.sessionFactory.getCurrentSession().update(tSiteManager); + this.sessionFactory.getCurrentSession().flush(); + this.sessionFactory.getCurrentSession().clear(); + success = true; + }catch(HibernateException ex){ + log.error("CHECK ERROR:",ex); + } + + return success; + } + + //AdminSiteManagerService + public boolean setSiteManagerDelProc(T_SITE_MANAGER tSiteManager){ + + boolean success = false; + + try{ + this.sessionFactory.getCurrentSession().delete(tSiteManager); + this.sessionFactory.getCurrentSession().flush(); + this.sessionFactory.getCurrentSession().clear(); + success = true; + }catch(HibernateException ex){ + log.error("CHECK ERROR:",ex); + } + + return success; + } +} diff --git a/src/main/java/seed/manager/bbs/service/ManagerBbsDataService.java b/src/main/java/seed/manager/bbs/service/ManagerBbsDataService.java new file mode 100644 index 00000000..bb69cb0f --- /dev/null +++ b/src/main/java/seed/manager/bbs/service/ManagerBbsDataService.java @@ -0,0 +1,66 @@ +package seed.manager.bbs.service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.web.multipart.MultipartFile; + +import seed.map.T_BBS_DATA; + +public interface ManagerBbsDataService { + + //ManagerBbsController + public List> getBbsDashboardList(String siteIdx, int page, int row, ArrayList qryArrayList); + + //ManagerBbsController + public List> getBbsDataMiniList(Integer bbsSetIdx, int page, int row, String bbsSetDateOrder, ArrayList qryArrayList); + + //ManagerBbsController + public T_BBS_DATA getBbsDataForm(Integer bbsDataIdx); + + //ManagerBbsController + public T_BBS_DATA getBbsReplyForm(Integer bbsDataGroup, Integer bbsDataFam); + + //ManagerBbsController + public Map getBbsDataPreForm(T_BBS_DATA tBbsData, String column, String search, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns); + + //ManagerBbsController + public Map getBbsDataNextForm(T_BBS_DATA tBbsData, String column, String search, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns); + + //ManagerBbsController + public List> getBbsNoticeDataList(Integer bbsSetIdx, String column, String search, String bbsSetDateOrder, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList); + + //ManagerBbsController + public Long getBbsDataListCnt(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList); + + //ManagerBbsController + public List> getBbsDataList(Integer bbsSetIdx, int page, int row, String column, String search, String bbsSetDateOrder, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList); + + //ManagerBbsController + public List> getBbsDataList(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList); + + //ManagerBbsController + public boolean setBbsDataCopyProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx, Integer memberIdx, String memberIp, Integer thumbWidth, Integer thumbHeight, String rootPath); + + //ManagerBbsController + public boolean setBbsDataMoveProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx); + + //ManagerBbsController + public Integer setBbsDataRegProc(T_BBS_DATA tBbsData, Integer memberIdx, String memberIp, String fileCode, List upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath); + + //ManagerBbsController + public Integer setBbsDataReplyProc(T_BBS_DATA tBbsData, Integer bbsFamIdx, Integer memberIdx, String memberIp, String fileCode, List upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath); + + //ManagerBbsController + public String setBbsDataModProc(T_BBS_DATA tBbsData, Integer memberIdx, String memberIp, Integer[] bbsFileIdx, String fileCode, List upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath); + + //ManagerBbsController + public String setBbsDataDelProc(Integer bbsDataIdx, String bbsSetTrash, String rootPath); + + //ManagerBbsController + public boolean setBbsDataStatusProc(Integer bbsDataIdx, String status, String memberIp, String rootPath); + + //ManagerBbsController + public void setBbsDataHitProc(Integer bbsDataIdx); +} diff --git a/src/main/java/seed/manager/bbs/service/ManagerBbsDataServiceImpl.java b/src/main/java/seed/manager/bbs/service/ManagerBbsDataServiceImpl.java new file mode 100644 index 00000000..8be87342 --- /dev/null +++ b/src/main/java/seed/manager/bbs/service/ManagerBbsDataServiceImpl.java @@ -0,0 +1,2177 @@ +package seed.manager.bbs.service; + +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.imageio.ImageIO; +import javax.media.jai.JAI; +import javax.media.jai.RenderedOp; + +import net.coobird.thumbnailator.Thumbnails; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.common.service.CommonFileService; +import seed.dao.BbsDataDAO; +import seed.dao.BbsFileDAO; +import seed.dao.FileDownLoadDAO; +import seed.map.T_BBS_DATA; +import seed.map.T_BBS_FILE; +import seed.map.T_BBS_SET; +import seed.map.T_COMMON_FILE; +import seed.map.T_FILE_DOWNLOAD; +import seed.map.T_MEMBER; +import seed.map.T_POINT; +import seed.utils.SeedCvtDOCToHtml; +import seed.utils.SeedCvtDOCXToHtml; +import seed.utils.SeedCvtPDFToImg; +import seed.utils.SeedCvtPPTToImg; +import seed.utils.SeedCvtPPTXToImg; +import seed.utils.SeedCvtXLSToHtml; +import seed.utils.SeedCvtXLSXToHtml; +import seed.utils.SeedFileUtils; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Service +public class ManagerBbsDataServiceImpl extends AbstractServiceImpl implements ManagerBbsDataService{ + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private BbsDataDAO bbsDataDAO; + + @Autowired + private BbsFileDAO bbsFileDAO; + + @Autowired + private FileDownLoadDAO fileDownLoadDAO; + + @Autowired + private CommonFileService commonFileService; + + //AdminBbsController, ManagerBbsController + public List> getBbsDashboardList(String siteIdx, int page, int row, ArrayList qryArrayList){ + + return bbsDataDAO.getBbsDashboardList(siteIdx, ((page-1) * row), row, qryArrayList); + } + + //ManagerBbsController + public List> getBbsDataMiniList(Integer bbsSetIdx, int page, int row, String bbsSetDateOrder, ArrayList qryArrayList){ + + return bbsDataDAO.getBbsDataMiniList(bbsSetIdx, ((page-1) * row), row, bbsSetDateOrder, qryArrayList); + } + + //ManagerBbsController + public T_BBS_DATA getBbsDataForm(Integer bbsDataIdx){ + + return bbsDataDAO.getBbsDataForm(bbsDataIdx); + } + + //ManagerBbsController + public T_BBS_DATA getBbsReplyForm(Integer bbsDataGroup, Integer bbsDataFam){ + + return bbsDataDAO.getBbsReplyForm(bbsDataGroup, bbsDataFam); + } + + //ManagerBbsController + public Map getBbsDataPreForm(T_BBS_DATA tBbsData, String column, String search, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns){ + + return bbsDataDAO.getBbsDataPreForm(tBbsData, column, search, "N", 0, "", true, bbsDataCategory, searchSDate, searchEDate, qryColumns); + } + + //ManagerBbsController + public Map getBbsDataNextForm(T_BBS_DATA tBbsData, String column, String search, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns){ + + return bbsDataDAO.getBbsDataNextForm(tBbsData, column, search, "N", 0, "", true, bbsDataCategory, searchSDate, searchEDate, qryColumns); + } + + //ManagerBbsController + public List> getBbsNoticeDataList(Integer bbsSetIdx, String column, String search, String bbsSetDateOrder, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList){ + + return bbsDataDAO.getBbsNoticeDataList(bbsSetIdx, column, search, bbsSetDateOrder, bbsDataCategory, searchSDate, searchEDate, qryArrayList); + } + + //ManagerBbsController + public Long getBbsDataListCnt(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList){ + + return bbsDataDAO.getBbsDataListCnt(true, bbsSetIdx, column, search, bbsSetType, "N", 0, "", true, bbsDataCategory, searchSDate, searchEDate, qryArrayList); + } + + //ManagerBbsController + public List> getBbsDataList(Integer bbsSetIdx, int page, int row, String column, String search, String bbsSetDateOrder, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList){ + + return bbsDataDAO.getBbsDataList(true, bbsSetIdx, ((page-1) * row), row, column, search, bbsSetDateOrder, bbsSetType, "N", 0, "", true, bbsDataCategory, searchSDate, searchEDate, qryArrayList); + } + + //ManagerBbsController + public List> getBbsDataList(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList qryArrayList){ + + return bbsDataDAO.getBbsDataList(bbsSetIdx, column, search, bbsSetType, bbsDataCategory, searchSDate, searchEDate, qryArrayList); + } + + //ManagerBbsController + @Transactional + public boolean setBbsDataCopyProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx, Integer memberIdx, String memberIp, Integer thumbWidth, Integer thumbHeight, String rootPath){ + + boolean success = false; + + T_BBS_DATA tBbsDataOriginal = bbsDataDAO.getBbsDataForm(bbsDataIdxOriginal); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + T_BBS_SET tBbsSet = new T_BBS_SET(); + tBbsSet.setBbsSetIdx(bbsSetIdx); + + T_BBS_DATA tBbsDataNew = new T_BBS_DATA(); + tBbsDataNew.settMember(tMember); + + tBbsDataNew.settBbsSet(tBbsSet); + tBbsDataNew.setBbsDataNotice(tBbsDataOriginal.getBbsDataNotice()); + tBbsDataNew.setBbsDataNoticeSdate(tBbsDataOriginal.getBbsDataNoticeSdate()); + tBbsDataNew.setBbsDataNoticeEdate(tBbsDataOriginal.getBbsDataNoticeEdate()); + tBbsDataNew.setBbsDataTitle(tBbsDataOriginal.getBbsDataTitle()); + tBbsDataNew.setBbsDataGroup(0); + tBbsDataNew.setBbsDataPosition(0); + tBbsDataNew.setBbsDataFam(0); + tBbsDataNew.setBbsDataDepth(0); + tBbsDataNew.setBbsDataHit(0); + tBbsDataNew.setBbsDataStatus("U"); + tBbsDataNew.setBbsDataRegDate(sdf.format(new Date())); + tBbsDataNew.setBbsDataModDate(sdf.format(new Date())); + tBbsDataNew.setBbsDataMemberIp(memberIp); + tBbsDataNew.setBbsCommentCount(0); + tBbsDataNew.setBbsFileCount(0); + tBbsDataNew.setBbsDataThumbText(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataThumbText())); + tBbsDataNew.setBbsDataContent(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataContent())); + tBbsDataNew.setBbsDataItemA1(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemA1())); + tBbsDataNew.setBbsDataItemB2(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemB2())); + tBbsDataNew.setBbsDataItemC3(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemC3())); + tBbsDataNew.setBbsDataItemD4(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemD4())); + tBbsDataNew.setBbsDataItemE5(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemE5())); + tBbsDataNew.setBbsDataItemF6(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemF6())); + tBbsDataNew.setBbsDataItemG7(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemG7())); + tBbsDataNew.setBbsDataItemH8(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemH8())); + tBbsDataNew.setBbsDataItemI9(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemI9())); + tBbsDataNew.setBbsDataItemJ10(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemJ10())); + tBbsDataNew.setBbsDataYoutube(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataYoutube())); + + T_BBS_DATA tBbsDataDB = bbsDataDAO.setBbsDataRegProc(tBbsDataNew); + + if(tBbsDataDB != null){ + + String thumbFileName = ""; + + //복사할 파일들 가져옴 + List bbsFileListOriginal = bbsFileDAO.getBbsFileList(tBbsDataOriginal.getBbsDataIdx()); + + if(bbsFileListOriginal != null && bbsFileListOriginal.size() > 0){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + for(int f=0; f upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath){ + + Integer bbsDataIdx = 0; + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + + if(memberIdx > 0){ + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + tBbsData.settMember(tMember); + }else{ + String strCode = SeedUtils.getSeedMD5Code(tBbsData.getBbsDataPw()); + tBbsData.setBbsDataPw(SeedUtils.getSeedSHA256Code(strCode)); + } + + if(!SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("Y") && !SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("A")){ + tBbsData.setBbsDataNotice("N"); + tBbsData.setBbsDataNoticeSdate(""); + tBbsData.setBbsDataNoticeEdate(""); + } + + tBbsData.setBbsDataGroup(0); + tBbsData.setBbsDataPosition(0); + tBbsData.setBbsDataFam(0); + tBbsData.setBbsDataDepth(0); + tBbsData.setBbsDataHit(0); + tBbsData.setBbsDataStatus("U"); + + if(SeedUtils.setReplaceNull(tBbsData.getBbsDataRegDate()).equals("")){ + tBbsData.setBbsDataRegDate(sdf.format(new Date())); + } + + tBbsData.setBbsDataModDate(sdf.format(new Date())); + tBbsData.setBbsDataMemberIp(memberIp); + tBbsData.setBbsCommentCount(0); + tBbsData.setBbsFileCount(0); + + T_BBS_DATA tBbsDataDB = bbsDataDAO.setBbsDataRegProc(tBbsData); + + if(tBbsDataDB != null){ + + bbsDataIdx = tBbsDataDB.getBbsDataIdx(); + + String bbsDataContent = tBbsDataDB.getBbsDataContent(); + + String thumImg = ""; + String thumImgText = ""; + + if(SeedUtils.setReplaceNull(tBbsData.gettBbsSet().getBbsSetPoint()).equals("Y")){ + //게시글 포인트 + T_POINT tPoint = new T_POINT(); + + tPoint.setPointSetIdx(tBbsData.gettBbsSet().getBbsSetIdx()); + tPoint.setPointDataIdx(tBbsData.getBbsDataIdx()); + tPoint.setPointRegdate(sdf.format(new Date())); + tPoint.setMemberIp(memberIp); + tPoint.setMemberIdx(memberIdx); + tPoint.setSiteIdx(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()); + tPoint.setFuncType("BBS"); + tPoint.setPointScore(tBbsDataDB.gettBbsSet().getBbsSetPointWrite()); + + bbsDataDAO.setBbsPointProc(tPoint); + } + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + if(upFiles != null && upFiles.size() > 0){ + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + try{ + + for(int f=0; f 0){ + for(int d=0; d tCommonFileList = commonFileService.getCommonFileList(tBbsDataDB.gettBbsSet().getBbsSetIdx(), fileCode); + + if(tCommonFileList != null && tCommonFileList.size() > 0){ + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + for(int f=0; f upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath){ + + Integer bbsDataIdx = 0; + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + + T_BBS_DATA tBbsDataFam = bbsDataDAO.getBbsDataForm(bbsFamIdx); + bbsDataDAO.setBbsDataPosModProc(tBbsDataFam); + + if(memberIdx > 0){ + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + tBbsData.settMember(tMember); + }else{ + String strCode = SeedUtils.getSeedMD5Code(tBbsData.getBbsDataPw()); + tBbsData.setBbsDataPw(SeedUtils.getSeedSHA256Code(strCode)); + } + + tBbsData.setBbsDataNotice("N"); + tBbsData.setBbsDataGroup(tBbsDataFam.getBbsDataGroup()); + tBbsData.setBbsDataPosition(tBbsDataFam.getBbsDataPosition()+1); + tBbsData.setBbsDataFam(tBbsDataFam.getBbsDataIdx()); + tBbsData.setBbsDataDepth(tBbsDataFam.getBbsDataDepth()+1); + tBbsData.setBbsDataHit(0); + tBbsData.setBbsDataStatus("U"); + + if(SeedUtils.setReplaceNull(tBbsData.getBbsDataRegDate()).equals("")){ + tBbsData.setBbsDataRegDate(sdf.format(new Date())); + } + + tBbsData.setBbsDataModDate(sdf.format(new Date())); + tBbsData.setBbsDataMemberIp(memberIp); + tBbsData.setBbsCommentCount(0); + tBbsData.setBbsFileCount(0); + + T_BBS_DATA tBbsDataDB = bbsDataDAO.setBbsDataRegProc(tBbsData); + + if(tBbsDataDB != null){ + + bbsDataIdx = tBbsDataDB.getBbsDataIdx(); + + String bbsDataContent = tBbsDataDB.getBbsDataContent(); + + String thumImg = ""; + String thumImgText = ""; + + if(SeedUtils.setReplaceNull(tBbsData.gettBbsSet().getBbsSetPoint()).equals("Y")){ + //댓글 포인트 + T_POINT tPoint = new T_POINT(); + + tPoint.setPointSetIdx(tBbsData.gettBbsSet().getBbsSetIdx()); + tPoint.setPointDataIdx(tBbsData.getBbsDataIdx()); + tPoint.setPointRegdate(sdf.format(new Date())); + tPoint.setMemberIp(memberIp); + tPoint.setMemberIdx(memberIdx); + tPoint.setSiteIdx(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()); + tPoint.setFuncType("REPLY"); + tPoint.setPointScore(tBbsDataDB.gettBbsSet().getBbsSetPointWrite()); + + bbsDataDAO.setBbsPointProc(tPoint); + } + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + if(upFiles != null && upFiles.size() > 0){ + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + try{ + + for(int f=0; f 0){ + for(int d=0; d tCommonFileList = commonFileService.getCommonFileList(tBbsDataDB.gettBbsSet().getBbsSetIdx(), fileCode); + + if(tCommonFileList != null && tCommonFileList.size() > 0){ + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + for(int f=0; f upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath){ + + String success = "N"; + String thumImg = tBbsData.getBbsDataThumb(); + String thumImgText = ""; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + + T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(tBbsData.getBbsDataIdx()); + + if(!SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("Y") && !SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("A")){ + tBbsDataDB.setBbsDataNotice("N"); + tBbsDataDB.setBbsDataNoticeSdate(""); + tBbsDataDB.setBbsDataNoticeEdate(""); + }else{ + tBbsDataDB.setBbsDataNotice(tBbsData.getBbsDataNotice()); + tBbsDataDB.setBbsDataNoticeSdate(tBbsData.getBbsDataNoticeSdate()); + tBbsDataDB.setBbsDataNoticeEdate(tBbsData.getBbsDataNoticeEdate()); + } + + String bbsDataContent = tBbsData.getBbsDataContent(); + + tBbsDataDB.setBbsDataTitle(tBbsData.getBbsDataTitle()); + tBbsDataDB.setBbsDataLinkUrl(tBbsData.getBbsDataLinkUrl()); + tBbsDataDB.setBbsDataLinkType(tBbsData.getBbsDataLinkType()); + tBbsDataDB.setBbsDataCategory(SeedUtils.setReplaceNull(tBbsData.getBbsDataCategory())); + tBbsDataDB.setBbsDataContent(bbsDataContent); + tBbsDataDB.setBbsDataThumb(thumImg); + tBbsDataDB.setBbsDataEventSdate(tBbsData.getBbsDataEventSdate()); + tBbsDataDB.setBbsDataEventEdate(tBbsData.getBbsDataEventEdate()); + tBbsDataDB.setBbsDataEventUrl(tBbsData.getBbsDataEventUrl()); + tBbsDataDB.setBbsDataEventResultUrl(tBbsData.getBbsDataEventResultUrl()); + + if(SeedUtils.setReplaceNull(tBbsData.getBbsDataRegDate()).equals("")){ + tBbsDataDB.setBbsDataRegDate(sdf.format(new Date())); + }else{ + tBbsDataDB.setBbsDataRegDate(tBbsData.getBbsDataRegDate()); + } + + tBbsDataDB.setBbsDataModDate(sdf.format(new Date())); + tBbsDataDB.setBbsDataSecret(tBbsData.getBbsDataSecret()); + tBbsDataDB.setBbsDataMemberIp(memberIp); + tBbsDataDB.setBbsDataReplyStatus(tBbsData.getBbsDataReplyStatus()); + + tBbsDataDB.setBbsDataItemA1(tBbsData.getBbsDataItemA1()); + tBbsDataDB.setBbsDataItemB2(tBbsData.getBbsDataItemB2()); + tBbsDataDB.setBbsDataItemC3(tBbsData.getBbsDataItemC3()); + tBbsDataDB.setBbsDataItemD4(tBbsData.getBbsDataItemD4()); + tBbsDataDB.setBbsDataItemE5(tBbsData.getBbsDataItemE5()); + tBbsDataDB.setBbsDataItemF6(tBbsData.getBbsDataItemF6()); + tBbsDataDB.setBbsDataItemG7(tBbsData.getBbsDataItemG7()); + tBbsDataDB.setBbsDataItemH8(tBbsData.getBbsDataItemH8()); + tBbsDataDB.setBbsDataItemI9(tBbsData.getBbsDataItemI9()); + tBbsDataDB.setBbsDataItemJ10(tBbsData.getBbsDataItemJ10()); + tBbsDataDB.setBbsDataYoutube(SeedUtils.setReplaceNull(tBbsData.getBbsDataYoutube())); + + thumImgText = tBbsDataDB.getBbsDataThumbText(); + + if(bbsDataDAO.setBbsDataModProc(tBbsDataDB)){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + if(bbsFileIdx.length > 0){ + + String[] qryColumns = null; + + List tBbsFileList = bbsFileDAO.getBbsFileList(tBbsDataDB.getBbsDataIdx(), bbsFileIdx, qryColumns); + + if(tBbsFileList != null && tBbsFileList.size() > 0){ + for(int f=0; f 0){ + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + try{ + + for(int f=0; f 0){ + for(int d=0; d tCommonFileList = commonFileService.getCommonFileList(tBbsDataDB.gettBbsSet().getBbsSetIdx(), fileCode); + + if(tCommonFileList != null && tCommonFileList.size() > 0){ + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx()); + + for(int f=0; f 0){ + return "RE"; + } + + if(bbsSetTrash.equals("Y")){ + + tBbsDataDB.setBbsDataStatus("D"); + if(bbsDataDAO.setBbsDataModProc(tBbsDataDB)){ + success = "Y"; + } + + }else{ + String[] qryColumns = null; + + List tBbsFileList = bbsFileDAO.getBbsFileList(tBbsDataDB.getBbsDataIdx(), qryColumns); + + if(tBbsFileList != null && tBbsFileList.size() > 0){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + for(int f=0; f tFileDownLoadList = fileDownLoadDAO.getFileDownLoadList("bbs", String.valueOf(tBbsDataDB.gettBbsSet().getBbsSetIdx()), String.valueOf(tBbsDataDB.getBbsDataIdx())); + + if(tFileDownLoadList != null && tFileDownLoadList.size() > 0){ + + for(int d=0; d tBbsFileReplyList = bbsFileDAO.getBbsFileList(tBbsReplyDB.getBbsDataIdx(), new String[] {}); + + if(tBbsFileReplyList != null && tBbsFileReplyList.size() > 0){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + for(int f=0; f tBbsFileList = bbsFileDAO.getBbsFileList(bbsDataIdx, new String[]{}); + + if(tBbsFileList != null && tBbsFileList.size() > 0){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + for(int f=0; f> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns); + + //ManagerBbsController + public List getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns); + + //ManagerBbsController + public List getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns); + + //ManagerBbsController + public List> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns); + + //ManagerBbsController + public List getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns); + + //ManagerBbsController + public List getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns); + + //ManagerBbsController + public Long getBbsItemListCnt(Integer bbsSetIdx); + + //ManagerBbsController + public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup); + + //ManagerBbsController + public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup); + + //ManagerBbsController + public String setBbsItemRegProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer memberIdx); + + //ManagerBbsController + public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer[] bbsItemIdxs); + + //ManagerBbsController + public boolean setBbsItemDelProc(Integer bbsSetIdx, String bbsItemGroup); + + //ManagerBbsController + public boolean setBbsItemStatusProc(Integer bbsSetIdx, String bbsItemGroup, String status); + + //ManagerBbsController + public boolean setBbsItemMiniOrderProc(Integer bbsSetIdx, Integer bbsItemMiniOrder, String orderType); + + //ManagerBbsController + public boolean setBbsItemListOrderProc(Integer bbsSetIdx, Integer bbsItemListOrder, String orderType); + + //ManagerBbsController + public boolean setBbsItemViewOrderProc(Integer bbsSetIdx, Integer bbsItemViewOrder, String orderType); +} diff --git a/src/main/java/seed/manager/bbs/service/ManagerBbsItemServiceImpl.java b/src/main/java/seed/manager/bbs/service/ManagerBbsItemServiceImpl.java new file mode 100644 index 00000000..852aaebb --- /dev/null +++ b/src/main/java/seed/manager/bbs/service/ManagerBbsItemServiceImpl.java @@ -0,0 +1,749 @@ +package seed.manager.bbs.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.BbsItemDAO; +import seed.map.T_BBS_ITEM; +import seed.map.T_MEMBER; + +@Service +public class ManagerBbsItemServiceImpl extends AbstractServiceImpl implements ManagerBbsItemService{ + + @Autowired + private BbsItemDAO bbsItemDAO; + + //ManagerBbsController + public List> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns){ + + return bbsItemDAO.getBbsItemMiniList(bbsSetIdx, qryColumns); + } + + //ManagerBbsController + public List getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns){ + + return bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, qryColumns); + } + + //ManagerBbsController + public List getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns){ + + return bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, qryColumns); + } + + //ManagerBbsController + public List> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns){ + + return bbsItemDAO.getBbsItemList(bbsSetIdx, orderType, qryColumns); + } + + //ManagerBbsController + public List getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns){ + + return bbsItemDAO.getBbsItemValuesList(bbsSetIdx, orderType, qryColumns); + } + + //ManagerBbsController + public List getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns){ + + return bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns); + } + + //ManagerBbsController + public Long getBbsItemListCnt(Integer bbsSetIdx){ + + return bbsItemDAO.getBbsItemListCnt(bbsSetIdx); + } + + //ManagerBbsController + public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup){ + + return bbsItemDAO.getBbsItemValueForm(bbsSetIdx, bbsItemGroup); + } + + //ManagerBbsController + public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup){ + + return bbsItemDAO.getBbsItemForm(bbsSetIdx, bbsItemGroup); + } + + //ManagerBbsController + @Transactional + public String setBbsItemRegProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer memberIdx){ + + String bbsItemGroup = ""; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + String[] qryColumns = {"groupBy", "bbsItemGroup"}; + + List> tBbsItemMapList = bbsItemDAO.getBbsItemGroupList(tBbsItem.gettBbsSet().getBbsSetIdx(), qryColumns); + + String[] bbsItemGroups = {"bbsDataItemA1", "bbsDataItemB2", "bbsDataItemC3", "bbsDataItemD4", "bbsDataItemE5", + "bbsDataItemF6", "bbsDataItemG7", "bbsDataItemH8", "bbsDataItemI9", "bbsDataItemJ10"}; + + if(tBbsItemMapList.size() > 0){ + for(int g=0; g tBbsItemMapDB = tBbsItemMapList.get(g); + if(!tBbsItemMapDB.get("_bbsItemGroup").equals(bbsItemGroups[g])){ + bbsItemGroup = bbsItemGroups[g]; + break; + } + } + + if(bbsItemGroup.equals("")){ + bbsItemGroup = bbsItemGroups[tBbsItemMapList.size()]; + } + }else{ + bbsItemGroup = bbsItemGroups[0]; + } + + Integer bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; + Integer bbsItemListOrder = bbsItemDAO.getBbsItemListOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; + Integer bbsItemViewOrder = bbsItemDAO.getBbsItemViewOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; + + if(bbsItemValues.length == 0){ + + tBbsItem.settMember(tMember); + tBbsItem.setBbsItemValue(""); + tBbsItem.setBbsItemWidth(bbsItemWidth[0]); + + if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tBbsItem.setBbsItemHeight(bbsItemHeight[0]); + } + + tBbsItem.setBbsItemGroup(bbsItemGroup); + + if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){ + tBbsItem.setBbsItemMiniOrder(bbsItemMiniOrder); + } + + tBbsItem.setBbsItemListOrder(bbsItemListOrder); + tBbsItem.setBbsItemViewOrder(bbsItemViewOrder); + tBbsItem.setBbsItemType("A"); + tBbsItem.setBbsItemStatus("U"); + tBbsItem.setBbsItemCount(1); + tBbsItem.setBbsItemRegDate(new Date()); + + if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){ + bbsItemGroup = ""; + } + + }else{ + for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 + tBbsItem.setBbsItemWidth(bbsItemWidth[i]); + } + + if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tBbsItem.setBbsItemHeight(bbsItemHeight[i]); + } + + tBbsItem.setBbsItemValue(bbsItemValues[i]); + tBbsItem.setBbsItemGroup(bbsItemGroup); + + if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){ + tBbsItem.setBbsItemMiniOrder(bbsItemMiniOrder); + } + + tBbsItem.setBbsItemListOrder(bbsItemListOrder); + tBbsItem.setBbsItemViewOrder(bbsItemViewOrder); + tBbsItem.setBbsItemType("A"); + tBbsItem.setBbsItemStatus("U"); + tBbsItem.setBbsItemRegDate(new Date()); + + if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){ + bbsItemGroup = ""; + break; + } + } + } + + return bbsItemGroup; + } + + //ManagerBbsController + @Transactional + public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer[] bbsItemIdxs){ + + boolean success = true; + + Integer bbsItemMiniOrder = null; + + if(bbsItemValues.length > 0 && bbsItemIdxs.length > 0){//bbsItemValues와 bbsItemIdxs의 값이 있으면 기존값 수정 + + for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 + tBbsItemDB.setBbsItemWidth(bbsItemWidth[i]); + } + + if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tBbsItemDB.setBbsItemHeight(bbsItemHeight[i]); + } + + tBbsItemDB.setBbsItemName(tBbsItem.getBbsItemName()); + tBbsItemDB.setBbsItemPattern(tBbsItem.getBbsItemPattern()); + tBbsItemDB.setBbsItemWL(tBbsItem.getBbsItemWL()); + tBbsItemDB.setBbsItemText(tBbsItem.getBbsItemText()); + tBbsItemDB.setBbsItemEssential(tBbsItem.getBbsItemEssential()); + tBbsItemDB.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); + tBbsItemDB.setBbsItemCount(tBbsItem.getBbsItemCount()); + + if(tBbsItem.getBbsItemDataMiniLength() == null){ + tBbsItemDB.setBbsItemDataMiniLength(0); + }else{ + tBbsItemDB.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); + } + + if(tBbsItem.getBbsItemDataLength() == null){ + tBbsItemDB.setBbsItemDataLength(0); + }else{ + tBbsItemDB.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); + } + + tBbsItemDB.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); + tBbsItemDB.setBbsItemList(tBbsItem.getBbsItemList()); + tBbsItemDB.setBbsItemView(tBbsItem.getBbsItemView()); + tBbsItemDB.setBbsItemLink(tBbsItem.getBbsItemLink()); + tBbsItemDB.setBbsItemSearch(tBbsItem.getBbsItemSearch()); + tBbsItemDB.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); + tBbsItemDB.setBbsItemMiniOrder(bbsItemMiniOrder); + + if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){ + success = false; + break; + } + } + + }else if(bbsItemValues.length > 0){//bbsItemValues에만 값이 있으면 비교하여 수정 및 삭제 또는 추가 + + T_BBS_ITEM tBbsItemDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx()); + + String[] qryColumns = null; + + List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(tBbsItemDB.gettBbsSet().getBbsSetIdx(), tBbsItemDB.getBbsItemGroup(), qryColumns); + + if(tBbsItemList.size() > bbsItemValues.length){//기존의 row수가 현재보다 크면 수정 후 삭제 + + for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 + tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]); + } + + if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]); + } + + tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName()); + tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern()); + tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL()); + tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText()); + tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential()); + tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); + tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount()); + + if(tBbsItem.getBbsItemDataMiniLength() == null){ + tBbsItemTmp.setBbsItemDataMiniLength(0); + }else{ + tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); + } + + if(tBbsItem.getBbsItemDataLength() == null){ + tBbsItemTmp.setBbsItemDataLength(0); + }else{ + tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); + } + + tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); + tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList()); + tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView()); + tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink()); + tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch()); + tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); + tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder); + + if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){ + success = false; + break; + } + }else{ + if(!bbsItemDAO.setBbsItemDelProc(tBbsItemTmp)){ + success = false; + break; + } + } + } + }else{//기존의 row수가 현재보다 작거나 같으면 수정 후 추가 또는 수정 + + for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 + tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]); + } + + if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]); + } + + tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName()); + tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern()); + tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL()); + tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText()); + tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential()); + tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); + tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount()); + + if(tBbsItem.getBbsItemDataMiniLength() == null){ + tBbsItemTmp.setBbsItemDataMiniLength(0); + }else{ + tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); + } + + if(tBbsItem.getBbsItemDataLength() == null){ + tBbsItemTmp.setBbsItemDataLength(0); + }else{ + tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); + } + + tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); + tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList()); + tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView()); + tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink()); + tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch()); + tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); + tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder); + + if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){ + success = false; + break; + } + + }else{ + + T_BBS_ITEM tBbsItemTmp = new T_BBS_ITEM(); + + tBbsItemTmp.setBbsItemValue(bbsItemValues[i]); + + if(bbsItemWidth.length == 1){ + tBbsItemTmp.setBbsItemWidth(bbsItemWidth[0]); + }else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 + tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]); + } + + if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]); + } + + tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName()); + tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern()); + tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL()); + tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText()); + tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential()); + tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); + tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount()); + + if(tBbsItem.getBbsItemDataMiniLength() == null){ + tBbsItemTmp.setBbsItemDataMiniLength(0); + }else{ + tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); + } + + if(tBbsItem.getBbsItemDataLength() == null){ + tBbsItemTmp.setBbsItemDataLength(0); + }else{ + tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); + } + + tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); + tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList()); + tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView()); + tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink()); + tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch()); + tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); + tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder); + tBbsItemTmp.setBbsItemType(tBbsItemDB.getBbsItemType()); + tBbsItemTmp.setBbsItemStatus("U"); + tBbsItemTmp.settBbsSet(tBbsItemDB.gettBbsSet()); + tBbsItemTmp.settMember(tBbsItemDB.gettMember()); + tBbsItemTmp.setBbsItemGroup(tBbsItemDB.getBbsItemGroup()); + tBbsItemTmp.setBbsItemListOrder(tBbsItemDB.getBbsItemListOrder()); + tBbsItemTmp.setBbsItemViewOrder(tBbsItemDB.getBbsItemViewOrder()); + tBbsItemTmp.setBbsItemRegDate(tBbsItemDB.getBbsItemRegDate()); + + if(bbsItemDAO.setBbsItemRegProc(tBbsItemTmp).getBbsItemIdx() == 0){ + success = false; + break; + } + } + } + } + + }else{ + + T_BBS_ITEM tBbsItemTmpDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx()); + + if(tBbsItemTmpDB.getBbsItemMiniList() != null && tBbsItemTmpDB.getBbsItemMiniList().equals("Y")){ //기존에 미니리스트 목록 사용을 한경우 + if(tBbsItem.getBbsItemMiniList() == null){//기존에 미니리스트를 사용 하다가 사용안한경우 + //현재 bbsItemMiniOrder보다 큰 bbsItemMiniOrder를 -1 + bbsItemDAO.setBbsItemMiniOrderProc(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItemTmpDB.getBbsItemMiniOrder()); + }else{ + //기존의 미니리스트를 사용하고 현재도 사용한경우 + bbsItemMiniOrder = tBbsItemTmpDB.getBbsItemMiniOrder(); + } + }else{ //기존에 미니리스트 목록 사용을 안한경우 + if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){//기존에 미니리스트를 사용안하다가 사용한 경우 + //MAX bbsItemMiniOrder를 가져옴 + bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; + } + } + + String[] qryColumns = null; + + List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(tBbsItemTmpDB.gettBbsSet().getBbsSetIdx(), tBbsItemTmpDB.getBbsItemGroup(), qryColumns); + + if(tBbsItemList.size() > 1){ //SELECT, RADIO, CHECKBOX였다가 TEXT, LINK, TEXTAREA로 변경되었을때 추가 항목 삭제 (1개 이상일때) + for(int i=0; i 0){ //TEXTAREA 인 경우에만 적용 + tBbsItemDB.setBbsItemHeight(bbsItemHeight[0]); + } + + tBbsItemDB.setBbsItemCount(tBbsItem.getBbsItemCount()); + } + + if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){ + success = false; + } + } + } + + return success; + } + + //ManagerBbsController + @Transactional + public boolean setBbsItemDelProc(Integer bbsSetIdx, String bbsItemGroup){ + + boolean success = true; + + String[] qryColumns = null; + + List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns); + + for(int d=0; d 1){ + bbsItemDAO.setBbsItemListOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemListOrder()); + bbsItemDAO.setBbsItemViewOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemViewOrder()); + if(tBbsItemTmp.getBbsItemMiniOrder() != null && tBbsItemTmp.getBbsItemMiniOrder() > 0){ + bbsItemDAO.setBbsItemMiniOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemMiniOrder()); + } + } + } + + if(!bbsItemDAO.setBbsItemDelProc(tBbsItemTmp)){ + success = false; + } + } + + return success; + } + + //ManagerBbsController + @Transactional + public boolean setBbsItemStatusProc(Integer bbsSetIdx, String bbsItemGroup, String status){ + + boolean success = true; + + String[] qryColumns = null; + + List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns); + + for(int m=0; m tBbsItemMiniOrderList = bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, bbsItemMiniOrder, qryColumns); + List tBbsItemMiniList = bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, bbsItemMiniOrderTmp, qryColumns); + + for(int i=0; i tBbsItemOrderList = bbsItemDAO.getBbsItemListOrderList(bbsSetIdx, bbsItemListOrder, qryColumns); + List tBbsItemList = bbsItemDAO.getBbsItemListOrderList(bbsSetIdx, bbsItemListOrderTmp, qryColumns); + + for(int i=0; i tBbsItemOrderList = bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, bbsItemViewOrder, qryColumns); + List tBbsItemList = bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, bbsItemViewOrderTmp, qryColumns); + + for(int i=0; i getBbsManagerList(Integer bbsSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //ManagerBbsController + public List getBbsManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //ManagerBbsController + public List> getBbsManagerList(String siteIdx, Integer bbsSetIdx, String[] qryColumns); + + //CommonController + public boolean setBbsManagerRegProc(Integer bbsSetIdx, Integer[] idxsc); + + //CommonController + public boolean setBbsManagerDelProc(Integer bbsManagerIdx); + + //CommonController + public boolean setBbsManagerStatusProc(Integer bbsManagerIdx, String status); + + //CommonController + public boolean setBbsManagerGrantProc(Integer bbsManagerIdx, String grant); +} diff --git a/src/main/java/seed/manager/bbs/service/ManagerBbsManagerServiceImpl.java b/src/main/java/seed/manager/bbs/service/ManagerBbsManagerServiceImpl.java new file mode 100644 index 00000000..30a00e1a --- /dev/null +++ b/src/main/java/seed/manager/bbs/service/ManagerBbsManagerServiceImpl.java @@ -0,0 +1,196 @@ +package seed.manager.bbs.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.BbsManagerDAO; +import seed.dao.MemberDAO; +import seed.dao.SiteManagerDAO; +import seed.map.T_BBS_MANAGER; +import seed.map.T_BBS_SET; +import seed.map.T_MEMBER; + +@Service +public class ManagerBbsManagerServiceImpl extends AbstractServiceImpl implements ManagerBbsManagerService{ + + @Autowired + private BbsManagerDAO bbsManagerDAO; + + @Autowired + private SiteManagerDAO siteManagerDAO; + + @Autowired + private MemberDAO memberDAO; + + //ManagerBbsController + public boolean getBbsManagerListGrantCnt(Integer bbsSetIdx, Integer memberIdx){ + + boolean success = false; + + if(bbsManagerDAO.getBbsManagerListGrantCnt(bbsSetIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //UserBbsController + public boolean getBbsManagerListCnt(Integer bbsSetIdx, Integer memberIdx){ + + boolean success = false; + + if(bbsManagerDAO.getBbsManagerListCnt(bbsSetIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //CommonController + public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer selGroup, String column, String search){ + + return bbsManagerDAO.getBbsManagerListCnt(bbsSetIdx, selGroup, column, search); + } + + //ManagerBbsController + public Long getBbsManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){ + + return bbsManagerDAO.getBbsManagerListCnt(siteIdx, memberIdx, column, search); + } + + //CommonController + public List getBbsManagerList(Integer bbsSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + return bbsManagerDAO.getBbsManagerList(bbsSetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns); + } + + //ManagerBbsController + public List getBbsManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return bbsManagerDAO.getBbsManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //ManagerBbsController + public List> getBbsManagerList(String siteIdx, Integer bbsSetIdx, String[] qryColumns){ + + return bbsManagerDAO.getBbsManagerList(siteIdx, bbsSetIdx, qryColumns); + } + + //CommonController + @Transactional + public boolean setBbsManagerRegProc(Integer bbsSetIdx, Integer[] idxsc){ + + boolean success = false; + + if(idxsc.length > 0){ + + for(int i=0; i 0){ + success = true; + }else{ + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(idxsc[i]); + + T_BBS_SET tBbsSet = new T_BBS_SET(); + tBbsSet.setBbsSetIdx(bbsSetIdx); + + T_BBS_MANAGER tBbsManager = new T_BBS_MANAGER(); + + tBbsManager.settMember(tMember); + tBbsManager.settBbsSet(tBbsSet); + tBbsManager.setBbsManagerStatus("U"); + tBbsManager.setBbsManagerGrant("S"); + tBbsManager.setBbsManagerRegDate(new Date()); + + if(bbsManagerDAO.setBbsManagerRegProc(tBbsManager)){ + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(tMemberDB.getMemberGrant().equals("SM")){ + tMemberDB.setMemberGrant("SM"); + }else{ + tMemberDB.setMemberGrant("M"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + break; + } + } + }else{ + success = false; + } + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setBbsManagerDelProc(Integer bbsManagerIdx){ + + boolean success = false; + + T_BBS_MANAGER tBbsManagerDB = bbsManagerDAO.getBbsManagerForm(bbsManagerIdx); + + if(bbsManagerDAO.setBbsManagerDelProc(tBbsManagerDB)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(tBbsManagerDB.gettMember().getMemberIdx()); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){ + tMemberDB.setMemberGrant("SM"); + }else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){ + tMemberDB.setMemberGrant("M"); + }else{ + tMemberDB.setMemberGrant("N"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setBbsManagerStatusProc(Integer bbsManagerIdx, String status){ + + T_BBS_MANAGER tBbsManagerDB = bbsManagerDAO.getBbsManagerForm(bbsManagerIdx); + + tBbsManagerDB.setBbsManagerStatus(status); + + return bbsManagerDAO.setBbsManagerModProc(tBbsManagerDB); + } + + //CommonController + @Transactional + public boolean setBbsManagerGrantProc(Integer bbsManagerIdx, String grant){ + + T_BBS_MANAGER tBbsManagerDB = bbsManagerDAO.getBbsManagerForm(bbsManagerIdx); + + tBbsManagerDB.setBbsManagerGrant(grant); + + return bbsManagerDAO.setBbsManagerModProc(tBbsManagerDB); + } +} diff --git a/src/main/java/seed/manager/bbs/service/ManagerBbsSetService.java b/src/main/java/seed/manager/bbs/service/ManagerBbsSetService.java new file mode 100644 index 00000000..1c8de857 --- /dev/null +++ b/src/main/java/seed/manager/bbs/service/ManagerBbsSetService.java @@ -0,0 +1,50 @@ +package seed.manager.bbs.service; + +import java.util.List; + +import org.springframework.web.multipart.MultipartFile; + +import seed.map.T_BBS_SET; +import seed.map.T_BBS_SKIN; + +public interface ManagerBbsSetService { + + //AdminSiteController, ManagerSiteController + public T_BBS_SET getBbsSetForm(String siteIdx, String siteMenuIdx); + + //ManagerBbsController, CommonController + public T_BBS_SET getBbsSetForm(Integer bbsSetIdx); + + //ManagerBbsController + public Long getBbsSetListCnt(String siteIdx, String column, String search); + + //ManagerBbsController + public List getBbsSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //ManagerBbsController + public List getBbsSetList(String siteIdx, Integer bbsSetIdx, String bbsSetType, String[] qryColumns); + + //ManagerBbsController + public Integer setBbsSetRegProc(T_BBS_SET tBbsSet, MultipartFile upFile, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath); + + //AdminSiteController, ManagerSiteController + public boolean setBbsSetModProc(T_BBS_SET tBbsSet); + + //ManagerBbsController + public boolean setBbsSetModProc(T_BBS_SET tBbsSet, MultipartFile upFile, Integer memberIdx, boolean fileEncryChk, boolean filePreviewChk, String rootPath); + + //ManagerBbsController + public boolean setBbsSetDelProc(Integer bbsSetIdx, String rootPath); + + //ManagerBbsController + public boolean setBbsSetStatusProc(Integer bbsSetIdx, String status, Integer memberIdx); + + //ManagerBbsController + public Long getBbsSetSkinListCnt(String siteIdx, String bbsSetType, String bbsSetSubType); + + //ManagerBbsController + public List getBbsSetSkinList(String siteIdx, String bbsSetType, String bbsSetSubType, int page, int row, String[] qryColumns); + + //ManagerBbsController + public boolean setBbsSetSkinProc(Integer bbsSetIdx, String bbsSkinCode, Integer memberIdx); +} diff --git a/src/main/java/seed/manager/bbs/service/ManagerBbsSetServiceImpl.java b/src/main/java/seed/manager/bbs/service/ManagerBbsSetServiceImpl.java new file mode 100644 index 00000000..36f6bd36 --- /dev/null +++ b/src/main/java/seed/manager/bbs/service/ManagerBbsSetServiceImpl.java @@ -0,0 +1,1203 @@ +package seed.manager.bbs.service; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Iterator; +import java.util.List; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.BbsAuthDAO; +import seed.dao.BbsDataDAO; +import seed.dao.BbsFileDAO; +import seed.dao.BbsItemDAO; +import seed.dao.BbsSetDAO; +import seed.dao.BbsSkinDAO; +import seed.dao.GroupDAO; +import seed.map.T_BBS_AUTH; +import seed.map.T_BBS_DATA; +import seed.map.T_BBS_FILE; +import seed.map.T_BBS_ITEM; +import seed.map.T_BBS_SET; +import seed.map.T_BBS_SKIN; +import seed.map.T_GROUP; +import seed.map.T_MEMBER; +import seed.utils.SeedFileUtils; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Service +public class ManagerBbsSetServiceImpl extends AbstractServiceImpl implements ManagerBbsSetService{ + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private BbsSetDAO bbsSetDAO; + + @Autowired + private BbsFileDAO bbsFileDAO; + + @Autowired + private GroupDAO groupDAO; + + @Autowired + private BbsAuthDAO bbsAuthDAO; + + @Autowired + private BbsItemDAO bbsItemDAO; + + @Autowired + private BbsDataDAO bbsDataDAO; + + @Autowired + private BbsSkinDAO bbsSkinDAO; + + //AdminSiteController, ManagerSiteController + public T_BBS_SET getBbsSetForm(String siteIdx, String siteMenuIdx){ + + return bbsSetDAO.getBbsSetForm(siteIdx, siteMenuIdx); + } + + //ManagerBbsController + public T_BBS_SET getBbsSetForm(Integer bbsSetIdx){ + + return bbsSetDAO.getBbsSetForm(bbsSetIdx); + } + + //ManagerBbsController + public Long getBbsSetListCnt(String siteIdx, String column, String search){ + + return bbsSetDAO.getBbsSetListCnt(siteIdx, column, search); + } + + //ManagerBbsController + public List getBbsSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return bbsSetDAO.getBbsSetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //ManagerBbsController + public List getBbsSetList(String siteIdx, Integer bbsSetIdx, String bbsSetType, String[] qryColumns){ + + return bbsSetDAO.getBbsSetList(siteIdx, bbsSetIdx, bbsSetType, qryColumns); + } + + //ManagerBbsController + @Transactional + public Integer setBbsSetRegProc(T_BBS_SET tBbsSet, MultipartFile upFile, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath){ + + Integer bbsSetIdx = 0; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tBbsSet.settMember(tMember); + tBbsSet.setBbsSetSkinCode("basic"); + tBbsSet.setBbsSetStatus("U"); + tBbsSet.setBbsSetRegDate(new Date()); + tBbsSet.setBbsSetModDate(new Date()); + + //답변게시판일때는 답글설정을 사용으로 넣어줌 + if(tBbsSet.getBbsSetType().equals("W")){ + tBbsSet.setBbsSetReply("Y"); + } + + T_BBS_SET tBbsSetDB = bbsSetDAO.setBbsSetRegProc(tBbsSet); + + if(tBbsSetDB != null){ + + bbsSetIdx = tBbsSetDB.getBbsSetIdx(); + + try{ + + if(upFile != null && upFile.getSize() > 0){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + T_BBS_SET tBbsSetTmp = bbsSetDAO.getBbsSetForm(bbsSetIdx); + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsSet.gettSite().getSiteIdx() + "/upload/bbs/" + bbsSetIdx); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String reFileName = bbsSetIdx + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1))); + + File makeFile = new File(rootPath + "/" + tBbsSet.gettSite().getSiteIdx() + + "/upload/bbs/" + bbsSetIdx + "/" + reFileName + + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))); + upFile.transferTo(makeFile); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tBbsSet.gettSite().getSiteIdx() + "/upload/bbs/" + bbsSetIdx); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + tBbsSet.gettSite().getSiteIdx() + "/upload/bbs/" + bbsSetIdx); + //WAS 파일명 + seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + tBbsSetTmp.setBbsSetWaterMarkImg(upFile.getOriginalFilename()); + tBbsSetTmp.setBbsSetWaterMarkReImg(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))); + + if(!bbsSetDAO.setBbsSetModProc(tBbsSetTmp)){ + bbsSetIdx = 0; + return bbsSetIdx; + } + } + }catch(IOException e){ + log.error("CHECK ERROR:",e); + } + + //그룹 테이블의 내용을 T_BBS_AUTH에 INSERT + String[] qryColumns = null; + + List tGroupList = null; + + if(memberMerge.equals("true")){ + tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumns); + }else{ + tGroupList = groupDAO.getGroupList(tBbsSet.gettSite().getSiteIdx(), qryColumns); + } + + if(tGroupList != null && tGroupList.size() > 0){ + for(int g=0; g 0){ + //게시판 ITEM T_BBS_ITEM에 INSERT + if(tBbsSetDB.getBbsSetType().equals("A") || tBbsSetDB.getBbsSetType().equals("M") || tBbsSetDB.getBbsSetType().equals("T")){ + + String[] itemGroups = {"bbsDataIdx", "bbsDataThumb", "bbsDataTitle", "bbsDataContent", "bbsDataCategory", "bbsDataName", "bbsDataRegDate", "bbsDataHit", "bbsDataFile"}; + String[] itemNames = {"번호", "썸네일이미지", "제목", "내용", "카테고리", "작성자", "작성일", "조회", "파일"}; + String[] itemPatterns = {"IDX", "THUMB", "TEXT", "TEXTAREA", "CATEGORY", "TEXT", "REGDATE", "HIT", "FILE"}; + String[] itemTexts = {"", "", "", "", "", "", "", "", ""}; + String[] itemMiniLists = {"N", "Y", "Y", "N", "N", "N", "Y", "N", "N"}; + Integer[] itemMiniOrderLists = {null, 1, 2, null, null, null, 3, null, null}; + String[] itemLists = {"N", "Y", "Y", "N", "N", "Y", "Y", "N", "N"}; + String[] itemLinks = {"N", "Y", "Y", "N", "N", "N", "N", "N", "N"}; + String[] itemSearchs = {"N", "N", "Y", "N", "N", "Y", "Y", "N", "N"}; + Integer[] itemWidths = {0, 0, 200, 0, 80, 80, 0, 0, 0}; + String[] itemColWidths = {"5%", "10%", "45%", "55%", "10%", "10%", "10%", "10%", "10%"}; + Integer[] itemDataMiniLengths = {0, 0, 20, 20, 20, 20, 0, 0, 0}; + Integer[] itemDataLengths = {0, 0, 100, 100, 100, 100, 0, 0, 0}; + Integer[] itemHeights = {0, 0, 0, 600, 0, 0, 0, 0, 0}; + String[] ItemEssentials = {"N", "N", "Y", "Y", "N", "Y", "N", "N", "N"}; + String[] ItemActiveHiddens = {"N", "N", "N", "N", "N", "N", "N", "N", "N"}; + + for(int i=0; i<9; i++){ + + T_BBS_ITEM tBbsItem = new T_BBS_ITEM(); + + tBbsItem.settMember(tMember); + tBbsItem.settBbsSet(tBbsSetDB); + + tBbsItem.setBbsItemGroup(itemGroups[i]); + tBbsItem.setBbsItemName(itemNames[i]); + tBbsItem.setBbsItemPattern(itemPatterns[i]); + tBbsItem.setBbsItemText(itemTexts[i]); + tBbsItem.setBbsItemMiniList(itemMiniLists[i]); + tBbsItem.setBbsItemMiniOrder(itemMiniOrderLists[i]); + tBbsItem.setBbsItemList(itemLists[i]); + tBbsItem.setBbsItemView("Y"); + tBbsItem.setBbsItemLink(itemLinks[i]); + tBbsItem.setBbsItemSearch(itemSearchs[i]); + tBbsItem.setBbsItemActiveHidden(ItemActiveHiddens[i]); + tBbsItem.setBbsItemWidth(itemWidths[i]); + tBbsItem.setBbsItemColWidth(itemColWidths[i]); + tBbsItem.setBbsItemDataMiniLength(itemDataMiniLengths[i]); + tBbsItem.setBbsItemDataLength(itemDataLengths[i]); + tBbsItem.setBbsItemHeight(itemHeights[i]); + tBbsItem.setBbsItemEssential(ItemEssentials[i]); + tBbsItem.setBbsItemListOrder(i+1); + tBbsItem.setBbsItemViewOrder(i+1); + tBbsItem.setBbsItemType("D"); + tBbsItem.setBbsItemStatus("U"); + tBbsItem.setBbsItemRegDate(new Date()); + + if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){ + bbsSetIdx = 0; + break; + } + } + + }else if(tBbsSetDB.getBbsSetType().equals("E")){ + + String[] itemGroups = {"bbsDataIdx", "bbsDataThumb", "bbsDataEventDate", "bbsDataEventUrl", "bbsDataEventResultUrl", "bbsDataTitle", "bbsDataContent", "bbsDataCategory", "bbsDataName", "bbsDataRegDate", "bbsDataHit", "bbsDataFile"}; + String[] itemNames = {"번호", "썸네일이미지", "이벤트기간", "이벤트링크주소", "당첨자링크주소", "제목", "내용", "카테고리", "작성자", "작성일", "조회", "파일"}; + String[] itemPatterns = {"IDX", "THUMB", "EVENTDATE", "EVENTURL", "EVENTRESULTURL", "TEXT", "TEXTAREA", "CATEGORY", "TEXT", "REGDATE", "HIT", "FILE"}; + String[] itemTexts = {"", "", "", "", "", "", "", "", "", "", "", ""}; + String[] itemMiniLists = {"N", "Y", "Y", "N", "N", "Y", "N", "N", "N", "Y", "N", "N"}; + Integer[] itemMiniOrderLists = {null, 1, 2, null, null, 3, null, null, null, 4, null, null}; + String[] itemLists = {"N", "Y", "Y", "N", "N", "Y", "N", "N", "Y", "Y", "N", "N"}; + String[] itemLinks = {"N", "Y", "Y", "N", "N", "Y", "N", "N", "N", "N", "N", "N"}; + String[] itemSearchs = {"N", "N", "N", "N", "N", "Y", "N", "N", "Y", "Y", "N", "N"}; + Integer[] itemWidths = {0, 0, 80, 300, 300, 200, 0, 80, 80, 0, 0, 0}; + String[] itemColWidths = {"5%", "10%", "10%", "10%", "10%", "45%", "55%", "10%", "10%", "10%", "10%", "10%"}; + Integer[] itemDataMiniLengths = {0, 0, 0, 0, 0, 20, 20, 20, 20, 0, 0, 0}; + Integer[] itemDataLengths = {0, 0, 100, 0, 0, 100, 100, 100, 100, 0, 0, 0}; + Integer[] itemHeights = {0, 0, 0, 0, 0, 0, 600, 0, 0, 0, 0, 0}; + String[] ItemEssentials = {"N", "N", "Y", "Y", "N", "Y", "Y", "N", "Y", "N", "N", "N"}; + String[] ItemActiveHiddens = {"N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"}; + + for(int i=0; i<12; i++){ + + T_BBS_ITEM tBbsItem = new T_BBS_ITEM(); + + tBbsItem.settMember(tMember); + tBbsItem.settBbsSet(tBbsSetDB); + + tBbsItem.setBbsItemGroup(itemGroups[i]); + tBbsItem.setBbsItemName(itemNames[i]); + tBbsItem.setBbsItemPattern(itemPatterns[i]); + tBbsItem.setBbsItemText(itemTexts[i]); + tBbsItem.setBbsItemMiniList(itemMiniLists[i]); + tBbsItem.setBbsItemMiniOrder(itemMiniOrderLists[i]); + tBbsItem.setBbsItemList(itemLists[i]); + tBbsItem.setBbsItemView("Y"); + tBbsItem.setBbsItemLink(itemLinks[i]); + tBbsItem.setBbsItemSearch(itemSearchs[i]); + tBbsItem.setBbsItemActiveHidden(ItemActiveHiddens[i]); + tBbsItem.setBbsItemWidth(itemWidths[i]); + tBbsItem.setBbsItemColWidth(itemColWidths[i]); + tBbsItem.setBbsItemDataMiniLength(itemDataMiniLengths[i]); + tBbsItem.setBbsItemDataLength(itemDataLengths[i]); + tBbsItem.setBbsItemHeight(itemHeights[i]); + tBbsItem.setBbsItemEssential(ItemEssentials[i]); + tBbsItem.setBbsItemListOrder(i+1); + tBbsItem.setBbsItemViewOrder(i+1); + tBbsItem.setBbsItemType("D"); + tBbsItem.setBbsItemStatus("U"); + tBbsItem.setBbsItemRegDate(new Date()); + + if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){ + bbsSetIdx = 0; + break; + } + } + + }else if(tBbsSetDB.getBbsSetType().equals("W")){ + + String[] itemValues = {"답변대기", "처리중", "답변완료"}; + + String[] itemGroups = {"bbsDataIdx", "bbsDataReplyStatus", "bbsDataTitle", "bbsDataContent", "bbsDataCategory", "bbsDataName", "bbsDataRegDate", "bbsDataHit", "bbsDataFile"}; + String[] itemNames = {"번호", "답변상태", "제목", "내용", "카테고리", "작성자", "작성일", "조회", "파일"}; + String[] itemPatterns = {"IDX", "SELECT", "TEXT", "TEXTAREA", "CATEGORY", "TEXT", "REGDATE", "HIT", "FILE"}; + String[] itemTexts = {"", "", "", "", "", "", "", "", ""}; + String[] itemMiniLists = {"N", "Y", "Y", "N", "N", "N", "Y", "N", "N"}; + Integer[] itemMiniOrderLists = {null, 1, 2, null, null, null, 3, null, null}; + String[] itemLists = {"N", "Y", "Y", "N", "N", "Y", "Y", "N", "N"}; + String[] itemLinks = {"N", "Y", "Y", "N", "N", "N", "N", "N", "N"}; + String[] itemSearchs = {"N", "N", "Y", "N", "N", "Y", "Y", "N", "N"}; + Integer[] itemWidths = {0, 100, 200, 0, 80, 80, 0, 0, 0}; + String[] itemColWidths = {"5%", "10%", "45%", "55%", "10%", "10%", "10%", "10%", "10%"}; + Integer[] itemDataMiniLengths = {0, 10, 20, 20, 20, 20, 0, 0, 0}; + Integer[] itemDataLengths = {0, 50, 100, 100, 100, 100, 0, 0, 0}; + Integer[] itemHeights = {0, 0, 0, 600, 0, 0, 0, 0, 0}; + String[] ItemEssentials = {"N", "N", "Y", "Y", "N", "Y", "N", "N", "N"}; + String[] ItemActiveHiddens = {"N", "N", "N", "N", "N", "N", "N", "N", "N"}; + + for(int i=0; i<9; i++){ + + if(itemGroups[i].equals("bbsDataReplyStatus")){ + + for(int x=0; x iteratorBbsDataList = tBbsSetDB.gettBbsDatas().iterator(); + + Iterator iteratorBbsItemList = tBbsSetDB.gettBbsItems().iterator(); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + bbsSetType = tBbsSetDB.getBbsSetType(); + + tBbsSetDB.settMember(tMember); + tBbsSetDB.setBbsSetName(tBbsSet.getBbsSetName()); + tBbsSetDB.setBbsSetComment(tBbsSet.getBbsSetComment()); + tBbsSetDB.setBbsSetReply(tBbsSet.getBbsSetReply()); + tBbsSetDB.setBbsSetType(tBbsSet.getBbsSetType()); + tBbsSetDB.setBbsSetSubType(tBbsSet.getBbsSetSubType()); + tBbsSetDB.setBbsSetCategory(tBbsSet.getBbsSetCategory()); + tBbsSetDB.setBbsSetCategoryView(tBbsSet.getBbsSetCategoryView()); + tBbsSetDB.setBbsSetEditor(tBbsSet.getBbsSetEditor()); + tBbsSetDB.setBbsSetTrash(tBbsSet.getBbsSetTrash()); + tBbsSetDB.setBbsSetBest(tBbsSet.getBbsSetBest()); + tBbsSetDB.setBbsSetBestRow(tBbsSet.getBbsSetBestRow()); + tBbsSetDB.setBbsSetNP(tBbsSet.getBbsSetNP()); + tBbsSetDB.setBbsSetSecret(tBbsSet.getBbsSetSecret()); + tBbsSetDB.setBbsSetDataMiniCol(tBbsSet.getBbsSetDataMiniCol()); + tBbsSetDB.setBbsSetDataCol(tBbsSet.getBbsSetDataCol()); + tBbsSetDB.setBbsSetDataMiniRow(tBbsSet.getBbsSetDataMiniRow()); + tBbsSetDB.setBbsSetDataRow(tBbsSet.getBbsSetDataRow()); + tBbsSetDB.setBbsSetCommentRow(tBbsSet.getBbsSetCommentRow()); + tBbsSetDB.setBbsSetFileSize(tBbsSet.getBbsSetFileSize()); + tBbsSetDB.setBbsSetFileCount(tBbsSet.getBbsSetFileCount()); + tBbsSetDB.setBbsSetModDate(new Date()); + tBbsSetDB.setBbsSetTHtml(tBbsSet.getBbsSetTHtml()); + tBbsSetDB.setBbsSetFHtml(tBbsSet.getBbsSetFHtml()); + tBbsSetDB.setBbsSetWaterMark(tBbsSet.getBbsSetWaterMark()); + tBbsSetDB.setBbsSetYoutube(tBbsSet.getBbsSetYoutube()); + tBbsSetDB.setBbsSetMyData(tBbsSet.getBbsSetMyData()); + tBbsSetDB.setBbsSetDateOrder(tBbsSet.getBbsSetDateOrder()); + tBbsSetDB.setBbsSetCertify(tBbsSet.getBbsSetCertify()); + tBbsSetDB.setBbsSetDataCookieTime(tBbsSet.getBbsSetDataCookieTime()); + tBbsSetDB.setBbsSetDataSaveType(tBbsSet.getBbsSetDataSaveType()); + tBbsSetDB.setBbsSetPoint(tBbsSet.getBbsSetPoint()); + tBbsSetDB.setBbsSetPointWrite(tBbsSet.getBbsSetPointWrite()); + tBbsSetDB.setBbsSetPointReply(tBbsSet.getBbsSetPointReply()); + tBbsSetDB.setBbsSetPointComment(tBbsSet.getBbsSetPointComment()); + + //답변게시판일때는 답글설정을 사용으로 넣어줌 + if(tBbsSetDB.getBbsSetType().equals("W")){ + tBbsSetDB.setBbsSetReply("Y"); + } + + //인증설정이 안되어 있고 내글만보기 설정이 되어있는 경우 해당 게시글을 찾을수 없으니 작성권한과 답변권한을 삭제함 + if(!SeedUtils.setReplaceNull(tBbsSetDB.getBbsSetCertify()).equals("Y") && + SeedUtils.setReplaceNull(tBbsSetDB.getBbsSetMyData()).equals("Y")){ + + T_BBS_AUTH tBbsAuthDB = bbsAuthDAO.getBbsAuthForm(tBbsSetDB.getBbsSetIdx(), 999); + + tBbsAuthDB.setBbsAuthWrite("N"); + tBbsAuthDB.setBbsAuthReply("N"); + + bbsAuthDAO.setBbsAuthModProc(tBbsAuthDB); + } + + try{ + + if(upFile != null && upFile.getSize() > 0){ + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsSetDB.gettSite().getSiteIdx() + + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx() + "/" + tBbsSetDB.getBbsSetWaterMarkReImg()); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tBbsSetDB.gettSite().getSiteIdx() + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx()); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tBbsSetDB.getBbsSetWaterMarkReImg()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsSetDB.gettSite().getSiteIdx() + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx()); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String reFileName = tBbsSetDB.getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1))); + + File makeFile = new File(rootPath + "/" + tBbsSetDB.gettSite().getSiteIdx() + + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx() + "/" + reFileName + + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))); + upFile.transferTo(makeFile); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tBbsSetDB.gettSite().getSiteIdx() + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx()); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + tBbsSetDB.gettSite().getSiteIdx() + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx()); + //WAS 파일명 + seedFtpType.setFileName(reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + tBbsSetDB.setBbsSetWaterMarkImg(upFile.getOriginalFilename()); + tBbsSetDB.setBbsSetWaterMarkReImg(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))); + } + }catch(IOException e){ + log.error("CHECK ERROR:",e); + } + + if(bbsSetDAO.setBbsSetModProc(tBbsSetDB)){ + + success = true; + + if((bbsSetType.equals("B") || bbsSetType.equals("L") || bbsSetType.equals("F") || bbsSetType.equals("R")) && + (tBbsSet.getBbsSetType().equals("A") || tBbsSet.getBbsSetType().equals("M") || tBbsSet.getBbsSetType().equals("T") || tBbsSet.getBbsSetType().equals("W") || tBbsSet.getBbsSetType().equals("E"))){ //일반게시판에서 앨범게시판으로 변경한 경우 + + //해당 파일이 암호화된 경우 복호화 하여 저장 + while(iteratorBbsDataList.hasNext()){ + + List bbsFileList = bbsFileDAO.getBbsFileList(iteratorBbsDataList.next().getBbsDataIdx()); + + for(int b=0; b bbsFileList = bbsFileDAO.getBbsFileList(iteratorBbsDataList.next().getBbsDataIdx()); + + for(int b=0; b bbsFileList = bbsFileDAO.getBbsFileList(iteratorBbsDataList.next().getBbsDataIdx()); + + for(int b=0; b bbsFileList = bbsFileDAO.getBbsFileList(iteratorBbsDataList.next().getBbsDataIdx()); + + for(int b=0; b 0){ + SeedUtils.setSeedDeleteFiles(rootPath + "/" + tBbsSetDB.gettSite().getSiteIdx() + "/upload/bbs/" + tBbsSetDB.getBbsSetIdx(), ""); + } + + return bbsSetDAO.setBbsSetDelProc(tBbsSetDB); + } + + //ManagerBbsController + @Transactional + public boolean setBbsSetStatusProc(Integer bbsSetIdx, String status, Integer memberIdx){ + + boolean success = false; + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); + + T_BBS_SET tBbsSetDB = bbsSetDAO.getBbsSetForm(bbsSetIdx); + Iterator iteratorList = tBbsSetDB.gettBbsDatas().iterator(); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tBbsSetDB.settMember(tMember); + tBbsSetDB.setBbsSetModDate(new Date()); + tBbsSetDB.setBbsSetStatus(status); + + if(bbsSetDAO.setBbsSetModProc(tBbsSetDB)){ + success = true; + while(iteratorList.hasNext()){ + + T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(iteratorList.next().getBbsDataIdx()); + + tBbsDataDB.settMember(tMember); + tBbsDataDB.setBbsDataModDate(sdf.format(new Date())); + tBbsDataDB.setBbsDataStatus(status); + + if(!bbsDataDAO.setBbsDataModProc(tBbsDataDB)){ + success = false; + break; + } + } + } + + return success; + } + + //ManagerBbsController + public Long getBbsSetSkinListCnt(String siteIdx, String bbsSetType, String bbsSetSubType){ + + return bbsSkinDAO.getBbsSetSkinListCnt(siteIdx, bbsSetType, bbsSetSubType); + } + + //ManagerBbsController + public List getBbsSetSkinList(String siteIdx, String bbsSetType, String bbsSetSubType, int page, int row, String[] qryColumns){ + + return bbsSkinDAO.getBbsSetSkinList(siteIdx, bbsSetType, bbsSetSubType, ((page-1) * row), row, qryColumns); + } + + //ManagerBbsController + @Transactional + public boolean setBbsSetSkinProc(Integer bbsSetIdx, String bbsSkinCode, Integer memberIdx){ + + T_BBS_SET tBbsSetDB = bbsSetDAO.getBbsSetForm(bbsSetIdx); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tBbsSetDB.settMember(tMember); + tBbsSetDB.setBbsSetSkinCode(bbsSkinCode); + + return bbsSetDAO.setBbsSetModProc(tBbsSetDB); + } +} \ No newline at end of file diff --git a/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderManagerService.java b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderManagerService.java new file mode 100644 index 00000000..becf6214 --- /dev/null +++ b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderManagerService.java @@ -0,0 +1,42 @@ +package seed.manager.formbuilder.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_FORMBUILDER_MANAGER; + +public interface ManagerFormbuilderManagerService { + + //ManagerFormbuilderController + public boolean getFormbuilderManagerListGrantCnt(Integer formbuilderSetIdx, Integer memberIdx); + + //ManagerFormbuilderController + public boolean getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer memberIdx); + + //CommonController + public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer selGroup, String column, String search); + + //CommonController + public Long getFormbuilderManagerListCnt(String siteIdx, Integer memberIdx, String column, String search); + + //CommonController + public List getFormbuilderManagerList(Integer formbuilderSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //CommonController + public List getFormbuilderManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //AdminSiteController, ManagerSiteController + public List> getFormbuilderManagerList(String siteIdx, Integer formbuilderSetIdx, String[] qryColumns); + + //CommonController + public boolean setFormbuilderManagerRegProc(Integer formbuilderSetIdx, Integer[] idxsc); + + //CommonController + public boolean setFormbuilderManagerDelProc(Integer formbuilderManagerIdx); + + //CommonController + public boolean setFormbuilderManagerStatusProc(Integer formbuilderManagerIdx, String status); + + //CommonController + public boolean setFormbuilderManagerGrantProc(Integer formbuilderManagerIdx, String grant); +} diff --git a/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderManagerServiceImpl.java b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderManagerServiceImpl.java new file mode 100644 index 00000000..8a13c44e --- /dev/null +++ b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderManagerServiceImpl.java @@ -0,0 +1,196 @@ +package seed.manager.formbuilder.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.FormbuilderManagerDAO; +import seed.dao.MemberDAO; +import seed.dao.SiteManagerDAO; +import seed.map.T_FORMBUILDER_MANAGER; +import seed.map.T_FORMBUILDER_SET; +import seed.map.T_MEMBER; + +@Service +public class ManagerFormbuilderManagerServiceImpl extends AbstractServiceImpl implements ManagerFormbuilderManagerService{ + + @Autowired + private FormbuilderManagerDAO formbuilderManagerDAO; + + @Autowired + private SiteManagerDAO siteManagerDAO; + + @Autowired + private MemberDAO memberDAO; + + //ManagerFormbuilderController + public boolean getFormbuilderManagerListGrantCnt(Integer formbuilderSetIdx, Integer memberIdx){ + + boolean success = false; + + if(formbuilderManagerDAO.getFormbuilderManagerListGrantCnt(formbuilderSetIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //ManagerFormbuilderController + public boolean getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer memberIdx){ + + boolean success = false; + + if(formbuilderManagerDAO.getFormbuilderManagerListCnt(formbuilderSetIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //CommonController + public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer selGroup, String column, String search){ + + return formbuilderManagerDAO.getFormbuilderManagerListCnt(formbuilderSetIdx, selGroup, column, search); + } + + //CommonController + public Long getFormbuilderManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){ + + return formbuilderManagerDAO.getFormbuilderManagerListCnt(siteIdx, memberIdx, column, search); + } + + //CommonController + public List getFormbuilderManagerList(Integer formbuilderSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + return formbuilderManagerDAO.getFormbuilderManagerList(formbuilderSetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns); + } + + //CommonController + public List getFormbuilderManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return formbuilderManagerDAO.getFormbuilderManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //AdminSiteController, ManagerSiteController + public List> getFormbuilderManagerList(String siteIdx, Integer formbuilderSetIdx, String[] qryColumns){ + + return formbuilderManagerDAO.getFormbuilderManagerList(siteIdx, formbuilderSetIdx, qryColumns); + } + + //CommonController + @Transactional + public boolean setFormbuilderManagerRegProc(Integer formbuilderSetIdx, Integer[] idxsc){ + + boolean success = false; + + if(idxsc.length > 0){ + + for(int i=0; i 0){ + success = true; + }else{ + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(idxsc[i]); + + T_FORMBUILDER_SET tFormbuilderSet = new T_FORMBUILDER_SET(); + tFormbuilderSet.setFormbuilderSetIdx(formbuilderSetIdx); + + T_FORMBUILDER_MANAGER tFormbuilderManager = new T_FORMBUILDER_MANAGER(); + + tFormbuilderManager.settMember(tMember); + tFormbuilderManager.settFormbuilderSet(tFormbuilderSet); + tFormbuilderManager.setFormbuilderManagerStatus("U"); + tFormbuilderManager.setFormbuilderManagerGrant("S"); + tFormbuilderManager.setFormbuilderManagerRegDate(new Date()); + + if(formbuilderManagerDAO.setFormbuilderManagerRegProc(tFormbuilderManager)){ + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(tMemberDB.getMemberGrant().equals("SM")){ + tMemberDB.setMemberGrant("SM"); + }else{ + tMemberDB.setMemberGrant("M"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + break; + } + } + }else{ + success = false; + } + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setFormbuilderManagerDelProc(Integer formbuilderManagerIdx){ + + boolean success = false; + + T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerDAO.getFormbuilderManagerForm(formbuilderManagerIdx); + + if(formbuilderManagerDAO.setFormbuilderManagerDelProc(tFormbuilderManagerDB)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(tFormbuilderManagerDB.gettMember().getMemberIdx()); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){ + tMemberDB.setMemberGrant("SM"); + }else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){ + tMemberDB.setMemberGrant("M"); + }else{ + tMemberDB.setMemberGrant("N"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setFormbuilderManagerStatusProc(Integer formbuilderManagerIdx, String status){ + + T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerDAO.getFormbuilderManagerForm(formbuilderManagerIdx); + + tFormbuilderManagerDB.setFormbuilderManagerStatus(status); + + return formbuilderManagerDAO.setFormbuilderManagerModProc(tFormbuilderManagerDB); + } + + //CommonController + @Transactional + public boolean setFormbuilderManagerGrantProc(Integer formbuilderManagerIdx, String grant){ + + T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerDAO.getFormbuilderManagerForm(formbuilderManagerIdx); + + tFormbuilderManagerDB.setFormbuilderManagerGrant(grant); + + return formbuilderManagerDAO.setFormbuilderManagerModProc(tFormbuilderManagerDB); + } +} diff --git a/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderSetService.java b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderSetService.java new file mode 100644 index 00000000..7d696343 --- /dev/null +++ b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderSetService.java @@ -0,0 +1,50 @@ +package seed.manager.formbuilder.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_FORMBUILDER_SET; +import seed.map.T_FORMBUILDER_SKIN; +import seed.map.VIEW_FORMBUILDER_SET; + +public interface ManagerFormbuilderSetService { + + //AdminSiteController, ManagerSiteController + public T_FORMBUILDER_SET getFormbuilderSetForm(String siteIdx, String siteMenuIdx); + + //ManagerFormbuilderController, CommonController + public T_FORMBUILDER_SET getFormbuilderSetForm(Integer formbuilderSetIdx); + + //ManagerFormbuilderController + public List> getFormbuilderSetMiniList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns); + + //ManagerFormbuilderController + public Long getFormbuilderSetListCnt(String siteIdx, String column, String search); + + //ManagerFormbuilderController + public List getFormbuilderSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //ManagerFormbuilderController + public Integer setFormbuilderSetRegProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx); + + //AdminSiteController, ManagerSiteController + public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet); + + //ManagerFormbuilderController + public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx); + + //ManagerFormbuilderController + public boolean setFormbuilderSetDelProc(Integer formbuilderSetIdx, String rootPath); + + //ManagerFormbuilderController + public boolean setFormbuilderSetStatusProc(Integer formbuilderSetIdx, String status, Integer memberIdx); + + //ManagerFormbuilderController + public Long getFormbuilderSetSkinListCnt(String siteIdx); + + //ManagerFormbuilderController + public List getFormbuilderSetSkinList(String siteIdx, int page, int row, String[] qryColumns); + + //ManagerFormbuilderController + public boolean setFormbuilderSetSkinProc(Integer formbuilderSetIdx, String formbuilderSkinCode, Integer memberIdx); +} diff --git a/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderSetServiceImpl.java b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderSetServiceImpl.java new file mode 100644 index 00000000..cb5a5af2 --- /dev/null +++ b/src/main/java/seed/manager/formbuilder/service/ManagerFormbuilderSetServiceImpl.java @@ -0,0 +1,237 @@ +package seed.manager.formbuilder.service; + +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.FormbuilderAuthDAO; +import seed.dao.FormbuilderDataDAO; +import seed.dao.FormbuilderSetDAO; +import seed.dao.FormbuilderSkinDAO; +import seed.dao.GroupDAO; +import seed.map.T_FORMBUILDER_AUTH; +import seed.map.T_FORMBUILDER_DATA; +import seed.map.T_FORMBUILDER_SET; +import seed.map.T_FORMBUILDER_SKIN; +import seed.map.T_GROUP; +import seed.map.T_MEMBER; +import seed.map.VIEW_FORMBUILDER_SET; +import seed.utils.SeedUtils; + +@Service +public class ManagerFormbuilderSetServiceImpl extends AbstractServiceImpl implements ManagerFormbuilderSetService{ + + @Autowired + private FormbuilderSetDAO formbuilderSetDAO; + + @Autowired + private GroupDAO groupDAO; + + @Autowired + private FormbuilderAuthDAO formbuilderAuthDAO; + + @Autowired + private FormbuilderDataDAO formbuilderDataDAO; + + @Autowired + private FormbuilderSkinDAO formbuilderSkinDAO; + + //AdminSiteController, ManagerSiteController + public T_FORMBUILDER_SET getFormbuilderSetForm(String siteIdx, String siteMenuIdx){ + + return formbuilderSetDAO.getFormbuilderSetForm(siteIdx, siteMenuIdx); + } + + //ManagerFormbuilderController + public T_FORMBUILDER_SET getFormbuilderSetForm(Integer formbuilderSetIdx){ + + return formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx); + } + + public List> getFormbuilderSetMiniList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns){ + + return formbuilderSetDAO.getFormbuilderSetMiniList(formbuilderSetIdx, ((page-1) * row), row, qryColumns); + } + + //ManagerFormbuilderController + public Long getFormbuilderSetListCnt(String siteIdx, String column, String search){ + + return formbuilderSetDAO.getFormbuilderSetListCnt(siteIdx, column, search); + } + + //ManagerFormbuilderController + public List getFormbuilderSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return formbuilderSetDAO.getFormbuilderSetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //ManagerFormbuilderController + @Transactional + public Integer setFormbuilderSetRegProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx){ + + Integer formbuilderSetIdx = 0; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tFormbuilderSet.settMember(tMember); + tFormbuilderSet.setFormbuilderSetSkinCode("basic"); + tFormbuilderSet.setFormbuilderSetStatus("U"); + tFormbuilderSet.setFormbuilderSetRegDate(new Date()); + tFormbuilderSet.setFormbuilderSetModDate(new Date()); + + T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.setFormbuilderSetRegProc(tFormbuilderSet); + + if(tFormbuilderSetDB != null){ + + formbuilderSetIdx = tFormbuilderSetDB.getFormbuilderSetIdx(); + + //그룹 테이블의 내용을 T_FORMBUILDER_AUTH에 INSERT + String[] qryColumns = null; + + List tGroupList = null; + + if(memberMerge.equals("true")){ + tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumns); + }else{ + tGroupList = groupDAO.getGroupList(tFormbuilderSet.gettSite().getSiteIdx(), qryColumns); + } + + if(tGroupList != null && tGroupList.size() > 0){ + for(int g=0; g 0){ + SeedUtils.setSeedDeleteFiles(rootPath + "/" + tFormbuilderSetDB.gettSite().getSiteIdx() + "/upload/formbuilder/" + tFormbuilderSetDB.getFormbuilderSetIdx(), ""); + } + + return formbuilderSetDAO.setFormbuilderSetDelProc(tFormbuilderSetDB); + } + + //ManagerFormbuilderController + @Transactional + public boolean setFormbuilderSetStatusProc(Integer formbuilderSetIdx, String status, Integer memberIdx){ + + boolean success = false; + + T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx); + Iterator iteratorList = tFormbuilderSetDB.gettFormbuilderDatas().iterator(); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tFormbuilderSetDB.settMember(tMember); + tFormbuilderSetDB.setFormbuilderSetModDate(new Date()); + tFormbuilderSetDB.setFormbuilderSetStatus(status); + + if(formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSetDB)){ + + success = true; + + while(iteratorList.hasNext()){ + + T_FORMBUILDER_DATA tFormbuilderDataDB = formbuilderDataDAO.getFormbuilderDataForm(iteratorList.next().getFormbuilderDataIdx()); + + tFormbuilderDataDB.setFormbuilderDataStatus(status); + + if(!formbuilderDataDAO.setFormbuilderDataModProc(tFormbuilderDataDB)){ + success = false; + break; + } + } + } + + return success; + } + + //ManagerFormbuilderController + public Long getFormbuilderSetSkinListCnt(String siteIdx){ + + return formbuilderSkinDAO.getFormbuilderSetSkinListCnt(siteIdx); + } + + //ManagerFormbuilderController + public List getFormbuilderSetSkinList(String siteIdx, int page, int row, String[] qryColumns){ + + return formbuilderSkinDAO.getFormbuilderSetSkinList(siteIdx, ((page-1) * row), row, qryColumns); + } + + //ManagerFormbuilderController + @Transactional + public boolean setFormbuilderSetSkinProc(Integer formbuilderSetIdx, String formbuilderSkinCode, Integer memberIdx){ + + T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tFormbuilderSetDB.settMember(tMember); + tFormbuilderSetDB.setFormbuilderSetSkinCode(formbuilderSkinCode); + + return formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSetDB); + } +} \ No newline at end of file diff --git a/src/main/java/seed/manager/group/service/ManagerGroupService.java b/src/main/java/seed/manager/group/service/ManagerGroupService.java new file mode 100644 index 00000000..034d0fc6 --- /dev/null +++ b/src/main/java/seed/manager/group/service/ManagerGroupService.java @@ -0,0 +1,35 @@ +package seed.manager.group.service; + +import java.util.List; + +import seed.map.T_GROUP; + +public interface ManagerGroupService { + + //ManagerGroupController + public T_GROUP getGroupForm(Integer groupIdx); + + //ManagerMemberController + public List getGroupList(String siteIdx, String[] qryColumns); + + //HomeController + public String getGroupList(String siteIdx, Integer memberIdx, String memberMerge, String memberMergeSiteIdx); + + //ManagerGroupController + public List getGroupList(String siteIdx, String column, String search, String[] qryColumns); + + //ManagerGroupController + public Integer setGroupRegProc(T_GROUP tGroup, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath); + + //ManagerGroupController + public boolean setGroupModProc(T_GROUP tGroup, Integer memberIdx); + + //ManagerGroupController + public boolean setGroupDelProc(Integer groupIdx, String memberMerge, String memberMergeSiteIdx, String rootPath); + + //ManagerGroupController + public boolean setGroupStatusProc(Integer groupIdx, String status, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath); + + //ManagerGroupController + public boolean setGroupOrderProc(String siteIdx, Integer groupLevel, String orderType, Integer memberIdx, String rootPath); +} diff --git a/src/main/java/seed/manager/group/service/ManagerGroupServiceImpl.java b/src/main/java/seed/manager/group/service/ManagerGroupServiceImpl.java new file mode 100644 index 00000000..df6fa9cb --- /dev/null +++ b/src/main/java/seed/manager/group/service/ManagerGroupServiceImpl.java @@ -0,0 +1,1265 @@ +package seed.manager.group.service; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import seed.dao.BbsAuthDAO; +import seed.dao.BbsSetDAO; +import seed.dao.FormbuilderAuthDAO; +import seed.dao.FormbuilderSetDAO; +import seed.dao.GroupDAO; +import seed.dao.GroupsDAO; +import seed.dao.SiteDAO; +import seed.dao.SiteMenuAuthDAO; +import seed.dao.SiteMenuDAO; +import seed.dao.SiteMenuHistoryDAO; +import seed.dao.SurveyAuthDAO; +import seed.dao.SurveySetDAO; +import seed.map.T_BBS_AUTH; +import seed.map.T_BBS_SET; +import seed.map.T_FORMBUILDER_AUTH; +import seed.map.T_FORMBUILDER_SET; +import seed.map.T_GROUP; +import seed.map.T_GROUPS; +import seed.map.T_MEMBER; +import seed.map.T_SITE; +import seed.map.T_SITE_MENU; +import seed.map.T_SITE_MENU_AUTH; +import seed.map.T_SITE_MENU_HISTORY; +import seed.map.T_SURVEY_AUTH; +import seed.map.T_SURVEY_SET; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Service +public class ManagerGroupServiceImpl extends EgovAbstractServiceImpl implements ManagerGroupService{ + + protected org.apache.commons.logging.Log log; + + @Autowired + private SiteDAO siteDAO; + + @Autowired + private SiteMenuHistoryDAO siteMenuHistoryDAO; + + @Autowired + private GroupDAO groupDAO; + + @Autowired + private GroupsDAO groupsDAO; + + @Autowired + private SiteMenuDAO siteMenuDAO; + + @Autowired + private BbsSetDAO bbsSetDAO; + + @Autowired + private FormbuilderSetDAO formbuilderSetDAO; + + @Autowired + private SurveySetDAO surveySetDAO; + + @Autowired + private SiteMenuAuthDAO siteMenuAuthDAO; + + @Autowired + private BbsAuthDAO bbsAuthDAO; + + @Autowired + private FormbuilderAuthDAO formbuilderAuthDAO; + + @Autowired + private SurveyAuthDAO surveyAuthDAO; + + //ManagerGroupController + public T_GROUP getGroupForm(Integer groupIdx){ + + return groupDAO.getGroupForm(groupIdx); + } + + //ManagerMemberController + public List getGroupList(String siteIdx, String[] qryColumns){ + + return groupDAO.getGroupList(siteIdx, qryColumns); + } + + //HomeController + public String getGroupList(String siteIdx, Integer memberIdx, String memberMerge, String memberMergeSiteIdx){ + + StringBuffer seedMenuAuth = new StringBuffer(); + + List> groupList = null; + + if(memberMerge.equals("true")){ + groupList = groupDAO.getGroupMapList(memberMergeSiteIdx, new String[] {"groupIdx"}); + }else{ + groupList = groupDAO.getGroupMapList(siteIdx, new String[] {"groupIdx"}); + } + + if(memberIdx.equals(0)){ //손님일 경우 999에 해당하는 마지막 데이타에 값을 Y로 변경 + + for(int i=0; i> groupsList = groupsDAO.getGroupsMapList(memberIdx, new String[] {"tGroup.groupIdx"}); + + for(int i=0; i tGroupDB = groupList.get(i); + + for(int j=0; j tGroupsDB = groupsList.get(j); + + if(tGroupsDB.get("_groupIdx").equals(tGroupDB.get("_groupIdx"))){ + seedMenuAuth.append("Y,"); + memberChk = true; + break; + } + } + + if(!memberChk){ + seedMenuAuth.append("N,"); + } + } + } + + return seedMenuAuth.toString().substring(0, seedMenuAuth.toString().length() - 1); + } + + //ManagerGroupController + public List getGroupList(String siteIdx, String column, String search, String[] qryColumns){ + + return groupDAO.getGroupList(siteIdx, column, search, qryColumns); + } + + //ManagerGroupController + @Transactional + public Integer setGroupRegProc(T_GROUP tGroup, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath){ + + Integer groupIdx = 0; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tGroup.settMember(tMember); + tGroup.setGroupLevel(groupDAO.getGroupLevelFormCnt(tGroup.gettSite().getSiteIdx()) + 1); + tGroup.setGroupStatus("U"); + tGroup.setGroupType("A"); + tGroup.setGroupRegDate(new Date()); + tGroup.setGroupModDate(new Date()); + + T_GROUP tGroupDB = groupDAO.setGroupRegProc(tGroup); + + if(tGroupDB != null){ + + groupIdx = tGroupDB.getGroupIdx(); + + //권한 관련 테이블에 INSERT + + List tSiteMenuList = null; + + if(memberMerge.equals("true")){ + tSiteMenuList = siteMenuDAO.getSiteMenuList("ALL_SITE_IDX"); + }else{ + tSiteMenuList = siteMenuDAO.getSiteMenuList(tGroup.gettSite().getSiteIdx()); + } + + for(int s=0; s tBbsSetList = null; + + if(memberMerge.equals("true")){ + tBbsSetList = bbsSetDAO.getBbsSetList("ALL_SITE_IDX", qryColumnb); + }else{ + tBbsSetList = bbsSetDAO.getBbsSetList(tGroup.gettSite().getSiteIdx(), qryColumnb); + } + + for(int b=0; b tFormbuilderSetList = null; + + if(memberMerge.equals("true")){ + tFormbuilderSetList = formbuilderSetDAO.getFormbuilderSetList("ALL_SITE_IDX", qryColumnf); + }else{ + tFormbuilderSetList = formbuilderSetDAO.getFormbuilderSetList(tGroup.gettSite().getSiteIdx(), qryColumnf); + } + + for(int f=0; f tSurveySetList = null; + + if(memberMerge.equals("true")){ + tSurveySetList = surveySetDAO.getSurveySetList("ALL_SITE_IDX", qryColumns); + }else{ + tSurveySetList = surveySetDAO.getSurveySetList(tGroup.gettSite().getSiteIdx(), qryColumns); + } + + for(int s=0; s> tSiteList = siteDAO.getSiteList(memberMergeSiteIdx); + + if(tSiteList.size() > 0){ + + for(int s=0; s tSiteMapDB = tSiteList.get(s); + String siteIdx = SeedUtils.setReplaceNull(tSiteMapDB.get("siteIdx")); + + if(!setSiteMenuAllCompile(siteIdx, rootPath)){ + groupIdx = 0; + break; + } + } + } + }else{ + if(!setSiteMenuAllCompile(tGroup.gettSite().getSiteIdx(), rootPath)){ + groupIdx = 0; + } + } + } + + return groupIdx; + } + + //ManagerGroupController + @Transactional + public boolean setGroupModProc(T_GROUP tGroup, Integer memberIdx){ + + T_GROUP tGroupDB = groupDAO.getGroupForm(tGroup.getGroupIdx()); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tGroupDB.settMember(tMember); + tGroupDB.setGroupName(tGroup.getGroupName()); + tGroupDB.setGroupModDate(new Date()); + + return groupDAO.setGroupModProc(tGroupDB); + } + + //ManagerGroupController + @Transactional + public boolean setGroupDelProc(Integer groupIdx, String memberMerge, String memberMergeSiteIdx, String rootPath){ + + boolean success = false; + + T_GROUP tGroupDB = groupDAO.getGroupForm(groupIdx); + + groupDAO.setGroupLevelProc(tGroupDB.getGroupLevel()); + + if(groupDAO.setGroupDelProc(tGroupDB)){ + + //모든 메뉴 생성(권한이 추가되어 다시 컴파일해야함 data-seed) + if(memberMerge.equals("true")){ + + List> tSiteList = siteDAO.getSiteList(memberMergeSiteIdx); + + if(tSiteList.size() > 0){ + + for(int s=0; s tSiteMapDB = tSiteList.get(s); + String siteIdx = SeedUtils.setReplaceNull(tSiteMapDB.get("siteIdx")); + + if(!setSiteMenuAllCompile(siteIdx, rootPath)){ + success = false; + break; + }else{ + success = true; + } + } + } + }else{ + success = setSiteMenuAllCompile(tGroupDB.gettSite().getSiteIdx(), rootPath); + } + } + + return success; + } + + //ManagerGroupController + @Transactional + public boolean setGroupStatusProc(Integer groupIdx, String status, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath){ + + boolean success = false; + T_GROUP tGroupDB = groupDAO.getGroupForm(groupIdx); + Iterator iteratorList = tGroupDB.gettGroupss().iterator(); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tGroupDB.settMember(tMember); + tGroupDB.setGroupModDate(new Date()); + tGroupDB.setGroupStatus(status); + + if(groupDAO.setGroupModProc(tGroupDB)){ + success = true; + while(iteratorList.hasNext()){ + + T_GROUPS tGroupsDB = groupsDAO.getGroupsForm(iteratorList.next().getGroupsIdx()); + + tGroupsDB.settMember(tMember); + tGroupsDB.setGroupsStatus(status); + + if(!groupsDAO.setGroupsModProc(tGroupsDB)){ + success = false; + break; + } + } + } + + if(success){ + + //모든 메뉴 생성(권한이 추가되어 다시 컴파일해야함 data-seed) + if(memberMerge.equals("true")){ + + List> tSiteList = siteDAO.getSiteList(memberMergeSiteIdx); + + if(tSiteList.size() > 0){ + + for(int s=0; s tSiteMapDB = tSiteList.get(s); + String siteIdx = SeedUtils.setReplaceNull(tSiteMapDB.get("siteIdx")); + + if(!setSiteMenuAllCompile(siteIdx, rootPath)){ + success = false; + break; + }else{ + success = true; + } + } + } + }else{ + success = setSiteMenuAllCompile(tGroupDB.gettSite().getSiteIdx(), rootPath); + } + } + + return success; + } + + //ManagerGroupController + @Transactional + public boolean setGroupOrderProc(String siteIdx, Integer groupLevel, String orderType, Integer memberIdx, String rootPath){ + + boolean success = false; + + Integer groupLevelTmp = groupLevel; + + if(orderType.equals("up")){ + groupLevel = groupLevel - 1; + }else{ + groupLevel = groupLevel + 1; + } + + T_GROUP tGroupLevelDB = groupDAO.getGroupLevelForm(siteIdx, groupLevel); + T_GROUP tGroupDB = groupDAO.getGroupLevelForm(siteIdx, groupLevelTmp); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tGroupLevelDB.settMember(tMember); + tGroupDB.settMember(tMember); + + tGroupLevelDB.setGroupLevel(groupLevelTmp); + tGroupDB.setGroupLevel(groupLevel); + + if(groupDAO.setGroupModProc(tGroupDB) && + groupDAO.setGroupModProc(tGroupLevelDB)){ + success = true; + } + + if(success){ + //모든 메뉴 생성(권한이 추가되어 다시 컴파일해야함 data-seed) + success = setSiteMenuAllCompile(tGroupDB.gettSite().getSiteIdx(), rootPath); + } + + return success; + } + + public synchronized boolean setSiteMenuAllCompile(String siteIdx, String rootPath){ + + boolean success = false; + + try{ + + SeedFtpType seedFtpType = new SeedFtpType(); + + boolean fileChk = false; + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + Integer depth = 0; + String siteMenuName = ""; + String siteMenuHtml = ""; + String siteMenuLink = ""; + String siteMenuLinkTarget = ""; + String tabMenuHtml = ""; + + ArrayList siteMenuIdx1s = new ArrayList(); + + T_SITE tSiteDB = siteDAO.getSiteForm(siteIdx); + + //상단메뉴 저장 + String menuTopPathMain = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"; + String menuTopPathSub = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"; + + SeedUtils.setSeedMkDirs(menuTopPathMain); + SeedUtils.setSeedMkDirs(menuTopPathSub); + + File menuTopMakeMainFile = new File(menuTopPathMain + "/menu_main.html"); + File menuTopMakeSubFile = new File(menuTopPathSub + "/menu_sub.html"); + + if(menuTopMakeMainFile.exists() && menuTopMakeSubFile.exists()){ //파일이 있는 경우 파일 menu_bak으로 파일명 변경 + + File menuTopFileMainBak = new File(menuTopPathMain + "/menu_main_"+getDate+".html"); + menuTopMakeMainFile.renameTo(menuTopFileMainBak); //menu.html을 menu_bak.html로 파일명 변경 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath("menu_main.html"); + //WAS 파일명 + seedFtpType.setFileName("menu_main_"+getDate+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + File menuTopFileSubBak = new File(menuTopPathSub + "/menu_sub_"+getDate+".html"); + menuTopMakeSubFile.renameTo(menuTopFileSubBak); //menu.html을 menu_bak.html로 파일명 변경 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath("menu_sub.html"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub_"+getDate+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuHistoryMain = new T_SITE_MENU_HISTORY(); + + tSiteMenuHistoryMain.settSite(tSiteDB); + tSiteMenuHistoryMain.setSiteMenuHistoryType("top"); + tSiteMenuHistoryMain.setSiteMenuHistoryFile("menu_main_"+getDate+".html"); + tSiteMenuHistoryMain.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistoryMain); + + List siteMenuMainHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_main"); + + if(siteMenuMainHisotryList != null && siteMenuMainHisotryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuMainHisotryList.get(0); + + File bakFile = new File(menuTopPathMain+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuHistorySub = new T_SITE_MENU_HISTORY(); + + tSiteMenuHistorySub.settSite(tSiteDB); + tSiteMenuHistorySub.setSiteMenuHistoryType("top"); + tSiteMenuHistorySub.setSiteMenuHistoryFile("menu_sub_"+getDate+".html"); + tSiteMenuHistorySub.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistorySub); + + List siteMenuSubHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_sub"); + + if(siteMenuSubHisotryList != null && siteMenuSubHisotryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuSubHisotryList.get(0); + + File bakFile = new File(menuTopPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + } + + Integer siteMenuParentDepth = 0; + + String[] qryColumnsm = null; + + List siteMenuTopList = siteMenuDAO.getSiteMenuTopList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuTopDepth(), qryColumnsm); + + if(siteMenuTopList.size() > 0){ + + fileChk = true; + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + htmlFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + boolean statusChk = false; + + Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + for(int x=0; x siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx()); + + String siteMenuAuth = ""; + + for(int m=0; m"; + } + + if(tSiteMenuTmp.getSiteMenuType().equals("H")){ + siteMenuLink = ""+siteMenuName+"" + "\n"; + }else{ + if(tSiteMenuTmp.getSiteMenuLink().equals("B")){ + siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" ' "; + }else{ + siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '"; + } + siteMenuLink = ""+siteMenuName+"" + "\n"; + } + + tempDepth[depth-1]++; + + for(int d=0; d" + "\n"; + siteMenuHtml += tabMenuHtml + "
  • " + siteMenuLink; + + }else if(siteMenuParentDepth == depth){ + + siteMenuHtml = tabMenuHtml + "
  • " + "\n"; + siteMenuHtml += tabMenuHtml + "
  • " + siteMenuLink; + + }else if(siteMenuParentDepth > depth){ + + siteMenuHtml = ""; + + for(int j=0; j<(siteMenuParentDepth - depth); j++){ + + String tabMenuHtmlTemp = ""; + + for(int d=0; d<(siteMenuParentDepth-j); d++){ + tabMenuHtmlTemp += " "; + } + + siteMenuHtml += tabMenuHtmlTemp + "
  • " + "\n"; + siteMenuHtml += tabMenuHtmlTemp + "" + "\n"; + } + + siteMenuHtml += tabMenuHtml + " " + "\n"; + siteMenuHtml += tabMenuHtml + "
  • " + siteMenuLink; + } + + htmlWriter.write(siteMenuHtml); + jspWriter.write(siteMenuHtml); + + siteMenuParentDepth = depth; + } + + siteMenuHtml = ""; + tabMenuHtml = ""; + + for(int d=0; d" + "\n"; + siteMenuHtml += tabMenuHtml + "" + "\n"; + } + + siteMenuHtml += "
  • " + "\n"; + siteMenuHtml += " "; + + htmlWriter.write(siteMenuHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + jspWriter.write(siteMenuHtml); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuTopPathMain + "/menu_main.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp"); + + File file = new File(menuTopPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + } + + if(!fileChk){ + + menuTopMakeMainFile.createNewFile(); + menuTopMakeSubFile.createNewFile(); + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuTopPathMain + "/menu_main.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + } + + fileChk = false; + + //서브메뉴 저장 + if(siteMenuIdx1s.size() > 0){ + + for(int i=0; i siteMenuHistoryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "sub/"+siteMenuIdx1s.get(i), "menu_sub"); + + if(siteMenuHistoryList != null && siteMenuHistoryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0); + + File bakFile = new File(menuSubPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + } + + siteMenuParentDepth = 0; + + qryColumnsm = null; + + List siteMenuSubList = siteMenuDAO.getSiteMenuSubList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuSubSDepth(), tSiteDB.getSiteMenuSubEDepth(), siteMenuIdx1s.get(i), qryColumnsm); + + if(siteMenuSubList.size() > 0){ + + fileChk = true; + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + htmlFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + for(int x=0; x siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx()); + + String siteMenuAuth = ""; + + for(int m=0; m"; + } + + if(tSiteMenuTmp.getSiteMenuType().equals("H")){ + siteMenuLink = ""+siteMenuName+"" + "\n"; + }else{ + if(tSiteMenuTmp.getSiteMenuLink().equals("B")){ + siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" ' "; + }else{ + siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '"; + } + siteMenuLink = ""+siteMenuName+"" + "\n"; + } + + tempDepth[depth-1]++; + + for(int d=0; d" + "\n"; + }else{ + siteMenuHtml = tabMenuHtml + "
      " + "\n"; + } + + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + + }else if(siteMenuParentDepth == depth){ + + siteMenuHtml = tabMenuHtml + "
    • " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + + }else if(siteMenuParentDepth > depth){ + + siteMenuHtml = ""; + + for(int j=0; j<(siteMenuParentDepth - depth); j++){ + + String tabMenuHtmlTemp = ""; + + for(int d=0; d<(siteMenuParentDepth-j); d++){ + tabMenuHtmlTemp += " "; + } + + siteMenuHtml += tabMenuHtmlTemp + "
    • " + "\n"; + siteMenuHtml += tabMenuHtmlTemp + "
    " + "\n"; + } + siteMenuHtml += tabMenuHtml + " " + "\n"; + siteMenuHtml += tabMenuHtml + "
  • " + siteMenuLink; + } + + htmlWriter.write(siteMenuHtml); + jspWriter.write(siteMenuHtml); + + siteMenuParentDepth = depth; + } + + siteMenuHtml = ""; + + for(int m=0; m<(depth-2); m++){ + + tabMenuHtml = ""; + + for(int d=0; d<(depth-1-m); d++){ + tabMenuHtml += " "; + } + + siteMenuHtml += tabMenuHtml + "
  • " + "\n"; + siteMenuHtml += tabMenuHtml + "" + "\n"; + } + + siteMenuHtml += " " + "\n"; + siteMenuHtml += " "; + + htmlWriter.write(siteMenuHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + jspWriter.write(siteMenuHtml); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuSubPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!fileChk){ + + menuSubMakeSubFile.createNewFile(); + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuSubPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + } + } + + success = true; + + }catch(IOException ex){ + success = false; + log.error("CHECK ERROR:",ex); + } + + return success; + } +} diff --git a/src/main/java/seed/manager/group/service/ManagerGroupsService.java b/src/main/java/seed/manager/group/service/ManagerGroupsService.java new file mode 100644 index 00000000..37bed478 --- /dev/null +++ b/src/main/java/seed/manager/group/service/ManagerGroupsService.java @@ -0,0 +1,26 @@ +package seed.manager.group.service; + +import java.util.List; + +import seed.map.T_GROUPS; + +public interface ManagerGroupsService { + + //ManagerGroupController + public Long getGroupsListCnt(Integer groupIdx, String column, String search); + + //ManagerGroupController + public List getGroupsList(Integer groupIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //ManagerMemberController + public List getGroupsList(String siteIdx, Integer memberIdx, String[] qryColumns); + + //ManagerGroupController + public boolean setGroupsRegProc(String siteIdx, Integer groupIdx, Integer[] idxsc); + + //ManagerGroupController + public String setGroupsDelProc(Integer groupsIdx); + + //ManagerGroupController + public boolean setGroupsStatusProc(Integer groupsIdx, String status); +} diff --git a/src/main/java/seed/manager/group/service/ManagerGroupsServiceImpl.java b/src/main/java/seed/manager/group/service/ManagerGroupsServiceImpl.java new file mode 100644 index 00000000..d45b0d90 --- /dev/null +++ b/src/main/java/seed/manager/group/service/ManagerGroupsServiceImpl.java @@ -0,0 +1,116 @@ +package seed.manager.group.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.map.T_GROUP; +import seed.map.T_GROUPS; +import seed.map.T_MEMBER; +import seed.map.T_SITE; +import seed.dao.GroupsDAO; + +@Service +public class ManagerGroupsServiceImpl extends AbstractServiceImpl implements ManagerGroupsService{ + + @Autowired + private GroupsDAO groupsDAO; + + //ManagerGroupController + public Long getGroupsListCnt(Integer groupIdx, String column, String search){ + + return groupsDAO.getGroupsListCnt(groupIdx, column, search); + } + + //ManagerGroupController + public List getGroupsList(Integer groupIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return groupsDAO.getGroupsList(groupIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //ManagerMemberController + public List getGroupsList(String siteIdx, Integer memberIdx, String[] qryColumns){ + + return groupsDAO.getGroupsList(siteIdx, memberIdx, qryColumns); + } + + //ManagerGroupController + @Transactional + public boolean setGroupsRegProc(String siteIdx, Integer groupIdx, Integer[] idxsc){ + + boolean success = false; + + if(idxsc.length > 0){ + + for(int i=0; i 0){ + success = true; + }else{ + + T_SITE tSite = new T_SITE(); + tSite.setSiteIdx(siteIdx); + + T_GROUP tGroup = new T_GROUP(); + tGroup.setGroupIdx(groupIdx); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(idxsc[i]); + + T_GROUPS tGroups = new T_GROUPS(); + + tGroups.settSite(tSite); + tGroups.settGroup(tGroup); + tGroups.settMember(tMember); + tGroups.setGroupsStatus("U"); + tGroups.setGroupsRegDate(new Date()); + + if(groupsDAO.setGroupsRegProc(tGroups)){ + success = true; + }else{ + success = false; + break; + } + } + } + } + + return success; + } + + //ManagerGroupController + @Transactional + public String setGroupsDelProc(Integer groupsIdx){ + + String success = ""; + + T_GROUPS tGroupsDB = groupsDAO.getGroupsForm(groupsIdx); + + //그룹이 한개만 있을경우 그룹 삭제는 불가능(회원은 적어도 한개의 그룹에 속해야함) + if(groupsDAO.getGroupsListCnt(tGroupsDB.gettMember().getMemberIdx()) <= 1){ + success = "N"; + }else{ + if(groupsDAO.setGroupsDelProc(tGroupsDB)){ + success = "Y"; + } + } + + return success; + } + + //ManagerGroupController + @Transactional + public boolean setGroupsStatusProc(Integer groupsIdx, String status){ + + T_GROUPS tGroupsDB = groupsDAO.getGroupsForm(groupsIdx); + + tGroupsDB.setGroupsStatus(status); + + return groupsDAO.setGroupsModProc(tGroupsDB); + } +} diff --git a/src/main/java/seed/manager/group/web/ManagerGroupController.java b/src/main/java/seed/manager/group/web/ManagerGroupController.java new file mode 100644 index 00000000..96287ef0 --- /dev/null +++ b/src/main/java/seed/manager/group/web/ManagerGroupController.java @@ -0,0 +1,655 @@ +package seed.manager.group.web; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +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.validation.BindingResult; +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 seed.manager.group.service.ManagerGroupService; +import seed.manager.group.service.ManagerGroupsService; +import seed.manager.member.service.ManagerMemberService; +import seed.manager.site.service.ManagerSiteManagerService; +import seed.map.T_GROUP; +import seed.utils.InterceptorCheck; +import seed.utils.Paging; +import seed.utils.SeedUtils; + +@Controller +public class ManagerGroupController { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private ManagerGroupService managerGroupService; + + @Autowired + private ManagerGroupsService managerGroupsService; + + @Autowired + private ManagerSiteManagerService managerSiteManagerService; + + @Autowired + private ManagerMemberService managerMemberService; + + @Value("#{config['root.path']}") + private String rootPath; + + @Value("#{config['member.merge']}") + private String memberMerge; + + @Value("#{config['member.merge.siteIdx']}") + private String memberMergeSiteIdx; + + 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}/groupList.do") + public ModelAndView getGroupList(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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 = {"groupBy", "tGroupss.groupsIdxCnt", "groupIdx", "groupName", "groupType", "groupName", "groupLevel", "groupRegDate", "groupStatus", "tMember.memberId", "tMember.memberName"}; + + List tGroupList = managerGroupService.getGroupList(siteIdx, column, search, qryColumns); + + map.put("groupList", tGroupList); + map.put("groupListCnt", tGroupList.size()); + + map.put("column", column); + map.put("search", search); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/group/groupList"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/groupForm.do") + public ModelAndView getGroupForm(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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("memberAuth", memberAuth); + + return new ModelAndView("/manager/group/groupForm"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/groupEdit/{groupIdx}.do", method=RequestMethod.GET) + public ModelAndView getGroupEdit(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupIdx") Integer groupIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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("column", column); + map.put("search", search); + + map.put("tGroupDB", managerGroupService.getGroupForm(groupIdx)); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/group/groupEdit"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/groupRegProc.do", method=RequestMethod.POST) + public ModelAndView setGroupRegProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("T_GROUP") T_GROUP tGroup, + BindingResult bindingResult){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + Integer groupIdx = managerGroupService.setGroupRegProc(tGroup, memberIdx, memberMerge, memberMergeSiteIdx, rootPath); + + if(groupIdx > 0){ + map.put("url", "/gtm/"+siteIdx+"/groupList.do"); + map.put("message", "common.message.reg"); + }else{ + map.put("url", "/gtm/"+siteIdx+"/groupForm.do"); + map.put("message", "common.message.error.reg"); + } + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/groupModProc.do", method=RequestMethod.POST) + public ModelAndView setGroupModProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("T_GROUP") T_GROUP tGroup, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + BindingResult bindingResult){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + if(managerGroupService.setGroupModProc(tGroup, memberIdx)){ + map.put("message", "common.message.mod"); + }else{ + map.put("message", "common.message.error.mod"); + } + + map.put("url", "/gtm/"+siteIdx+"/groupEdit/"+tGroup.getGroupIdx()+".do?"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/groupDelProc/{groupIdx}.do", method=RequestMethod.GET) + public ModelAndView setGroupDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupIdx") Integer groupIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + if(managerGroupService.setGroupDelProc(groupIdx, memberMerge, memberMergeSiteIdx, rootPath)){ + map.put("message", "common.message.del"); + }else{ + map.put("message", "common.message.error.del"); + } + + map.put("url", "/gtm/"+siteIdx+"/groupList.do?"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/groupStatusProc.do", method=RequestMethod.POST) + public ModelAndView setGroupStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="idxs", required=true) Integer[] idxs, + @RequestParam(value="selStatus", required=true) String selStatus){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + boolean success = false; + + if(idxs.length > 0){ + for(int i=0; i map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupLevel") Integer groupLevel, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="orderType", required=true) String orderType){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + if(managerGroupService.setGroupOrderProc(siteIdx, groupLevel, orderType, memberIdx, rootPath)){ + map.put("message", "common.message.level"); + }else{ + map.put("message", "common.message.error.level"); + } + + map.put("url", "/gtm/"+siteIdx+"/groupList.do?"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/{groupIdx}/groupsList.do") + public ModelAndView getGroupsList(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupIdx") Integer groupIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="groupsIdx", 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, + @RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc, + @RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc, + @RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup, + @RequestParam(value="columnc", defaultValue="", required=false) String columnc, + @RequestParam(value="searchc", defaultValue="", required=false) String searchc){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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("groupList", managerGroupService.getGroupList(siteIdx, new String[] {"groupIdx", "groupName", "groupLevel"})); + + String[] qryColumnsg = {"groupsIdx", "tGroup.groupName", "groupsRegDate", "groupsStatus", "tMember.memberId", "tMember.memberName", "tMember.memberDept", "tMember.memberPosition"}; + + paging.setCount(managerGroupsService.getGroupsListCnt(groupIdx, column, search)); + + map.put("groupsList", managerGroupsService.getGroupsList(groupIdx, paging.getPage(), paging.getRow(), orderColumn, order, column, search, qryColumnsg)); + map.put("groupsListCnt", paging.getCount()); + + String[] qryColumnsm = {"groupBy", "memberIdx", "memberId", "memberName", "memberRegDate", "memberGrant", "memberStatus", "memberDept", "memberPosition"}; + + paging.setCountc(managerMemberService.getMemberListCnt(siteIdx, selGroup, columnc, searchc)); + + map.put("memberList", managerMemberService.getMemberList(siteIdx, paging.getPagec(), paging.getRowc(), orderColumnc, orderc, selGroup, columnc, searchc, qryColumnsm)); + map.put("memberListCnt", paging.getCountc()); + + 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); + + map.put("pagec", paging.getPagec()); + map.put("rowc", paging.getRowc()); + map.put("pagesc", paging.getPagesc()); + map.put("blocksc", paging.getBlocksc()); + map.put("blockc", paging.getBlockc()); + map.put("fPagec", paging.getfPagec()); + map.put("lPagec", paging.getlPagec()); + + map.put("orderColumnc", orderColumnc); + map.put("orderc", orderc); + map.put("selGroup", selGroup); + map.put("columnc", columnc); + map.put("searchc", searchc); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/group/groupsList"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/{groupIdx}/groupsDelProc/{groupsIdx}.do", method=RequestMethod.GET) + public ModelAndView setGroupsDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupIdx") Integer groupIdx, + @PathVariable(value="groupsIdx") Integer groupsIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="groupsIdx", 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, + @RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc, + @RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc, + @RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup, + @RequestParam(value="columnc", defaultValue="", required=false) String columnc, + @RequestParam(value="searchc", defaultValue="", required=false) String searchc){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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 success = managerGroupsService.setGroupsDelProc(groupsIdx); + + if(success.equals("Y")){ + map.put("message", "common.message.del"); + }else if(success.equals("N")){ + map.put("message", "common.message.error.groups"); + }else{ + map.put("message", "common.message.error.del"); + } + + map.put("url", "/gtm/"+siteIdx+"/"+groupIdx+"/groupsList.do?"+ + "page="+paging.getPage()+"&"+ + "row="+paging.getRow()+"&"+ + "orderColumn="+orderColumn+"&"+ + "order="+order+"&"+ + "column="+column+"&"+ + "search="+search+"&"+ + "pagec="+paging.getPagec()+"&"+ + "rowc="+paging.getRowc()+"&"+ + "orderColumnc="+orderColumnc+"&"+ + "orderc="+orderc+"&"+ + "selGroup="+selGroup+"&"+ + "columnc="+columnc+"&"+ + "searchc="+searchc); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/{groupIdx}/groupsStatusProc.do", method=RequestMethod.POST) + public ModelAndView setGroupsStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupIdx") Integer groupIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="groupsIdx", 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, + @RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc, + @RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc, + @RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup, + @RequestParam(value="columnc", defaultValue="", required=false) String columnc, + @RequestParam(value="searchc", defaultValue="", required=false) String searchc, + @RequestParam(value="idxs", required=true) Integer[] idxs, + @RequestParam(value="selStatus", required=true) String selStatus){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + boolean success = false; + + if(idxs.length > 0){ + for(int i=0; i map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="groupIdx") Integer groupIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="idxsc", required=true) Integer[] idxsc, + @RequestParam(value="orderColumn", defaultValue="groupsIdx", 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, + @RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc, + @RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc, + @RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup, + @RequestParam(value="columnc", defaultValue="", required=false) String columnc, + @RequestParam(value="searchc", defaultValue="", required=false) String searchc){ + + setSessionMessageRemove(session); + + getSeedLicense(httpServletResponse); + + 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"); + } + + if(managerGroupsService.setGroupsRegProc(siteIdx, groupIdx, idxsc)){ + map.put("message", "common.message.reg"); + }else{ + map.put("message", "common.message.error.reg"); + } + + map.put("url", "/gtm/"+siteIdx+"/"+groupIdx+"/groupsList.do?"+ + "page="+paging.getPage()+"&"+ + "row="+paging.getRow()+"&"+ + "orderColumn="+orderColumn+"&"+ + "order="+order+"&"+ + "column="+column+"&"+ + "search="+search+"&"+ + "pagec="+paging.getPagec()+"&"+ + "rowc="+paging.getRowc()+"&"+ + "orderColumnc="+orderColumnc+"&"+ + "orderc="+orderc+"&"+ + "selGroup="+selGroup+"&"+ + "columnc="+columnc+"&"+ + "searchc="+searchc); + + return new ModelAndView("/_common/jsp/message"); + } +} diff --git a/src/main/java/seed/manager/member/service/ManagerMemberItemService.java b/src/main/java/seed/manager/member/service/ManagerMemberItemService.java new file mode 100644 index 00000000..4fe7e60e --- /dev/null +++ b/src/main/java/seed/manager/member/service/ManagerMemberItemService.java @@ -0,0 +1,39 @@ +package seed.manager.member.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_MEMBER_ITEM; + +public interface ManagerMemberItemService { + + //ManagerMemberController + public List> getMemberItemList(String siteIdx, String[] qryColumns); + + //ManagerMemberController + public List getMemberItemValuesList(String siteIdx, String memberItemGroup, String[] qryColumns); + + //ManagerMemberController + public List getMemberItemValuesList(String siteIdx, String[] qryColumns); + + //ManagerMemberController + public Long getMemberItemListCnt(String siteIdx); + + //ManagerMemberController + public T_MEMBER_ITEM getMemberItemForm(String siteIdx, String memberItemGroup); + + //ManagerMemberController + public String setMemberItemRegProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer memberIdx); + + //ManagerMemberController + public boolean setMemberItemModProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer[] memberItemIdxs); + + //ManagerMemberController + public boolean setMemberItemDelProc(String siteIdx, String memberItemGroup); + + //ManagerMemberController + public boolean setMemberItemStatusProc(String siteIdx, String memberItemGroup, String status); + + //ManagerMemberController + public boolean setMemberItemOrderProc(String siteIdx, Integer memberItemOrder, String orderType); +} diff --git a/src/main/java/seed/manager/member/service/ManagerMemberItemServiceImpl.java b/src/main/java/seed/manager/member/service/ManagerMemberItemServiceImpl.java new file mode 100644 index 00000000..23f2f7a8 --- /dev/null +++ b/src/main/java/seed/manager/member/service/ManagerMemberItemServiceImpl.java @@ -0,0 +1,418 @@ +package seed.manager.member.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.MemberItemDAO; +import seed.map.T_MEMBER; +import seed.map.T_MEMBER_ITEM; + +@Service +public class ManagerMemberItemServiceImpl extends AbstractServiceImpl implements ManagerMemberItemService{ + + @Autowired + private MemberItemDAO memberItemDAO; + + //ManagerMemberController + public List> getMemberItemList(String siteIdx, String[] qryColumns){ + + return memberItemDAO.getMemberItemList(siteIdx, qryColumns); + } + + //ManagerMemberController + public List getMemberItemValuesList(String siteIdx, String memberItemGroup, String[] qryColumns){ + + return memberItemDAO.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns); + } + + //ManagerMemberController + public List getMemberItemValuesList(String siteIdx, String[] qryColumns){ + + return memberItemDAO.getMemberItemValuesList(siteIdx, qryColumns); + } + + //ManagerMemberController + public Long getMemberItemListCnt(String siteIdx){ + + return memberItemDAO.getMemberItemListCnt(siteIdx); + } + + //ManagerMemberController + public T_MEMBER_ITEM getMemberItemForm(String siteIdx, String memberItemGroup){ + + return memberItemDAO.getMemberItemForm(siteIdx, memberItemGroup); + } + + //ManagerMemberController + @Transactional + public String setMemberItemRegProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer memberIdx){ + + String memberItemGroup = ""; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + String[] qryColumns = {"groupBy", "memberItemGroup"}; + + List> tMemberItemMapList = memberItemDAO.getMemberItemGroupList(tMemberItem.gettSite().getSiteIdx(), qryColumns); + + String[] memberItemGroups = {"memberItemA1", "memberItemB2", "memberItemC3", "memberItemD4", "memberItemE5", + "memberItemF6", "memberItemG7", "memberItemH8", "memberItemI9", "memberItemJ10"}; + + if(tMemberItemMapList.size() > 0){ + for(int g=0; g tMemberItemMapDB = tMemberItemMapList.get(g); + if(!tMemberItemMapDB.get("_memberItemGroup").equals(memberItemGroups[g])){ + memberItemGroup = memberItemGroups[g]; + break; + } + } + + if(memberItemGroup.equals("")){ + memberItemGroup = memberItemGroups[tMemberItemMapList.size()]; + } + }else{ + memberItemGroup = memberItemGroups[0]; + } + + Integer memberItemOrder = memberItemDAO.getMemberItemOrderFormCnt(tMemberItem.gettSite().getSiteIdx())+1; + + if(memberItemValues.length == 0){ + + tMemberItem.settMember(tMember); + tMemberItem.setMemberItemValue(""); + tMemberItem.setMemberItemWidth(memberItemWidth[0]); + + if(memberItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tMemberItem.setMemberItemHeight(memberItemHeight[0]); + } + + tMemberItem.setMemberItemGroup(memberItemGroup); + tMemberItem.setMemberItemOrder(memberItemOrder); + tMemberItem.setMemberItemStatus("U"); + tMemberItem.setMemberItemCount(1); + tMemberItem.setMemberItemRegDate(new Date()); + + if(memberItemDAO.setMemberItemRegProc(tMemberItem).getMemberItemIdx() == 0){ + memberItemGroup = ""; + } + + }else{ + + for(int i=0; i 1){ //TEXT, TEXTAREA 인 경우에만 적용 + tMemberItem.setMemberItemWidth(memberItemWidth[i]); + } + + if(memberItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tMemberItem.setMemberItemHeight(memberItemHeight[i]); + } + + tMemberItem.setMemberItemValue(memberItemValues[i]); + tMemberItem.setMemberItemGroup(memberItemGroup); + tMemberItem.setMemberItemOrder(memberItemOrder); + tMemberItem.setMemberItemStatus("U"); + tMemberItem.setMemberItemRegDate(new Date()); + + if(memberItemDAO.setMemberItemRegProc(tMemberItem).getMemberItemIdx() == 0){ + memberItemGroup = ""; + break; + } + } + } + + return memberItemGroup; + } + + //ManagerMemberController + @Transactional + public boolean setMemberItemModProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer[] memberItemIdxs){ + + boolean success = true; + + if(memberItemValues.length > 0 && memberItemIdxs.length > 0){//memberItemValues와 memberItemIdxs의 값이 있으면 기존값 수정 + + for(int i=0; i 1){ //TEXT, TEXTAREA 인 경우에만 적용 + tMemberItemDB.setMemberItemWidth(memberItemWidth[i]); + } + + if(memberItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tMemberItemDB.setMemberItemHeight(memberItemHeight[i]); + } + + tMemberItemDB.setMemberItemName(tMemberItem.getMemberItemName()); + tMemberItemDB.setMemberItemPattern(tMemberItem.getMemberItemPattern()); + tMemberItemDB.setMemberItemText(tMemberItem.getMemberItemText()); + tMemberItemDB.setMemberItemEssential(tMemberItem.getMemberItemEssential()); + tMemberItemDB.setMemberItemCount(tMemberItem.getMemberItemCount()); + + if(!memberItemDAO.setMemberItemModProc(tMemberItemDB)){ + success = false; + break; + } + } + + }else if(memberItemValues.length > 0){//memberItemValues에만 값이 있으면 비교하여 수정 및 삭제 또는 추가 + + T_MEMBER_ITEM tMemberItemDB = memberItemDAO.getMemberItemForm(tMemberItem.getMemberItemIdx()); + + String[] qryColumns = null; + + List tMemberItemList = memberItemDAO.getMemberItemValuesList(tMemberItemDB.gettSite().getSiteIdx(), tMemberItemDB.getMemberItemGroup(), qryColumns); + + if(tMemberItemList.size() > memberItemValues.length){//기존의 row수가 현재보다 크면 수정 후 삭제 + + for(int i=0; i 1){ //TEXT, TEXTAREA 인 경우에만 적용 + tMemberItemtMp.setMemberItemWidth(memberItemWidth[i]); + } + + if(memberItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tMemberItemtMp.setMemberItemHeight(memberItemHeight[i]); + } + + tMemberItemtMp.setMemberItemName(tMemberItem.getMemberItemName()); + tMemberItemtMp.setMemberItemPattern(tMemberItem.getMemberItemPattern()); + tMemberItemtMp.setMemberItemText(tMemberItem.getMemberItemText()); + tMemberItemtMp.setMemberItemEssential(tMemberItem.getMemberItemEssential()); + tMemberItemtMp.setMemberItemCount(tMemberItem.getMemberItemCount()); + + if(!memberItemDAO.setMemberItemModProc(tMemberItemtMp)){ + success = false; + break; + } + }else{ + if(!memberItemDAO.setMemberItemDelProc(tMemberItemtMp)){ + success = false; + break; + } + } + } + }else{//기존의 row수가 현재보다 작거나 같으면 수정 후 추가 또는 수정 + + for(int i=0; i 1){ //TEXT, TEXTAREA 인 경우에만 적용 + tMemberItemtMp.setMemberItemWidth(memberItemWidth[i]); + } + + if(memberItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tMemberItemtMp.setMemberItemHeight(memberItemHeight[i]); + } + + tMemberItemtMp.setMemberItemName(tMemberItem.getMemberItemName()); + tMemberItemtMp.setMemberItemPattern(tMemberItem.getMemberItemPattern()); + tMemberItemtMp.setMemberItemText(tMemberItem.getMemberItemText()); + tMemberItemtMp.setMemberItemEssential(tMemberItem.getMemberItemEssential()); + tMemberItemtMp.setMemberItemCount(tMemberItem.getMemberItemCount()); + + if(!memberItemDAO.setMemberItemModProc(tMemberItemtMp)){ + success = false; + break; + } + + }else{ + + T_MEMBER_ITEM tMemberItemtMp = new T_MEMBER_ITEM(); + + tMemberItemtMp.setMemberItemValue(memberItemValues[i]); + + if(memberItemWidth.length == 1){ + tMemberItemtMp.setMemberItemWidth(memberItemWidth[0]); + }else if(memberItemWidth.length > 1){ //TEXT, TEXTAREA 인 경우에만 적용 + tMemberItemtMp.setMemberItemWidth(memberItemWidth[i]); + } + + if(memberItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 + tMemberItemtMp.setMemberItemHeight(memberItemHeight[i]); + } + + tMemberItemtMp.setMemberItemName(tMemberItem.getMemberItemName()); + tMemberItemtMp.setMemberItemPattern(tMemberItem.getMemberItemPattern()); + tMemberItemtMp.setMemberItemText(tMemberItem.getMemberItemText()); + tMemberItemtMp.setMemberItemEssential(tMemberItem.getMemberItemEssential()); + tMemberItemtMp.setMemberItemCount(tMemberItem.getMemberItemCount()); + tMemberItemtMp.setMemberItemStatus("U"); + tMemberItemtMp.settSite(tMemberItemDB.gettSite()); + tMemberItemtMp.settMember(tMemberItemDB.gettMember()); + tMemberItemtMp.setMemberItemGroup(tMemberItemDB.getMemberItemGroup()); + tMemberItemtMp.setMemberItemOrder(tMemberItemDB.getMemberItemOrder()); + tMemberItemtMp.setMemberItemRegDate(tMemberItemDB.getMemberItemRegDate()); + + if(memberItemDAO.setMemberItemRegProc(tMemberItemtMp).getMemberItemIdx() == 0){ + success = false; + break; + } + } + } + } + + }else{ + + T_MEMBER_ITEM tMemberItemDB = memberItemDAO.getMemberItemForm(tMemberItem.getMemberItemIdx()); + + String[] qryColumns = null; + + List tMemberItemList = memberItemDAO.getMemberItemValuesList(tMemberItemDB.gettSite().getSiteIdx(), tMemberItemDB.getMemberItemGroup(), qryColumns); + + if(tMemberItemList.size() > 1){ //SELECT, RADIO, CHECKBOX였다가 TEXT, TEXTAREA로 변경되었을때 추가 항목 삭제 (1개 이상일때) + for(int i=0; i 0){ //TEXTAREA 인 경우에만 적용 + tMemberItemDB.setMemberItemHeight(memberItemHeight[0]); + } + + tMemberItemDB.setMemberItemCount(tMemberItem.getMemberItemCount()); + } + + if(!memberItemDAO.setMemberItemModProc(tMemberItemDB)){ + success = false; + } + } + + return success; + } + + //ManagerMemberController + @Transactional + public boolean setMemberItemDelProc(String siteIdx, String memberItemGroup){ + + boolean success = true; + + String[] qryColumns = null; + + List tMemberItemList = memberItemDAO.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns); + + for(int d=0; d 1){ + memberItemDAO.setMemberItemOrderProc(tMemberItemtMp.gettSite().getSiteIdx(), tMemberItemtMp.getMemberItemOrder()); + } + } + + if(!memberItemDAO.setMemberItemDelProc(tMemberItemtMp)){ + success = false; + } + } + + return success; + } + + //ManagerMemberController + @Transactional + public boolean setMemberItemStatusProc(String siteIdx, String memberItemGroup, String status){ + + boolean success = true; + + String[] qryColumns = null; + + List tMemberItemList = memberItemDAO.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns); + + for(int m=0; m tMemberItemOrderList = memberItemDAO.getMemberItemOrderList(siteIdx, memberItemOrder, qryColumns); + List tMemberItemList = memberItemDAO.getMemberItemOrderList(siteIdx, memberItemOrdertMp, qryColumns); + + for(int i=0; i getMemberMapForm(Integer memberIdx, String[] qryColumns); + + //ManagerMemberController + public Long getMemberFormCnt(String memberId); + + //ManagerMemberController + public Long getMemberListCnt(String siteIdx, Integer selGroup, String column, String search); + + //ManagerMemberController + public List getMemberList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //CommonController + public List getMemberList(ArrayList arrayListMemberIdx); + + //ManagerMemberController + public Integer setMemberRegProc(T_MEMBER tMember, T_SITE tSite, T_GROUP tGroup, String memberAuto); + + //ManagerMemberController + public boolean setMemberModProc(T_MEMBER tMember); + + //ManagerMemberController + public boolean setMemberDelProc(String siteIdx, Integer memberIdx, String memberOut); + + //ManagerMemberController + public boolean setMemberStatusProc(Integer memberIdx, String status); +} diff --git a/src/main/java/seed/manager/member/service/ManagerMemberServiceImpl.java b/src/main/java/seed/manager/member/service/ManagerMemberServiceImpl.java new file mode 100644 index 00000000..733d6d43 --- /dev/null +++ b/src/main/java/seed/manager/member/service/ManagerMemberServiceImpl.java @@ -0,0 +1,908 @@ +package seed.manager.member.service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.BannerDataDAO; +import seed.dao.BannerManagerDAO; +import seed.dao.BannerSetDAO; +import seed.dao.BbsAuthDAO; +import seed.dao.BbsCommentDAO; +import seed.dao.BbsDataDAO; +import seed.dao.BbsItemDAO; +import seed.dao.BbsManagerDAO; +import seed.dao.BbsSetDAO; +import seed.dao.BbsSkinDAO; +import seed.dao.CommonMessageDAO; +import seed.dao.FormbuilderAuthDAO; +import seed.dao.FormbuilderItemDAO; +import seed.dao.FormbuilderManagerDAO; +import seed.dao.FormbuilderSetDAO; +import seed.dao.FormbuilderSkinDAO; +import seed.dao.GroupsDAO; +import seed.dao.MemberDAO; +import seed.dao.MenuAuthDAO; +import seed.dao.PopupDataDAO; +import seed.dao.PopupManagerDAO; +import seed.dao.PopupSetDAO; +import seed.dao.QuickDataDAO; +import seed.dao.QuickManagerDAO; +import seed.dao.QuickSetDAO; +import seed.dao.SiteDAO; +import seed.dao.SiteManagerDAO; +import seed.dao.SiteMenuDAO; +import seed.dao.SiteMenuManagerDAO; +import seed.dao.SurveyAuthDAO; +import seed.dao.SurveyItemDAO; +import seed.dao.SurveyManagerDAO; +import seed.dao.SurveySetDAO; +import seed.dao.SurveySkinDAO; +import seed.dao.VisualDataDAO; +import seed.dao.VisualManagerDAO; +import seed.dao.VisualSetDAO; +import seed.map.T_BANNER_DATA; +import seed.map.T_BANNER_MANAGER; +import seed.map.T_BANNER_SET; +import seed.map.T_BBS_AUTH; +import seed.map.T_BBS_COMMENT; +import seed.map.T_BBS_DATA; +import seed.map.T_BBS_ITEM; +import seed.map.T_BBS_MANAGER; +import seed.map.T_BBS_SET; +import seed.map.T_BBS_SKIN; +import seed.map.T_FORMBUILDER_AUTH; +import seed.map.T_FORMBUILDER_ITEM; +import seed.map.T_FORMBUILDER_MANAGER; +import seed.map.T_FORMBUILDER_SET; +import seed.map.T_FORMBUILDER_SKIN; +import seed.map.T_GROUP; +import seed.map.T_GROUPS; +import seed.map.T_MEMBER; +import seed.map.T_MENU_AUTH; +import seed.map.T_MESSAGE; +import seed.map.T_POPUP_DATA; +import seed.map.T_POPUP_MANAGER; +import seed.map.T_POPUP_SET; +import seed.map.T_QUICK_DATA; +import seed.map.T_QUICK_MANAGER; +import seed.map.T_QUICK_SET; +import seed.map.T_SITE; +import seed.map.T_SITE_MANAGER; +import seed.map.T_SITE_MENU; +import seed.map.T_SITE_MENU_MANAGER; +import seed.map.T_SURVEY_AUTH; +import seed.map.T_SURVEY_ITEM; +import seed.map.T_SURVEY_MANAGER; +import seed.map.T_SURVEY_SET; +import seed.map.T_SURVEY_SKIN; +import seed.map.T_VISUAL_DATA; +import seed.map.T_VISUAL_MANAGER; +import seed.map.T_VISUAL_SET; +import seed.utils.SeedUtils; + +@Service +public class ManagerMemberServiceImpl extends AbstractServiceImpl implements ManagerMemberService{ + + @Autowired + private MemberDAO memberDAO; + + @Autowired + private SiteDAO siteDAO; + + @Autowired + private SiteMenuDAO siteMenuDAO; + + @Autowired + private BbsSetDAO bbsSetDAO; + + @Autowired + private FormbuilderSetDAO formbuilderSetDAO; + + @Autowired + private SurveySetDAO surveySetDAO; + + @Autowired + private BannerSetDAO bannerSetDAO; + + @Autowired + private PopupSetDAO popupSetDAO; + + @Autowired + private QuickSetDAO quickSetDAO; + + @Autowired + private VisualSetDAO visualSetDAO; + + @Autowired + private GroupsDAO groupsDAO; + + @Autowired + private BbsDataDAO bbsDataDAO; + + @Autowired + private CommonMessageDAO commonMessageDAO; + + @Autowired + private SiteManagerDAO siteManagerDAO; + + @Autowired + private SiteMenuManagerDAO siteMenuManagerDAO; + + @Autowired + private BbsManagerDAO bbsManagerDAO; + + @Autowired + private FormbuilderManagerDAO formbuilderManagerDAO; + + @Autowired + private SurveyManagerDAO surveyManagerDAO; + + @Autowired + private BannerManagerDAO bannerManagerDAO; + + @Autowired + private PopupManagerDAO popupManagerDAO; + + @Autowired + private VisualManagerDAO visualManagerDAO; + + @Autowired + private QuickManagerDAO quickManagerDAO; + + @Autowired + private BbsSkinDAO bbsSkinDAO; + + @Autowired + private BbsAuthDAO bbsAuthDAO; + + @Autowired + private BbsItemDAO bbsItemDAO; + + @Autowired + private BbsCommentDAO bbsCommentDAO; + + @Autowired + private FormbuilderSkinDAO formbuilderSkinDAO; + + @Autowired + private FormbuilderAuthDAO formbuilderAuthDAO; + + @Autowired + private FormbuilderItemDAO formbuilderItemDAO; + + @Autowired + private SurveySkinDAO surveySkinDAO; + + @Autowired + private SurveyAuthDAO surveyAuthDAO; + + @Autowired + private SurveyItemDAO surveyItemDAO; + + @Autowired + private MenuAuthDAO menuAuthDAO; + + @Autowired + private BannerDataDAO bannerDataDAO; + + @Autowired + private PopupDataDAO popupDataDAO; + + @Autowired + private VisualDataDAO visualDataDAO; + + @Autowired + private QuickDataDAO quickDataDAO; + + //ManagerMemberController, ManagerBbsController, ManagerGroupController, ManagerSiteController + public T_MEMBER getMemberForm(Integer memberIdx){ + + return memberDAO.getMemberForm(memberIdx); + } + + //HomeController + public Map getMemberMapForm(Integer memberIdx, String[] qryColumns){ + + return memberDAO.getMemberMapForm(memberIdx, qryColumns); + } + + //ManagerMemberController + public Long getMemberFormCnt(String memberId){ + + return memberDAO.getMemberFormCnt(memberId); + } + + //ManagerMemberController + public Long getMemberListCnt(String siteIdx, Integer selGroup, String column, String search){ + + return memberDAO.getMemberListCnt(siteIdx, selGroup, column, search); + } + + //ManagerMemberController + public List getMemberList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + return memberDAO.getMemberList(siteIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns); + } + + //CommonController + public List getMemberList(ArrayList arrayListMemberIdx){ + + return memberDAO.getMemberList(arrayListMemberIdx); + } + + //ManagerMemberController + @Transactional + public Integer setMemberRegProc(T_MEMBER tMember, T_SITE tSite, T_GROUP tGroup, String memberAuto){ + + Integer memberIdx = 0; + String strCode = SeedUtils.getSeedMD5Code(tMember.getMemberPw()); + tMember.setMemberPw(SeedUtils.getSeedSHA256Code(strCode)); + tMember.setMemberGrant("N"); + + if(memberAuto.equals("true")){ + tMember.setMemberStatus("U"); + }else if(memberAuto.equals("false")){ + tMember.setMemberStatus("S"); + } + + tMember.setMemberCode(strCode); + tMember.setMemberRegDate(new Date()); + tMember.setMemberModDate(new Date()); + + T_MEMBER tMemberDB = memberDAO.setMemberRegProc(tMember); + + if(tMemberDB != null){ + + memberIdx = tMemberDB.getMemberIdx(); + + T_GROUPS tGroups = new T_GROUPS(); + tGroups.settSite(tSite); + tGroups.settGroup(tGroup); + tGroups.settMember(tMemberDB); + tGroups.setGroupsStatus("U"); + tGroups.setGroupsRegDate(new Date()); + + if(!groupsDAO.setGroupsRegProc(tGroups)){ + memberIdx = 0; + } + } + + return memberIdx; + } + + //ManagerMemberController + @Transactional + public boolean setMemberModProc(T_MEMBER tMember){ + + T_MEMBER tMemberDB = memberDAO.getMemberForm(tMember.getMemberIdx()); + + if(!tMember.getMemberPw().equals("")){ + String strCode = SeedUtils.getSeedMD5Code(tMember.getMemberPw()); + tMemberDB.setMemberPw(SeedUtils.getSeedSHA256Code(strCode)); + tMemberDB.setMemberCode(strCode); + } + + tMemberDB.setMemberOldPwChk("Y"); + tMemberDB.setMemberId(tMember.getMemberId()); + tMemberDB.setMemberName(tMember.getMemberName()); + tMemberDB.setMemberEmail1(tMember.getMemberEmail1()); + tMemberDB.setMemberEmail2(tMember.getMemberEmail2()); + tMemberDB.setMemberModDate(new Date()); + + tMemberDB.setMemberPost(tMember.getMemberPost()); + tMemberDB.setMemberAddress1(tMember.getMemberAddress1()); + tMemberDB.setMemberAddress2(tMember.getMemberAddress2()); + tMemberDB.setMemberDept(tMember.getMemberDept()); + tMemberDB.setMemberPosition(tMember.getMemberPosition()); + tMemberDB.setMemberTel(tMember.getMemberTel()); + tMemberDB.setMemberPhone(tMember.getMemberPhone()); + + tMemberDB.setMemberItemA1(tMember.getMemberItemA1()); + tMemberDB.setMemberItemB2(tMember.getMemberItemB2()); + tMemberDB.setMemberItemC3(tMember.getMemberItemC3()); + tMemberDB.setMemberItemD4(tMember.getMemberItemD4()); + tMemberDB.setMemberItemE5(tMember.getMemberItemE5()); + tMemberDB.setMemberItemF6(tMember.getMemberItemF6()); + tMemberDB.setMemberItemG7(tMember.getMemberItemG7()); + tMemberDB.setMemberItemH8(tMember.getMemberItemH8()); + tMemberDB.setMemberItemI9(tMember.getMemberItemI9()); + tMemberDB.setMemberItemJ10(tMember.getMemberItemJ10()); + + return memberDAO.setMemberModProc(tMemberDB); + } + + //ManagerMemberController + @Transactional + public boolean setMemberDelProc(String siteIdx, Integer memberIdx, String memberFlag){ + + boolean success = false; + + List groupsList = groupsDAO.getGroupsList(memberIdx); + + if(groupsList.size() > 0){ + for(int g=0; g messageList = commonMessageDAO.getMessageList(memberIdx); + + //게시글 리스트 + List bbsDataList = bbsDataDAO.getBbsDataList(memberIdx); + + //쪽지 삭제 + if(messageList.size() > 0){ + for(int i=0; i 0){ + for(int i=0; i siteList = siteDAO.getSiteList(memberIdx); + + if(siteList.size() > 0){ + for(int i=0; i siteManagerList = siteManagerDAO.getSiteManagerList(memberIdx); + + //사이트 관리자 삭제 + if(siteManagerList.size() > 0){ + for(int i=0; i siteMenuList = siteMenuDAO.getSiteMenuList(memberIdx); + + if(siteMenuList.size() > 0){ + for(int i=0; i siteMenuManagerList = siteMenuManagerDAO.getSiteMenuManagerList(memberIdx); + + //사이트 메뉴 관리자 삭제 + if(siteMenuManagerList.size() > 0){ + for(int i=0; i 0){ + for(int i=0; i bbsSkinList = bbsSkinDAO.getBbsSkinList(memberIdx); + + if(bbsSkinList.size() > 0){ + for(int i=0; i bbsSetList = bbsSetDAO.getBbsSetList(memberIdx); + + if(bbsSetList.size() > 0){ + for(int i=0; i bbsManagerList = bbsManagerDAO.getBbsManagerList(memberIdx); + + //게시판 관리자 삭제 + if(bbsManagerList.size() > 0){ + for(int i=0; i bbsAuthList = bbsAuthDAO.getBbsAuthList(memberIdx); + + if(bbsAuthList.size() > 0){ + for(int i=0; i bbsItemList = bbsItemDAO.getBbsItemAllList(memberIdx); + + if(bbsItemList.size() > 0){ + for(int i=0; i bbsCommentList = bbsCommentDAO.getBbsCommentList(memberIdx); + + if(bbsCommentList.size() > 0){ + for(int i=0; i formbuilderSkinList = formbuilderSkinDAO.getFormbuilderSkinList(memberIdx); + + if(formbuilderSkinList.size() > 0){ + for(int i=0; i formbuilderSetList = formbuilderSetDAO.getFormbuilderSetList(memberIdx); + + if(formbuilderSetList.size() > 0){ + for(int i=0; i formbuilderManagerList = formbuilderManagerDAO.getFormbuilderManagerList(memberIdx); + + //폼빌더 관리자 삭제 + if(formbuilderManagerList.size() > 0){ + for(int i=0; i formbuilderAuthList = formbuilderAuthDAO.getFormbuilderAuthList(memberIdx); + + if(formbuilderAuthList.size() > 0){ + for(int i=0; i formbuilderItemList = formbuilderItemDAO.getFormbuilderItemAllList(memberIdx); + + if(formbuilderItemList.size() > 0){ + for(int i=0; i surveySkinList = surveySkinDAO.getSurveySkinList(memberIdx); + + if(surveySkinList.size() > 0){ + for(int i=0; i surveySetList = surveySetDAO.getSurveySetList(memberIdx); + + if(surveySetList.size() > 0){ + for(int i=0; i surveyManagerList = surveyManagerDAO.getSurveyManagerList(memberIdx); + + //설문 관리자 삭제 + if(surveyManagerList.size() > 0){ + for(int i=0; i surveyAuthList = surveyAuthDAO.getSurveyAuthList(memberIdx); + + if(surveyAuthList.size() > 0){ + for(int i=0; i surveyItemList = surveyItemDAO.getSurveyItemAllList(memberIdx); + + if(surveyItemList.size() > 0){ + for(int i=0; i menuAuthList = menuAuthDAO.getMenuAuthList(memberIdx); + + if(menuAuthList.size() > 0){ + for(int i=0; i bannerSetList = bannerSetDAO.getBannerSetList(memberIdx); + + if(bannerSetList.size() > 0){ + for(int i=0; i bannerManagerList = bannerManagerDAO.getBannerManagerList(memberIdx); + + //배너 관리자 삭제 + if(bannerManagerList.size() > 0){ + for(int i=0; i bannerDataList = bannerDataDAO.getBannerDataAllList(memberIdx); + + if(bannerDataList.size() > 0){ + for(int i=0; i popupSetList = popupSetDAO.getPopupSetList(memberIdx); + + if(popupSetList.size() > 0){ + for(int i=0; i popupManagerList = popupManagerDAO.getPopupManagerList(memberIdx); + + //팝업 관리자 삭제 + if(popupManagerList.size() > 0){ + for(int i=0; i popupDataList = popupDataDAO.getPopupDataAllList(memberIdx); + + if(popupDataList.size() > 0){ + for(int i=0; i visualSetList = visualSetDAO.getVisualSetList(memberIdx); + + if(visualSetList.size() > 0){ + for(int i=0; i visualManagerList = visualManagerDAO.getVisualManagerList(memberIdx); + + //비주얼 관리자 삭제 + if(visualManagerList.size() > 0){ + for(int i=0; i visualDataList = visualDataDAO.getVisualDataAllList(memberIdx); + + if(visualDataList.size() > 0){ + for(int i=0; i quickSetList = quickSetDAO.getQuickSetList(memberIdx); + + if(quickSetList.size() > 0){ + for(int i=0; i quickManagerList = quickManagerDAO.getQuickManagerList(memberIdx); + + //퀵 관리자 삭제 + if(quickManagerList.size() > 0){ + for(int i=0; i quickDataList = quickDataDAO.getQuickDataAllList(memberIdx); + + if(quickDataList.size() > 0){ + for(int i=0; i map, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="memberIdx", 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 smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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 = {"groupBy", "memberIdx", "memberId", "memberName", "memberRegDate", "memberContactDate", "memberIp", "memberGrant", "memberStatus", "memberDept", "memberPosition"}; + + paging.setCount(managerMemberService.getMemberListCnt(siteIdx, 0, column, search)); + + map.put("memberListCnt", paging.getCount()); + map.put("memberList", managerMemberService.getMemberList(siteIdx, paging.getPage(), paging.getRow(), orderColumn, order, 0, column, search, qryColumns)); + + 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); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/member/memberList"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/memberForm.do") + public ModelAndView getMemberForm(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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[] qryColumnsi = {"groupBy", "memberItemGroup", "memberItemPattern", "memberItemName", + "memberItemEssential", "memberItemText", "memberItemStatus", "memberItemOrder"}; + + map.put("memberItemList", managerMemberItemService.getMemberItemList(siteIdx, qryColumnsi)); + + String[] qryColumnsiv = {"memberItemIdx", "memberItemGroup", "memberItemValue", "memberItemWidth", "memberItemHeight"}; + + map.put("memberItemValuesList", managerMemberItemService.getMemberItemValuesList(siteIdx, qryColumnsiv)); + + String[] qryColumns = {"tSite.siteIdx", "groupIdx", "groupName", "groupLevel"}; + + map.put("groupList", managerGroupService.getGroupList(siteIdx, qryColumns)); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/member/memberForm"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/memberChk.do", method=RequestMethod.GET) + public ModelAndView getMemberChk(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="memberId", defaultValue="", required=true) String memberId, + @RequestParam(value="memberChk", defaultValue="N", required=true) String memberChk){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(memberChk.equals("Y")){ + map.put("messageHtml", "$(\"#memberId\", parent.opener.document).val(\""+memberId+"\")"); + } + map.put("memberChk", memberChk); + + return new ModelAndView("/manager/member/memberChk"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberChkProc.do", method=RequestMethod.POST) + public ModelAndView getMemberChkProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="memberId", required=true) String memberId){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(managerMemberService.getMemberFormCnt(memberId) > 0){ + map.put("url", "/gtm/"+siteIdx+"/memberChk.do?memberChk=N"); + map.put("message", "common.message.error.overlap"); + }else{ + map.put("url", "/gtm/"+siteIdx+"/memberChk.do?memberChk=Y&memberId="+memberId); + map.put("message", "common.message.overlap"); + } + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/memberEdit/{memberIdx}.do", method=RequestMethod.GET) + public ModelAndView getMemberEdit(HttpServletResponse httpServletResponse, HttpSession session, Map map, HttpServletRequest httpServletRequest, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="memberIdx") Integer memberIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="memberIdx", 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 smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + //사용자 이력 저장 + httpServletRequest.getHeader("WL-Proxy-Client-IP"); + + String memberIp = httpServletRequest.getRemoteAddr(); + + logsService.setLogsRegProc(memberIdx, smemberIdx, memberIp, null, "V"); + + 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); + + String[] qryColumnsi = {"groupBy", "memberItemGroup", "memberItemPattern", "memberItemName", + "memberItemEssential", "memberItemText", "memberItemStatus", "memberItemOrder"}; + + map.put("memberItemList", managerMemberItemService.getMemberItemList(siteIdx, qryColumnsi)); + + String[] qryColumnsiv = {"memberItemIdx", "memberItemGroup", "memberItemValue", "memberItemWidth", "memberItemHeight"}; + + map.put("memberItemValuesList", managerMemberItemService.getMemberItemValuesList(siteIdx, qryColumnsiv)); + + String[] qryColumns = {"tSite.siteName", "tGroup.groupName"}; + + map.put("groupsList", managerGroupsService.getGroupsList(siteIdx, memberIdx, qryColumns)); + map.put("tMemberDB", managerMemberService.getMemberForm(memberIdx)); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/member/memberEdit"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberRegProc.do", method=RequestMethod.POST) + public ModelAndView setMemberRegProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, HttpServletRequest httpServletRequest, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("T_SITE") T_SITE tSite, + @ModelAttribute("T_GROUP") T_GROUP tGroup, + @ModelAttribute("T_MEMBER") T_MEMBER tMember, + BindingResult bindingResult){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(managerMemberService.getMemberFormCnt(tMember.getMemberId()) > 0){ + map.put("url", "/gtm/"+siteIdx+"/memberForm.do"); + map.put("message", "common.message.error.overlap"); + return new ModelAndView("/_common/jsp/message"); + } + + boolean memberPwSpec = false; + boolean memberPwNum = false; + Integer memberPwReStringCnt = 0; + + String validNumber = "0123456789"; + String validSpecialChar = "{}[]|\\~`!@#$^:?'"; + + if(tMember.getMemberPw().length() < 9){ + map.put("url", "/gtm/"+siteIdx+"/memberForm.do"); + map.put("message", "common.memberPwLen"); + return new ModelAndView("/_common/jsp/message"); + } + + char memberPwChar; + char memberPwCharOld = 0; + + for(int i=0; i= 2){ + map.put("url", "/gtm/"+siteIdx+"/memberForm.do"); + map.put("message", "common.memberPwReString"); + return new ModelAndView("/_common/jsp/message"); + } + + Integer memberIdx = managerMemberService.setMemberRegProc(tMember, tSite, tGroup, memberAuto); + + if(memberIdx > 0){ + map.put("url", "/gtm/"+siteIdx+"/memberList.do"); + map.put("message", "common.message.reg"); + + //사용자 이력 저장 + httpServletRequest.getHeader("WL-Proxy-Client-IP"); + + String memberIp = httpServletRequest.getRemoteAddr(); + + logsService.setLogsRegProc(memberIdx, smemberIdx, memberIp, null, "I"); + + }else{ + map.put("url", "/gtm/"+siteIdx+"/memberForm.do"); + map.put("message", "common.message.error.reg"); + } + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberModProc.do", method=RequestMethod.POST) + public ModelAndView setMemberModProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, HttpServletRequest httpServletRequest, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("T_MEMBER") T_MEMBER tMember, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="memberIdx", 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, + BindingResult bindingResult){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + setPaging(paging); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(!tMember.getMemberPw().equals("")){ + + boolean memberPwSpec = false; + boolean memberPwNum = false; + Integer memberPwReStringCnt = 0; + + String validNumber = "0123456789"; + String validSpecialChar = "{}[]|\\~`!@#$^:?'"; + + if(tMember.getMemberPw().length() < 9){ + map.put("url", "/gtm/"+siteIdx+"/memberList.do?"+ + "page="+paging.getPage()+"&"+ + "row="+paging.getRow()+"&"+ + "orderColumn="+orderColumn+"&"+ + "order="+order+"&"+ + "column="+column+"&"+ + "search="+search); + map.put("message", "common.memberPwLen"); + return new ModelAndView("/_common/jsp/message"); + } + + char memberPwChar; + char memberPwCharOld = 0; + + for(int i=0; i= 2){ + map.put("message", "common.memberPwReString"); + return new ModelAndView("/_common/jsp/message"); + } + } + + T_MEMBER tMemberOldDB = managerMemberService.getMemberForm(tMember.getMemberIdx()); + + Map memberOldMap = new HashMap(); + + memberOldMap.put("memberId", SeedUtils.setReplaceNull(tMemberOldDB.getMemberId())); + memberOldMap.put("memberName", SeedUtils.setReplaceNull(tMemberOldDB.getMemberName())); + memberOldMap.put("memberPost", SeedUtils.setReplaceNull(tMemberOldDB.getMemberPost())); + memberOldMap.put("memberAddress1", SeedUtils.setReplaceNull(tMemberOldDB.getMemberAddress1())); + memberOldMap.put("memberAddress2", SeedUtils.setReplaceNull(tMemberOldDB.getMemberAddress2())); + memberOldMap.put("memberEmail1", SeedUtils.setReplaceNull(tMemberOldDB.getMemberEmail1())); + memberOldMap.put("memberEmail2", SeedUtils.setReplaceNull(tMemberOldDB.getMemberEmail2())); + memberOldMap.put("memberPw", SeedUtils.setReplaceNull(tMemberOldDB.getMemberPw())); + memberOldMap.put("memberDept", SeedUtils.setReplaceNull(tMemberOldDB.getMemberDept())); + memberOldMap.put("memberPosition", SeedUtils.setReplaceNull(tMemberOldDB.getMemberPosition())); + memberOldMap.put("memberTel", SeedUtils.setReplaceNull(tMemberOldDB.getMemberTel())); + memberOldMap.put("memberPhone", SeedUtils.setReplaceNull(tMemberOldDB.getMemberPhone())); + memberOldMap.put("memberItemA1", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemA1())); + memberOldMap.put("memberItemB2", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemB2())); + memberOldMap.put("memberItemC3", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemC3())); + memberOldMap.put("memberItemD4", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemD4())); + memberOldMap.put("memberItemE5", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemE5())); + memberOldMap.put("memberItemF6", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemF6())); + memberOldMap.put("memberItemG7", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemG7())); + memberOldMap.put("memberItemH8", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemH8())); + memberOldMap.put("memberItemI9", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemI9())); + memberOldMap.put("memberItemJ10", SeedUtils.setReplaceNull(tMemberOldDB.getMemberItemJ10())); + + if(managerMemberService.setMemberModProc(tMember)){ + map.put("message", "common.message.mod"); + + //사용자 이력 저장 + httpServletRequest.getHeader("WL-Proxy-Client-IP"); + + String memberIp = httpServletRequest.getRemoteAddr(); + + logsService.setLogsRegProc(tMember.getMemberIdx(), smemberIdx, memberIp, memberOldMap, "M"); + + }else{ + map.put("message", "common.message.error.mod"); + } + + map.put("url", "/gtm/"+siteIdx+"/memberList.do?"+ + "page="+paging.getPage()+"&"+ + "row="+paging.getRow()+"&"+ + "orderColumn="+orderColumn+"&"+ + "order="+order+"&"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberDelProc/{memberIdx}.do", method=RequestMethod.GET) + public ModelAndView setMemberDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, HttpServletRequest httpServletRequest, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="memberIdx") Integer memberIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="memberIdx", 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 smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + T_MEMBER tMemberDB = managerMemberService.getMemberForm(memberIdx); + + String memberIdTmp = tMemberDB.getMemberId(); + String memberNameTmp = tMemberDB.getMemberName(); + + if(managerMemberService.setMemberDelProc(siteIdx, memberIdx, memberFlag)){ + map.put("message", "common.message.del"); + + //사용자 이력 저장 + httpServletRequest.getHeader("WL-Proxy-Client-IP"); + + String memberIp = httpServletRequest.getRemoteAddr(); + + logsService.setLogsRegProc(memberIdTmp, memberNameTmp, smemberIdx, memberIp, null, "D"); + + }else{ + map.put("message", "common.message.error.del"); + } + + map.put("url", "/gtm/"+siteIdx+"/memberList.do?"+ + "page="+paging.getPage()+"&"+ + "row="+paging.getRow()+"&"+ + "orderColumn="+orderColumn+"&"+ + "order="+order+"&"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberStatusProc.do", method=RequestMethod.POST) + public ModelAndView setMemberStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("paging") Paging paging, + @RequestParam(value="orderColumn", defaultValue="memberIdx", 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, + @RequestParam(value="idxs", required=true) Integer[] idxs, + @RequestParam(value="selStatus", required=true) String selStatus){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + setPaging(paging); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + boolean chk = false; + + if(idxs.length > 0){ + for(int i=0; i map, + @PathVariable(value="siteIdx") String siteIdx){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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 = {"groupBy", "memberItemGroup", "memberItemPattern", "memberItemName", + "memberItemEssential", "memberItemStatus", "memberItemOrder"}; + + List> memberItemList = managerMemberItemService.getMemberItemList(siteIdx, qryColumns); + + map.put("memberItemList", memberItemList); + map.put("memberItemListCnt", memberItemList.size()); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/member/memberItemList"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/memberItemForm.do") + public ModelAndView getMemberItemForm(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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("memberAuth", memberAuth); + + return new ModelAndView("/manager/member/memberItemForm"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/memberItemEdit/{memberItemGroup}.do", method=RequestMethod.GET) + public ModelAndView getMemberItemEdit(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="memberItemGroup") String memberItemGroup){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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 = {"memberItemIdx", "memberItemGroup", "memberItemValue", "memberItemWidth", "memberItemHeight"}; + + map.put("memberItemValuesList", managerMemberItemService.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns)); + map.put("tMemberItemDB", managerMemberItemService.getMemberItemForm(siteIdx, memberItemGroup)); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/member/memberItemEdit"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberItemRegProc.do", method=RequestMethod.POST) + public ModelAndView getMemberItemRegProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="memberItemWidth", defaultValue="", required=false) Integer[] memberItemWidth, + @RequestParam(value="memberItemHeight", defaultValue="", required=false) Integer[] memberItemHeight, + @RequestParam(value="memberItemValues", defaultValue="", required=false) String[] memberItemValues, + @ModelAttribute("T_MEMBER_ITEM") T_MEMBER_ITEM tMemberItem, + BindingResult bindingResult){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(managerMemberItemService.getMemberItemListCnt(siteIdx) >= 10){ + map.put("url", "/gtm/"+siteIdx+"/memberItemList.do"); + map.put("message", "manager.member.message.no.item"); + return new ModelAndView("/_common/jsp/message"); + } + + String memberItemGroup = managerMemberItemService.setMemberItemRegProc(tMemberItem, memberItemWidth, memberItemHeight, memberItemValues, smemberIdx); + + if(!memberItemGroup.equals("")){ + map.put("url", "/gtm/"+siteIdx+"/memberItemList.do"); + map.put("message", "common.message.reg"); + }else{ + map.put("url", "/gtm/"+siteIdx+"/memberItemForm.do"); + map.put("message", "common.message.error.reg"); + } + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberItemModProc.do", method=RequestMethod.POST) + public ModelAndView setMemberItemModProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="memberItemWidth", defaultValue="", required=false) Integer[] memberItemWidth, + @RequestParam(value="memberItemHeight", defaultValue="", required=false) Integer[] memberItemHeight, + @RequestParam(value="memberItemValues", defaultValue="", required=false) String[] memberItemValues, + @RequestParam(value="memberItemIdxs", defaultValue="", required=false) Integer[] memberItemIdxs, + @ModelAttribute("T_MEMBER_ITEM") T_MEMBER_ITEM tMemberItem, + BindingResult bindingResult){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(managerMemberItemService.setMemberItemModProc(tMemberItem, memberItemWidth, memberItemHeight, memberItemValues, memberItemIdxs)){ + map.put("message", "common.message.mod"); + }else{ + map.put("message", "common.message.error.mod"); + } + + map.put("url", "/gtm/"+siteIdx+"/memberItemEdit/"+tMemberItem.getMemberItemGroup()+".do"); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberItemDelProc/{memberItemGroup}.do", method=RequestMethod.GET) + public ModelAndView setMemberItemDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="memberItemGroup") String memberItemGroup){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(managerMemberItemService.setMemberItemDelProc(siteIdx, memberItemGroup)){ + map.put("message", "common.message.del"); + }else{ + map.put("message", "common.message.error.del"); + } + + map.put("url", "/gtm/"+siteIdx+"/memberItemList.do"); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/memberItemStatusProc.do", method=RequestMethod.POST) + public ModelAndView setMemberItemStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="idxs", required=true) String[] idxs, + @RequestParam(value="selStatus", required=true) String selStatus){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + boolean chk = false; + + if(idxs.length > 0){ + for(int i=0; i map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="memberItemOrder") Integer memberItemOrder, + @RequestParam(value="orderType", required=true) String orderType){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer smemberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (smemberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(smemberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, smemberIdx); + + if(SeedUtils.setReplaceNull(memberPage, "false").equals("true")){ + setSessionRemove(session); + map.put("url", "/gta/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + if(smemberIdx == 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"); + } + + if(managerMemberItemService.setMemberItemOrderProc(siteIdx, memberItemOrder, orderType)){ + map.put("message", "common.message.order"); + }else{ + map.put("message", "common.message.error.order"); + } + + map.put("url", "/gtm/"+siteIdx+"/memberItemList.do"); + + return new ModelAndView("/_common/jsp/message"); + } +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteManagerService.java b/src/main/java/seed/manager/site/service/ManagerSiteManagerService.java new file mode 100644 index 00000000..6bbb3ce5 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteManagerService.java @@ -0,0 +1,34 @@ +package seed.manager.site.service; + +import java.util.List; + +import seed.map.T_SITE_MANAGER; +import seed.map.VIEW_MANAGER_DATA; + +public interface ManagerSiteManagerService { + + //ManagerLoginController + public List getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns); + + //ManagerELoginController + public List getSiteManagerList(Integer memberIdx, String[] qryColumns); + + public boolean getSiteManagerListCnt(String siteIdx, Integer memberIdx); + + public boolean getSiteManagerListCnt(Integer memberIdx); + + //CommonController + public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search); + + //CommonController + public List getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //CommonController + public boolean setSiteManagerRegProc(String siteIdx, Integer[] idxsc); + + //CommonController + public boolean setSiteManagerDelProc(Integer siteManagerIdx); + + //CommonController + public boolean setSiteManagerStatusProc(Integer siteManagerIdx, String status); +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteManagerServiceImpl.java b/src/main/java/seed/manager/site/service/ManagerSiteManagerServiceImpl.java new file mode 100644 index 00000000..c4999d4b --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteManagerServiceImpl.java @@ -0,0 +1,167 @@ +package seed.manager.site.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.MemberDAO; +import seed.dao.SiteManagerDAO; +import seed.map.T_MEMBER; +import seed.map.T_SITE; +import seed.map.T_SITE_MANAGER; +import seed.map.VIEW_MANAGER_DATA; + +@Service +public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implements ManagerSiteManagerService{ + + @Autowired + private SiteManagerDAO siteManagerDAO; + + @Autowired + private MemberDAO memberDAO; + + //ManagerLoginController + public List getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){ + + return siteManagerDAO.getSiteManagerList(memberMergeSiteIdx, memberIdx, qryColumns); + } + + //ManagerELoginController + public List getSiteManagerList(Integer memberIdx, String[] qryColumns){ + + return siteManagerDAO.getSiteManagerList(memberIdx, qryColumns); + } + + public boolean getSiteManagerListCnt(String siteIdx, Integer memberIdx){ + + boolean success = false; + + if(siteManagerDAO.getSiteManagerListCnt(siteIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + public boolean getSiteManagerListCnt(Integer memberIdx){ + + boolean success = false; + + if(siteManagerDAO.getSiteManagerListCnt(memberIdx) > 0){ + success = true; + } + + return success; + } + + //CommonController + public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){ + + return siteManagerDAO.getSiteManagerListCnt(siteIdx, selGroup, column, search); + } + + //CommonController + public List getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + return siteManagerDAO.getSiteManagerList(siteIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns); + } + + //CommonController + @Transactional + public boolean setSiteManagerRegProc(String siteIdx, Integer[] idxsc){ + + boolean success = false; + + if(idxsc.length > 0){ + + for(int i=0; i 0){ + success = true; + }else{ + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(idxsc[i]); + + T_SITE tSite = new T_SITE(); + tSite.setSiteIdx(siteIdx); + + T_SITE_MANAGER tSiteManager = new T_SITE_MANAGER(); + + tSiteManager.settMember(tMember); + tSiteManager.settSite(tSite); + tSiteManager.setSiteManagerStatus("U"); + tSiteManager.setSiteManagerRegDate(new Date()); + + if(siteManagerDAO.setSiteManagerRegProc(tSiteManager)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]); + + if(!tMemberDB.getMemberGrant().equals("S")){ + tMemberDB.setMemberGrant("SM"); + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + break; + } + } + }else{ + success = false; + } + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setSiteManagerDelProc(Integer siteManagerIdx){ + + boolean success = false; + + T_SITE_MANAGER tSiteManagerDB = siteManagerDAO.getSiteManagerForm(siteManagerIdx); + + if(siteManagerDAO.setSiteManagerDelProc(tSiteManagerDB)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(tSiteManagerDB.gettMember().getMemberIdx()); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){ + tMemberDB.setMemberGrant("SM"); + }else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){ + tMemberDB.setMemberGrant("M"); + }else{ + tMemberDB.setMemberGrant("N"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setSiteManagerStatusProc(Integer siteManagerIdx, String status){ + + T_SITE_MANAGER tSiteManagerDB = siteManagerDAO.getSiteManagerForm(siteManagerIdx); + + tSiteManagerDB.setSiteManagerStatus(status); + + return siteManagerDAO.setSiteManagerModProc(tSiteManagerDB); + } +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuAuthService.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuAuthService.java new file mode 100644 index 00000000..ab5d723f --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuAuthService.java @@ -0,0 +1,14 @@ +package seed.manager.site.service; + +import java.util.List; + +import seed.map.T_SITE_MENU_AUTH; + +public interface ManagerSiteMenuAuthService { + + //ManagerSiteController + public List getSiteMenuAuthList(Integer siteMenuIdx, String[] qryColumns); + + //HomeController + public boolean getSiteMenuAuthChk(Integer siteMenuIdx, Integer memberIdx); +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuAuthServiceImpl.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuAuthServiceImpl.java new file mode 100644 index 00000000..ee893688 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuAuthServiceImpl.java @@ -0,0 +1,45 @@ +package seed.manager.site.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.SiteMenuAuthDAO; +import seed.map.T_SITE_MENU_AUTH; +import seed.utils.SeedUtils; + +@Service +public class ManagerSiteMenuAuthServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuAuthService{ + + @Autowired + private SiteMenuAuthDAO siteMenuAuthDAO; + + //ManagerSiteController + public List getSiteMenuAuthList(Integer siteMenuIdx, String[] qryColumns){ + + return siteMenuAuthDAO.getSiteMenuAuthList(siteMenuIdx, qryColumns); + } + + //HomeController + public boolean getSiteMenuAuthChk(Integer siteMenuIdx, Integer memberIdx){ + + boolean success = false; + + List> tSiteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthMapList(siteMenuIdx, memberIdx, new String[] {"siteMenuAuth"}); + + for(int a=0; a tSiteMenuAuthDB = tSiteMenuAuthList.get(a); + + if(SeedUtils.setReplaceNull(tSiteMenuAuthDB.get("_siteMenuAuth")).equals("Y")){ + success = true; + break; + } + } + + return success; + } +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuHistoryService.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuHistoryService.java new file mode 100644 index 00000000..f284d78f --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuHistoryService.java @@ -0,0 +1,10 @@ +package seed.manager.site.service; + +import java.util.List; + +import seed.map.T_SITE_MENU_HISTORY; + +public interface ManagerSiteMenuHistoryService { + + public List getSiteMenuHistoryDList(String siteIdx, String type, String siteMenuIdxs); +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuHistoryServiceImpl.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuHistoryServiceImpl.java new file mode 100644 index 00000000..65fb9ec7 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuHistoryServiceImpl.java @@ -0,0 +1,23 @@ +package seed.manager.site.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.SiteMenuHistoryDAO; +import seed.map.T_SITE_MENU_HISTORY; + +@Service +public class ManagerSiteMenuHistoryServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuHistoryService{ + + @Autowired + private SiteMenuHistoryDAO siteMenuHistoryDAO; + + public List getSiteMenuHistoryDList(String siteIdx, String type, String siteMenuIdxs){ + + return siteMenuHistoryDAO.getSiteMenuHistoryDList(siteIdx, type, siteMenuIdxs); + } +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuManagerService.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuManagerService.java new file mode 100644 index 00000000..984b55ad --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuManagerService.java @@ -0,0 +1,40 @@ +package seed.manager.site.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_SITE_MENU_MANAGER; +import seed.map.VIEW_SITE_MENU_MANAGER; + +public interface ManagerSiteMenuManagerService { + + //HomeController + public boolean getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer memberIdx); + + //CommonController + public Long getSiteMenuManagerListCnt(String siteIdx, Integer memberIdx); + + //CommonController + public Long getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer selGroup, String column, String search); + + //CommonController + public List getSiteMenuManagerList(Integer siteMenuIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //ManagerSiteController + public List getSiteMenuManagerList(String siteIdx, Integer memberIdx, String column, String search, String[] qryColumns); + + //ManagerSiteController + public List> getSiteMenuManagerList(String siteIdx, Integer memberIdx, String[] qryColumns); + + //CommonController + public List> getSiteMenuManagerMapList(Integer siteMenuIdx, String[] qryColumns); + + //CommonController + public boolean setSiteMenuManagerRegProc(Integer siteMenuIdx, Integer[] idxsc); + + //CommonController + public boolean setSiteMenuManagerDelProc(Integer siteMenuManagerIdx); + + //CommonController + public boolean setSiteMenuManagerStatusProc(Integer siteMenuManagerIdx, String status); +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuManagerServiceImpl.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuManagerServiceImpl.java new file mode 100644 index 00000000..0f9c7349 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuManagerServiceImpl.java @@ -0,0 +1,180 @@ +package seed.manager.site.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.MemberDAO; +import seed.dao.SiteManagerDAO; +import seed.dao.SiteMenuManagerDAO; +import seed.map.T_MEMBER; +import seed.map.T_SITE_MENU; +import seed.map.T_SITE_MENU_MANAGER; +import seed.map.VIEW_SITE_MENU_MANAGER; + +@Service +public class ManagerSiteMenuManagerServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuManagerService{ + + @Autowired + private SiteMenuManagerDAO siteMenuManagerDAO; + + @Autowired + private SiteManagerDAO siteManagerDAO; + + @Autowired + private MemberDAO memberDAO; + + //HomeController + public boolean getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer memberIdx){ + + boolean success = false; + + if(siteMenuManagerDAO.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //CommonController + public Long getSiteMenuManagerListCnt(String siteIdx, Integer memberIdx){ + + return siteMenuManagerDAO.getSiteMenuManagerListCnt(siteIdx, memberIdx); + } + + //CommonController + public Long getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer selGroup, String column, String search){ + + return siteMenuManagerDAO.getSiteMenuManagerListCnt(siteMenuIdx, selGroup, column, search); + } + + //CommonController + public List getSiteMenuManagerList(Integer siteMenuIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + return siteMenuManagerDAO.getSiteMenuManagerList(siteMenuIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns); + } + + //ManagerSiteController + public List getSiteMenuManagerList(String siteIdx, Integer memberIdx, String column, String search, String[] qryColumns){ + + return siteMenuManagerDAO.getSiteMenuManagerList(siteIdx, memberIdx, column, search, qryColumns); + } + + //ManagerSiteController + public List> getSiteMenuManagerList(String siteIdx, Integer memberIdx, String[] qryColumns){ + + return siteMenuManagerDAO.getSiteMenuManagerList(siteIdx, memberIdx, qryColumns); + } + + //CommonController + public List> getSiteMenuManagerMapList(Integer siteMenuIdx, String[] qryColumns){ + + return siteMenuManagerDAO.getSiteMenuManagerMapList(siteMenuIdx, qryColumns); + } + + //CommonController + @Transactional + public boolean setSiteMenuManagerRegProc(Integer siteMenuIdx, Integer[] idxsc){ + + boolean success = false; + + if(idxsc.length > 0){ + + for(int i=0; i 0){ + success = true; + }else{ + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(idxsc[i]); + + T_SITE_MENU tSiteMenu = new T_SITE_MENU(); + tSiteMenu.setSiteMenuIdx(siteMenuIdx); + + T_SITE_MENU_MANAGER tSiteMenuManager = new T_SITE_MENU_MANAGER(); + + tSiteMenuManager.settMember(tMember); + tSiteMenuManager.settSiteMenu(tSiteMenu); + tSiteMenuManager.setSiteMenuManagerStatus("U"); + tSiteMenuManager.setSiteMenuManagerRegDate(new Date()); + + if(siteMenuManagerDAO.setSiteMenuManagerRegProc(tSiteMenuManager)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(tMemberDB.getMemberGrant().equals("SM")){ + tMemberDB.setMemberGrant("SM"); + }else{ + tMemberDB.setMemberGrant("M"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + break; + } + } + }else{ + success = false; + } + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setSiteMenuManagerDelProc(Integer siteMenuManagerIdx){ + + boolean success = false; + + T_SITE_MENU_MANAGER tSiteMenuManagerDB = siteMenuManagerDAO.getSiteMenuManagerForm(siteMenuManagerIdx); + + if(siteMenuManagerDAO.setSiteMenuManagerDelProc(tSiteMenuManagerDB)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(tSiteMenuManagerDB.gettMember().getMemberIdx()); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){ + tMemberDB.setMemberGrant("SM"); + }else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){ + tMemberDB.setMemberGrant("M"); + }else{ + tMemberDB.setMemberGrant("N"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setSiteMenuManagerStatusProc(Integer siteMenuManagerIdx, String status){ + + T_SITE_MENU_MANAGER tSiteMenuManagerDB = siteMenuManagerDAO.getSiteMenuManagerForm(siteMenuManagerIdx); + + tSiteMenuManagerDB.setSiteMenuManagerStatus(status); + + return siteMenuManagerDAO.setSiteMenuManagerModProc(tSiteMenuManagerDB); + } +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuService.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuService.java new file mode 100644 index 00000000..e20064ab --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuService.java @@ -0,0 +1,91 @@ +package seed.manager.site.service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.web.multipart.MultipartFile; + +import seed.map.T_SITE_MENU; +import seed.map.VIEW_SITE_MENU; + +public interface ManagerSiteMenuService { + + //ManagerSiteController + public Map getSiteMenuLoginForm(String siteIdx, String[] qryColumns); + + //ManagerSiteController + public String getSiteMenuTop(String siteIdx, String siteMenuType, String rootPath); + + //ManagerSiteController + public String getSiteMenuSub(String siteIdx, String siteMenuType, String siteMenuPath, String rootPath); + + //ManagerSiteController + public String getSiteMenuCss(String siteIdx, String siteMenuType, String rootPath); + + //ManagerSiteController + public String getSiteMenuJs(String siteIdx, String siteMenuType, String rootPath); + + //ManagerSiteController + public String getFileAttribute(String siteIdx, String rootPath, String dirPath, String fileName); + + //ManagerSiteController + public String getSiteLayOutHtml(String siteIdx, String siteLayOutType, String siteLayOutPosition, String rootPath); + + //ManagerSiteController + public ArrayList getSiteMenuNavigationList(String siteIdx, Integer siteMenuIdx); + + //CommonController + public List> getSiteMenuTabNavigationList(String siteIdx, Integer siteMenuIdx, String siteMenuIdxs, Integer siteMenuDepth); + + //ManagerSiteController + public String getSiteMenuParentName(String siteIdx, String siteMenuParentIdx, String Type); + + //ManagerSiteController + public List getSiteMenuList(String siteIdx, String column, String search, String[] qryColumns); + + //ManagerSiteController + public List> getSiteMenuChargeList(String siteIdx, String column, String search, String[] qryColumns); + + //ManagerSmartController + public List getSiteMenuSmartList(String siteIdx, String type, String[] qryColumns); + + //ManagerSiteController + public String getSiteMenuSubTitleForm(String siteIdx, String siteMenuIdx1); + + //ManagerSiteController + public T_SITE_MENU getSiteMenuForm(Integer siteMenuIdx); + + //HomeController + public Map getSiteMenuMapForm(Integer siteMenuIdx, String[] qryColumns); + + //CommonController + public Integer getSiteMenuForm(String siteIdx); + + //ManagerSiteController + public Integer setSiteMenuRegProc(T_SITE_MENU tSiteMenu, MultipartFile upIconFile, Integer memberIdx, String memberGrant, String memberMerge, String memberMergeSiteIdx, String rootPath); + + //ManagerSiteController + public String setSiteMenuModProc(T_SITE_MENU tSiteMenu, MultipartFile upIconFile, Integer[] siteMenuAuthIdxs, Integer[] siteMenuAuths, Integer memberIdx, String rootPath); + + //ManagerSiteController + public boolean setSiteMenuDelProc(Integer siteMenuIdx, Integer memberIdx, String memberId, String rootPath); + + //ManagerSiteController + public boolean setSiteMenuStatusProc(Integer siteMenuIdx, String status, String rootPath, Integer memberIdx); + + //ManagerSiteController + public boolean setSiteMenuOrderProc(String siteIdx, Integer siteMenuIdx, String orderType, Integer memberIdx, String rootPath); + + //ManagerSiteController + public boolean setSiteLayOutSetHtmlModProc(String siteIdx, String siteLayOutType, String siteLayOutPosition, String siteLayOutHtml, String rootPath); + + //ManagerSiteController + public boolean getSiteMenuExcel(String siteIdx, String rootPath, String toDate, String fileCode, String fileNameDate); + + //ManagerSiteController + public boolean setSiteMenuExcelChkProc(String siteIdx, String rootPath, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, MultipartFile upFile); + + //ManagerSiteController + public boolean setMultiFileAttributeProc(String rootPath, String filePath, String fileName, String fileAttribute); +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteMenuServiceImpl.java b/src/main/java/seed/manager/site/service/ManagerSiteMenuServiceImpl.java new file mode 100644 index 00000000..d7bd47a1 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteMenuServiceImpl.java @@ -0,0 +1,3199 @@ +package seed.manager.site.service; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; +import seed.dao.GroupDAO; +import seed.dao.SiteDAO; +import seed.dao.SiteMenuAuthDAO; +import seed.dao.SiteMenuDAO; +import seed.dao.SiteMenuHistoryDAO; +import seed.dao.SiteMenuManagerDAO; +import seed.map.T_GROUP; +import seed.map.T_MEMBER; +import seed.map.T_SITE; +import seed.map.T_SITE_MENU; +import seed.map.T_SITE_MENU_AUTH; +import seed.map.T_SITE_MENU_HISTORY; +import seed.map.T_SITE_MENU_MANAGER; +import seed.map.VIEW_SITE_MENU; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Service +public class ManagerSiteMenuServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuService{ + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private SiteDAO siteDAO; + + @Autowired + private SiteMenuDAO siteMenuDAO; + + @Autowired + private SiteMenuAuthDAO siteMenuAuthDAO; + + @Autowired + private SiteMenuHistoryDAO siteMenuHistoryDAO; + + @Autowired + private SiteMenuManagerDAO siteMenuManagerDAO; + + @Autowired + private GroupDAO groupDAO; + + //ManagerSiteController + public Map getSiteMenuLoginForm(String siteIdx, String[] qryColumns){ + + return siteMenuDAO.getSiteMenuLoginForm(siteIdx, qryColumns); + } + + //ManagerSiteController + public synchronized String getSiteMenuTop(String siteIdx, String siteMenuType, String rootPath){ + + StringBuffer fileHtml = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx + "/jsp/"+siteMenuType+"/menu/top/menu_"+siteMenuType+".html"; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileHtml.append(fileBuffer); + fileHtml.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return fileHtml.toString(); + } + + //ManagerSiteController + public synchronized String getSiteMenuSub(String siteIdx, String siteMenuType, String siteMenuPath, String rootPath){ + + StringBuffer fileHtml = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx + "/jsp/"+siteMenuType+"/menu/sub/" + siteMenuPath + "/menu_"+siteMenuType+".html"; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileHtml.append(fileBuffer); + fileHtml.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return fileHtml.toString(); + } + + //ManagerSiteController + public synchronized String getSiteMenuCss(String siteIdx, String siteMenuType, String rootPath){ + + StringBuffer fileCss = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx + "/css/menu_"+siteMenuType+".css"; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileCss.append(fileBuffer); + fileCss.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return fileCss.toString(); + } + + //ManagerSiteController + public synchronized String getSiteMenuJs(String siteIdx, String siteMenuType, String rootPath){ + + StringBuffer fileCss = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx + "/js/menu_"+siteMenuType+".js"; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileCss.append(fileBuffer); + fileCss.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return fileCss.toString(); + } + + //ManagerSiteController + public synchronized String getFileAttribute(String siteIdx, String rootPath, String dirPath, String fileName){ + + StringBuffer fileAttribute = new StringBuffer(); + String filePath = rootPath + dirPath + fileName; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileAttribute.append(fileBuffer); + fileAttribute.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return fileAttribute.toString(); + } + + //ManagerSiteController + public synchronized String getSiteLayOutHtml(String siteIdx, String siteLayOutType, String siteLayOutPosition, String rootPath){ + + StringBuffer fileHtml = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition+"/"+siteLayOutPosition+".html"; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileHtml.append(fileBuffer); + fileHtml.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return fileHtml.toString(); + } + + //ManagerSiteController + public ArrayList getSiteMenuNavigationList(String siteIdx, Integer siteMenuIdx){ + + ArrayList siteMenuNavigationList = new ArrayList(); + + if(siteMenuIdx > 0){ + + String siteMenuIdxs = SeedUtils.setReplaceNull(siteMenuDAO.getSiteMenuMapForm(siteMenuIdx, new String[] {"siteMenuIdxs"}).get("_siteMenuIdxs")).toString(); + + String[] siteMenuParentIdxs = new String[10]; + + String tmpMenuIdx = "00000000000000000000"; + + String[] qryColumns = {"siteMenuName", "siteMenuLinkUrl", "siteMenuStatus"}; + + int check = 20; + + for(int i=0; i<10; i++){ + + check = check - 2; + + tmpMenuIdx = tmpMenuIdx.substring(0, check); + + siteMenuParentIdxs[i] = siteMenuIdxs.substring(0, ((i*2)+2)) + tmpMenuIdx; + + Map map = siteMenuDAO.getSiteMenuForm(siteIdx, siteMenuParentIdxs[i], qryColumns); + + if(!map.isEmpty() && SeedUtils.setReplaceNull(map.get("_siteMenuStatus")).toString().equals("U")){ + siteMenuNavigationList.add(""+SeedUtils.setReplaceNull(map.get("_siteMenuName")).toString()+""); + } + + if(siteMenuParentIdxs[i].equals(siteMenuIdxs)){ + break; + } + } + } + + return siteMenuNavigationList; + } + + //ManagerSiteController + public List> getSiteMenuTabNavigationList(String siteIdx, Integer siteMenuIdx, String siteMenuIdxs, Integer siteMenuDepth){ + + return siteMenuDAO.getSiteMenuTabList(siteIdx, siteMenuIdxs, siteMenuDepth, new String[] {"siteMenuIdx", "siteMenuName", "siteMenuLinkUrl", "siteMenuLink"}); + } + + //ManagerSiteController + public String getSiteMenuParentName(String siteIdx, String siteMenuParentIdx, String Type){ + + StringBuffer siteMenuParentName = new StringBuffer(); + + siteMenuParentName.append(siteDAO.getSiteForm(siteIdx).getSiteName()); + + if(!siteMenuParentIdx.equals("0")){ + + String[] siteMenuParentIdxs = new String[10]; + + String tmpMenuIdx = "00000000000000000000"; + + String[] qryColumns = {"siteMenuName"}; + + int check = 20; + + for(int i=0; i<10; i++){ + + check = check - 2; + + tmpMenuIdx = tmpMenuIdx.substring(0, check); + + siteMenuParentIdxs[i] = siteMenuParentIdx.substring(0, ((i*2)+2)) + tmpMenuIdx; + + if(Type.equals("edit")){ //수정페이지 일때는 자신의 메뉴명 안보여줌 + if(siteMenuParentIdxs[i].equals(siteMenuParentIdx)){ + break; + } + } + + Map map = siteMenuDAO.getSiteMenuForm(siteIdx, siteMenuParentIdxs[i], qryColumns); + + siteMenuParentName.append(" 》 "); + siteMenuParentName.append(map.get("_siteMenuName").toString()); + + if(siteMenuParentIdxs[i].equals(siteMenuParentIdx)){ + break; + } + } + } + + return siteMenuParentName.toString(); + } + + //ManagerSiteController + public List getSiteMenuList(String siteIdx, String column, String search, String[] qryColumns){ + + return siteMenuDAO.getSiteMenuList(siteIdx, column, search, qryColumns); + } + + //ManagerSiteController + public List> getSiteMenuChargeList(String siteIdx, String column, String search, String[] qryColumns){ + + return siteMenuDAO.getSiteMenuChargeList(siteIdx, column, search, qryColumns); + } + + //ManagerSmartController + public List getSiteMenuSmartList(String siteIdx, String type, String[] qryColumns){ + + return siteMenuDAO.getSiteMenuSmartList(siteIdx, type, qryColumns); + } + + //ManagerSiteController + public String getSiteMenuSubTitleForm(String siteIdx, String siteMenuIdx1){ + + return siteMenuDAO.getSiteMenuSubTitleForm(siteIdx, siteMenuIdx1); + } + + //ManagerSiteController + public T_SITE_MENU getSiteMenuForm(Integer siteMenuIdx){ + + return siteMenuDAO.getSiteMenuForm(siteMenuIdx); + } + + //HomeController + public Map getSiteMenuMapForm(Integer siteMenuIdx, String[] qryColumns){ + + return siteMenuDAO.getSiteMenuMapForm(siteMenuIdx, qryColumns); + } + + //CommonController + public Integer getSiteMenuForm(String siteIdx){ + + T_SITE_MENU tSiteMenuDB = siteMenuDAO.getSiteMenuForm(siteIdx); + + if(tSiteMenuDB != null){ + return tSiteMenuDB.getSiteMenuIdx(); + }else{ + return 0; + } + } + + //ManagerSiteController + @Transactional + public Integer setSiteMenuRegProc(T_SITE_MENU tSiteMenu, MultipartFile upIconFile, Integer memberIdx, String memberGrant, String memberMerge, String memberMergeSiteIdx, String rootPath){ + + String siteIdx = tSiteMenu.gettSite().getSiteIdx(); + Integer siteMenuIdx = 0; + String siteMenuIdxs = ""; + Integer siteMenuDepth = 0; + Integer siteMenuOrder = 0; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSiteMenu.settMember(tMember); + tSiteMenu.setSiteMenuRegDate(new Date()); + tSiteMenu.setSiteMenuModDate(new Date()); + + String[] qryColumns = {"siteMenuIdxs", "siteMenuName", "siteMenuIdx1", "siteMenuIdx2", "siteMenuIdx3", "siteMenuIdx4", "siteMenuIdx5", "siteMenuIdx6", + "siteMenuIdx7", "siteMenuIdx8", "siteMenuIdx9", "siteMenuIdx10", "siteMenuDepth", "siteMenuOrder", "siteMenuParentIdx", "siteMenuType", "siteMenuLinkUrl", "siteMenuStatus"}; + + Map siteMenuParentMap = siteMenuDAO.getSiteMenuParentForm(tSiteMenu.gettSite().getSiteIdx(), tSiteMenu.getSiteMenuParentIdx(), qryColumns); + + if(siteMenuParentMap == null){ //같은 그룹에 데이타가 없을때 (하위 메뉴 추가) + + if(tSiteMenu.getSiteMenuParentIdx().equals("0")){ //사이트에서 추가 + + tSiteMenu.setSiteMenuParentIdx("0"); + tSiteMenu.setSiteMenuDepth(1); + tSiteMenu.setSiteMenuOrder(1); + tSiteMenu.setSiteMenuIdx1("01"); + tSiteMenu.setSiteMenuIdx2("00"); + tSiteMenu.setSiteMenuIdx3("00"); + tSiteMenu.setSiteMenuIdx4("00"); + tSiteMenu.setSiteMenuIdx5("00"); + tSiteMenu.setSiteMenuIdx6("00"); + tSiteMenu.setSiteMenuIdx7("00"); + tSiteMenu.setSiteMenuIdx8("00"); + tSiteMenu.setSiteMenuIdx9("00"); + tSiteMenu.setSiteMenuIdx10("00"); + + }else{ //선택된 키를 구해서 해당 데이타에서 추가(하위 메뉴 추가) + + Map siteMenuMap = siteMenuDAO.getSiteMenuForm(tSiteMenu.gettSite().getSiteIdx(), tSiteMenu.getSiteMenuParentIdx(), qryColumns); + + siteMenuDepth = Integer.parseInt(siteMenuMap.get("_siteMenuDepth").toString()); + siteMenuOrder = Integer.parseInt(siteMenuMap.get("_siteMenuOrder").toString()); + + tSiteMenu.setSiteMenuOrder(siteMenuOrder+1); + tSiteMenu.setSiteMenuDepth(siteMenuDepth+1); + tSiteMenu.setSiteMenuIdx1(siteMenuMap.get("_siteMenuIdx1").toString()); + tSiteMenu.setSiteMenuIdx2(siteMenuMap.get("_siteMenuIdx2").toString()); + tSiteMenu.setSiteMenuIdx3(siteMenuMap.get("_siteMenuIdx3").toString()); + tSiteMenu.setSiteMenuIdx4(siteMenuMap.get("_siteMenuIdx4").toString()); + tSiteMenu.setSiteMenuIdx5(siteMenuMap.get("_siteMenuIdx5").toString()); + tSiteMenu.setSiteMenuIdx6(siteMenuMap.get("_siteMenuIdx6").toString()); + tSiteMenu.setSiteMenuIdx7(siteMenuMap.get("_siteMenuIdx7").toString()); + tSiteMenu.setSiteMenuIdx8(siteMenuMap.get("_siteMenuIdx8").toString()); + tSiteMenu.setSiteMenuIdx9(siteMenuMap.get("_siteMenuIdx9").toString()); + tSiteMenu.setSiteMenuIdx10(siteMenuMap.get("_siteMenuIdx10").toString()); + + switch (tSiteMenu.getSiteMenuDepth()) { + case 1: + tSiteMenu.setSiteMenuIdx1(getMenuIdx(siteMenuMap.get("_siteMenuIdx1").toString())); + break; + case 2: + tSiteMenu.setSiteMenuIdx2(getMenuIdx(siteMenuMap.get("_siteMenuIdx2").toString())); + break; + case 3: + tSiteMenu.setSiteMenuIdx3(getMenuIdx(siteMenuMap.get("_siteMenuIdx3").toString())); + break; + case 4: + tSiteMenu.setSiteMenuIdx4(getMenuIdx(siteMenuMap.get("_siteMenuIdx4").toString())); + break; + case 5: + tSiteMenu.setSiteMenuIdx5(getMenuIdx(siteMenuMap.get("_siteMenuIdx5").toString())); + break; + case 6: + tSiteMenu.setSiteMenuIdx6(getMenuIdx(siteMenuMap.get("_siteMenuIdx6").toString())); + break; + case 7: + tSiteMenu.setSiteMenuIdx7(getMenuIdx(siteMenuMap.get("_siteMenuIdx7").toString())); + break; + case 8: + tSiteMenu.setSiteMenuIdx8(getMenuIdx(siteMenuMap.get("_siteMenuIdx8").toString())); + break; + case 9: + tSiteMenu.setSiteMenuIdx9(getMenuIdx(siteMenuMap.get("_siteMenuIdx9").toString())); + break; + case 10: + tSiteMenu.setSiteMenuIdx10(getMenuIdx(siteMenuMap.get("_siteMenuIdx10").toString())); + break; + } + } + + }else{ //같은 그룹의 부모키가 같은게 있을때 (같은 DEPTH에 메뉴 추가) + + siteMenuDepth = Integer.parseInt(siteMenuParentMap.get("_siteMenuDepth").toString()); + + if(tSiteMenu.getSiteMenuParentIdx().equals("0")){ //사이트에서 추가 + tSiteMenu.setSiteMenuParentIdx("0"); + tSiteMenu.setSiteMenuDepth(1); + }else{ + tSiteMenu.setSiteMenuParentIdx(tSiteMenu.getSiteMenuParentIdx()); + tSiteMenu.setSiteMenuDepth(siteMenuDepth); + } + + //상위 DEPTH에서 마지막 siteMenuOrder를 구해옴 + tSiteMenu.setSiteMenuOrder(siteMenuDAO.getSiteMenuOrderForm(tSiteMenu.gettSite().getSiteIdx(), siteMenuParentMap.get("_siteMenuIdxs").toString(), siteMenuDepth-1)+1); + tSiteMenu.setSiteMenuIdx1(siteMenuParentMap.get("_siteMenuIdx1").toString()); + tSiteMenu.setSiteMenuIdx2(siteMenuParentMap.get("_siteMenuIdx2").toString()); + tSiteMenu.setSiteMenuIdx3(siteMenuParentMap.get("_siteMenuIdx3").toString()); + tSiteMenu.setSiteMenuIdx4(siteMenuParentMap.get("_siteMenuIdx4").toString()); + tSiteMenu.setSiteMenuIdx5(siteMenuParentMap.get("_siteMenuIdx5").toString()); + tSiteMenu.setSiteMenuIdx6(siteMenuParentMap.get("_siteMenuIdx6").toString()); + tSiteMenu.setSiteMenuIdx7(siteMenuParentMap.get("_siteMenuIdx7").toString()); + tSiteMenu.setSiteMenuIdx8(siteMenuParentMap.get("_siteMenuIdx8").toString()); + tSiteMenu.setSiteMenuIdx9(siteMenuParentMap.get("_siteMenuIdx9").toString()); + tSiteMenu.setSiteMenuIdx10(siteMenuParentMap.get("_siteMenuIdx10").toString()); + + switch (siteMenuDepth) { + case 1: + tSiteMenu.setSiteMenuIdx1(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx1").toString())); + break; + case 2: + tSiteMenu.setSiteMenuIdx2(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx2").toString())); + break; + case 3: + tSiteMenu.setSiteMenuIdx3(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx3").toString())); + break; + case 4: + tSiteMenu.setSiteMenuIdx4(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx4").toString())); + break; + case 5: + tSiteMenu.setSiteMenuIdx5(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx5").toString())); + break; + case 6: + tSiteMenu.setSiteMenuIdx6(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx6").toString())); + break; + case 7: + tSiteMenu.setSiteMenuIdx7(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx7").toString())); + break; + case 8: + tSiteMenu.setSiteMenuIdx8(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx8").toString())); + break; + case 9: + tSiteMenu.setSiteMenuIdx9(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx9").toString())); + break; + case 10: + tSiteMenu.setSiteMenuIdx10(getMenuIdx(siteMenuParentMap.get("_siteMenuIdx10").toString())); + break; + } + } + + siteMenuIdxs = tSiteMenu.getSiteMenuIdx1()+tSiteMenu.getSiteMenuIdx2()+tSiteMenu.getSiteMenuIdx3()+ + tSiteMenu.getSiteMenuIdx4()+tSiteMenu.getSiteMenuIdx5()+tSiteMenu.getSiteMenuIdx6()+tSiteMenu.getSiteMenuIdx7()+ + tSiteMenu.getSiteMenuIdx8()+tSiteMenu.getSiteMenuIdx9()+tSiteMenu.getSiteMenuIdx10(); + + tSiteMenu.setSiteMenuIdxs(siteMenuIdxs); + + if(tSiteMenu.getSiteMenuType().equals("H") || tSiteMenu.getSiteMenuType().equals("C")){ + tSiteMenu.setSiteMenuLinkUrl("siteMenuIdxs"); + } + + siteMenuDAO.setSiteMenuOrderProc(siteIdx, tSiteMenu.getSiteMenuOrder(), 0, "plus"); + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + try{ + + if(upIconFile != null && upIconFile.getBytes().length > 0){ + + //스마트 아이콘 저장 + SeedUtils.setSeedMkDirs(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String reFileName = tSiteMenu.gettSite().getSiteIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1))); + + File makeFile = new File(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx() + "/" + reFileName + + upIconFile.getOriginalFilename().substring(upIconFile.getOriginalFilename().lastIndexOf("."))); + upIconFile.transferTo(makeFile); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + //WAS 파일명 + seedFtpType.setFileName(reFileName + upIconFile.getOriginalFilename().substring(upIconFile.getOriginalFilename().lastIndexOf("."))); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + tSiteMenu.setSiteMenuSmartFileName(upIconFile.getOriginalFilename()); + tSiteMenu.setSiteMenuSmartFileReName(reFileName+upIconFile.getOriginalFilename().substring(upIconFile.getOriginalFilename().lastIndexOf("."))); + } + }catch(IOException e){ + log.error("CHECK ERROR:",e); + } + + T_SITE_MENU tSiteMenuDB = siteMenuDAO.setSiteMenuRegProc(tSiteMenu); + + if(tSiteMenuDB != null){ + + siteMenuIdx = tSiteMenuDB.getSiteMenuIdx(); + + //그룹 테이블의 내용을 T_SITE_MENU_AUTH에 INSERT + String[] qryColumng = null; + + List tGroupList = null; + + if(memberMerge.equals("true")){ + tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumng); + }else{ + tGroupList = groupDAO.getGroupList(tSiteMenuDB.gettSite().getSiteIdx(), qryColumng); + } + + if(tGroupList != null && tGroupList.size() > 0){ + for(int g=0; g"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.write(SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuContent())); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenu.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteMenu.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 파일명 + seedFtpType.setFileName(siteMenuIdxs+".jsp"); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + if(!siteMenuDAO.setSiteMenuModProc(tSiteMenuDB)){ + return siteMenuIdx; + } + + }catch(FileNotFoundException ex){ + log.error("CHECK ERROR:",ex); + }catch(UnsupportedEncodingException ex){ + log.error("CHECK ERROR:",ex); + }catch(IOException ex){ + log.error("CHECK ERROR:",ex); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + //모든 메뉴 생성 + if(!setSiteMenuAllCompile(tSiteMenuDB.gettSite().getSiteIdx(), rootPath)){ + siteMenuIdx = 0; + } + } + + return siteMenuIdx; + } + + //ManagerSiteController + @Transactional + public synchronized String setSiteMenuModProc(T_SITE_MENU tSiteMenu, MultipartFile upIconFile, Integer[] siteMenuAuthIdxs, Integer[] siteMenuAuths, Integer memberIdx, String rootPath){ + + String success = "N"; + String menuLinkChk = "N"; + boolean compileChk = false; + + T_SITE_MENU tSiteMenuDB = siteMenuDAO.getSiteMenuForm(tSiteMenu.getSiteMenuIdx()); + + //해당 내용이 바뀌었을때만 메뉴 컴파일함 + if(!SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuNameType()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuNameType())) || + !SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuName()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuName())) || + !SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuType()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuType())) || + !SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuLink()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuLink())) || + !SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuAuth()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuAuth())) || + !SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuLinkUrl()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuLinkUrl())) || + !SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuStatus()).equals(SeedUtils.setReplaceNull(tSiteMenu.getSiteMenuStatus()))){ + compileChk = true; + } + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSiteMenuDB.settMember(tMember); + tSiteMenuDB.setSiteMenuModDate(new Date()); + tSiteMenuDB.setSiteMenuNameType(tSiteMenu.getSiteMenuNameType()); + tSiteMenuDB.setSiteMenuName(tSiteMenu.getSiteMenuName()); + tSiteMenuDB.setSiteMenuSmart(tSiteMenu.getSiteMenuSmart()); + tSiteMenuDB.setSiteMenuSmartDefault(tSiteMenu.getSiteMenuSmartDefault()); + tSiteMenuDB.setSiteMenuParentTitle(tSiteMenu.getSiteMenuParentTitle()); + tSiteMenuDB.setSiteMenuSNS(tSiteMenu.getSiteMenuSNS()); + tSiteMenuDB.setSiteMenuType(tSiteMenu.getSiteMenuType()); + tSiteMenuDB.setSiteMenuLink(tSiteMenu.getSiteMenuLink()); + tSiteMenuDB.setSiteMenuAuth(tSiteMenu.getSiteMenuAuth()); + tSiteMenuDB.setSiteMenuTitle(tSiteMenu.getSiteMenuTitle()); + tSiteMenuDB.setSiteMenuTHtml(tSiteMenu.getSiteMenuTHtml()); + tSiteMenuDB.setSiteMenuFHtml(tSiteMenu.getSiteMenuFHtml()); + tSiteMenuDB.setSiteMenuStatus(tSiteMenu.getSiteMenuStatus()); + + //해당 기능이 다른URL로 변경되었는지 확인 + if(!tSiteMenuDB.getSiteMenuLinkUrl().equals(tSiteMenu.getSiteMenuLinkUrl())){ + menuLinkChk = "Y"; + } + + tSiteMenuDB.setSiteMenuLinkUrl(tSiteMenu.getSiteMenuLinkUrl()); + tSiteMenuDB.setSiteMenuCharge(tSiteMenu.getSiteMenuCharge()); + tSiteMenuDB.setSiteMenuSatisfaction(tSiteMenu.getSiteMenuSatisfaction()); + tSiteMenuDB.setSiteMenuContent(tSiteMenu.getSiteMenuContent()); + + //FTP 전송 + SeedFtpType seedFtpType = new SeedFtpType(); + + if(tSiteMenuDB.getSiteMenuType().equals("H") || tSiteMenuDB.getSiteMenuType().equals("C")){ //HTML 형태 이거나 CODE + + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + String filePath = rootPath+"/"+tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content"; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + SeedUtils.setSeedMkDirs(filePath); + + String bakFilePath = rootPath+"/"+tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content_bak"; + + bakFilePath = SeedUtils.setFilePathReplaceAll(bakFilePath); + + SeedUtils.setSeedMkDirs(bakFilePath); + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuContent = new T_SITE_MENU_HISTORY(); + + tSiteMenuContent.settSite(tSiteMenuDB.gettSite()); + tSiteMenuContent.setSiteMenuHistoryType("content"); + tSiteMenuContent.setSiteMenuHistoryFile(tSiteMenuDB.getSiteMenuIdxs()+".html_"+getDate); + tSiteMenuContent.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuContent); + + List siteMenuHistoryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteMenuDB.gettSite().getSiteIdx(), "content", tSiteMenuDB.getSiteMenuIdxs()); + + if(siteMenuHistoryList != null && siteMenuHistoryList.size() > 20){ //20개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistory = siteMenuHistoryList.get(0); + + File bakFile = new File(bakFilePath+"/"+tSiteMenuHistory.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content_bak"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistory.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistory); + } + + SeedUtils.setSeedMoveFile(filePath+"/"+tSiteMenuDB.getSiteMenuIdxs()+".html", + bakFilePath+"/"+tSiteMenuDB.getSiteMenuIdxs()+".html_"+getDate); // HTML 백업 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content_bak"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(tSiteMenuDB.getSiteMenuIdxs()+".html"); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuDB.getSiteMenuIdxs()+".html_"+getDate); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + htmlFileOutputStream = new FileOutputStream(filePath+"/"+tSiteMenuDB.getSiteMenuIdxs()+".html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + htmlWriter.write(SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuContent())); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuDB.getSiteMenuIdxs()+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + File delFile = new File(filePath+"/"+tSiteMenuDB.getSiteMenuIdxs()+".jsp"); + + if(delFile.exists()){ + delFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenu.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuDB.getSiteMenuIdxs()+".jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + jspFileOutputStream = new FileOutputStream(filePath+"/"+tSiteMenuDB.getSiteMenuIdxs()+".jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.write(SeedUtils.setReplaceNull(tSiteMenuDB.getSiteMenuContent())); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteMenuDB.gettSite().getSiteIdx()+"/jsp/content"); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuDB.getSiteMenuIdxs()+".jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException ex){ + log.error("CHECK ERROR:",ex); + }catch(UnsupportedEncodingException ex){ + log.error("CHECK ERROR:",ex); + }catch(IOException ex){ + log.error("CHECK ERROR:",ex); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + try{ + + if(upIconFile != null && upIconFile.getBytes().length > 0){ + + SeedUtils.setSeedDeleteFile(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx() + "/" + tSiteMenuDB.getSiteMenuSmartFileReName()); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuDB.getSiteMenuSmartFileReName()); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedMkDirs(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String reFileName = tSiteMenu.gettSite().getSiteIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1))); + + File makeFile = new File(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx() + "/" + reFileName + + upIconFile.getOriginalFilename().substring(upIconFile.getOriginalFilename().lastIndexOf("."))); + upIconFile.transferTo(makeFile); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + tSiteMenu.gettSite().getSiteIdx() + "/upload/smartmenu/" + tSiteMenu.gettSite().getSiteIdx()); + //WAS 파일명 + seedFtpType.setFileName(reFileName + upIconFile.getOriginalFilename().substring(upIconFile.getOriginalFilename().lastIndexOf("."))); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + tSiteMenuDB.setSiteMenuSmartFileName(upIconFile.getOriginalFilename()); + tSiteMenuDB.setSiteMenuSmartFileReName(reFileName+upIconFile.getOriginalFilename().substring(upIconFile.getOriginalFilename().lastIndexOf("."))); + } + }catch(IOException e){ + log.error("CHECK ERROR:",e); + } + + if(siteMenuDAO.setSiteMenuModProc(tSiteMenuDB)){ + + for(int a=0; a siteMenuList = siteMenuDAO.getSiteMenuList(tSiteMenuDB.gettSite().getSiteIdx(), tSiteMenuDB.getSiteMenuIdxs(), tSiteMenuDB.getSiteMenuDepth()); + + for(int i=0; i 1){ + siteMenuDAO.setSiteMenuOrderProc(siteIdx, tSiteMenu.getSiteMenuOrder(), siteMenuList.size(), "minuss"); + }else{ + siteMenuDAO.setSiteMenuOrderProc(siteIdx, tSiteMenu.getSiteMenuOrder(), 0, "minus"); + } + } + + if(siteMenuDAO.setSiteMenuDelProc(tSiteMenu)){ + + success = true; + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + File getSiteMenuFile = new File(rootPath + "/" + siteIdx + "/jsp/content/" + siteMenuIdxs + ".html"); + + if(getSiteMenuFile.exists()){ + + SeedFtpType seedFtpType = new SeedFtpType(); + + String setSiteBakPath = rootPath + "/" + siteIdx + "/jsp/content_bak/"; + File getSitePathDir = new File(setSiteBakPath); + + if(!getSitePathDir.exists()){ + SeedUtils.setSeedMkDirs(setSiteBakPath); + } + + File setSiteMenuBakFile = new File(setSiteBakPath + siteMenuIdxs + ".html_" + getDate + "_" + memberIdx + "_" + memberId); + getSiteMenuFile.renameTo(setSiteMenuBakFile); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/content_bak"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(siteMenuIdxs + ".html"); + //WAS 파일명 + seedFtpType.setFileName(siteMenuIdxs + ".html_" + getDate); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + File delFile = new File(rootPath + "/" + siteIdx + "/jsp/content/" + siteMenuIdxs + ".jsp"); + + if(delFile.exists()){ + delFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/content"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(siteMenuIdxs + ".jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + } + + }else{ + success = false; + } + } + + //모든 메뉴 생성 + if(!success || !setSiteMenuAllCompile(siteIdx, rootPath)){ + success = false; + } + + return success; + } + + //ManagerSiteController + @Transactional + public boolean setSiteMenuStatusProc(Integer siteMenuIdx, String status, String rootPath, Integer memberIdx){ + + boolean success = false; + + T_SITE_MENU tSiteMenuDB = siteMenuDAO.getSiteMenuForm(siteMenuIdx); + + Iterator iteratorList = tSiteMenuDB.gettSiteMenuManagers().iterator(); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSiteMenuDB.settMember(tMember); + tSiteMenuDB.setSiteMenuModDate(new Date()); + tSiteMenuDB.setSiteMenuStatus(status); + + if(siteMenuDAO.setSiteMenuModProc(tSiteMenuDB)){ + + while(iteratorList.hasNext()){ + + T_SITE_MENU_MANAGER tSiteMenuManagerDB = siteMenuManagerDAO.getSiteMenuManagerForm(iteratorList.next().getSiteMenuManagerIdx()); + + tSiteMenuManagerDB.settMember(tMember); + tSiteMenuManagerDB.setSiteMenuManagerStatus(status); + + if(!siteMenuManagerDAO.setSiteMenuManagerModProc(tSiteMenuManagerDB)){ + success = false; + return success; + } + } + + //모든 메뉴 생성 + success = setSiteMenuAllCompile(tSiteMenuDB.gettSite().getSiteIdx(), rootPath); + } + + return success; + } + + //ManagerSiteController + @Transactional + public boolean setSiteMenuOrderProc(String siteIdx, Integer siteMenuIdx, String orderType, Integer memberIdx, String rootPath){ + + boolean success = false; + + Integer siteMenuOrder = 0; + + T_SITE_MENU tSiteMenu = siteMenuDAO.getSiteMenuForm(siteMenuIdx); //선택한 메뉴 데이타 + + T_SITE_MENU tSiteMenuOrder = siteMenuDAO.getSiteMenuOrderForm(siteIdx, tSiteMenu.getSiteMenuDepth(), tSiteMenu.getSiteMenuParentIdx(), tSiteMenu.getSiteMenuOrder(), orderType); //선택한 메뉴 데이타의 UP 또는 DOWN 데이타 + + if(tSiteMenuOrder == null){ + success = false; + return success; + } + + List siteMenuList = siteMenuDAO.getSiteMenuList(siteIdx, tSiteMenu.getSiteMenuIdxs(), tSiteMenu.getSiteMenuDepth()); //선택한 메뉴에 속한 메뉴 리스트 + + List siteMenuOrderList = siteMenuDAO.getSiteMenuList(siteIdx, tSiteMenuOrder.getSiteMenuIdxs(), tSiteMenuOrder.getSiteMenuDepth()); //선택한 메뉴 데이타의 UP 또는 DOWN 데이타에 속한 메뉴 리스트 + + if(orderType.equals("up")){ + + siteMenuOrder = siteMenuOrderList.get(0).getSiteMenuOrder(); + + for(int i=0; i siteMenuHistoryList = siteMenuHistoryDAO.getSiteMenuHistoryList(siteIdx, siteLayOutType, siteLayOutPosition); + + if(siteMenuHistoryList != null && siteMenuHistoryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0); + + File bakFile = new File(filePath+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + + File layOutFile = new File(filePath+"/"+siteLayOutPosition+".html"); + File layOutFileBak = new File(filePath + "/"+siteLayOutPosition+"_"+getDate+".html"); + layOutFile.renameTo(layOutFileBak); //layOut.html을 layOut_bak.html로 파일명 변경 + + htmlFileOutputStream = new FileOutputStream(filePath+"/"+siteLayOutPosition+".html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + htmlWriter.write(siteLayOutHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition); + //WAS 파일명 + seedFtpType.setFileName(siteLayOutPosition+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + File delFile = new File(filePath+"/"+siteLayOutPosition+".jsp"); + + if(delFile.exists()){ + delFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(siteLayOutPosition+".jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + jspFileOutputStream = new FileOutputStream(filePath+"/"+siteLayOutPosition+".jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + fileInputStream = new FileInputStream(filePath+"/"+siteLayOutPosition+".html"); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + String html = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + html += fileBuffer + "\n"; + } + + html = html.replaceAll("@seed:menuDepth:@seed", "\\${tSiteMenuDB._siteMenuIdx1}"); + html = html.replaceAll("@seed:siteMenuSubTitle:@seed", "\\${siteMenuSubTitle}"); + html = html.replaceAll("@seed:siteMenuIdx:@seed", "\\${siteMenuIdx}"); + html = html.replaceAll("@seed:siteMenuName:@seed", "\\${tSiteMenuDB._siteMenuName}"); + html = html.replaceAll("@seed:siteMenuTitle:@seed", "\\${tSiteMenuDB._siteMenuTitle}"); + + //콘텐츠 연계기능일시 해당 태그를 UL태그로 변경 + html = html.replaceAll("", ""); + html = html.replaceAll("", "
      "); + + jspWriter.write(html); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+siteIdx + "/jsp/"+siteLayOutType+"/layOut/"+siteLayOutPosition); + //WAS 파일명 + seedFtpType.setFileName(siteLayOutPosition+".jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + success = false; + log.error("CHECK ERROR:",e); + }catch(IOException e){ + success = false; + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return success; + } + + //AdminSiteController + public boolean getSiteMenuExcel(String siteIdx, String rootPath, String toDate, String fileCode, String fileNameDate){ + + boolean success = false; + + try{ + + //오늘날짜로 폴더 생성(MD5로 폴더 변환하여 생성) + SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode); + + File file = new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +fileCode + "/siteMenuExcel_"+fileNameDate+".xls"); + FileOutputStream fileOutput = new FileOutputStream(file); + + HSSFWorkbook WorkBook = new HSSFWorkbook(); + + HSSFFont font = WorkBook.createFont(); + font.setFontName(HSSFFont.FONT_ARIAL); + + HSSFCellStyle titleStyle = WorkBook.createCellStyle(); + titleStyle.setFillBackgroundColor(HSSFColor.LIGHT_GREEN.index); + titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); + titleStyle.setFont(font); + + HSSFCellStyle styleCenter = WorkBook.createCellStyle(); + styleCenter.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleCenter.setFont(font); + + HSSFSheet sheet = WorkBook.createSheet("사이트메뉴 정보"); + + HSSFRow row = sheet.createRow(0); + + //1DEPTH + HSSFCell cell1 = row.createCell(0); + sheet.setColumnWidth(0, 6800); + cell1.setCellValue("MENU-1DEPTH"); + cell1.setCellStyle(titleStyle); + + //2DEPTH + HSSFCell cell2 = row.createCell(1); + cell2.setCellValue("MENU-2DEPTH"); + sheet.setColumnWidth(1, 6800); + cell2.setCellStyle(titleStyle); + + //3DEPTH + HSSFCell cell3 = row.createCell(2); + cell3.setCellValue("MENU-3DEPTH"); + sheet.setColumnWidth(2, 6800); + cell3.setCellStyle(titleStyle); + + //4DEPTH + HSSFCell cell4 = row.createCell(3); + cell4.setCellValue("MENU-4DEPTH"); + sheet.setColumnWidth(3, 6800); + cell4.setCellStyle(titleStyle); + + //5DEPTH + HSSFCell cell5 = row.createCell(4); + cell5.setCellValue("MENU-5DEPTH"); + sheet.setColumnWidth(4, 6800); + cell5.setCellStyle(titleStyle); + + //6DEPTH + HSSFCell cell6 = row.createCell(5); + cell6.setCellValue("MENU-6DEPTH"); + sheet.setColumnWidth(5, 6800); + cell6.setCellStyle(titleStyle); + + //7DEPTH + HSSFCell cell7 = row.createCell(6); + cell7.setCellValue("MENU-7DEPTH"); + sheet.setColumnWidth(6, 6800); + cell7.setCellStyle(titleStyle); + + //8DEPTH + HSSFCell cell8 = row.createCell(7); + cell8.setCellValue("MENU-8DEPTH"); + sheet.setColumnWidth(7, 6800); + cell8.setCellStyle(titleStyle); + + //9DEPTH + HSSFCell cell9 = row.createCell(8); + cell9.setCellValue("MENU-9DEPTH"); + sheet.setColumnWidth(8, 6800); + cell9.setCellStyle(titleStyle); + + //10DEPTH + HSSFCell cell10 = row.createCell(9); + cell10.setCellValue("MENU-10DEPTH"); + sheet.setColumnWidth(9, 6800); + cell10.setCellStyle(titleStyle); + + row = sheet.createRow(1); + + cell1 = row.createCell(0); + cell1.setCellValue("메뉴1|T|O"); + cell1.setCellStyle(styleCenter); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴1-1|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴1-1-1|T|O"); + cell3.setCellStyle(styleCenter); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴1-1-1-1|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(2); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴1-1-2|T|O"); + cell3.setCellStyle(styleCenter); + + row = sheet.createRow(3); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴1-1-3|T|O"); + cell3.setCellStyle(styleCenter); + + row = sheet.createRow(4); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴1-2|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴1-2-1|T|O"); + cell3.setCellStyle(styleCenter); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴1-2-1-1|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(5); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴1-2-2|T|O"); + cell3.setCellStyle(styleCenter); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴1-2-2-1|T|X"); + cell4.setCellStyle(styleCenter); + + cell5 = row.createCell(4); + cell5.setCellValue("메뉴1-2-2-1-1|T|X"); + cell5.setCellStyle(styleCenter); + + row = sheet.createRow(6); + + cell5 = row.createCell(4); + cell5.setCellValue("메뉴1-2-2-1-2|T|X"); + cell5.setCellStyle(styleCenter); + + row = sheet.createRow(7); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴1-2-2-2|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(8); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴1-2-2-3|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(9); + + cell1 = row.createCell(0); + cell1.setCellValue("메뉴2|T|O"); + cell1.setCellStyle(styleCenter); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴2-1|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴2-1-1|T|O"); + cell3.setCellStyle(styleCenter); + + row = sheet.createRow(10); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴2-2|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴2-2-1|T|O"); + cell3.setCellStyle(styleCenter); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴2-2-1-1|T|O"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(11); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴2-2-1-2|T|O"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(12); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴2-2-1-3|T|O"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(13); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴2-2-2|T|O"); + cell3.setCellStyle(styleCenter); + + row = sheet.createRow(14); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴2-2-3|T|O"); + cell3.setCellStyle(styleCenter); + + row = sheet.createRow(15); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴2-3|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴2-3-1|T|O"); + cell3.setCellStyle(styleCenter); + + row = sheet.createRow(16); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴2-4|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴2-4-1|T|O"); + cell3.setCellStyle(styleCenter); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴2-4-1-1|T|O"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(17); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴2-4-1-2|T|O"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(18); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴2-4-1-3|T|O"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(19); + + cell1 = row.createCell(0); + cell1.setCellValue("메뉴3|T|O"); + cell1.setCellStyle(styleCenter); + + cell2 = row.createCell(1); + cell2.setCellValue("메뉴3-1|T|O"); + cell2.setCellStyle(styleCenter); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴3-1-1|T|X"); + cell3.setCellStyle(styleCenter); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴3-1-1-1|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(20); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴3-1-1-2|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(21); + + cell4 = row.createCell(3); + cell4.setCellValue("메뉴3-1-1-3|T|X"); + cell4.setCellStyle(styleCenter); + + row = sheet.createRow(22); + + cell3 = row.createCell(2); + cell3.setCellValue("메뉴3-1-2|T|X"); + cell3.setCellStyle(styleCenter); + + WorkBook.write(fileOutput); + fileOutput.close(); + + success = true; + + }catch(IOException e){ + success = false; + log.error("CHECK ERROR:",e); + } + + return success; + } + + //AdminSiteController + @Transactional + public boolean setSiteMenuExcelChkProc(String siteIdx, String rootPath, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, MultipartFile upFile){ + + boolean success = false; + + Integer siteMenuOrder = 1; + + SeedFtpType seedFtpType = new SeedFtpType(); + + String fileContentsPath = rootPath+"/"+siteIdx+"/jsp/content"; + + SeedUtils.setSeedMkDirs(fileContentsPath); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String fileCode = sdfFormat.format(new Date())+String.valueOf(SeedUtils.getRandom(999,1)); + String toDate = sdfFormat.format(new Date()).substring(0, 8); + + SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode); + + File makeFile = new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode + "/"+upFile.getOriginalFilename()); + + POIFSFileSystem fs = null; + HSSFWorkbook workBook = null; + HSSFSheet sheet = null; + + try{ + + upFile.transferTo(makeFile); + + File excelFile = new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode + "/"+upFile.getOriginalFilename()); + + T_SITE tSite = new T_SITE(); + tSite.setSiteIdx(siteIdx); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + if(excelFile.exists()){ + + fs = new POIFSFileSystem(new FileInputStream(excelFile)); + + workBook = new HSSFWorkbook(fs); + + sheet = workBook.getSheetAt(0); + + int rows = sheet.getPhysicalNumberOfRows(); + + Integer siteMenuDepth1 = 0; + Integer siteMenuDepth2 = 0; + Integer siteMenuDepth3 = 0; + Integer siteMenuDepth4 = 0; + Integer siteMenuDepth5 = 0; + Integer siteMenuDepth6 = 0; + Integer siteMenuDepth7 = 0; + Integer siteMenuDepth8 = 0; + Integer siteMenuDepth9 = 0; + Integer siteMenuDepth10 = 0; + + String siteMenuIdx1 = "0"; + String siteMenuIdx2 = "0"; + String siteMenuIdx3 = "0"; + String siteMenuIdx4 = "0"; + String siteMenuIdx5 = "0"; + String siteMenuIdx6 = "0"; + String siteMenuIdx7 = "0"; + String siteMenuIdx8 = "0"; + String siteMenuIdx9 = "0"; + String siteMenuIdx10 = "0"; + + for(int i=1; i 0){ + + tSiteMenuDB.setSiteMenuLinkUrl("/"+siteIdx+"/subIndex/"+tSiteMenuDB.getSiteMenuIdx()+".do"); + + if(siteMenuDAO.setSiteMenuModProc(tSiteMenuDB)){ + + //그룹 테이블의 내용을 T_SITE_MENU_AUTH에 INSERT + String[] qryColumng = null; + + List tGroupList = null; + + if(memberMerge.equals("true")){ + tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumng); + }else{ + tGroupList = groupDAO.getGroupList(tSiteMenuDB.gettSite().getSiteIdx(), qryColumng); + } + + if(tGroupList != null && tGroupList.size() > 0){ + for(int g=0; g"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.write(values[0]); + jspWriter.flush(); + jspWriter.close(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx+"/jsp/content"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+siteIdx+"/jsp/content"); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuDB.getSiteMenuIdxs()+".jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + } + } + } + } + } + }catch (Exception e) { + success = false; + log.error(e); + } + + SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode + "/"+upFile.getOriginalFilename()); + + //모든 메뉴 생성 + setSiteMenuAllCompile(siteIdx, rootPath); + + return success; + } + + //AdminSiteController + @Transactional + public synchronized boolean setMultiFileAttributeProc(String rootPath, String filePath, String fileName, String fileAttribute){ + + boolean success = true; + + String fileContentsPath = rootPath + filePath; + + SeedUtils.setSeedMkDirs(fileContentsPath); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String toDate = sdfFormat.format(new Date()); + + String extension = ""; + + if(fileName.indexOf(".") > -1){ + String[] fileNameArry = fileName.split("\\."); + fileName = fileNameArry[0]; + extension = fileNameArry[1]; + } + + SeedUtils.setSeedFileCopy(fileContentsPath + fileName + "." + extension, fileContentsPath +"/" + fileName + "_" + toDate + "." + extension); + + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + try{ + + SeedFtpType seedFtpType = new SeedFtpType(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(filePath); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(fileName + "." + extension); + //WAS 파일명 + seedFtpType.setFileName(fileName + "_" + toDate + "." + extension); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + htmlFileOutputStream = new FileOutputStream(fileContentsPath + fileName + "." + extension); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + htmlWriter.write(SeedUtils.setReplaceNull(fileAttribute)); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(filePath); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(fileContentsPath); + //WAS 파일명 + seedFtpType.setFileName(fileName + "." + extension); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + return success; + } + + public synchronized boolean setSiteMenuAllCompile(String siteIdx, String rootPath){ + + boolean success = false; + + try{ + + SeedFtpType seedFtpType = new SeedFtpType(); + + boolean fileChk = false; + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + Integer depth = 0; + String siteMenuName = ""; + String siteMenuHtml = ""; + String siteMenuLink = ""; + String siteMenuLinkTarget = ""; + String tabMenuHtml = ""; + + ArrayList siteMenuIdx1s = new ArrayList(); + + T_SITE tSiteDB = siteDAO.getSiteForm(siteIdx); + + //상단메뉴 저장 + String menuTopPathMain = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"; + String menuTopPathSub = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"; + + SeedUtils.setSeedMkDirs(menuTopPathMain); + SeedUtils.setSeedMkDirs(menuTopPathSub); + + File menuTopMakeMainFile = new File(menuTopPathMain + "/menu_main.html"); + File menuTopMakeSubFile = new File(menuTopPathSub + "/menu_sub.html"); + + if(menuTopMakeMainFile.exists() && menuTopMakeSubFile.exists()){ //파일이 있는 경우 파일 menu_bak으로 파일명 변경 + + File menuTopFileMainBak = new File(menuTopPathMain + "/menu_main_"+getDate+".html"); + menuTopMakeMainFile.renameTo(menuTopFileMainBak); //menu.html을 menu_bak.html로 파일명 변경 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath("menu_main.html"); + //WAS 파일명 + seedFtpType.setFileName("menu_main_"+getDate+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + File menuTopFileSubBak = new File(menuTopPathSub + "/menu_sub_"+getDate+".html"); + menuTopMakeSubFile.renameTo(menuTopFileSubBak); //menu.html을 menu_bak.html로 파일명 변경 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath("menu_sub.html"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub_"+getDate+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuHistoryMain = new T_SITE_MENU_HISTORY(); + + tSiteMenuHistoryMain.settSite(tSiteDB); + tSiteMenuHistoryMain.setSiteMenuHistoryType("top"); + tSiteMenuHistoryMain.setSiteMenuHistoryFile("menu_main_"+getDate+".html"); + tSiteMenuHistoryMain.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistoryMain); + + List siteMenuMainHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_main"); + + if(siteMenuMainHisotryList != null && siteMenuMainHisotryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuMainHisotryList.get(0); + + File bakFile = new File(menuTopPathMain+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuHistorySub = new T_SITE_MENU_HISTORY(); + + tSiteMenuHistorySub.settSite(tSiteDB); + tSiteMenuHistorySub.setSiteMenuHistoryType("top"); + tSiteMenuHistorySub.setSiteMenuHistoryFile("menu_sub_"+getDate+".html"); + tSiteMenuHistorySub.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistorySub); + + List siteMenuSubHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_sub"); + + if(siteMenuSubHisotryList != null && siteMenuSubHisotryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuSubHisotryList.get(0); + + File bakFile = new File(menuTopPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + } + + Integer siteMenuParentDepth = 0; + + String[] qryColumnsm = null; + + List siteMenuTopList = siteMenuDAO.getSiteMenuTopList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuTopDepth(), qryColumnsm); + + if(siteMenuTopList.size() > 0){ + + fileChk = true; + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + htmlFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + boolean statusChk = false; + + Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + for(int x=0; x siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx()); + + String siteMenuAuth = ""; + + for(int m=0; m"; + } + + if(tSiteMenuTmp.getSiteMenuType().equals("H") || tSiteMenuTmp.getSiteMenuType().equals("C")){ + siteMenuLink = ""+siteMenuName+"" + "\n"; + }else{ + if(tSiteMenuTmp.getSiteMenuLink().equals("B")){ + siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" ' "; + }else{ + siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '"; + } + siteMenuLink = ""+siteMenuName+"" + "\n"; + } + + tempDepth[depth-1]++; + + for(int d=0; d" + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + + }else if(siteMenuParentDepth == depth){ + + siteMenuHtml = tabMenuHtml + "
    • " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + + }else if(siteMenuParentDepth > depth){ + + siteMenuHtml = ""; + + for(int j=0; j<(siteMenuParentDepth - depth); j++){ + + String tabMenuHtmlTemp = ""; + + for(int d=0; d<(siteMenuParentDepth-j); d++){ + tabMenuHtmlTemp += " "; + } + + siteMenuHtml += tabMenuHtmlTemp + "
    • " + "\n"; + siteMenuHtml += tabMenuHtmlTemp + "" + "\n"; + } + + siteMenuHtml += tabMenuHtml + " " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + } + + htmlWriter.write(siteMenuHtml); + jspWriter.write(siteMenuHtml); + + siteMenuParentDepth = depth; + } + + siteMenuHtml = ""; + tabMenuHtml = ""; + + for(int d=0; d" + "\n"; + siteMenuHtml += tabMenuHtml + "" + "\n"; + } + + siteMenuHtml += "
    • " + "\n"; + siteMenuHtml += " "; + + htmlWriter.write(siteMenuHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + jspWriter.write(siteMenuHtml); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuTopPathMain + "/menu_main.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp"); + + File file = new File(menuTopPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + } + + if(!fileChk){ + + menuTopMakeMainFile.createNewFile(); + menuTopMakeSubFile.createNewFile(); + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuTopPathMain + "/menu_main.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + } + + fileChk = false; + + //서브메뉴 저장 + if(siteMenuIdx1s.size() > 0){ + + for(int i=0; i siteMenuHistoryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "sub/"+siteMenuIdx1s.get(i), "menu_sub"); + + if(siteMenuHistoryList != null && siteMenuHistoryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0); + + File bakFile = new File(menuSubPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + } + + siteMenuParentDepth = 0; + + qryColumnsm = null; + + List siteMenuSubList = siteMenuDAO.getSiteMenuSubList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuSubSDepth(), tSiteDB.getSiteMenuSubEDepth(), siteMenuIdx1s.get(i), qryColumnsm); + + if(siteMenuSubList.size() > 0){ + + fileChk = true; + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + htmlFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + for(int x=0; x siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx()); + + String siteMenuAuth = ""; + + for(int m=0; m"; + } + + if(tSiteMenuTmp.getSiteMenuType().equals("H") || tSiteMenuTmp.getSiteMenuType().equals("C")){ + siteMenuLink = ""+siteMenuName+"" + "\n"; + }else{ + if(tSiteMenuTmp.getSiteMenuLink().equals("B")){ + siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" ' "; + }else{ + siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '"; + } + siteMenuLink = ""+siteMenuName+"" + "\n"; + } + + tempDepth[depth-1]++; + + for(int d=0; d" + "\n"; + }else{ + siteMenuHtml = tabMenuHtml + "
        " + "\n"; + } + + siteMenuHtml += tabMenuHtml + "
      • " + siteMenuLink; + + }else if(siteMenuParentDepth == depth){ + + siteMenuHtml = tabMenuHtml + "
      • " + "\n"; + siteMenuHtml += tabMenuHtml + "
      • " + siteMenuLink; + + }else if(siteMenuParentDepth > depth){ + + siteMenuHtml = ""; + + for(int j=0; j<(siteMenuParentDepth - depth); j++){ + + String tabMenuHtmlTemp = ""; + + for(int d=0; d<(siteMenuParentDepth-j); d++){ + tabMenuHtmlTemp += " "; + } + + siteMenuHtml += tabMenuHtmlTemp + "
      • " + "\n"; + siteMenuHtml += tabMenuHtmlTemp + "
      " + "\n"; + } + siteMenuHtml += tabMenuHtml + " " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + } + + htmlWriter.write(siteMenuHtml); + jspWriter.write(siteMenuHtml); + + siteMenuParentDepth = depth; + } + + siteMenuHtml = ""; + + for(int m=0; m<(depth-2); m++){ + + tabMenuHtml = ""; + + for(int d=0; d<(depth-1-m); d++){ + tabMenuHtml += " "; + } + + siteMenuHtml += tabMenuHtml + "
    • " + "\n"; + siteMenuHtml += tabMenuHtml + "" + "\n"; + } + + siteMenuHtml += " " + "\n"; + siteMenuHtml += " "; + + htmlWriter.write(siteMenuHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + jspWriter.write(siteMenuHtml); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuSubPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!fileChk){ + + menuSubMakeSubFile.createNewFile(); + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuSubPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + } + } + + success = true; + + }catch(IOException ex){ + success = false; + log.error("CHECK ERROR:",ex); + } + + return success; + } +} \ No newline at end of file diff --git a/src/main/java/seed/manager/site/service/ManagerSiteService.java b/src/main/java/seed/manager/site/service/ManagerSiteService.java new file mode 100644 index 00000000..931d3d73 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteService.java @@ -0,0 +1,24 @@ +package seed.manager.site.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_SITE; + +public interface ManagerSiteService { + + //managerSiteController + public T_SITE getSiteForm(String siteIdx); + + //managerSiteController + public Map getSiteForm(String siteIdx, String[] qryColumns); + + //managerLoginService + public List getSiteList(String memberMergeSiteIdx, String[] qryColumns); + + //managerSiteController + public boolean setSiteModProc(T_SITE tSite, Integer memberIdx, String rootPath); + + //managerSiteController + public boolean setSiteDelProc(String siteIdx, Integer memberIdx, String memberId, String rootPath); +} diff --git a/src/main/java/seed/manager/site/service/ManagerSiteServiceImpl.java b/src/main/java/seed/manager/site/service/ManagerSiteServiceImpl.java new file mode 100644 index 00000000..f2114d32 --- /dev/null +++ b/src/main/java/seed/manager/site/service/ManagerSiteServiceImpl.java @@ -0,0 +1,940 @@ +package seed.manager.site.service; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.MemberDAO; +import seed.dao.SiteDAO; +import seed.dao.SiteMenuAuthDAO; +import seed.dao.SiteMenuDAO; +import seed.dao.SiteMenuHistoryDAO; +import seed.map.T_GROUPS; +import seed.map.T_MEMBER; +import seed.map.T_SITE; +import seed.map.T_SITE_MENU; +import seed.map.T_SITE_MENU_AUTH; +import seed.map.T_SITE_MENU_HISTORY; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Service +public class ManagerSiteServiceImpl extends AbstractServiceImpl implements ManagerSiteService{ + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private SiteDAO siteDAO; + + @Autowired + private SiteMenuHistoryDAO siteMenuHistoryDAO; + + @Autowired + private SiteMenuDAO siteMenuDAO; + + @Autowired + private SiteMenuAuthDAO siteMenuAuthDAO; + + @Autowired + private MemberDAO memberDAO; + + //managerSiteController + public T_SITE getSiteForm(String siteIdx){ + + return siteDAO.getSiteForm(siteIdx); + } + + //managerSiteController + public Map getSiteForm(String siteIdx, String[] qryColumns){ + + return siteDAO.getSiteMapForm(siteIdx, qryColumns); + } + + //managerLoginService + public List getSiteList(String memberMergeSiteIdx, String[] qryColumns){ + + return siteDAO.getSiteList(memberMergeSiteIdx, qryColumns); + } + + //managerSiteController + @Transactional + public boolean setSiteModProc(T_SITE tSite, Integer memberIdx, String rootPath){ + + boolean success = false; + + T_SITE tSiteDB = siteDAO.getSiteForm(tSite.getSiteIdx()); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSiteDB.settMember(tMember); + tSiteDB.setSiteModDate(new Date()); + tSiteDB.setSiteName(tSite.getSiteName()); + tSiteDB.setSiteMemberIp(tSite.getSiteMemberIp()); + tSiteDB.setSiteMenuTopDepth(tSite.getSiteMenuTopDepth()); + tSiteDB.setSiteMenuSubSDepth(tSite.getSiteMenuSubSDepth()); + tSiteDB.setSiteMenuSubEDepth(tSite.getSiteMenuSubEDepth()); + tSiteDB.setSiteActiveMenuWidth(tSite.getSiteActiveMenuWidth()); + + if(!SeedUtils.setReplaceNull(tSite.getSiteService()).equals("Y")){ + tSiteDB.setSiteService("N"); + tSiteDB.setSiteServiceSdate(""); + tSiteDB.setSiteServiceEdate(""); + }else{ + tSiteDB.setSiteService(tSite.getSiteService()); + tSiteDB.setSiteServiceSdate(tSite.getSiteServiceSdate()); + tSiteDB.setSiteServiceEdate(tSite.getSiteServiceEdate()); + } + + if(siteDAO.setSiteModProc(tSiteDB)){ + + success = true; + + //모든 메뉴 생성 + if(!setSiteMenuAllCompile(tSiteDB.getSiteIdx(), rootPath)){ + success = false; + } + } + + return success; + } + + //managerSiteController + @Transactional + public boolean setSiteDelProc(String siteIdx, Integer smemberIdx, String smemberId, String rootPath){ + + boolean success = false; + + T_SITE tSiteDB = siteDAO.getSiteForm(siteIdx); + + Iterator iteratorList = tSiteDB.gettGroupss().iterator(); + + if(siteDAO.setSiteDelProc(tSiteDB)){ + + success = true; + + while(iteratorList.hasNext()){ + + Integer memberIdx = iteratorList.next().gettMember().getMemberIdx(); + + T_MEMBER tMemberDB = memberDAO.getMemberForm(memberIdx); + + if(!tMemberDB.getMemberGrant().equals("S")){ //슈퍼 관리자가아닐때만 작업 + if(!memberDAO.setMemberDelProc(tMemberDB)){ + success=false; + break; + } + } + } + + File getSiteFile = new File(rootPath + "/" + tSiteDB.getSiteIdx()); + + if(getSiteFile.exists()){ + + Date getDate = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + + String setSiteBakPath = rootPath + "/site_bak/"; + File getSitePathDir = new File(setSiteBakPath); + + if(!getSitePathDir.exists()){ + SeedUtils.setSeedMkDirs(setSiteBakPath); + } + + File setSiteBakFile = new File(setSiteBakPath + tSiteDB.getSiteIdx() + "_bak_" + dateFormat.format(getDate) + "_" + smemberIdx + "_" + smemberId); + getSiteFile.renameTo(setSiteBakFile); + } + } + + return success; + } + + public synchronized boolean setSiteMenuAllCompile(String siteIdx, String rootPath){ + + boolean success = false; + + try{ + + SeedFtpType seedFtpType = new SeedFtpType(); + + boolean fileChk = false; + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String getDate = simpleDateFormat.format(new Date()); + + Integer depth = 0; + String siteMenuName = ""; + String siteMenuHtml = ""; + String siteMenuLink = ""; + String siteMenuLinkTarget = ""; + String tabMenuHtml = ""; + + ArrayList siteMenuIdx1s = new ArrayList(); + + T_SITE tSiteDB = siteDAO.getSiteForm(siteIdx); + + //상단메뉴 저장 + String menuTopPathMain = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"; + String menuTopPathSub = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"; + + SeedUtils.setSeedMkDirs(menuTopPathMain); + SeedUtils.setSeedMkDirs(menuTopPathSub); + + File menuTopMakeMainFile = new File(menuTopPathMain + "/menu_main.html"); + File menuTopMakeSubFile = new File(menuTopPathSub + "/menu_sub.html"); + + if(menuTopMakeMainFile.exists() && menuTopMakeSubFile.exists()){ //파일이 있는 경우 파일 menu_bak으로 파일명 변경 + + File menuTopFileMainBak = new File(menuTopPathMain + "/menu_main_"+getDate+".html"); + menuTopMakeMainFile.renameTo(menuTopFileMainBak); //menu.html을 menu_bak.html로 파일명 변경 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath("menu_main.html"); + //WAS 파일명 + seedFtpType.setFileName("menu_main_"+getDate+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + File menuTopFileSubBak = new File(menuTopPathSub + "/menu_sub_"+getDate+".html"); + menuTopMakeSubFile.renameTo(menuTopFileSubBak); //menu.html을 menu_bak.html로 파일명 변경 + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath("menu_sub.html"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub_"+getDate+".html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("modFile"); + seedFtpType.setSeedFtp(); + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuHistoryMain = new T_SITE_MENU_HISTORY(); + + tSiteMenuHistoryMain.settSite(tSiteDB); + tSiteMenuHistoryMain.setSiteMenuHistoryType("top"); + tSiteMenuHistoryMain.setSiteMenuHistoryFile("menu_main_"+getDate+".html"); + tSiteMenuHistoryMain.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistoryMain); + + List siteMenuMainHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_main"); + + if(siteMenuMainHisotryList != null && siteMenuMainHisotryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuMainHisotryList.get(0); + + File bakFile = new File(menuTopPathMain+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + + //T_SITE_MENU_HISTORY 에 저장 + T_SITE_MENU_HISTORY tSiteMenuHistorySub = new T_SITE_MENU_HISTORY(); + + tSiteMenuHistorySub.settSite(tSiteDB); + tSiteMenuHistorySub.setSiteMenuHistoryType("top"); + tSiteMenuHistorySub.setSiteMenuHistoryFile("menu_sub_"+getDate+".html"); + tSiteMenuHistorySub.setSiteMenuHistoryRegDate(new Date()); + + siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistorySub); + + List siteMenuSubHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_sub"); + + if(siteMenuSubHisotryList != null && siteMenuSubHisotryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuSubHisotryList.get(0); + + File bakFile = new File(menuTopPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + } + + Integer siteMenuParentDepth = 0; + + String[] qryColumnsm = null; + + List siteMenuTopList = siteMenuDAO.getSiteMenuTopList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuTopDepth(), qryColumnsm); + + if(siteMenuTopList.size() > 0){ + + fileChk = true; + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + htmlFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + boolean statusChk = false; + + Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + for(int x=0; x siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx()); + + String siteMenuAuth = ""; + + for(int m=0; m"; + } + + if(tSiteMenuTmp.getSiteMenuType().equals("H")){ + siteMenuLink = ""+siteMenuName+"" + "\n"; + }else{ + if(tSiteMenuTmp.getSiteMenuLink().equals("B")){ + siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" ' "; + }else{ + siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '"; + } + siteMenuLink = ""+siteMenuName+"" + "\n"; + } + + tempDepth[depth-1]++; + + for(int d=0; d" + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + + }else if(siteMenuParentDepth == depth){ + + siteMenuHtml = tabMenuHtml + "
    • " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + + }else if(siteMenuParentDepth > depth){ + + siteMenuHtml = ""; + + for(int j=0; j<(siteMenuParentDepth - depth); j++){ + + String tabMenuHtmlTemp = ""; + + for(int d=0; d<(siteMenuParentDepth-j); d++){ + tabMenuHtmlTemp += " "; + } + + siteMenuHtml += tabMenuHtmlTemp + "
    • " + "\n"; + siteMenuHtml += tabMenuHtmlTemp + "" + "\n"; + } + + siteMenuHtml += tabMenuHtml + " " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + } + + htmlWriter.write(siteMenuHtml); + jspWriter.write(siteMenuHtml); + + siteMenuParentDepth = depth; + } + + siteMenuHtml = ""; + tabMenuHtml = ""; + + for(int d=0; d" + "\n"; + siteMenuHtml += tabMenuHtml + "" + "\n"; + } + + siteMenuHtml += "
    • " + "\n"; + siteMenuHtml += " "; + + htmlWriter.write(siteMenuHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + jspWriter.write(siteMenuHtml); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuTopPathMain + "/menu_main.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp"); + + File file = new File(menuTopPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + } + + if(!fileChk){ + + menuTopMakeMainFile.createNewFile(); + menuTopMakeSubFile.createNewFile(); + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_main.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuTopPathMain + "/menu_main.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp"); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top"); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + } + + fileChk = false; + + //서브메뉴 저장 + if(siteMenuIdx1s.size() > 0){ + + for(int i=0; i siteMenuHistoryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "sub/"+siteMenuIdx1s.get(i), "menu_sub"); + + if(siteMenuHistoryList != null && siteMenuHistoryList.size() > 10){ //10개 초과시 파일 삭제 + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0); + + File bakFile = new File(menuSubPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + if(bakFile.exists()){ + bakFile.delete(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(""); + //WAS 파일명 + seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile()); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("delFile"); + seedFtpType.setSeedFtp(); + } + + siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB); + } + } + + siteMenuParentDepth = 0; + + qryColumnsm = null; + + List siteMenuSubList = siteMenuDAO.getSiteMenuSubList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuSubSDepth(), tSiteDB.getSiteMenuSubEDepth(), siteMenuIdx1s.get(i), qryColumnsm); + + if(siteMenuSubList.size() > 0){ + + fileChk = true; + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + htmlFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.html"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + for(int x=0; x siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx()); + + String siteMenuAuth = ""; + + for(int m=0; m"; + } + + if(tSiteMenuTmp.getSiteMenuType().equals("H")){ + siteMenuLink = ""+siteMenuName+"" + "\n"; + }else{ + if(tSiteMenuTmp.getSiteMenuLink().equals("B")){ + siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" ' "; + }else{ + siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '"; + } + siteMenuLink = ""+siteMenuName+"" + "\n"; + } + + tempDepth[depth-1]++; + + for(int d=0; d" + "\n"; + }else{ + siteMenuHtml = tabMenuHtml + "
        " + "\n"; + } + + siteMenuHtml += tabMenuHtml + "
      • " + siteMenuLink; + + }else if(siteMenuParentDepth == depth){ + + siteMenuHtml = tabMenuHtml + "
      • " + "\n"; + siteMenuHtml += tabMenuHtml + "
      • " + siteMenuLink; + + }else if(siteMenuParentDepth > depth){ + + siteMenuHtml = ""; + + for(int j=0; j<(siteMenuParentDepth - depth); j++){ + + String tabMenuHtmlTemp = ""; + + for(int d=0; d<(siteMenuParentDepth-j); d++){ + tabMenuHtmlTemp += " "; + } + + siteMenuHtml += tabMenuHtmlTemp + "
      • " + "\n"; + siteMenuHtml += tabMenuHtmlTemp + "
      " + "\n"; + } + siteMenuHtml += tabMenuHtml + " " + "\n"; + siteMenuHtml += tabMenuHtml + "
    • " + siteMenuLink; + } + + htmlWriter.write(siteMenuHtml); + jspWriter.write(siteMenuHtml); + + siteMenuParentDepth = depth; + } + + siteMenuHtml = ""; + + for(int m=0; m<(depth-2); m++){ + + tabMenuHtml = ""; + + for(int d=0; d<(depth-1-m); d++){ + tabMenuHtml += " "; + } + + siteMenuHtml += tabMenuHtml + "
    • " + "\n"; + siteMenuHtml += tabMenuHtml + "" + "\n"; + } + + siteMenuHtml += " " + "\n"; + siteMenuHtml += " "; + + htmlWriter.write(siteMenuHtml); + htmlWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.html"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + jspWriter.write(siteMenuHtml); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuSubPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!fileChk){ + + menuSubMakeSubFile.createNewFile(); + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.flush(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i)); + //WAS 파일명 + seedFtpType.setFileName("menu_sub.jsp"); + //파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + + File file = new File(menuSubPathSub + "/menu_sub.jsp"); + if(file.exists()){ + file.setLastModified(new Date().getTime()); + } + + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + } + } + + success = true; + + }catch(IOException ex){ + success = false; + log.error("CHECK ERROR:",ex); + } + + return success; + } +} diff --git a/src/main/java/seed/manager/site/web/ManagerSiteController.java b/src/main/java/seed/manager/site/web/ManagerSiteController.java new file mode 100644 index 00000000..5c7425d3 --- /dev/null +++ b/src/main/java/seed/manager/site/web/ManagerSiteController.java @@ -0,0 +1,2071 @@ +package seed.manager.site.web; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +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.util.FileCopyUtils; +import org.springframework.validation.BindingResult; +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.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; + +import seed.common.service.CommonMenuAuthService; +import seed.common.service.CommonSatisfactionService; +import seed.manager.bbs.service.ManagerBbsDataService; +import seed.manager.bbs.service.ManagerBbsItemService; +import seed.manager.bbs.service.ManagerBbsManagerService; +import seed.manager.bbs.service.ManagerBbsSetService; +import seed.manager.formbuilder.service.ManagerFormbuilderManagerService; +import seed.manager.formbuilder.service.ManagerFormbuilderSetService; +import seed.manager.member.service.ManagerMemberService; +import seed.manager.site.service.ManagerSiteManagerService; +import seed.manager.site.service.ManagerSiteMenuAuthService; +import seed.manager.site.service.ManagerSiteMenuHistoryService; +import seed.manager.site.service.ManagerSiteMenuManagerService; +import seed.manager.site.service.ManagerSiteMenuService; +import seed.manager.site.service.ManagerSiteService; +import seed.manager.survey.service.ManagerSurveyManagerService; +import seed.manager.survey.service.ManagerSurveySetService; +import seed.map.T_BBS_SET; +import seed.map.T_FORMBUILDER_SET; +import seed.map.T_MEMBER; +import seed.map.T_SITE; +import seed.map.T_SITE_MENU; +import seed.map.T_SITE_MENU_HISTORY; +import seed.map.T_SURVEY_SET; +import seed.utils.InterceptorCheck; +import seed.utils.SeedFtpType; +import seed.utils.SeedUtils; + +@Controller +public class ManagerSiteController { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private ManagerSiteService managerSiteService; + + @Autowired + private ManagerSiteMenuService managerSiteMenuService; + + @Autowired + private ManagerSiteMenuAuthService managerSiteMenuAuthService; + + @Autowired + private ManagerSiteManagerService managerSiteManagerService; + + @Autowired + private ManagerSiteMenuManagerService managerSiteMenuManagerService; + + @Autowired + private ManagerSiteMenuHistoryService managerSiteMenuHistoryService; + + @Autowired + private ManagerMemberService managerMemberService; + + @Autowired + private CommonMenuAuthService commonMenuAuthService; + + @Autowired + private CommonSatisfactionService commonSatisfactionService; + + @Autowired + private ManagerBbsSetService managerBbsSetService; + + @Autowired + private ManagerBbsItemService managerBbsItemService; + + @Autowired + private ManagerBbsDataService managerBbsDataService; + + @Autowired + private ManagerBbsManagerService managerBbsManagerService; + + @Autowired + private ManagerFormbuilderSetService managerFormbuilderSetService; + + @Autowired + private ManagerFormbuilderManagerService managerFormbuilderManagerService; + + @Autowired + private ManagerSurveySetService managerSurveySetService; + + @Autowired + private ManagerSurveyManagerService managerSurveyManagerService; + + @Value("#{config['root.path']}") + private String rootPath; + + @Value("#{config['member.merge']}") + private String memberMerge; + + @Value("#{config['member.merge.siteIdx']}") + private String memberMergeSiteIdx; + + 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"); + } + + @RequestMapping(value = "/gtm/siteEdit/{siteIdx}.do", method=RequestMethod.GET) + public ModelAndView getSiteEdit(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"); + } + + if(memberMerge.equals("true")){ + if(siteIdx.equals(memberMergeSiteIdx)){ + map.put("message", "common.message.error"); + return new ModelAndView("/_common/jsp/message"); + } + } + + map.put("tSiteDB", managerSiteService.getSiteForm(siteIdx)); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/site/siteEdit"); + } + + @RequestMapping(value = "/gtm/proc/siteModProc.do", method=RequestMethod.POST) + public ModelAndView setSiteModProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @ModelAttribute("T_SITE") T_SITE tSite, + BindingResult bindingResult){ + + 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(tSite.getSiteIdx(), 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"); + } + + if(memberMerge.equals("true")){ + if(tSite.getSiteIdx().equals(memberMergeSiteIdx)){ + map.put("message", "common.message.error"); + return new ModelAndView("/_common/jsp/message"); + } + } + + if(managerSiteService.setSiteModProc(tSite, memberIdx, rootPath)){ + map.put("message", "common.message.mod"); + }else{ + map.put("message", "common.message.error.mod"); + } + + map.put("url", "/gtm/siteEdit/"+tSite.getSiteIdx()+".do"); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/siteDelProc/{siteIdx}.do", method=RequestMethod.GET) + public ModelAndView setSiteDelProc(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 memberId = SeedUtils.setReplaceNull(session.getAttribute("memberId")); + 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"); + } + + if(memberMerge.equals("true")){ + if(siteIdx.equals(memberMergeSiteIdx)){ + map.put("message", "common.message.error"); + return new ModelAndView("/_common/jsp/message"); + } + } + + if(managerSiteService.setSiteDelProc(siteIdx, memberIdx, memberId, rootPath)){ + map.put("message", "common.message.del"); + }else{ + map.put("message", "common.message.error.del"); + } + + map.put("url", "/gtm/index.do"); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = {"/gtm/{siteIdx}/siteMenuList.do", "/gte/{siteIdx}/siteMenuList.do"}) + public ModelAndView getSiteMenuList(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType){ + + 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); + + //기능 관리자 URL로 넘어온 경우 + if(httpServletRequest.getRequestURI().indexOf("/gte/"+siteIdx+"/siteMenuList.do") > -1){ + + if(memberIdx == 0){ + setSessionRemove(session); + map.put("url", "/gte/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + String[] qryColumns = {"siteMenuIdxs", "siteMenuIdx", "siteMenuNameType", + "siteMenuName", "siteMenuLinkUrl","siteMenuDepth", + "siteSatisfaction1", "siteSatisfaction2", "siteSatisfaction3", "siteSatisfaction4", "siteSatisfaction5"}; + + map.put("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName()); + + //기능 관리자인데 슈퍼관리자나 해당 사이트관리자가 들어오면 모든 메뉴를 보여준다 + if(memberGrant.equals("S") || memberAuth){ + map.put("siteMenuList", managerSiteMenuService.getSiteMenuList(siteIdx, column, search, qryColumns)); + }else{ + map.put("siteMenuList", managerSiteMenuManagerService.getSiteMenuManagerList(siteIdx, memberIdx, column, search, qryColumns)); + } + + map.put("column", column); + map.put("search", search); + map.put("listType", "menu"); + + return new ModelAndView("/manager/site/siteEMenuList"); + + }else{ + + 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("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName()); + + if(listType.equals("menu")){ + + String[] qryColumns = {"siteMenuIdxs", "siteMenuIdx", "siteMenuNameType", + "siteMenuName", "siteMenuType", + "siteMenuLink", "siteMenuLinkUrl", "siteMenuUp", "siteMenuDown", "siteMenuDepth", + "siteMenuOrder", "siteMenuRegDate", "siteMenuStatus", + "siteSatisfaction1", "siteSatisfaction2", "siteSatisfaction3", "siteSatisfaction4", "siteSatisfaction5", + "memberId", "memberName"}; + + map.put("siteName", managerSiteService.getSiteForm(siteIdx).getSiteName()); + map.put("siteMenuList", managerSiteMenuService.getSiteMenuList(siteIdx, column, search, qryColumns)); + + }else{ + + String[] qryColumns = {"siteMenuIdxs", "siteMenuIdx", "siteMenuNameType", + "siteMenuName", "siteMenuType", + "siteMenuLink", "siteMenuLinkUrl", "siteMenuUp", "siteMenuDown", "siteMenuDepth", + "siteMenuOrder", "siteMenuStatus", "memberName"}; + + List> siteMenuList = managerSiteMenuService.getSiteMenuChargeList(siteIdx, column, search, qryColumns); + + if(siteMenuList != null && siteMenuList.size() > 0){ + + for(int s=0; s siteMenuMap = siteMenuList.get(s); + + String siteMenuIdx = SeedUtils.setReplaceNull(siteMenuMap.get("_siteMenuIdx")); + String siteMenuType = SeedUtils.setReplaceNull(siteMenuMap.get("_siteMenuType")); + String siteMenuLinkUrl = SeedUtils.setReplaceNull(siteMenuMap.get("_siteMenuLinkUrl")); + + siteMenuMap.put("_memberName", ""); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(Integer.parseInt(siteMenuIdx), new String[]{"tMember.memberId", "tMember.memberName"}); + + String siteMenuManagerName = ""; + + if(siteMenuManagerList != null && siteMenuManagerList.size() > 0){ + + for(int m=0; m siteMenuManagerMap = siteMenuManagerList.get(m); + + String managerMemberId = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberId")); + String managerMemberName = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberName")); + + siteMenuManagerName += managerMemberName + "("+managerMemberId+"), "; + } + } + + if(siteMenuType.equals("F")){ + + String[] siteMenuLinkUrls = siteMenuLinkUrl.split("/"); + + if(siteMenuLinkUrl.indexOf("mypage") < 0 && siteMenuLinkUrl.indexOf("bbs") > -1){ + + List> managerList = managerBbsManagerService.getBbsManagerList(siteIdx, Integer.parseInt(siteMenuLinkUrls[4]), new String[]{"tMember.memberId", "tMember.memberName"}); + + if(managerList != null && managerList.size() > 0){ + + for(int m=0; m siteMenuManagerMap = managerList.get(m); + + String managerMemberId = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberId")); + String managerMemberName = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberName")); + + siteMenuManagerName += managerMemberName + "("+managerMemberId+"), "; + } + } + + if(!siteMenuManagerName.equals("")){ + siteMenuManagerName = siteMenuManagerName.substring(0, siteMenuManagerName.length()-2); + } + + }else if(siteMenuLinkUrl.indexOf("mypage") < 0 && siteMenuLinkUrl.indexOf("formbuilder") > -1){ + + List> managerList = managerFormbuilderManagerService.getFormbuilderManagerList(siteIdx, Integer.parseInt(siteMenuLinkUrls[4]), new String[]{"tMember.memberId", "tMember.memberName"}); + + if(managerList != null && managerList.size() > 0){ + + for(int m=0; m siteMenuManagerMap = managerList.get(m); + + String managerMemberId = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberId")); + String managerMemberName = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberName")); + + siteMenuManagerName += managerMemberName + "("+managerMemberId+"), "; + } + } + + if(!siteMenuManagerName.equals("")){ + siteMenuManagerName = siteMenuManagerName.substring(0, siteMenuManagerName.length()-2); + } + + }else if(siteMenuLinkUrl.indexOf("mypage") < 0 && siteMenuLinkUrl.indexOf("survey") > -1){ + + List> managerList = managerSurveyManagerService.getSurveyManagerList(siteIdx, Integer.parseInt(siteMenuLinkUrls[4]), new String[]{"tMember.memberId", "tMember.memberName"}); + + if(managerList != null && managerList.size() > 0){ + + for(int m=0; m siteMenuManagerMap = managerList.get(m); + + String managerMemberId = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberId")); + String managerMemberName = SeedUtils.setReplaceNull(siteMenuManagerMap.get("_memberName")); + + siteMenuManagerName += managerMemberName + "("+managerMemberId+"), "; + } + } + + if(!siteMenuManagerName.equals("")){ + siteMenuManagerName = siteMenuManagerName.substring(0, siteMenuManagerName.length()-2); + } + } + + siteMenuMap.put("_memberName", siteMenuManagerName); + + }else{ + + if(!siteMenuManagerName.equals("")){ + siteMenuManagerName = siteMenuManagerName.substring(0, siteMenuManagerName.length()-2); + } + + siteMenuMap.put("_memberName", siteMenuManagerName); + } + } + } + + map.put("siteMenuList", siteMenuList); + } + + map.put("column", column); + map.put("search", search); + map.put("listType", listType); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/site/siteMenuList"); + } + } + + @RequestMapping(value = "/gtm/{siteIdx}/siteMenuForm/{siteMenuParentIdx}.do") + public ModelAndView getSiteMenuForm(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuParentIdx") String siteMenuParentIdx, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType){ + + 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"); + } + + map.put("siteMenuParentName", managerSiteMenuService.getSiteMenuParentName(siteIdx, siteMenuParentIdx, "form")); + + map.put("listType", listType); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/site/siteMenuForm"); + } + + @RequestMapping(value = {"/gtm/{siteIdx}/siteMenuEdit/{siteMenuIdx}.do", "/gte/{siteIdx}/siteMenuEdit/{siteMenuIdx}.do"}, method=RequestMethod.GET) + public ModelAndView getSiteMenuEdit(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType){ + + 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); + boolean memberAuthM = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); + + if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth && !memberAuthM)){ + setSessionRemove(session); + + //기능 관리자 URL로 넘어온 경우 + if(httpServletRequest.getRequestURI().indexOf("/gte/"+siteIdx+"/siteMenuEdit/"+siteMenuIdx+".do") > -1){ + map.put("url", "/gte/login.do"); + }else{ + map.put("url", "/gtm/login.do"); + } + + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + map.put("column", column); + map.put("search", search); + + String[] qryColumns = {"tMenu.menuName", "tMenu.menuCode", "tMenu.menuType"}; + + map.put("menuAuthList", commonMenuAuthService.getMenuAuthList(siteIdx, qryColumns)); + + String[] qryColumng = {"siteMenuAuthIdx", "tGroup.groupName", "siteMenuAuth"}; + + map.put("siteMenuAuthList", managerSiteMenuAuthService.getSiteMenuAuthList(siteMenuIdx, qryColumng)); + + T_SITE_MENU tSiteMenu = managerSiteMenuService.getSiteMenuForm(siteMenuIdx); + + String[] qryColumnss = {"siteSatisfactionStatus", "siteSatisfactionContents", "siteSatisfactionMemberIp", "siteSatisfactionRegDate"}; + + map.put("siteSatisfactionList", commonSatisfactionService.getCommonSatisfactionList(siteMenuIdx, qryColumnss)); + + map.put("siteMenuParentName", managerSiteMenuService.getSiteMenuParentName(siteIdx, tSiteMenu.getSiteMenuIdxs(), "edit")); + map.put("tSiteMenuDB", tSiteMenu); + + map.put("memberAuth", memberAuth); + map.put("memberAuthM", memberAuthM); + + //기능 관리자 URL로 넘어온 경우 + if(httpServletRequest.getRequestURI().indexOf("/gte/"+siteIdx+"/siteMenuEdit/"+siteMenuIdx+".do") > -1){ + map.put("listType", "menu"); + return new ModelAndView("/manager/site/siteEMenuEdit"); + }else{ + map.put("listType", listType); + return new ModelAndView("/manager/site/siteMenuEdit"); + } + } + + @RequestMapping(value = {"/gtm/{siteIdx}/siteMenuHistory/{siteMenuIdx}.do", "/gte/{siteIdx}/siteMenuHistory/{siteMenuIdx}.do"}) + public synchronized ModelAndView getSiteMenuHistory(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx, + @RequestParam(value="siteMenuHistoryIdx", defaultValue="0", required=false) Integer siteMenuHistoryIdx){ + + 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 && + !managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx))){ + setSessionRemove(session); + map.put("url", "/gtm/login.do"); + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, new String[] {"siteMenuIdxs"}); + + List siteMenuHistoryList = managerSiteMenuHistoryService.getSiteMenuHistoryDList(siteIdx, "content", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs"))); + + map.put("siteMenuHistoryList", siteMenuHistoryList); + + map.put("siteMenuHistoryIdx", siteMenuHistoryIdx); + + if(!siteMenuHistoryIdx.equals(0)){ + + for(int i=0; i 0){ + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0); + + StringBuffer fileHtml = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx + "/jsp/content_bak/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile(); + filePath = SeedUtils.setFilePathReplaceAll(filePath); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileHtml.append(fileBuffer); + fileHtml.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + map.put("bakHtml", fileHtml.toString()); + } + + return new ModelAndView("/manager/site/siteMenuHistory"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/siteMenuRegProc.do", method=RequestMethod.POST) + public ModelAndView setSiteMenuRegProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, MultipartFile upIconFile, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("T_SITE_MENU") T_SITE_MENU tSiteMenu, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType, + BindingResult bindingResult){ + + 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"); + } + + try{ + + if(upIconFile != null && upIconFile.getBytes().length > 0){ + + if (!Pattern.matches("(?i)^[\\d\\D]*\\.(jpg|gif|png|bmp)$", upIconFile.getOriginalFilename().toLowerCase())) { + map.put("url", "/gtm/"+siteIdx+"/siteMenuForm/"+tSiteMenu.getSiteMenuParentIdx()+".do?listType="+listType); + map.put("message", "common.fileupload.message.image.upload"); + return new ModelAndView("/_common/jsp/message"); + } + } + }catch(IOException e){ + log.error("CHECK ERROR:",e); + } + + Integer siteMenuIdx = managerSiteMenuService.setSiteMenuRegProc(tSiteMenu, upIconFile, memberIdx, memberGrant, memberMerge, memberMergeSiteIdx, rootPath); + + if(siteMenuIdx > 0){ + map.put("url", "/gtm/"+siteIdx+"/siteMenuList.do?listType="+listType+"#"+siteMenuIdx); + map.put("message", "common.message.reg"); + }else{ + map.put("url", "/gtm/"+siteIdx+"/siteMenuForm/"+tSiteMenu.getSiteMenuParentIdx()+".do?listType="+listType+"#"+siteMenuIdx); + map.put("message", "common.message.error.reg"); + } + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = {"/gtm/proc/{siteIdx}/siteMenuModProc.do", "/gte/proc/{siteIdx}/siteMenuModProc.do"}, method=RequestMethod.POST) + public ModelAndView setSiteMenuModProc(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse, HttpSession session, Map map, MultipartFile upIconFile, + @PathVariable(value="siteIdx") String siteIdx, + @ModelAttribute("T_SITE_MENU") T_SITE_MENU tSiteMenu, + @RequestParam(value="siteMenuAuthIdxs", defaultValue="", required=true) Integer[] siteMenuAuthIdxs, + @RequestParam(value="siteMenuAuths", defaultValue="", required=true) Integer[] siteMenuAuths, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="funcData", defaultValue="", required=false) String funcData, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType, + BindingResult bindingResult){ + + 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); + boolean memberAuthM = managerSiteMenuManagerService.getSiteMenuManagerListCnt(tSiteMenu.getSiteMenuIdx(), memberIdx); + + if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth && !memberAuthM)){ + setSessionRemove(session); + + //기능 관리자 URL로 넘어온 경우 + if(httpServletRequest.getRequestURI().indexOf("/gte/proc/"+siteIdx+"/siteMenuModProc.do") > -1){ + map.put("url", "/gte/login.do"); + }else{ + map.put("url", "/gtm/login.do"); + } + + map.put("message", "common.message.no.grant"); + return new ModelAndView("/_common/jsp/message"); + } + + try{ + + if(upIconFile != null && upIconFile.getBytes().length > 0){ + + if (!Pattern.matches("(?i)^[\\d\\D]*\\.(jpg|gif|png|bmp)$", upIconFile.getOriginalFilename().toLowerCase())) { + map.put("url", "/gtm/"+siteIdx+"/siteMenuEdit/"+tSiteMenu.getSiteMenuIdx()+".do?"+ + "listType="+listType+"&"+ + "column="+column+"&"+ + "search="+search); + map.put("message", "common.fileupload.message.image.upload"); + return new ModelAndView("/_common/jsp/message"); + } + } + }catch(IOException e){ + log.error("CHECK ERROR:",e); + } + + String[] success = managerSiteMenuService.setSiteMenuModProc(tSiteMenu, upIconFile, siteMenuAuthIdxs, siteMenuAuths, memberIdx, rootPath).split(","); + + if(success[0].equals("Y")){ + + if(success[1].equals("Y")){ + + //T_BBS_SET에서 해당 siteMenuIdx가 있는지 확인 후 있으면 삭제 + T_BBS_SET tBbsSetDBTmp = managerBbsSetService.getBbsSetForm(siteIdx, tSiteMenu.getSiteMenuIdx().toString()+"|"); + + if(tBbsSetDBTmp != null){ + tBbsSetDBTmp.setSiteMenuIdxs(tBbsSetDBTmp.getSiteMenuIdxs().replaceAll(tSiteMenu.getSiteMenuIdx().toString()+"\\|", "")); + managerBbsSetService.setBbsSetModProc(tBbsSetDBTmp); + + setBbsDataMiniList(siteIdx, tBbsSetDBTmp.getBbsSetIdx()); + } + + //T_FORMBUILDER_SET에서 해당 siteMenuIdx가 있는지 확인 후 있으면 삭제 + T_FORMBUILDER_SET tFormbuilderSetDBTmp = managerFormbuilderSetService.getFormbuilderSetForm(siteIdx, tSiteMenu.getSiteMenuIdx().toString()+"|"); + + if(tFormbuilderSetDBTmp != null){ + tFormbuilderSetDBTmp.setSiteMenuIdxs(tFormbuilderSetDBTmp.getSiteMenuIdxs().replaceAll(tSiteMenu.getSiteMenuIdx().toString()+"\\|", "")); + managerFormbuilderSetService.setFormbuilderSetModProc(tFormbuilderSetDBTmp); + + setFormbuilderSetMiniList(siteIdx, tFormbuilderSetDBTmp.getFormbuilderSetIdx()); + } + + //T_SURVEY_SET에서 해당 siteMenuIdx가 있는지 확인 후 있으면 삭제 + T_SURVEY_SET tSurveySetDBTmp = managerSurveySetService.getSurveySetForm(siteIdx, tSiteMenu.getSiteMenuIdx().toString()+"|"); + + if(tSurveySetDBTmp != null){ + tSurveySetDBTmp.setSiteMenuIdxs(tSurveySetDBTmp.getSiteMenuIdxs().replaceAll(tSiteMenu.getSiteMenuIdx().toString()+"\\|", "")); + managerSurveySetService.setSurveySetModProc(tSurveySetDBTmp); + + setSurveySetMiniList(siteIdx, tSurveySetDBTmp.getSurveySetIdx()); + } + } + + String[] funcDatas = funcData.split(":"); + + if(funcDatas.length == 2){ + if(funcDatas[0].equals("bbs")){ + if(!funcDatas[1].equals("0")){ + T_BBS_SET tBbsSetDB = managerBbsSetService.getBbsSetForm(Integer.parseInt(funcDatas[1])); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tBbsSetDB.settMember(tMember); + + if(SeedUtils.setReplaceNull(tBbsSetDB.getSiteMenuIdxs()).indexOf(tSiteMenu.getSiteMenuIdx().toString()) < 0){ + tBbsSetDB.setSiteMenuIdxs(tSiteMenu.getSiteMenuIdx().toString()+"|"+SeedUtils.setReplaceNull(tBbsSetDB.getSiteMenuIdxs())); + managerBbsSetService.setBbsSetModProc(tBbsSetDB); + + setBbsDataMiniList(siteIdx, tBbsSetDB.getBbsSetIdx()); + } + } + }else if(funcDatas[0].equals("formbuilder")){ + if(!funcDatas[1].equals("0")){ + T_FORMBUILDER_SET tFormbuilderSetDB = managerFormbuilderSetService.getFormbuilderSetForm(Integer.parseInt(funcDatas[1])); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tFormbuilderSetDB.settMember(tMember); + + if(SeedUtils.setReplaceNull(tFormbuilderSetDB.getSiteMenuIdxs()).indexOf(tSiteMenu.getSiteMenuIdx().toString()) < 0){ + tFormbuilderSetDB.setSiteMenuIdxs(tSiteMenu.getSiteMenuIdx().toString()+"|"+SeedUtils.setReplaceNull(tFormbuilderSetDB.getSiteMenuIdxs())); + managerFormbuilderSetService.setFormbuilderSetModProc(tFormbuilderSetDB); + + setFormbuilderSetMiniList(siteIdx, tFormbuilderSetDB.getFormbuilderSetIdx()); + } + } + }else if(funcDatas[0].equals("survey")){ + if(!funcDatas[1].equals("0")){ + T_SURVEY_SET tSurveySetDB = managerSurveySetService.getSurveySetForm(Integer.parseInt(funcDatas[1])); + + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSurveySetDB.settMember(tMember); + + if(SeedUtils.setReplaceNull(tSurveySetDB.getSiteMenuIdxs()).indexOf(tSiteMenu.getSiteMenuIdx().toString()) < 0){ + tSurveySetDB.setSiteMenuIdxs(tSiteMenu.getSiteMenuIdx().toString()+"|"+SeedUtils.setReplaceNull(tSurveySetDB.getSiteMenuIdxs())); + managerSurveySetService.setSurveySetModProc(tSurveySetDB); + + setSurveySetMiniList(siteIdx, tSurveySetDB.getSurveySetIdx()); + } + } + } + } + + map.put("message", "common.message.mod"); + + }else{ + map.put("message", "common.message.error.mod"); + } + + //기능 관리자 URL로 넘어온 경우 + if(httpServletRequest.getRequestURI().indexOf("/gte/proc/"+siteIdx+"/siteMenuModProc.do") > -1){ + map.put("url", "/gte/"+siteIdx+"/siteMenuEdit/"+tSiteMenu.getSiteMenuIdx()+".do?"+ + "listType="+listType+"&"+ + "column="+column+"&"+ + "search="+search); + }else{ + map.put("url", "/gtm/"+siteIdx+"/siteMenuEdit/"+tSiteMenu.getSiteMenuIdx()+".do?"+ + "listType="+listType+"&"+ + "column="+column+"&"+ + "search="+search); + } + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/siteMenuDelProc/{siteMenuIdx}.do", method=RequestMethod.GET) + public ModelAndView setSiteMenuDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType){ + + getSeedLicense(httpServletResponse); + + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberId = SeedUtils.setReplaceNull(session.getAttribute("memberId")); + 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"); + } + + if(managerSiteMenuService.setSiteMenuDelProc(siteMenuIdx, memberIdx, memberId, rootPath)){ + + //T_BBS_SET에서 해당 siteMenuIdx가 있는지 확인 후 있으면 삭제 + T_BBS_SET tBbsSetDBTmp = managerBbsSetService.getBbsSetForm(siteIdx, siteMenuIdx.toString()+"|"); + + if(tBbsSetDBTmp != null){ + tBbsSetDBTmp.setSiteMenuIdxs(tBbsSetDBTmp.getSiteMenuIdxs().replaceAll(siteMenuIdx.toString()+"\\|", "")); + managerBbsSetService.setBbsSetModProc(tBbsSetDBTmp); + + setBbsDataMiniList(siteIdx, tBbsSetDBTmp.getBbsSetIdx()); + } + + //T_FORMBUILDER_SET에서 해당 siteMenuIdx가 있는지 확인 후 있으면 삭제 + T_FORMBUILDER_SET tFormbuilderSetDBTmp = managerFormbuilderSetService.getFormbuilderSetForm(siteIdx, siteMenuIdx.toString()+"|"); + + if(tFormbuilderSetDBTmp != null){ + tFormbuilderSetDBTmp.setSiteMenuIdxs(tFormbuilderSetDBTmp.getSiteMenuIdxs().replaceAll(siteMenuIdx.toString()+"\\|", "")); + managerFormbuilderSetService.setFormbuilderSetModProc(tFormbuilderSetDBTmp); + + setFormbuilderSetMiniList(siteIdx, tFormbuilderSetDBTmp.getFormbuilderSetIdx()); + } + + //T_SURVEY_SET에서 해당 siteMenuIdx가 있는지 확인 후 있으면 삭제 + T_SURVEY_SET tSurveySetDBTmp = managerSurveySetService.getSurveySetForm(siteIdx, siteMenuIdx.toString()+"|"); + + if(tSurveySetDBTmp != null){ + tSurveySetDBTmp.setSiteMenuIdxs(tSurveySetDBTmp.getSiteMenuIdxs().replaceAll(siteMenuIdx.toString()+"\\|", "")); + managerSurveySetService.setSurveySetModProc(tSurveySetDBTmp); + + setSurveySetMiniList(siteIdx, tSurveySetDBTmp.getSurveySetIdx()); + } + + map.put("message", "common.message.del"); + }else{ + map.put("message", "common.message.error.del"); + } + + map.put("url", "/gtm/"+siteIdx+"/siteMenuList.do?"+ + "listType="+listType+"&"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/siteMenuStatusProc/{siteMenuIdx}.do", method=RequestMethod.GET) + public ModelAndView setSiteMenuStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx, + @RequestParam(value="status", required=true) String status, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType){ + + 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"); + } + + if(managerSiteMenuService.setSiteMenuStatusProc(siteMenuIdx, status, rootPath, memberIdx)){ + map.put("message", "common.message.status"); + }else{ + map.put("message", "common.message.error.status"); + } + + map.put("url", "/gtm/"+siteIdx+"/siteMenuList.do?"+ + "listType="+listType+"&"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/siteMenuOrderProc/{siteMenuIdx}.do", method=RequestMethod.GET) + public ModelAndView setSiteMenuOrderProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx, + @RequestParam(value="column", defaultValue="", required=false) String column, + @RequestParam(value="search", defaultValue="", required=false) String search, + @RequestParam(value="orderType", required=true) String orderType, + @RequestParam(value="listType", defaultValue="charge", required=false) String listType){ + + 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"); + } + + if(managerSiteMenuService.setSiteMenuOrderProc(siteIdx, siteMenuIdx, orderType, memberIdx, rootPath)){ + map.put("message", "common.message.order"); + }else{ + map.put("message", "common.message.error.order"); + } + + map.put("url", "/gtm/"+siteIdx+"/siteMenuList.do?"+ + "listType="+listType+"&"+ + "column="+column+"&"+ + "search="+search); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/siteLayOutSet.do", method=RequestMethod.GET) + public ModelAndView getSiteLayOutSet(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="siteLayOutType", required=true) String siteLayOutType){ + + 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"); + } + + String[] qryColumns = {"tMenu.menuName", "tMenu.menuCode", "tMenu.menuType"}; + + map.put("menuAuthList", commonMenuAuthService.getMenuAuthList(siteIdx, qryColumns)); + + map.put("siteDB", managerSiteService.getSiteForm(siteIdx)); + map.put("siteLayOutType", siteLayOutType); + + map.put("memberAuth", memberAuth); + + return new ModelAndView("/manager/site/siteLayOutSet"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/siteAttrLayOutHistory/{historyType}/{historyFile}.do") + public synchronized ModelAndView getSiteAttrLayOutHistory(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="historyType") String historyType, + @PathVariable(value="historyFile") String historyFile, + @RequestParam(value="siteMenuHistoryIdx", defaultValue="0", required=false) Integer siteMenuHistoryIdx){ + + 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"); + } + + String tmpHistoryType = historyType; + String tmpHistoryFile = historyFile; + + List siteMenuHistoryList = managerSiteMenuHistoryService.getSiteMenuHistoryDList(siteIdx, tmpHistoryType, tmpHistoryFile); + + map.put("siteMenuHistoryList", siteMenuHistoryList); + + map.put("siteMenuHistoryIdx", siteMenuHistoryIdx); + + if(!siteMenuHistoryIdx.equals(0)){ + + for(int i=0; i 0){ + + T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0); + + StringBuffer fileHtml = new StringBuffer(); + String filePath = rootPath + "/" + siteIdx; + filePath = SeedUtils.setFilePathReplaceAll(filePath); + filePath += "/jsp/" + historyType + "/layOut/" + historyFile + "/" + tSiteMenuHistoryDB.getSiteMenuHistoryFile(); + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + try{ + + File menuFile = new File(filePath); + + if(menuFile.exists()){ + fileInputStream = new FileInputStream(filePath); + inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileHtml.append(fileBuffer); + fileHtml.append("\n"); + } + } + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + + map.put("bakHtml", fileHtml.toString()); + } + + return new ModelAndView("/manager/site/siteAttrLayOutHistory"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/siteLayOutSetHtml.do", method=RequestMethod.GET) + public ModelAndView getSiteLayOutHtml(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="siteLayOutType", required=true) String siteLayOutType, + @RequestParam(value="siteLayOutPosition", required=true) String siteLayOutPosition){ + + 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"); + } + + map.put("siteLayOutType", siteLayOutType); + map.put("siteLayOutPosition", siteLayOutPosition); + map.put("siteLayOutHtml", managerSiteMenuService.getSiteLayOutHtml(siteIdx, siteLayOutType, siteLayOutPosition, rootPath)); + + return new ModelAndView("/manager/site/siteLayOutSetHtml"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/siteLayOutSetHtml.do", method=RequestMethod.POST) + public ModelAndView setSiteLayOutSetHtml(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="siteLayOutHtml", required=true) String siteLayOutHtml, + @RequestParam(value="siteLayOutType", required=true) String siteLayOutType, + @RequestParam(value="siteLayOutPosition", required=true) String siteLayOutPosition){ + + 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"); + } + + if(managerSiteMenuService.setSiteLayOutSetHtmlModProc(siteIdx, siteLayOutType, siteLayOutPosition, siteLayOutHtml, rootPath)){ + map.put("message", "common.message.mod"); + }else{ + map.put("message", "common.message.error.mod"); + } + + map.put("url", "/gtm/"+siteIdx+"/siteLayOutSetHtml.do?"+ + "siteLayOutType="+siteLayOutType+"&"+ + "siteLayOutPosition="+siteLayOutPosition); + + return new ModelAndView("/_common/jsp/message"); + } + + @RequestMapping(value = "/gtm/{siteIdx}/siteMenuExcel.do") + public void getSiteMenuExcel(HttpServletResponse httpServletResponse, HttpSession session, Map map, + HttpServletRequest request,HttpServletResponse response, + @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); + session.setAttribute("url", "/gtm/login.do"); + session.setAttribute("message", "common.message.no.grant"); + try { + httpServletResponse.sendRedirect("/common/message.do"); + } catch (IOException ex) { + log.error("CHECK ERROR:",ex); + } + }else{ + + //Temp파일 Code생성 + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String fileCode = sdfFormat.format(new Date())+String.valueOf(SeedUtils.getRandom(999,1)); + String toDate = sdfFormat.format(new Date()).substring(0, 8); + String fileNameDate = sdfFormat.format(new Date()).substring(0, 14); + + if(managerSiteMenuService.getSiteMenuExcel(siteIdx, rootPath, toDate, fileCode, fileNameDate)){ + + try{ + + File file = new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +fileCode + "/siteMenuExcel_"+fileNameDate+".xls"); + + response.reset(); + + response.setContentType("application/octet-stream; charset=UTF-8"); + + if(this.getBrowser(request).equals("MSIE")){ + response.setHeader("Content-Disposition", "attachment; filename=\""+URLEncoder.encode("사이트메뉴.xls", "UTF-8").replaceAll("\\+", "%20")+"\""); + }else if(this.getBrowser(request).equals("Chrome")){ + response.setHeader("Content-Disposition", "attachment; filename=\""+new String("사이트메뉴.xls".getBytes("UTF-8"), "8859_1").replaceAll("\\+", "%20")+"\""); + }else if(this.getBrowser(request).equals("Firefox")){ + response.setHeader("Content-Disposition", "attachment; filename=\""+new String("사이트메뉴.xls".getBytes("UTF-8"), "8859_1").replaceAll("\\+", "%20")+"\""); + }else if(this.getBrowser(request).equals("Opera")){ + response.setHeader("Content-Disposition", "attachment; filename=\""+new String("사이트메뉴.xls".getBytes("UTF-8"), "8859_1").replaceAll("\\+", "%20")+"\""); + } + + response.setHeader("Content-Transfer-Encoding", "binary"); + + response.setContentLength((int)file.length()); + response.setHeader("Pargma", "no-cache"); + response.setHeader("Expires", "-1"); + + FileCopyUtils.copy(new FileInputStream(file), response.getOutputStream()); + SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +fileCode + "/siteMenuExcel_"+fileNameDate+".xls"); + + }catch(UnsupportedEncodingException e){ + log.error("CHECK ERROR:",e); + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }catch(Exception e){ + log.error("CHECK ERROR:",e); + } + + }else{ + session.setAttribute("message", "common.message.error.down.excel"); + session.setAttribute("url", "/gtm/"+siteIdx+"/siteMenuList.do"); + + try { + httpServletResponse.sendRedirect("/common/message.do"); + } catch (IOException ex) { + log.error("CHECK ERROR:",ex); + } + } + } + } + + @RequestMapping(value = "/gtm/{siteIdx}/siteMenuExcelChk.do", method=RequestMethod.GET) + public ModelAndView getSiteMenuExcelChk(HttpServletResponse httpServletResponse, HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @RequestParam(value="excleChk", defaultValue="N", required=true) String excleChk) { + + 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"); + } + + if(excleChk.equals("Y")){ + map.put("messageHtml", "parent.location.replace('/gtm/"+siteIdx+"/siteMenuList.do')"); + } + + map.put("excleChk", excleChk); + + return new ModelAndView("/manager/site/siteMenuExcelChk"); + } + + @RequestMapping(value = "/gtm/proc/{siteIdx}/siteMenuExcelChkProc.do", method=RequestMethod.POST) + public ModelAndView setSiteMenuExcelChkProc(HttpServletResponse httpServletResponse, HttpSession session, Map map, MultipartFile upFile, + @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"); + } + + if (!Pattern.matches( + "(?i)^[\\d\\D]*\\.(xls)$", upFile.getOriginalFilename().toLowerCase())) { + map.put("url", "/gtm/"+siteIdx+"/siteMenuExcelChk.do?excleChk=N"); + map.put("message", "common.fileupload.message.no.upload"); + return new ModelAndView("/_common/jsp/message"); + } + + if(managerSiteMenuService.setSiteMenuExcelChkProc(siteIdx, rootPath, memberIdx, memberMerge, memberMergeSiteIdx, upFile)){ + map.put("url", "/gtm/"+siteIdx+"/siteMenuExcelChk.do?excleChk=Y"); + map.put("message", "common.message.up.excel"); + }else{ + map.put("url", "/gtm/"+siteIdx+"/siteMenuExcelChk.do?excleChk=N"); + map.put("message", "common.message.error.up.excel"); + } + + return new ModelAndView("/_common/jsp/message"); + } + + private String getBrowser(HttpServletRequest request){ + String header = request.getHeader("User-Agent").toLowerCase(); + + if(header.indexOf("msie") > -1){ + return "MSIE"; + }else if(header.indexOf("trident/") > -1){ + return "MSIE"; + }else if(header.indexOf("chrome") > -1){ + return "Chrome"; + }else if(header.indexOf("opera") > -1){ + return "Opera"; + } + return "Firefox"; + } + + //미니게시판 컴파일 + public void setBbsDataMiniList(String siteIdx, Integer bbsSetIdx){ + + T_BBS_SET tBbsSetDB = managerBbsSetService.getBbsSetForm(bbsSetIdx); + + /* + String bbsManager = ""; + + Iterator iteratorList = tBbsSetDB.gettBbsManagers().iterator(); + + while(iteratorList.hasNext()){ + + T_BBS_MANAGER tBbsManagerDB = iteratorList.next(); + + if(tBbsManagerDB.getBbsManagerStatus().equals("U")){ + bbsManager += "|" + tBbsManagerDB.gettMember().getMemberIdx() + "|,"; + } + } + + if(!bbsManager.equals("")){ + bbsManager = bbsManager.substring(0, bbsManager.length()-1); + } + */ + + boolean bbsDataContent = false; + + ArrayList> bbsDataMiniArrayList = new ArrayList>(); + + ArrayList bbsItemGroupList = new ArrayList(); + + ArrayList bbsItemMiniLengthList = new ArrayList(); + + ArrayList qryArrayList = new ArrayList(); + + String[] qryColumnsi = {"groupBy", "bbsItemGroup", "bbsItemMiniList", "bbsItemStatus", "bbsItemMiniOrder", "bbsItemDataMiniLength"}; + + List> tBbsItemList = managerBbsItemService.getBbsItemMiniList(bbsSetIdx, qryColumnsi); + + qryArrayList.add("bbsDataIdx"); + qryArrayList.add("tMember.memberIdx"); + qryArrayList.add("bbsDataGroup"); + qryArrayList.add("bbsDataPosition"); + qryArrayList.add("bbsDataThumb"); + qryArrayList.add("bbsDataThumbText"); + qryArrayList.add("bbsDataRegDate"); + + for(int i=0; i bbsItemMap = (Map)tBbsItemList.get(i); + + bbsItemGroupList.add("_"+bbsItemMap.get("_bbsItemGroup").toString()); + bbsItemMiniLengthList.add(Integer.parseInt(bbsItemMap.get("_bbsItemDataMiniLength").toString())); + + if(SeedUtils.setReplaceNull(bbsItemMap.get("_bbsItemGroup")).toString().equals("bbsDataFile")){ + qryArrayList.add("bbsFileCount"); + }else if(SeedUtils.setReplaceNull(bbsItemMap.get("_bbsItemGroup")).toString().equals("bbsDataContent")){ + bbsDataContent = true; + }else if(SeedUtils.setReplaceNull(bbsItemMap.get("_bbsItemGroup")).toString().equals("bbsDataEventDate")){ + qryArrayList.add("bbsDataEventSdate"); + qryArrayList.add("bbsDataEventEdate"); + }else if(SeedUtils.setReplaceNull(bbsItemMap.get("_bbsItemGroup")).toString().equals("bbsDataRegDate")){ + continue; + }else{ + qryArrayList.add(bbsItemMap.get("_bbsItemGroup").toString()); + } + + if(SeedUtils.setReplaceNull(bbsItemMap.get("_bbsItemGroup")).toString().equals("bbsDataName")){ + if(SeedUtils.setReplaceNull(tBbsSetDB.getBbsSetDataSaveType()).equals("memberDept")){ + qryArrayList.add("bbsDataDept"); + }else{ + qryArrayList.add("tMember.memberName"); + } + } + } + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyy-MM-dd"); + + String toDate = sdfFormat.format(new Date()); + + String filePath = rootPath + "/" + siteIdx + "/jsp/bbs"; + + String bbsSkin = "/img/user/bbs"; + + if(!tBbsSetDB.getBbsSetSkinCode().equals("basic")){ + bbsSkin = "/site/"+siteIdx+"/jsp/bbs/skin/"+tBbsSetDB.getBbsSetSkinCode()+"/_images"; + } + + SeedUtils.setSeedMkDirs(filePath); + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(filePath + "/bbs_" + bbsSetIdx+".jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/functions' prefix='fn'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/fmt' prefix='fmt'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + jspWriter.write("\" />"); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write("\n"); + /* + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write("\n"); + */ + + if(tBbsSetDB == null || !tBbsSetDB.getBbsSetStatus().equals("U")){ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + + }else{ + + int miniRow = 0; + String siteMenuIdxs[] = SeedUtils.setReplaceNull(tBbsSetDB.getSiteMenuIdxs(), "0").split("\\|"); + + if((tBbsSetDB.getBbsSetType().equals("A") || tBbsSetDB.getBbsSetType().equals("M")) && + (tBbsSetDB.getBbsSetSubType().equals("G"))){ + miniRow = tBbsSetDB.getBbsSetDataMiniRow() * tBbsSetDB.getBbsSetDataMiniCol(); + }else{ + miniRow = tBbsSetDB.getBbsSetDataMiniRow(); + } + + List> bbsDataMiniList = managerBbsDataService.getBbsDataMiniList(bbsSetIdx, 1, miniRow, SeedUtils.setReplaceNull(tBbsSetDB.getBbsSetDateOrder(), "N"), qryArrayList); + + if(bbsDataContent){ + + for(int i=0; i bbsDataMiniMap = bbsDataMiniList.get(i); + + bbsDataMiniMap.put("_bbsDataContent", SeedUtils.setTagRemove(managerBbsDataService.getBbsDataForm(Integer.parseInt(bbsDataMiniMap.get("_bbsDataIdx").toString())).getBbsDataContent())); + bbsDataMiniArrayList.add(bbsDataMiniMap); + } + + if(bbsDataMiniArrayList.size() > 0){ + + for(int i=0; i"); + jspWriter.write("\n"); + + Map bbsDataMiniMap = bbsDataMiniArrayList.get(i); + + jspWriter.write(""); + jspWriter.write("\n"); + + //new_icon.gif 나올지 안나올지 확인 + String bbsDataRegDate = SeedUtils.setReplaceNull(bbsDataMiniMap.get("_bbsDataRegDate").toString()); + + if(!bbsDataRegDate.equals("") && bbsDataRegDate.length() > 10){ + bbsDataRegDate = bbsDataRegDate.substring(0, 10); + } + + if(bbsDataRegDate.equals(toDate)){ + bbsDataRegDate = "<s:message code=' />"; + }else{ + bbsDataRegDate = ""; + } + + for(int j=0; j 10){ + bbsDataRegDateTmp = bbsDataRegDateTmp.substring(0, 10); + } + + bbsDataMiniMapData = bbsDataRegDateTmp; + + }else if(bbsItemGroupList.get(j).toString().equals("_bbsDataThumb")){ + String bbsDataThumb = SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())); + String fileChk = bbsDataThumb.substring(0, bbsDataThumb.indexOf("_") + 1); + + if(fileChk.equals(bbsSetIdx+"_")){ + bbsDataThumb = "/site/"+tBbsSetDB.gettSite().getSiteIdx()+"/upload/bbs/"+bbsSetIdx+"/thumb_"+bbsDataThumb; + } + bbsDataMiniMapData = ""+SeedUtils.setReplaceNull(bbsDataMiniMap.get("_bbsDataThumbText"))+""; + }else if(bbsItemGroupList.get(j).toString().equals("_bbsDataName")){ + if(SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())).equals("")){ + bbsDataMiniMapData = SeedUtils.setReplaceNull(bbsDataMiniMap.get("_memberName")); + }else{ + bbsDataMiniMapData = SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())); + } + }else{ + + bbsDataMiniMapData = SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())); + + if(bbsDataMiniMapData.length() > bbsItemMiniLengthList.get(j) && Integer.parseInt(bbsItemMiniLengthList.get(j).toString()) > 0){ + bbsDataMiniMapData = bbsDataMiniMapData.substring(0, bbsItemMiniLengthList.get(j)) + ".."; + } + + if(!bbsDataRegDate.equals("")){ + bbsDataMiniMapData = bbsDataMiniMapData + bbsDataRegDate; + bbsDataRegDate = ""; + } + } + + jspWriter.write(""+bbsDataMiniMapData+""); + } + + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + } + }else{ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + } + + }else{ + + if(bbsDataMiniList.size() > 0){ + + for(int i=0; i"); + jspWriter.write("\n"); + + Map bbsDataMiniMap = bbsDataMiniList.get(i); + + jspWriter.write(""); + jspWriter.write("\n"); + + //new_icon.gif 나올지 안나올지 확인 + String bbsDataRegDate = SeedUtils.setReplaceNull(bbsDataMiniMap.get("_bbsDataRegDate").toString()); + + if(!bbsDataRegDate.equals("") && bbsDataRegDate.length() > 10){ + bbsDataRegDate = bbsDataRegDate.substring(0, 10); + } + + if(bbsDataRegDate.equals(toDate)){ + bbsDataRegDate = "<s:message code=' />"; + }else{ + bbsDataRegDate = ""; + } + + for(int j=0; j 10){ + bbsDataRegDateTmp = bbsDataRegDateTmp.substring(0, 10); + } + + bbsDataMiniMapData = bbsDataRegDateTmp; + + }else if(bbsItemGroupList.get(j).toString().equals("_bbsDataThumb")){ + String bbsDataThumb = SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())); + String fileChk = bbsDataThumb.substring(0, bbsDataThumb.indexOf("_") + 1); + + if(fileChk.equals(bbsSetIdx+"_")){ + bbsDataThumb = "/site/"+tBbsSetDB.gettSite().getSiteIdx()+"/upload/bbs/"+bbsSetIdx+"/thumb_"+bbsDataThumb; + } + bbsDataMiniMapData = ""+SeedUtils.setReplaceNull(bbsDataMiniMap.get("_bbsDataThumbText"))+""; + }else if(bbsItemGroupList.get(j).toString().equals("_bbsDataName")){ + if(SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())).equals("")){ + bbsDataMiniMapData = SeedUtils.setReplaceNull(bbsDataMiniMap.get("_memberName")); + }else{ + bbsDataMiniMapData = SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())); + } + }else{ + + bbsDataMiniMapData = SeedUtils.setReplaceNull(bbsDataMiniMap.get(bbsItemGroupList.get(j).toString())); + + if(bbsDataMiniMapData.length() > bbsItemMiniLengthList.get(j) && Integer.parseInt(bbsItemMiniLengthList.get(j).toString()) > 0){ + bbsDataMiniMapData = bbsDataMiniMapData.substring(0, bbsItemMiniLengthList.get(j)) + ".."; + } + + if(!bbsDataRegDate.equals("")){ + bbsDataMiniMapData = bbsDataMiniMapData + bbsDataRegDate; + bbsDataRegDate = ""; + } + } + + jspWriter.write(""+bbsDataMiniMapData+""); + } + + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + } + }else{ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + } + } + } + + jspWriter.flush(); + + SeedFtpType seedFtpType = new SeedFtpType(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/bbs"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx + "/jsp/bbs"); + //WAS 파일명 + seedFtpType.setFileName("bbs_" + bbsSetIdx+".jsp"); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + //미니폼빌더 컴파일 + public void setSurveySetMiniList(String siteIdx, Integer surveySetIdx){ + + T_SURVEY_SET tSurveySetDB = managerSurveySetService.getSurveySetForm(surveySetIdx); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyy-MM-dd"); + + String toDate = sdfFormat.format(new Date()); + + String filePath = rootPath + "/" + siteIdx + "/jsp/survey"; + + String surveySetSkin = "/img/user/survey"; + + if(!tSurveySetDB.getSurveySetSkinCode().equals("basic")){ + surveySetSkin = "/site/"+siteIdx+"/jsp/survey/skin/"+tSurveySetDB.getSurveySetSkinCode()+"/_images"; + } + + SeedUtils.setSeedMkDirs(filePath); + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(filePath + "/survey_" + surveySetIdx+".jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/functions' prefix='fn'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/fmt' prefix='fmt'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + if(tSurveySetDB == null || !tSurveySetDB.getSurveySetStatus().equals("U")){ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + + }else{ + + int miniRow = 0; + String siteMenuIdxs[] = SeedUtils.setReplaceNull(tSurveySetDB.getSiteMenuIdxs(), "0").split("\\|"); + + miniRow = tSurveySetDB.getSurveySetMiniRow(); + + List> surveySetMiniList = managerSurveySetService.getSurveySetMiniList(surveySetIdx, 1,miniRow, new String[] {"surveySetIdx", "surveySetName", "surveySetRegDate"}); + + if(surveySetMiniList.size() > 0){ + + for(int i=0; i"); + jspWriter.write("\n"); + + Map surveySetMiniMap = surveySetMiniList.get(i); + + //new_icon.gif 나올지 안나올지 확인 + String surveySetRegDate = SeedUtils.setReplaceNull(surveySetMiniMap.get("_surveySetRegDate").toString().substring(0, 10)); + + if(surveySetRegDate.equals(toDate)){ + surveySetRegDate = "<s:message code=' />"; + }else{ + surveySetRegDate = ""; + } + + jspWriter.write("" + + ""+SeedUtils.setReplaceNull(surveySetMiniMap.get("_surveySetName")).toString()+"" + + ""+SeedUtils.setReplaceNull(surveySetMiniMap.get("_surveyRegDate")).toString()+"" + + ""); + + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + } + }else{ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + } + } + + jspWriter.flush(); + + SeedFtpType seedFtpType = new SeedFtpType(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/survey"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx + "/jsp/survey"); + //WAS 파일명 + seedFtpType.setFileName("survey" + surveySetIdx+".jsp"); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + //미니폼빌더 컴파일 + public void setFormbuilderSetMiniList(String siteIdx, Integer formbuilderSetIdx){ + + T_FORMBUILDER_SET tFormbuilderSetDB = managerFormbuilderSetService.getFormbuilderSetForm(formbuilderSetIdx); + + SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyy-MM-dd"); + + String toDate = sdfFormat.format(new Date()); + + String filePath = rootPath + "/" + siteIdx + "/jsp/formbuilder"; + + String formbuilderSetSkin = "/img/user/formbuilder"; + + if(!tFormbuilderSetDB.getFormbuilderSetSkinCode().equals("basic")){ + formbuilderSetSkin = "/site/"+siteIdx+"/jsp/formbuilder/skin/"+tFormbuilderSetDB.getFormbuilderSetSkinCode()+"/_images"; + } + + SeedUtils.setSeedMkDirs(filePath); + + FileOutputStream jspFileOutputStream = null; + OutputStreamWriter jspOutputStreamWriter = null; + BufferedWriter jspWriter = null; + + try{ + + jspFileOutputStream = new FileOutputStream(filePath + "/formbuilder_" + formbuilderSetIdx+".jsp"); + jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8"); + jspWriter = new BufferedWriter(jspOutputStreamWriter); + + jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/functions' prefix='fn'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>"); + jspWriter.write("\n"); + jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/fmt' prefix='fmt'%>"); + jspWriter.write("\n"); + jspWriter.write("\n"); + + if(tFormbuilderSetDB == null || !tFormbuilderSetDB.getFormbuilderSetStatus().equals("U")){ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + + }else{ + + int miniRow = 0; + String siteMenuIdxs[] = SeedUtils.setReplaceNull(tFormbuilderSetDB.getSiteMenuIdxs(), "0").split("\\|"); + + miniRow = tFormbuilderSetDB.getFormbuilderSetMiniRow(); + + List> formbuilderSetMiniList = managerFormbuilderSetService.getFormbuilderSetMiniList(formbuilderSetIdx, 1,miniRow, new String[] {"formbuilderSetIdx", "formbuilderSetName", "formbuilderSetRegDate"}); + + if(formbuilderSetMiniList.size() > 0){ + + for(int i=0; i"); + jspWriter.write("\n"); + + Map formbuilderSetMiniMap = formbuilderSetMiniList.get(i); + + //new_icon.gif 나올지 안나올지 확인 + String formbuilderSetRegDate = SeedUtils.setReplaceNull(formbuilderSetMiniMap.get("_formbuilderSetRegDate").toString().substring(0, 10)); + + if(formbuilderSetRegDate.equals(toDate)){ + formbuilderSetRegDate = "<s:message code=' />"; + }else{ + formbuilderSetRegDate = ""; + } + + jspWriter.write("" + + ""+SeedUtils.setReplaceNull(formbuilderSetMiniMap.get("_formbuilderSetName")).toString()+"" + + ""+SeedUtils.setReplaceNull(formbuilderSetMiniMap.get("_formbuilderRegDate")).toString()+"" + + ""); + + jspWriter.write("\n"); + jspWriter.write(""); + jspWriter.write("\n"); + } + }else{ + + jspWriter.write("
    • "); + jspWriter.write("\n"); + + jspWriter.write(""); + + jspWriter.write("\n"); + jspWriter.write("
    • "); + } + } + + jspWriter.flush(); + + SeedFtpType seedFtpType = new SeedFtpType(); + + //WEB 서버의 경로 + seedFtpType.setDestFilePath(siteIdx + "/jsp/formbuilder"); + //WAS 서버의 경로 + seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx + "/jsp/formbuilder"); + //WAS 파일명 + seedFtpType.setFileName("formbuilder" + formbuilderSetIdx+".jsp"); + //파일 전송 타입 regFile=파일전송, delFile=파일삭제 + seedFtpType.setFtpType("regFile"); + seedFtpType.setSeedFtp(); + + }catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + }catch(IOException e){ + log.error("CHECK ERROR:",e); + }finally{ + if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } +} \ No newline at end of file diff --git a/src/main/java/seed/manager/survey/service/ManagerSurveyManagerService.java b/src/main/java/seed/manager/survey/service/ManagerSurveyManagerService.java new file mode 100644 index 00000000..26a4b42e --- /dev/null +++ b/src/main/java/seed/manager/survey/service/ManagerSurveyManagerService.java @@ -0,0 +1,42 @@ +package seed.manager.survey.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_SURVEY_MANAGER; + +public interface ManagerSurveyManagerService { + + //ManagerSurveyController + public boolean getSurveyManagerListGrantCnt(Integer surveySetIdx, Integer memberIdx); + + //ManagerSurveyController + public boolean getSurveyManagerListCnt(Integer surveySetIdx, Integer memberIdx); + + //CommonController + public Long getSurveyManagerListCnt(Integer surveySetIdx, Integer selGroup, String column, String search); + + //CommonController + public Long getSurveyManagerListCnt(String siteIdx, Integer memberIdx, String column, String search); + + //CommonController + public List getSurveyManagerList(Integer surveySetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns); + + //CommonController + public List getSurveyManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //AdminSiteController, ManagerSiteController + public List> getSurveyManagerList(String siteIdx, Integer surveySetIdx, String[] qryColumns); + + //ManagerSurveyController + public boolean setSurveyManagerRegProc(Integer surveySetIdx, Integer[] idxsc); + + //CommonController + public boolean setSurveyManagerDelProc(Integer surveyManagerIdx); + + //CommonController + public boolean setSurveyManagerStatusProc(Integer surveyManagerIdx, String status); + + //CommonController + public boolean setSurveyManagerGrantProc(Integer surveyManagerIdx, String grant); +} diff --git a/src/main/java/seed/manager/survey/service/ManagerSurveyManagerServiceImpl.java b/src/main/java/seed/manager/survey/service/ManagerSurveyManagerServiceImpl.java new file mode 100644 index 00000000..39bbb998 --- /dev/null +++ b/src/main/java/seed/manager/survey/service/ManagerSurveyManagerServiceImpl.java @@ -0,0 +1,196 @@ +package seed.manager.survey.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.MemberDAO; +import seed.dao.SiteManagerDAO; +import seed.dao.SurveyManagerDAO; +import seed.map.T_MEMBER; +import seed.map.T_SURVEY_MANAGER; +import seed.map.T_SURVEY_SET; + +@Service +public class ManagerSurveyManagerServiceImpl extends AbstractServiceImpl implements ManagerSurveyManagerService{ + + @Autowired + private SurveyManagerDAO surveyManagerDAO; + + @Autowired + private SiteManagerDAO siteManagerDAO; + + @Autowired + private MemberDAO memberDAO; + + //ManagerSurveyController + public boolean getSurveyManagerListGrantCnt(Integer surveySetIdx, Integer memberIdx){ + + boolean success = false; + + if(surveyManagerDAO.getSurveyManagerListGrantCnt(surveySetIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //ManagerSurveyController + public boolean getSurveyManagerListCnt(Integer surveySetIdx, Integer memberIdx){ + + boolean success = false; + + if(surveyManagerDAO.getSurveyManagerListCnt(surveySetIdx, memberIdx) > 0){ + success = true; + } + + return success; + } + + //CommonController + public Long getSurveyManagerListCnt(Integer surveySetIdx, Integer selGroup, String column, String search){ + + return surveyManagerDAO.getSurveyManagerListCnt(surveySetIdx, selGroup, column, search); + } + + //CommonController + public Long getSurveyManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){ + + return surveyManagerDAO.getSurveyManagerListCnt(siteIdx, memberIdx, column, search); + } + + //CommonController + public List getSurveyManagerList(Integer surveySetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){ + + return surveyManagerDAO.getSurveyManagerList(surveySetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns); + } + + //CommonController + public List getSurveyManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return surveyManagerDAO.getSurveyManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //AdminSiteController, ManagerSiteController + public List> getSurveyManagerList(String siteIdx, Integer surveySetIdx, String[] qryColumns){ + + return surveyManagerDAO.getSurveyManagerList(siteIdx, surveySetIdx, qryColumns); + } + + //CommonController + @Transactional + public boolean setSurveyManagerRegProc(Integer surveySetIdx, Integer[] idxsc){ + + boolean success = false; + + if(idxsc.length > 0){ + + for(int i=0; i 0){ + success = true; + }else{ + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(idxsc[i]); + + T_SURVEY_SET tSurveySet = new T_SURVEY_SET(); + tSurveySet.setSurveySetIdx(surveySetIdx); + + T_SURVEY_MANAGER tSurveyManager = new T_SURVEY_MANAGER(); + + tSurveyManager.settMember(tMember); + tSurveyManager.settSurveySet(tSurveySet); + tSurveyManager.setSurveyManagerStatus("U"); + tSurveyManager.setSurveyManagerGrant("S"); + tSurveyManager.setSurveyManagerRegDate(new Date()); + + if(surveyManagerDAO.setSurveyManagerRegProc(tSurveyManager)){ + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(tMemberDB.getMemberGrant().equals("SM")){ + tMemberDB.setMemberGrant("SM"); + }else{ + tMemberDB.setMemberGrant("M"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + break; + } + } + }else{ + success = false; + } + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setSurveyManagerDelProc(Integer surveyManagerIdx){ + + boolean success = false; + + T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerDAO.getSurveyManagerForm(surveyManagerIdx); + + if(surveyManagerDAO.setSurveyManagerDelProc(tSurveyManagerDB)){ + + success = true; + + T_MEMBER tMemberDB = memberDAO.getMemberForm(tSurveyManagerDB.gettMember().getMemberIdx()); + + if(!tMemberDB.getMemberGrant().equals("S")){ + + if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){ + tMemberDB.setMemberGrant("SM"); + }else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){ + tMemberDB.setMemberGrant("M"); + }else{ + tMemberDB.setMemberGrant("N"); + } + + if(!memberDAO.setMemberModProc(tMemberDB)){ + success = false; + } + } + } + + return success; + } + + //CommonController + @Transactional + public boolean setSurveyManagerStatusProc(Integer surveyManagerIdx, String status){ + + T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerDAO.getSurveyManagerForm(surveyManagerIdx); + + tSurveyManagerDB.setSurveyManagerStatus(status); + + return surveyManagerDAO.setSurveyManagerModProc(tSurveyManagerDB); + } + + //CommonController + @Transactional + public boolean setSurveyManagerGrantProc(Integer surveyManagerIdx, String grant){ + + T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerDAO.getSurveyManagerForm(surveyManagerIdx); + + tSurveyManagerDB.setSurveyManagerGrant(grant); + + return surveyManagerDAO.setSurveyManagerModProc(tSurveyManagerDB); + } +} diff --git a/src/main/java/seed/manager/survey/service/ManagerSurveySetService.java b/src/main/java/seed/manager/survey/service/ManagerSurveySetService.java new file mode 100644 index 00000000..ee3493bf --- /dev/null +++ b/src/main/java/seed/manager/survey/service/ManagerSurveySetService.java @@ -0,0 +1,50 @@ +package seed.manager.survey.service; + +import java.util.List; +import java.util.Map; + +import seed.map.T_SURVEY_SET; +import seed.map.T_SURVEY_SKIN; +import seed.map.VIEW_SURVEY_SET; + +public interface ManagerSurveySetService { + + //AdminSiteController, ManagerSiteController + public T_SURVEY_SET getSurveySetForm(String siteIdx, String siteMenuIdx); + + //ManagerSurveyController, CommonController + public T_SURVEY_SET getSurveySetForm(Integer surveySetIdx); + + //ManagerSurveyController + public List> getSurveySetMiniList(Integer surveySetIdx, int page, int row, String[] qryColumns); + + //ManagerSurveyController + public Long getSurveySetListCnt(String siteIdx, String column, String search); + + //ManagerSurveyController + public List getSurveySetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns); + + //ManagerSurveyController + public Integer setSurveySetRegProc(T_SURVEY_SET tSurveySet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx); + + //AdminSiteController, ManagerSiteController + public boolean setSurveySetModProc(T_SURVEY_SET tSurveySet); + + //ManagerSurveyController + public boolean setSurveySetModProc(T_SURVEY_SET tSurveySet, Integer memberIdx); + + //ManagerSurveyController + public boolean setSurveySetDelProc(Integer surveySetIdx, String rootPath); + + //ManagerSurveyController + public boolean setSurveySetStatusProc(Integer surveySetIdx, String status, Integer memberIdx); + + //ManagerSurveyController + public Long getSurveySetSkinListCnt(String siteIdx); + + //ManagerSurveyController + public List getSurveySetSkinList(String siteIdx, int page, int row, String[] qryColumns); + + //ManagerSurveyController + public boolean setSurveySetSkinProc(Integer surveySetIdx, String surveySkinCode, Integer memberIdx); +} diff --git a/src/main/java/seed/manager/survey/service/ManagerSurveySetServiceImpl.java b/src/main/java/seed/manager/survey/service/ManagerSurveySetServiceImpl.java new file mode 100644 index 00000000..e6035dbb --- /dev/null +++ b/src/main/java/seed/manager/survey/service/ManagerSurveySetServiceImpl.java @@ -0,0 +1,212 @@ +package seed.manager.survey.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +import seed.dao.SurveyAuthDAO; +import seed.dao.SurveySetDAO; +import seed.dao.GroupDAO; +import seed.dao.SurveySkinDAO; +import seed.map.T_GROUP; +import seed.map.T_MEMBER; +import seed.map.T_SURVEY_AUTH; +import seed.map.T_SURVEY_SET; +import seed.map.T_SURVEY_SKIN; +import seed.map.VIEW_SURVEY_SET; +import seed.utils.SeedUtils; + +@Service +public class ManagerSurveySetServiceImpl extends AbstractServiceImpl implements ManagerSurveySetService{ + + @Autowired + private SurveySetDAO surveySetDAO; + + @Autowired + private GroupDAO groupDAO; + + @Autowired + private SurveyAuthDAO surveyAuthDAO; + + @Autowired + private SurveySkinDAO surveySkinDAO; + + //AdminSiteController, ManagerSiteController + public T_SURVEY_SET getSurveySetForm(String siteIdx, String siteMenuIdx){ + + return surveySetDAO.getSurveySetForm(siteIdx, siteMenuIdx); + } + + //ManagerSurveyController + public T_SURVEY_SET getSurveySetForm(Integer surveySetIdx){ + + return surveySetDAO.getSurveySetForm(surveySetIdx); + } + + public List> getSurveySetMiniList(Integer surveySetIdx, int page, int row, String[] qryColumns){ + + return surveySetDAO.getSurveySetMiniList(surveySetIdx, ((page-1) * row), row, qryColumns); + } + + //ManagerSurveyController + public Long getSurveySetListCnt(String siteIdx, String column, String search){ + + return surveySetDAO.getSurveySetListCnt(siteIdx, column, search); + } + + //ManagerSurveyController + public List getSurveySetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){ + + return surveySetDAO.getSurveySetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns); + } + + //ManagerSurveyController + @Transactional + public Integer setSurveySetRegProc(T_SURVEY_SET tSurveySet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx){ + + Integer surveySetIdx = 0; + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSurveySet.settMember(tMember); + tSurveySet.setSurveySetSkinCode("basic"); + tSurveySet.setSurveySetStatus("U"); + tSurveySet.setSurveySetRegDate(new Date()); + tSurveySet.setSurveySetModDate(new Date()); + + T_SURVEY_SET tSurveySetDB = surveySetDAO.setSurveySetRegProc(tSurveySet); + + if(tSurveySetDB != null){ + + surveySetIdx = tSurveySetDB.getSurveySetIdx(); + + //그룹 테이블의 내용을 T_SURVEY_AUTH에 INSERT + String[] qryColumns = null; + + List tGroupList = null; + + if(memberMerge.equals("true")){ + tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumns); + }else{ + tGroupList = groupDAO.getGroupList(tSurveySet.gettSite().getSiteIdx(), qryColumns); + } + + if(tGroupList != null && tGroupList.size() > 0){ + for(int g=0; g 0){ + SeedUtils.setSeedDeleteFiles(rootPath + "/" + tSurveySetDB.gettSite().getSiteIdx() + "/upload/survey/" + tSurveySetDB.getSurveySetIdx(), ""); + } + + return surveySetDAO.setSurveySetDelProc(tSurveySetDB); + } + + //ManagerSurveyController + @Transactional + public boolean setSurveySetStatusProc(Integer surveySetIdx, String status, Integer memberIdx){ + + T_SURVEY_SET tSurveySetDB = surveySetDAO.getSurveySetForm(surveySetIdx); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSurveySetDB.settMember(tMember); + tSurveySetDB.setSurveySetModDate(new Date()); + tSurveySetDB.setSurveySetStatus(status); + + return surveySetDAO.setSurveySetModProc(tSurveySetDB); + } + + //ManagersurveyController + public Long getSurveySetSkinListCnt(String siteIdx){ + + return surveySkinDAO.getSurveySetSkinListCnt(siteIdx); + } + + //ManagersurveyController + public List getSurveySetSkinList(String siteIdx, int page, int row, String[] qryColumns){ + + return surveySkinDAO.getSurveySetSkinList(siteIdx, ((page-1) * row), row, qryColumns); + } + + //ManagersurveyController + @Transactional + public boolean setSurveySetSkinProc(Integer surveySetIdx, String surveySkinCode, Integer memberIdx){ + + T_SURVEY_SET tSurveySetDB = surveySetDAO.getSurveySetForm(surveySetIdx); + + T_MEMBER tMember = new T_MEMBER(); + tMember.setMemberIdx(memberIdx); + + tSurveySetDB.settMember(tMember); + tSurveySetDB.setSurveySetSkinCode(surveySkinCode); + + return surveySetDAO.setSurveySetModProc(tSurveySetDB); + } +} \ No newline at end of file diff --git a/src/main/java/seed/utils/InterceptorCheck.java b/src/main/java/seed/utils/InterceptorCheck.java new file mode 100644 index 00000000..60cdc22b --- /dev/null +++ b/src/main/java/seed/utils/InterceptorCheck.java @@ -0,0 +1,357 @@ +package seed.utils; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +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.jasypt.encryption.pbe.StandardPBEStringEncryptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import seed.dao.FirewallDAO; + +public class InterceptorCheck extends HandlerInterceptorAdapter{ + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private FirewallDAO firewallDAO; + + @Value("#{config['server.host.name']}") + private String serverHostName; + + @Value("#{config['server.host.ip']}") + private String serverHostIp; + + @Value("#{config['seed.key']}") + private String seedKey; + + @Value("#{config['root.url']}") + private String rootUrl; + + @Value("#{config['seed.key.date']}") + private String seedKeyDate; + + private static String licenseKey = "seed"; + + public static String getLicenseKey() { + return licenseKey; + } + + 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"); + } + + @Override + public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) { + + HttpSession session = httpServletRequest.getSession(); + + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + + /*try{ + + boolean hostNameChk = false; + boolean hostIpChk = false; + + StandardPBEStringEncryptor pbeEnc = new StandardPBEStringEncryptor(); + pbeEnc.setPassword(InterceptorCheck.getLicenseKey()); + + if(!pbeEnc.decrypt(seedKeyDate).equals("*")){ + + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + + Date getDate = new Date(); + Date seedKeyDateChk = sdf.parse(pbeEnc.decrypt(seedKeyDate)); + + if(Integer.parseInt(sdf.format(getDate)) > Integer.parseInt(sdf.format(seedKeyDateChk))){ + session.setAttribute("url", "/common/seed.do"); + session.setAttribute("message", "common.message.no.seed"); + log.error("seedKeyDate Error"); + + httpServletResponse.sendRedirect("/common/message.do"); + + return false; + } + } + + String seedKeys[] = seedKey.split(","); + String rootUrls[] = rootUrl.split(","); + + if(seedKeys.length != rootUrls.length){ + + session.setAttribute("url", "/common/seed.do"); + session.setAttribute("message", "common.message.no.seed"); + log.error("seedKeys.length Error, rootUrls.length Error"); + + httpServletResponse.sendRedirect("/common/message.do"); + + return false; + } + + for(int i=0; i> firewallList = firewallDAO.getFirewallList(); +// +// httpServletRequest.getHeader("WL-Proxy-Client-IP"); +// +// String memberIp = httpServletRequest.getRemoteAddr(); +// +// for(int i=0; i tFirewallDB = firewallList.get(i); +// +// if(memberIp.indexOf(":") > 0){ +// +// if(tFirewallDB.get("_firewallAClass").equals("*") && tFirewallDB.get("_firewallBClass").equals("*") && tFirewallDB.get("_firewallCClass").equals("*") +// && tFirewallDB.get("_firewallDClass").equals("*") && tFirewallDB.get("_firewallEClass").equals("*") && tFirewallDB.get("_firewallFClass").equals("*") +// && tFirewallDB.get("_firewallGClass").equals("*") && tFirewallDB.get("_firewallHClass").equals("*")){ +// firewallChk = true; +// break; +// } +// +// String[] memberIps = memberIp.split(":"); +// +// if((memberIps[0].equals(tFirewallDB.get("_firewallAClass")) || tFirewallDB.get("_firewallAClass").equals("*")) && +// (memberIps[1].equals(tFirewallDB.get("_firewallBClass")) || tFirewallDB.get("_firewallBClass").equals("*")) && +// (memberIps[2].equals(tFirewallDB.get("_firewallCClass")) || tFirewallDB.get("_firewallCClass").equals("*")) && +// (memberIps[3].equals(tFirewallDB.get("_firewallDClass")) || tFirewallDB.get("_firewallDClass").equals("*")) && +// (memberIps[4].equals(tFirewallDB.get("_firewallEClass")) || tFirewallDB.get("_firewallEClass").equals("*")) && +// (memberIps[5].equals(tFirewallDB.get("_firewallFClass")) || tFirewallDB.get("_firewallFClass").equals("*")) && +// (memberIps[6].equals(tFirewallDB.get("_firewallGClass")) || tFirewallDB.get("_firewallGClass").equals("*")) && +// (memberIps[7].equals(tFirewallDB.get("_firewallHClass")) || tFirewallDB.get("_firewallHClass").equals("*"))){ +// +// firewallChk = true; +// } +// +// }else{ +// +// if(tFirewallDB.get("_firewallAClass").equals("*") && tFirewallDB.get("_firewallBClass").equals("*") && tFirewallDB.get("_firewallCClass").equals("*")){ +// firewallChk = true; +// break; +// } +// +// String[] memberIps = memberIp.split("\\."); +// +// if((memberIps[0].equals(tFirewallDB.get("_firewallAClass")) || tFirewallDB.get("_firewallAClass").equals("*")) && +// (memberIps[1].equals(tFirewallDB.get("_firewallBClass")) || tFirewallDB.get("_firewallBClass").equals("*")) && +// (memberIps[2].equals(tFirewallDB.get("_firewallCClass")) || tFirewallDB.get("_firewallCClass").equals("*"))){ +// +// firewallChk = true; +// } +// } +// } +// +//// if(!firewallChk){ +//// +//// setSessionRemove(session); +//// session.setAttribute("url", "/common/firewall.do"); +//// session.setAttribute("message", "(message)현재 접속한 아이피("+memberIp+")는 접근하실수 없습니다."); +//// +//// try { +//// httpServletResponse.sendRedirect("/common/message.do"); +//// } catch (IOException ex) { +//// log.error("CHECK ERROR:",ex); +//// } +//// +//// return false; +//// } +// +// boolean sessionChk = false; +// +// String[] urlChecks = {"/gta/login.do", "/gta/proc/loginProc.do", "/gta/proc/logoutProc.do", +// "/gtu/login.do", "/gtu/proc/loginProc.do", "/gtu/proc/logoutProc.do", +// "/gtm/login.do", "/gtm/proc/loginProc.do", "/gtm/proc/logoutProc.do", +// "/gte/login.do", "/gte/proc/loginProc.do", "/gte/proc/logoutProc.do", +// "Page.do", "PageProc.do"}; +// +// for(int i=0; i -1){ +// sessionChk = true; +// break; +// } +// } +// +// if(!sessionChk){ +// +// Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); +// String memberGrant = (String)SeedUtils.setReplaceNull(session.getAttribute("memberGrant"),"N"); +// +// if(memberIdx == 0 || (!memberGrant.equals("S") && !memberGrant.equals("U") && !memberGrant.equals("SM") && !memberGrant.equals("M"))){ +// +// setSessionRemove(session); +// if(httpServletRequest.getRequestURI().indexOf("/gta/") >= 0){ +// session.setAttribute("url", "/gta/login.do"); +// }else if(httpServletRequest.getRequestURI().indexOf("/gtu/") >= 0){ +// session.setAttribute("url", "/gtu/login.do"); +// }else if(httpServletRequest.getRequestURI().indexOf("/gtm/") >= 0){ +// session.setAttribute("url", "/gtm/login.do"); +// }else if(httpServletRequest.getRequestURI().indexOf("/gte/") >= 0){ +// session.setAttribute("url", "/gte/login.do"); +// } +// +// session.setAttribute("message", "common.message.no.login"); +// +// try { +// httpServletResponse.sendRedirect("/common/message.do"); +// } catch (IOException ex) { +// log.error("CHECK ERROR:",ex); +// } +// +// return false; +// } +// } + + return true; + } + + @Override + public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, ModelAndView modelAndView) { + + //log.error("postHandle : " + request.getRequestURI()); + + /* + log.error("request : " + request); + log.error("response : " + response); + log.error("handler : " + handler); + log.error("modelAndView : " + modelAndView); + */ + + //log.error("check postHandle"); + } + + @Override + public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception ex) { + + //log.error("afterCompletion : " + request.getRequestURI()); + + /* + log.error("request : " + request); + log.error("response : " + response); + log.error("handler : " + handler); + */ + + //log.error("check afterCompletion"); + } +} diff --git a/src/main/java/seed/utils/Paging.java b/src/main/java/seed/utils/Paging.java new file mode 100644 index 00000000..47d1de83 --- /dev/null +++ b/src/main/java/seed/utils/Paging.java @@ -0,0 +1,190 @@ +package seed.utils; + +public class Paging { + + protected Integer page; + protected Integer row; + protected Long count; + protected Integer pages; + protected Integer blocks; + protected Integer block; + protected Integer fPage; + protected Integer lPage; + + protected Integer pagec; + protected Integer rowc; + protected Long countc; + protected Integer pagesc; + protected Integer blocksc; + protected Integer blockc; + protected Integer fPagec; + protected Integer lPagec; + + public Long getCount() { + return count; + } + + public void setCount(Long count) { + + if(page == null || page < 0){ + page = 1; + } + + if(row == null || row < 0){ + row = 10; + } + + this.count = count; + pages = (count == 0) ? 1 : (int) ((count - 1) / row) + 1; + blocks = (int) Math.ceil(1.0 * pages / 10.0); + block = (int) Math.ceil(1.0 * page / 10.0); + fPage = (block - 1) * 10 + 1; + lPage = block * 10; + if (lPage > pages) + lPage = pages; + + if(page > pages){ + page = pages; + } + } + + public Long getCountc() { + return countc; + } + + public void setCountc(Long countc) { + + if(pagec == null || pagec < 0){ + pagec = 1; + } + + if(rowc == null || rowc < 0){ + rowc = 10; + } + + this.countc = countc; + pagesc = (countc == 0) ? 1 : (int) ((countc - 1) / rowc) + 1; + blocksc = (int) Math.ceil(1.0 * pagesc / 10.0); + blockc = (int) Math.ceil(1.0 * pagec / 10.0); + fPagec = (blockc - 1) * 10 + 1; + lPagec = blockc * 10; + if (lPagec > pagesc) + lPagec = pagesc; + + if(pagec > pagesc){ + pagec = pagesc; + } + } + + public Integer getPage() { + return page; + } + + public void setPage(Integer page) { + this.page = page; + } + + public Integer getRow() { + return row; + } + + public void setRow(Integer row) { + this.row = row; + } + + public Integer getPages() { + return pages; + } + + public void setPages(Integer pages) { + this.pages = pages; + } + + public Integer getBlocks() { + return blocks; + } + + public void setBlocks(Integer blocks) { + this.blocks = blocks; + } + + public Integer getBlock() { + return block; + } + + public void setBlock(Integer block) { + this.block = block; + } + + public Integer getfPage() { + return fPage; + } + + public void setfPage(Integer fPage) { + this.fPage = fPage; + } + + public Integer getlPage() { + return lPage; + } + + public void setlPage(Integer lPage) { + this.lPage = lPage; + } + + public Integer getPagec() { + return pagec; + } + + public void setPagec(Integer pagec) { + this.pagec = pagec; + } + + public Integer getRowc() { + return rowc; + } + + public void setRowc(Integer rowc) { + this.rowc = rowc; + } + + public Integer getPagesc() { + return pagesc; + } + + public void setPagesc(Integer pagesc) { + this.pagesc = pagesc; + } + + public Integer getBlocksc() { + return blocksc; + } + + public void setBlocksc(Integer blocksc) { + this.blocksc = blocksc; + } + + public Integer getBlockc() { + return blockc; + } + + public void setBlockc(Integer blockc) { + this.blockc = blockc; + } + + public Integer getfPagec() { + return fPagec; + } + + public void setfPagec(Integer fPagec) { + this.fPagec = fPagec; + } + + public Integer getlPagec() { + return lPagec; + } + + public void setlPagec(Integer lPagec) { + this.lPagec = lPagec; + } +} \ No newline at end of file diff --git a/src/main/java/seed/utils/SeedCvtDOCToHtml.java b/src/main/java/seed/utils/SeedCvtDOCToHtml.java new file mode 100644 index 00000000..de777514 --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtDOCToHtml.java @@ -0,0 +1,162 @@ +package seed.utils; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.StringWriter; +import java.io.UnsupportedEncodingException; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.FactoryConfigurationError; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerFactoryConfigurationError; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.apache.commons.codec.binary.Base64; +import org.apache.log4j.Logger; +import org.apache.poi.hwpf.HWPFDocument; +import org.apache.poi.hwpf.converter.WordToHtmlConverter; +import org.apache.poi.hwpf.usermodel.Picture; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class SeedCvtDOCToHtml { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String args[]){ +// +// String filePath = "F:/javaConvert/test/test.doc"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtDOCToHtml().convert(filePath, output); +// } + + public void convert(String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".doc")) { + + File file = new File(filePath); + + if (file.exists()) { + + POIFSFileSystem fs = null; + + FileOutputStream fileOutputStream = null; + OutputStreamWriter outputStreamWriter = null; + BufferedWriter bufferedWriter = null; + + try { + + fs = new POIFSFileSystem(new FileInputStream(filePath)); + + HWPFDocument hwpfDocument = new HWPFDocument(fs); + + WordToHtmlConverter wordToHtmlConverter = new img( + DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()); + + wordToHtmlConverter.processDocument(hwpfDocument); + + StringWriter stringWriter = new StringWriter(); + + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); + transformer.setOutputProperty(OutputKeys.METHOD, "html"); + + transformer.transform( + new DOMSource(wordToHtmlConverter.getDocument()), + new StreamResult(stringWriter)); + + fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp"); + outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8"); + bufferedWriter = new BufferedWriter(outputStreamWriter); + + bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + bufferedWriter.write("\n"); + bufferedWriter.write(stringWriter.toString()); + bufferedWriter.flush(); + + success = true; + + } catch (TransformerConfigurationException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (TransformerFactoryConfigurationError e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (TransformerException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (ParserConfigurationException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (FactoryConfigurationError e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (UnsupportedEncodingException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IllegalArgumentException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (Exception e) { + log.error("CHECK ERROR:",e); + success = false; + } finally{ + if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + } + } + } + + public class img extends WordToHtmlConverter { + + public img(Document document) { + super(document); + } + + @Override + protected void processImageWithoutPicturesManager(Element currentBlock, + boolean inlined, Picture picture){ + + Element imgNode = currentBlock.getOwnerDocument().createElement("img"); + StringBuilder sb = new StringBuilder(); + sb.append(Base64.encodeBase64String(picture.getRawContent())); + sb.insert(0, "data:"+picture.getMimeType()+";base64,"); + imgNode.setAttribute("src", sb.toString()); + currentBlock.appendChild(imgNode); + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } +} diff --git a/src/main/java/seed/utils/SeedCvtDOCXToHtml.java b/src/main/java/seed/utils/SeedCvtDOCXToHtml.java new file mode 100644 index 00000000..0f3d7b4c --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtDOCXToHtml.java @@ -0,0 +1,137 @@ +package seed.utils; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; + +import org.apache.log4j.Logger; +import org.apache.poi.xwpf.converter.core.FileImageExtractor; +import org.apache.poi.xwpf.converter.core.FileURIResolver; +import org.apache.poi.xwpf.converter.core.XWPFConverterException; +import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter; +import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions; +import org.apache.poi.xwpf.usermodel.XWPFDocument; + +public class SeedCvtDOCXToHtml { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String args[]) { +// +// String rootPath = "F:/javaConvert"; +// String filePath = "test/test.docx"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtDOCXToHtml().convert(rootPath, filePath, output); +// } + + public synchronized void convert(String rootPath, String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".docx")) { + + File file = new File(rootPath + "/" + filePath); + + if (file.exists()) { + + FileInputStream fileInputStream = null; + InputStreamReader inputStreamReader = null; + BufferedReader bufferedReader = null; + + FileOutputStream fileOutputStream = null; + OutputStreamWriter outputStreamWriter = null; + BufferedWriter bufferedWriter = null; + + try{ + + StringBuffer fileHtml = new StringBuffer(); + + InputStream in = new FileInputStream(file); + XWPFDocument document = new XWPFDocument(in); + + XHTMLOptions options = XHTMLOptions.create(); + + File imageFolder = new File(output + getFileName(filePath) + "/img"); + + options.setExtractor( new FileImageExtractor(imageFolder)); + options.URIResolver( new FileURIResolver(imageFolder)); + + fileOutputStream = new FileOutputStream(new File(output + getFileName(filePath) + "_org_.jsp")); + XHTMLConverter.getInstance().convert(document, fileOutputStream, options); + + //이미지 경로때문에 파일 읽어서 다시 쓰기 해야함(서버경로에서 해당 파일 경로로 변경) + File tmpFile = new File(output + getFileName(filePath) + "_org_.jsp"); + + if(tmpFile.exists()){ + + fileInputStream = new FileInputStream(output + getFileName(filePath) + "_org_.jsp"); + inputStreamReader = new InputStreamReader(fileInputStream, "EUC-KR"); + bufferedReader = new BufferedReader(inputStreamReader); + + String fileBuffer = ""; + + while((fileBuffer = bufferedReader.readLine()) != null){ + fileHtml.append(fileBuffer); + fileHtml.append("\n"); + } + + fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp"); + outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8"); + bufferedWriter = new BufferedWriter(outputStreamWriter); + + bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + bufferedWriter.write("\n"); + + bufferedWriter.write(fileHtml.toString().replaceAll("\\\\", "/").replaceAll(output, "/site/"+filePath.substring(0, filePath.lastIndexOf("/"))+"/"+getFileName(filePath)+"/convert/")); + bufferedWriter.flush(); + + success = true; + } + + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (UnsupportedEncodingException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (XWPFConverterException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (Exception e) { + log.error("CHECK ERROR:",e); + success = false; + } finally{ + if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + }else{ + SeedUtils.setSeedDeleteFile(output + getFileName(filePath) + "_org_.jsp"); + } + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } +} diff --git a/src/main/java/seed/utils/SeedCvtPDFToImg.java b/src/main/java/seed/utils/SeedCvtPDFToImg.java new file mode 100644 index 00000000..15d05ef7 --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtPDFToImg.java @@ -0,0 +1,148 @@ +package seed.utils; + +import java.awt.image.BufferedImage; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.util.List; +import javax.imageio.ImageIO; + +import org.apache.log4j.Logger; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; + +public class SeedCvtPDFToImg { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String[] args) { +// +// String rootPath = "F:/javaConvert"; +// String filePath = "test/test.pdf"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtPDFToImg().convert(rootPath, filePath, output); +// } + + @SuppressWarnings("unchecked") + public void convert(String rootPath, String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".pdf")) { + + File file = new File(rootPath + "/" + filePath); + + if (file.exists()) { + + FileOutputStream fileOutputStream = null; + + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + try { + + PDDocument document = PDDocument.load(rootPath + "/" + filePath); + + List list = document.getDocumentCatalog().getAllPages(); + + if(list.size() > 0){ + SeedUtils.setSeedMkDirs(output); + } + + //html파일 작성 + htmlFileOutputStream = new FileOutputStream(output + "/" + getFileName(filePath) + ".jsp"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + htmlWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" 미리보기 페이지"); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + + for(int i=0; i"); + htmlWriter.write("\n"); + } + + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + + htmlWriter.flush(); + + document.close(); + + success = true; + + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + }finally{ + if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + } + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } +} diff --git a/src/main/java/seed/utils/SeedCvtPPTToImg.java b/src/main/java/seed/utils/SeedCvtPPTToImg.java new file mode 100644 index 00000000..f7c5852a --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtPPTToImg.java @@ -0,0 +1,164 @@ +package seed.utils; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.geom.AffineTransform; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; + +import javax.imageio.ImageIO; + +import org.apache.log4j.Logger; +import org.apache.poi.hslf.model.Slide; +import org.apache.poi.hslf.usermodel.SlideShow; + +public class SeedCvtPPTToImg { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String[] args) { +// +// String rootPath = "F:/javaConvert"; +// String filePath = "test/test.ppt"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtPPTToImg().convert(rootPath, filePath, output); +// } + + public void convert(String rootPath, String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".ppt")) { + + File file = new File(rootPath + "/" + filePath); + + if (file.exists()) { + + FileInputStream fileInputStream = null; + FileOutputStream fileOutputStream = null; + + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + try { + + fileInputStream = new FileInputStream(file); + SlideShow ppt = new SlideShow(fileInputStream); + + double zoom = 2; // magnify it by 2 + AffineTransform at = new AffineTransform(); + at.setToScale(zoom, zoom); + + Dimension pgsize = ppt.getPageSize(); + Slide[] slide = ppt.getSlides(); + + if(slide.length > 0){ + SeedUtils.setSeedMkDirs(output); + } + + //html?Œ???‘?? + htmlFileOutputStream = new FileOutputStream(output + "/" + getFileName(filePath) + ".jsp"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + htmlWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" 誘몃━蹂닿린 ?˜?댁?"); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + + for (int i = 0; i < slide.length; i++) { + + BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB); + + Graphics2D graphics = img.createGraphics(); + graphics.setTransform(at); + + graphics.setPaint(Color.white); + graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height)); + slide[i].draw(graphics); + fileOutputStream = new FileOutputStream(output + getFileName(filePath) + "_" + (i + 1) + ".jpg"); + ImageIO.write(img, "jpg", fileOutputStream); + + htmlWriter.write(" " + getFileName(filePath) + "_" + (i + 1) + ""); + htmlWriter.write("\n"); + } + + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + + htmlWriter.flush(); + + success = true; + + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + }finally{ + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + } + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } +} \ No newline at end of file diff --git a/src/main/java/seed/utils/SeedCvtPPTXToImg.java b/src/main/java/seed/utils/SeedCvtPPTXToImg.java new file mode 100644 index 00000000..45dea8c1 --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtPPTXToImg.java @@ -0,0 +1,164 @@ +package seed.utils; + +import java.awt.Dimension; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.AffineTransform; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; + +import javax.imageio.ImageIO; + +import org.apache.log4j.Logger; +import org.apache.poi.xslf.usermodel.XMLSlideShow; +import org.apache.poi.xslf.usermodel.XSLFSlide; + +public class SeedCvtPPTXToImg { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String[] args) { +// +// String rootPath = "F:/javaConvert"; +// String filePath = "test/test.pptx"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtPPTXToImg().convert(rootPath, filePath, output); +// } + + public void convert(String rootPath, String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".pptx")) { + + File file = new File(rootPath + "/" + filePath); + + if (file.exists()) { + + FileInputStream fileInputStream = null; + FileOutputStream fileOutputStream = null; + + FileOutputStream htmlFileOutputStream = null; + OutputStreamWriter htmlOutputStreamWriter = null; + BufferedWriter htmlWriter = null; + + try { + + fileInputStream = new FileInputStream(file); + XMLSlideShow ppt = new XMLSlideShow(fileInputStream); + + double zoom = 2; // magnify it by 2 + AffineTransform at = new AffineTransform(); + at.setToScale(zoom, zoom); + + Dimension pgsize = ppt.getPageSize(); + XSLFSlide[] slide = ppt.getSlides(); + + if(slide.length > 0){ + SeedUtils.setSeedMkDirs(output); + } + + //html?Œ???‘?? + htmlFileOutputStream = new FileOutputStream(output + "/" + getFileName(filePath) + ".jsp"); + htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8"); + htmlWriter = new BufferedWriter(htmlOutputStreamWriter); + + htmlWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" 誘몃━蹂닿린 ?˜?댁?"); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(" "); + htmlWriter.write("\n"); + + for (int i = 0; i < slide.length; i++) { + + BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB); + + Graphics2D graphics = img.createGraphics(); + graphics.setTransform(at); + + graphics.setPaint(Color.white); + graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height)); + slide[i].draw(graphics); + fileOutputStream = new FileOutputStream(output + getFileName(filePath) + "_" + (i + 1) + ".jpg"); + ImageIO.write(img, "jpg", fileOutputStream); + + htmlWriter.write(" " + getFileName(filePath) + "_" + (i + 1) + ""); + htmlWriter.write("\n"); + } + + htmlWriter.write(" "); + htmlWriter.write("\n"); + htmlWriter.write(""); + htmlWriter.write("\n"); + + htmlWriter.flush(); + + success = true; + + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + }finally{ + if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + } + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } +} diff --git a/src/main/java/seed/utils/SeedCvtXLSToHtml.java b/src/main/java/seed/utils/SeedCvtXLSToHtml.java new file mode 100644 index 00000000..63fac03d --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtXLSToHtml.java @@ -0,0 +1,139 @@ +package seed.utils; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.StringWriter; +import java.io.UnsupportedEncodingException; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.FactoryConfigurationError; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerFactoryConfigurationError; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.apache.log4j.Logger; +import org.apache.poi.hssf.converter.ExcelToHtmlConverter; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; + +public class SeedCvtXLSToHtml { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String args[]){ +// +// String filePath = "F:/javaConvert/test/test.xls"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtXLSToHtml().convert(filePath, output); +// } + + public void convert(String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".xls")) { + + File file = new File(filePath); + + if (file.exists()) { + + POIFSFileSystem fs = null; + + FileOutputStream fileOutputStream = null; + OutputStreamWriter outputStreamWriter = null; + BufferedWriter bufferedWriter = null; + + try { + + fs = new POIFSFileSystem(new FileInputStream(filePath)); + + HSSFWorkbook hSSFWorkbook = new HSSFWorkbook(fs); + + ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter( + DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()); + + excelToHtmlConverter.processWorkbook(hSSFWorkbook); + + StringWriter stringWriter = new StringWriter(); + + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); + transformer.setOutputProperty(OutputKeys.METHOD, "html"); + + transformer.transform( + new DOMSource(excelToHtmlConverter.getDocument()), + new StreamResult(stringWriter)); + + fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp"); + outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8"); + bufferedWriter = new BufferedWriter(outputStreamWriter); + + bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + bufferedWriter.write("\n"); + bufferedWriter.write(stringWriter.toString()); + bufferedWriter.flush(); + + success = true; + + } catch (TransformerConfigurationException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (TransformerFactoryConfigurationError e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (TransformerException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (ParserConfigurationException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (FactoryConfigurationError e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (UnsupportedEncodingException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IllegalArgumentException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (Exception e) { + log.error("CHECK ERROR:",e); + success = false; + } finally{ + if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + } + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } +} diff --git a/src/main/java/seed/utils/SeedCvtXLSXToHtml.java b/src/main/java/seed/utils/SeedCvtXLSXToHtml.java new file mode 100644 index 00000000..2ddb2f59 --- /dev/null +++ b/src/main/java/seed/utils/SeedCvtXLSXToHtml.java @@ -0,0 +1,396 @@ +package seed.utils; + +import com.sun.org.apache.xml.internal.serializer.OutputPropertiesFactory; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.StringWriter; +import java.math.BigDecimal; +import java.math.MathContext; +import java.util.Iterator; +import java.util.List; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.apache.log4j.Logger; +import org.apache.poi.hwpf.converter.HtmlDocumentFacade; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.openxml4j.opc.OPCPackage; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.usermodel.*; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class SeedCvtXLSXToHtml { + + private Logger log = Logger.getLogger(this.getClass()); + +// public static void main(String[] args) { +// +// String filePath = "F:/javaConvert/test/test.xlsx"; +// String output = "F:/javaConvert/test/img/"; +// +// new SeedCvtXLSXToHtml().convert(filePath, output); +// } + + public void convert(String filePath, String output) { + + boolean success = false; + + if(filePath.endsWith(".xlsx")) { + + File file = new File(filePath); + + if (file.exists()) { + + StringBuilder css = new StringBuilder(); + + try{ + + OPCPackage op = OPCPackage.open(filePath); + XSSFWorkbook x = new XSSFWorkbook(op); + Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + HtmlDocumentFacade htmlDocumentFacade = new HtmlDocumentFacade(document); + + Element window = htmlDocumentFacade.createBlock(); + window.setAttribute("id", "window"); + Element page = htmlDocumentFacade.createBlock(); + page.setAttribute("id", "page"); + + window.appendChild(page); + htmlDocumentFacade.getBody().appendChild(window); + + Integer sheetNum = x.getNumberOfSheets(); + for (int i = 0; i < sheetNum; i++) { + XSSFSheet sheet = x.getSheet(x.getSheetName(i)); + String sheetName = x.getSheetName(i); + { + Element title = htmlDocumentFacade.createHeader2(); + title.setTextContent(sheetName); + page.appendChild(title); + } + + processSheet(htmlDocumentFacade, page, sheet, "_" + i + "_"); + } + + htmlDocumentFacade.updateStylesheet(); + + Element style = (Element) htmlDocumentFacade.getDocument().getElementsByTagName("style").item(0); + style.setTextContent(css.append(style.getTextContent()).toString()); + saveAsHtml(output + getFileName(filePath) + ".jsp", htmlDocumentFacade.getDocument()); + + success = true; + + } catch (IOException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (InvalidFormatException e) { + log.error("CHECK ERROR:",e); + success = false; + } catch (ParserConfigurationException e) { + log.error("CHECK ERROR:",e); + success = false; + } + } + + if(!success){ + SeedUtils.setSeedDeleteFiles(output, ""); + } + } + } + + private static String getFileName(String filePath){ + int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\"); + return filePath.substring( sep + 1 , filePath.lastIndexOf(".")); + } + + private void processSheet(HtmlDocumentFacade htmlDocumentFacade, Element container, XSSFSheet sheet, String sID) { + + StringBuilder css = new StringBuilder(); + + Element table = htmlDocumentFacade.createTable(); + int sIndex = sheet.getWorkbook().getSheetIndex(sheet); + String sId = "sheet_".concat(String.valueOf(sIndex)); + table.setAttribute("id", sId); + table.setAttribute("border", "1"); + table.setAttribute("cellpadding", "2"); + table.setAttribute("cellspacing", "0"); + table.setAttribute("style", "border-collapse: collapse;"); + + if (sheet.getDefaultRowHeightInPoints() > 0) { + css.append("#").append(sId).append(" tr{height:").append(sheet.getDefaultRowHeightInPoints() / 28.34).append("cm}\n"); + } + if (sheet.getDefaultColumnWidth() > 0) { + css.append("#").append(sId).append(" td{width:").append(sheet.getDefaultColumnWidth() * 0.21).append("cm}\n"); + } + + generateColumns(htmlDocumentFacade, sheet, table); + + final short col_num = get_col_max(sheet); + final int row_num = sheet.getLastRowNum() + 1; + for (int i = 0; i < row_num; i++) { + Row row = sheet.getRow(i); + processRow(htmlDocumentFacade, table, (XSSFRow) row, sheet, col_num, sID, i); + } + + container.appendChild(table); + } + + private short get_col_max(XSSFSheet sheet) { + short ans = -1; + //rows + Iterator rows = sheet.iterator(); + while (rows.hasNext()) { + Row row = rows.next(); + if (row instanceof XSSFRow) { + short c = (short) (row.getLastCellNum()); + if (ans < c) { + ans = c; + } + } + } + return ans; + } + + @SuppressWarnings("deprecation") + private void generateColumns(HtmlDocumentFacade htmlDocumentFacade, XSSFSheet sheet, Element table) { + List colsList = sheet.getCTWorksheet().getColsList(); + MathContext mc = new MathContext(3); + for (CTCols cols : colsList) { + long oldLevel = 1; + for (CTCol col : cols.getColArray()) { + while (true) { + if (oldLevel == col.getMin()) { + break; + } + Element column = htmlDocumentFacade.createTableColumn(); + // htmlDocumentFacade.addStyleClass(column, "col", "width:2cm;"); + column.setAttribute("style", "width:2cm;"); + table.appendChild(column); + oldLevel++; + } + Element column = htmlDocumentFacade.createTableColumn(); + String width = new BigDecimal(sheet.getColumnWidth(Long.bitCount(oldLevel)) / 1440.0, mc).toString(); + column.setAttribute("style", "width:".concat(width).concat("cm;")); + table.appendChild(column); + + oldLevel++; + } + } + } + + private void processRow(HtmlDocumentFacade htmlDocumentFacade, Element table, XSSFRow row, XSSFSheet sheet, final int col_num, String sID, int pos_row) { + Element tr = htmlDocumentFacade.createTableRow(); + + if (!(row instanceof XSSFRow)) { + for (int pos_col = 0; pos_col < col_num; pos_col++) { + processCell(htmlDocumentFacade, tr, null, sID, pos_col, pos_row); // empty line + } + } else { + + //if (row.isFormatted()) {} + + if (row.getCTRow().getCustomHeight()) { + tr.setAttribute("style", "height:".concat(String.valueOf(row.getHeightInPoints())).concat("pt;")); + } + + for (int pos_col = 0; pos_col < col_num; pos_col++) { + Cell cell = row.getCell(pos_col); + if (cell instanceof XSSFCell) { + processCell(htmlDocumentFacade, tr, (XSSFCell) cell, sID, pos_col, pos_row); + } else { + processCell(htmlDocumentFacade, tr, null, sID, pos_col, pos_row); + } + } + } + table.appendChild(tr); + } + + private void processCell(HtmlDocumentFacade htmlDocumentFacade, Element tr, XSSFCell cell, String sID, int pos_col, int pos_row) { + + int cols = 1; + int rows = 1; + + if (cell != null) { + + if (cell != null) { + + int num = cell.getSheet().getNumMergedRegions(); + + for (int i = 0; i < num; i++) { + + CellRangeAddress c = cell.getSheet().getMergedRegion(i); + + int x0 = c.getFirstColumn(); + int x1 = c.getLastColumn(); + int y0 = c.getFirstRow(); + int y1 = c.getLastRow(); + if (x0 == pos_col && y0 == pos_row) { + cols = c.getLastColumn() - c.getFirstColumn() + 1; + rows = c.getLastRow() - c.getFirstRow() + 1; + } else if ((x0 <= pos_col) && (pos_col <= x1) && (y0 <= pos_row) && (pos_row <= y1)) { + return; + } + } + } + } + + Element td = htmlDocumentFacade.createTableCell(); + if (cols > 1) { + td.setAttribute("colspan", "" + cols); + } + if (rows > 1) { + td.setAttribute("rowspan", "" + rows); + } + Object value; + if (cell == null) { + td.setTextContent("\u00a0"); + } else { + switch (cell.getCellType()) { + case Cell.CELL_TYPE_BLANK: + value = "\u00a0"; + break; + case Cell.CELL_TYPE_NUMERIC: + value = cell.getNumericCellValue(); + break; + case Cell.CELL_TYPE_BOOLEAN: + value = cell.getBooleanCellValue(); + break; + case Cell.CELL_TYPE_FORMULA: + value = cell.getNumericCellValue(); + break; + default: + value = cell.getRichStringCellValue(); + break; + } + if (value instanceof XSSFRichTextString) { + processCellStyle(htmlDocumentFacade, td, cell.getCellStyle(), (XSSFRichTextString) value, sID); + td.setTextContent(SeedUtils.setReplaceNull(value)); + } else { + processCellStyle(htmlDocumentFacade, td, cell.getCellStyle(), null, sID); + td.setTextContent(SeedUtils.setReplaceNull(value)); + } + } + tr.appendChild(td); + } + + private void processCellStyle(HtmlDocumentFacade htmlDocumentFacade, Element td, XSSFCellStyle style, XSSFRichTextString rts, String sID) { + + StringBuilder sb = new StringBuilder(); + + if (rts != null) { + XSSFFont font = rts.getFontOfFormattingRun(1); + if (font != null) { + sb.append("font-family:").append(font.getFontName()).append(";"); + sb.append("font-size:").append(font.getFontHeightInPoints()).append("pt;"); + if (font.getXSSFColor() != null) { + String color = font.getXSSFColor().getARGBHex().substring(2); + sb.append("color:#").append(color).append(";"); + } + if (font.getItalic()) { + sb.append("font-style:italic;"); + } + if (font.getBold()) { + sb.append("font-weight:").append(font.getBoldweight()).append(";"); + } + if (font.getStrikeout()) { + sb.append("text-decoration:underline;"); + } + } + } + + if (style.getAlignment() != 1) { + switch (style.getAlignment()) { + case 2: + sb.append("text-align:").append("center;"); + break; + case 3: + sb.append("text-align:").append("right;"); + break; + } + } + + if (style.getBorderBottom() != 0) { + sb.append("border-bottom:solid; ").append(style.getBorderBottom()).append("px;"); + } + if (style.getBorderLeft() != 0) { + sb.append("border-left:solid; ").append(style.getBorderLeft()).append("px;"); + } + if (style.getBorderTop() != 0) { + sb.append("border-top:solid; ").append(style.getBorderTop()).append("px;"); + } + if (style.getBorderRight() != 0) { + sb.append("border-right:solid; ").append(style.getBorderRight()).append("px;"); + } + + if (style.getFillBackgroundXSSFColor() != null) { + sb.append("background:#fcc;"); + } + + htmlDocumentFacade.addStyleClass(td, "td" + sID, sb.toString()); + } + + private void saveAsHtml(String output, org.w3c.dom.Document document) { + + FileOutputStream fos = null; + + try{ + + File folder = new File(getFilePath(output)); + if (!folder.canRead()) { + folder.mkdirs(); + } + + fos = new FileOutputStream(output); + DOMSource domSource = new DOMSource(document); + StreamResult result = new StreamResult(new StringWriter()); + + TransformerFactory tf = TransformerFactory.newInstance(); + Transformer serializer = tf.newTransformer(); + + serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + serializer.setOutputProperty(OutputKeys.INDENT, "yes"); + serializer.setOutputProperty(OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, "2"); + serializer.setOutputProperty(OutputKeys.METHOD, "html"); + serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + + serializer.transform(domSource, result); + String s = "\n" + result.getWriter().toString(); + OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8"); + out.write("<%@ page contentType=\"text/html;charset=utf-8\" %>"); + out.write("\n"); + out.write(s); + out.close(); + + } catch (FileNotFoundException e) { + log.error("CHECK ERROR:",e); + } catch (TransformerException e) { + log.error("CHECK ERROR:",e); + } catch (IllegalArgumentException e) { + log.error("CHECK ERROR:",e); + } catch (IOException e) { + log.error("CHECK ERROR:",e); + } catch (Exception e) { + log.error("CHECK ERROR:",e); + } finally{ + if(fos!=null){try{fos.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + public String getFilePath(String fileFullPath) { + int sep = fileFullPath.lastIndexOf("\\") == -1 ? fileFullPath.lastIndexOf("/") : fileFullPath.lastIndexOf("\\"); + return fileFullPath.substring(0, sep + 1); + } +} diff --git a/src/main/java/seed/utils/SeedFileUtils.java b/src/main/java/seed/utils/SeedFileUtils.java new file mode 100644 index 00000000..7607793d --- /dev/null +++ b/src/main/java/seed/utils/SeedFileUtils.java @@ -0,0 +1,244 @@ +package seed.utils; + +import java.awt.AlphaComposite; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; +import java.util.Random; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.PBEParameterSpec; +import javax.imageio.ImageIO; + +import org.apache.log4j.Logger; + +public class SeedFileUtils { + + private static Logger log = Logger.getLogger(SeedFileUtils.class); + + private static final String password = "seedFile"; + + public static void setSeedEncryptFile(String infile) { + + FileInputStream inFile = null; + FileOutputStream outFile = null; + + try{ + + inFile = new FileInputStream(infile); + outFile = new FileOutputStream(infile + ".des"); + + // Use PBEKeySpec to create a key based on a password. + // The password is passed as a character array + + PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray()); + SecretKeyFactory keyFactory = + SecretKeyFactory.getInstance("PBEWithMD5AndDES"); + SecretKey passwordKey = keyFactory.generateSecret(keySpec); + + // PBE = hashing + symmetric encryption. A 64 bit random + // number (the salt) is added to the password and hashed + // using a Message Digest Algorithm (MD5 in this example.). + // The number of times the password is hashed is determined + // by the interation count. Adding a random number and + // hashing multiple times enlarges the key space. + + byte[] salt = new byte[8]; + Random rnd = new Random(); + rnd.nextBytes(salt); + int iterations = 100; + + //Create the parameter spec for this salt and interation count + + PBEParameterSpec parameterSpec = new PBEParameterSpec(salt, iterations); + + // Create the cipher and initialize it for encryption. + + Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); + cipher.init(Cipher.ENCRYPT_MODE, passwordKey, parameterSpec); + + // Need to write the salt to the (encrypted) file. The + // salt is needed when reconstructing the key for decryption. + + outFile.write(salt); + + // Read the file and encrypt its bytes. + + byte[] input = new byte[64]; + int bytesRead; + while ((bytesRead = inFile.read(input)) != -1) + { + byte[] output = cipher.update(input, 0, bytesRead); + if (output != null) outFile.write(output); + } + + byte[] output = cipher.doFinal(); + if (output != null) outFile.write(output); + + inFile.close(); + outFile.flush(); + outFile.close(); + + } catch (InvalidKeySpecException e) { + log.error("CHECK ERROR:",e); + } catch (IllegalBlockSizeException e) { + log.error("CHECK ERROR:",e); + } catch (BadPaddingException e) { + log.error("CHECK ERROR:",e); + } catch (NoSuchAlgorithmException e) { + log.error("CHECK ERROR:",e); + } catch (NoSuchPaddingException e) { + log.error("CHECK ERROR:",e); + } catch (InvalidKeyException e) { + log.error("CHECK ERROR:",e); + } catch (InvalidAlgorithmParameterException e) { + log.error("CHECK ERROR:",e); + } catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + } catch(IOException e){ + log.error("CHECK ERROR:",e); + } finally{ + if(inFile!=null){try{inFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(outFile!=null){try{outFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + public static void getSeedDecryptFile(String infile) { + + FileInputStream inFile = null; + FileOutputStream outFile = null; + + try{ + + inFile = new FileInputStream(infile); + outFile = new FileOutputStream(infile + ".dcr"); + + PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray()); + SecretKeyFactory keyFactory = + SecretKeyFactory.getInstance("PBEWithMD5AndDES"); + SecretKey passwordKey = keyFactory.generateSecret(keySpec); + + // Read in the previouly stored salt and set the iteration count. + + byte[] salt = new byte[8]; + inFile.read(salt); + int iterations = 100; + + PBEParameterSpec parameterSpec = new PBEParameterSpec(salt, iterations); + + // Create the cipher and initialize it for decryption. + + Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES"); + cipher.init(Cipher.DECRYPT_MODE, passwordKey, parameterSpec); + + + byte[] input = new byte[64]; + int bytesRead; + while ((bytesRead = inFile.read(input)) != -1) + { + byte[] output = cipher.update(input, 0, bytesRead); + if (output != null) + outFile.write(output); + } + + byte[] output = cipher.doFinal(); + if (output != null) + outFile.write(output); + + inFile.close(); + outFile.flush(); + outFile.close(); + + } catch (InvalidKeySpecException e) { + log.error("CHECK ERROR:",e); + } catch (IllegalBlockSizeException e) { + log.error("CHECK ERROR:",e); + } catch (BadPaddingException e) { + log.error("CHECK ERROR:",e); + } catch (NoSuchAlgorithmException e) { + log.error("CHECK ERROR:",e); + } catch (NoSuchPaddingException e) { + log.error("CHECK ERROR:",e); + } catch (InvalidKeyException e) { + log.error("CHECK ERROR:",e); + } catch (InvalidAlgorithmParameterException e) { + log.error("CHECK ERROR:",e); + } catch(FileNotFoundException e){ + log.error("CHECK ERROR:",e); + } catch(IOException e){ + log.error("CHECK ERROR:",e); + } finally{ + if(inFile!=null){try{inFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + if(outFile!=null){try{outFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}} + } + } + + public static void setWaterMarkImg(String orgImg, String markImg){ + + float alpha = 1; + FileOutputStream out = null; + + try{ + + // org image file + File file = new File(orgImg); + + // watermark image file + File markFile = new File(markImg); + + if(file.exists() && markFile.exists()) { + + Image src = ImageIO.read(file); + + if(src != null){ + + int width = src.getWidth(null); + int height = src.getHeight(null); + + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + + Graphics2D graphics2D = image.createGraphics(); + graphics2D.drawImage(src, 0, 0, width, height, null); + + Image mark_img = ImageIO.read(markFile); + + if(mark_img != null){ + + int mark_img_width = mark_img.getWidth(null); + int mark_img_height = mark_img.getHeight(null); + + graphics2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha)); + + // 우측 하단에 워터마크 표시 + graphics2D.drawImage(mark_img, (width / 2) - (mark_img_width / 2), (height / 2) - (mark_img_height / 2), mark_img_width, mark_img_height, null); + graphics2D.dispose(); + + out = new FileOutputStream(orgImg); +// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); +// encoder.encode(image); + } + } + } + + } catch (Exception e){ + log.error(e); + }finally{ + if(out!=null){try{out.close();}catch(IOException e){log.error(e);}} + } + } +} diff --git a/src/main/java/seed/utils/SeedFtpType.java b/src/main/java/seed/utils/SeedFtpType.java new file mode 100644 index 00000000..5216843c --- /dev/null +++ b/src/main/java/seed/utils/SeedFtpType.java @@ -0,0 +1,114 @@ +package seed.utils; + +public class SeedFtpType { + private String destFilePath; + private String srcFilePath; + private String fileName; + private String ftpType; + + public void setSeedFtp(){ + + SeedProperties seedProperties = new SeedProperties(); + + seedProperties.configPropertiesInit(); + + if(seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("ftp") || + seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("sftp")){ + + String[] ftpServers = seedProperties.getConfigProperties().getProperty("ftp.server").split(","); + String[] ftpPorts = seedProperties.getConfigProperties().getProperty("ftp.port").split(","); + String[] ftpIds = seedProperties.getConfigProperties().getProperty("ftp.id").split(","); + String[] ftpPws = seedProperties.getConfigProperties().getProperty("ftp.pw").split(","); + String[] ftpPaths = seedProperties.getConfigProperties().getProperty("ftp.path").split(","); + + if(seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("ftp")){ + + SeedFtpUtil seedFtpUtil = new SeedFtpUtil(); + + if(ftpServers.length > 1){ + + for(int i=0; i 1){ + + for(int i=0; i /filedepth1/filedepth2/fileDirectory + * 문제 발생시 파일 업로드 실패 라는 문구와 경로 및 파일명을 출력 한다. + * @param String destFilePath 서버 경로 + * @param String destFilePath 로컬 파일 경로 + * @param String fileName 파일명 + * */ + public boolean setFtpFileSync(String destFilePath, String srcFilePath, String fileName, String ftpType){ + + boolean success = false; + + String printMessage = "FTP 업로드 작업에 실패 했습니다."; + + try{ + + success = setFtpLogin(); + + if(success){ + + if(ftpType.equals("regFile")){ + + setFtpMkDirs(ftpFilepath+"/"+destFilePath); + + success = setFtpCd("/"+ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileUpload(srcFilePath+"/", fileName); + }else{ + printMessage = "경로이동 실패"; + } + + }else if(ftpType.equals("regFiles")){ + + setFtpMkDirs(ftpFilepath+"/"+destFilePath); + + success = setFtpCd("/"+ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileUploads(srcFilePath); + }else{ + printMessage = "경로이동 실패"; + } + + }else if(ftpType.equals("delFile")){ + + success = setFtpCd(ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileDelete(fileName); + if(!success){ + printMessage = "FTP 파일 삭제에 실패하였습니다."; + } + }else{ + printMessage = "경로이동 실패"; + } + + }else if(ftpType.equals("modFile")){ + + setFtpMkDirs(ftpFilepath+"/"+destFilePath); + + success = setFtpCd(ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileMove(srcFilePath, destFilePath); + if(!success){ + printMessage = "FTP 파일 이동이 실패하였습니다."; + } + }else{ + printMessage = "경로이동 실패"; + } + } + + }else{ + printMessage = "ftp로그인 실패"; + } + + if(!success){ + System.out.println("####################################"); + System.out.println("####################################"); + System.out.println("########"+printMessage+"############"); + System.out.println("####################################"); + System.out.println("####################################"); + System.out.println("srcFilePath: "+srcFilePath); + System.out.println("fileName: "+fileName); + } + + setLoginOut(); + + }catch(IOException e){ + log.error("IGNORE:",e); + }finally{ + if(ftpClient!=null)setDisconnection(); + } + return success; + } + + public boolean setFtpLogin() { + + ftpClient = new FTPClient(); + + boolean success = false; + + try{ + setFtpConnect(); + success = ftpClient.login(ftpId, ftpPw); + }catch (IOException ioe){ + log.error("IGNORE:",ioe); + } + + return success; + } + + public boolean setFtpConnect() { + + boolean success = false; + + try{ + + ftpClient.connect(ftpServer, ftpPort); + + // 연결 시도후, 성공했는지 응답 코드 확인 + int code = ftpClient.getReplyCode(); + + FTPReply.isPositiveCompletion(code); + + if(!FTPReply.isPositiveCompletion(code)) { + ftpClient.disconnect(); + System.err.println("서버로부터 연결을 거부당했습니다"); + success = false; + }else{ + success = true; + } + + }catch (IOException ioe){ + + log.error("IGNORE:",ioe); + + if(ftpClient.isConnected()){ + + try{ + ftpClient.disconnect(); + }catch(IOException f){ + System.out.println("FTP접속에 실패 했습니다."); + } + } + + success = false; + } + + return success; + } + + public boolean setFtpMkDirs(String path) { + + boolean success = false; + + try { + + String[] paths = path.split("/"); + + if(paths.length > 0){ + for(int p=1; p 0){ + + for(int i = 0; i < fileNameList.length; i++) { + + File uploadFile = new File(path+"/"+fileNameList[i]); + + if(!uploadFile.isDirectory()){ + fis = new FileInputStream(uploadFile); + ftpClient.enterLocalPassiveMode(); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + success = ftpClient.storeFile(uploadFile.getName(), fis); + } + } + } + + }catch(IOException ex) { + log.error("IGNORE:",ex); + } finally { + if (fis != null) try{fis.close();}catch(IOException ex){} + } + return success; + } + + public boolean setFtpFileDelete(String fileName){ + + boolean success = false; + + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + fileName= SeedUtils.setFilePathReplaceAll(fileName); + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + + try{ + success = ftpClient.deleteFile(fileName); + }catch(IOException ex){ + log.error("IGNORE:",ex); + } + + return success; + } + + public boolean setFtpFileMove(String srcFilePath, String fileName){ + + boolean success = false; + + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + fileName= SeedUtils.setFilePathReplaceAll(fileName); + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + + try{ + ftpClient.rename(srcFilePath, fileName); + success = true; + }catch(IOException ex){ + log.error("IGNORE:",ex); + } + + return success; + } + + public void setLoginOut() { + try{ + ftpClient.logout(); + }catch (IOException ioe){ + log.error("IGNORE:",ioe); + } + } + + public void setDisconnection() { + try{ + ftpClient.disconnect(); + }catch (IOException ioe){ + log.error("IGNORE:",ioe); + } + } + + public FTPClient getFtpClient() { + return ftpClient; + } + + public void setFtpClient(FTPClient ftpClient) { + this.ftpClient = ftpClient; + } + + public String getFtpServer() { + return ftpServer; + } + + public void setFtpServer(String ftpServer) { + this.ftpServer = ftpServer; + } + + public int getFtpPort() { + return ftpPort; + } + + public void setFtpPort(int ftpPort) { + this.ftpPort = ftpPort; + } + + public String getFtpId() { + return ftpId; + } + + public void setFtpId(String ftpId) { + this.ftpId = ftpId; + } + + public String getFtpPw() { + return ftpPw; + } + + public void setFtpPw(String ftpPw) { + this.ftpPw = ftpPw; + } + + public String getFtpFilepath() { + return ftpFilepath; + } + + public void setFtpFilepath(String ftpFilepath) { + this.ftpFilepath = ftpFilepath; + } +} diff --git a/src/main/java/seed/utils/SeedSftpUtil.java b/src/main/java/seed/utils/SeedSftpUtil.java new file mode 100644 index 00000000..33ad1779 --- /dev/null +++ b/src/main/java/seed/utils/SeedSftpUtil.java @@ -0,0 +1,376 @@ +package seed.utils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.SocketException; + +import org.apache.log4j.Logger; + +import com.jcraft.jsch.Channel; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.SftpException; + +public class SeedSftpUtil { + + private Logger log = Logger.getLogger(this.getClass()); + + private Session ftpSession = null; + private Channel ftpChannel = null; + private ChannelSftp ftpChannelSftp = null; + + private String ftpServer = "127.0.0.1"; + private int ftpPort = 22; + private String ftpId = ""; + private String ftpPw = ""; + private String ftpFilepath = ""; + + /** + * sftp를 이용한 파일 업로드 작업을 하는 메소드 + * 전달받은 파일 경로와 로컬의 파일경로 및 파일명에 해당하는 파일을 가지고 서버에 이동하는 작업을 진행함 + * destFilePath는 마지막 /를 빼고 전달 해줘야 한다. ex> /filedepth1/filedepth2/fileDirectory + * 문제 발생시 파일 업로드 실패 라는 문구와 경로 및 파일명을 출력 한다. + * @param String destFilePath 서버 경로 + * @param String destFilePath 로컬 파일 경로 + * @param String fileName 파일명 + * */ + public boolean setFtpFileSync(String destFilePath, String srcFilePath, String fileName, String ftpType){ + + boolean success = false; + + String printMessage = "FTP 업로드 작업에 실패 했습니다."; + + try{ + + success = setFtpLogin(); + + if(success){ + + if(ftpType.equals("regFile")){ + + setFtpMkDirs(ftpFilepath+"/"+destFilePath); + + success = setFtpCd("/"+ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileUpload(srcFilePath+"/", fileName); + }else{ + printMessage = "경로이동 실패"; + } + + }else if(ftpType.equals("regFiles")){ + + setFtpMkDirs(ftpFilepath+"/"+destFilePath); + + success = setFtpCd("/"+ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileUploads(srcFilePath); + }else{ + printMessage = "경로이동 실패"; + } + + }else if(ftpType.equals("delFile")){ + + success = setFtpCd(ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileDelete(fileName); + if(!success){ + printMessage = "FTP 파일 삭제에 실패하였습니다."; + } + }else{ + printMessage = "경로이동 실패"; + } + + }else if(ftpType.equals("modFile")){ + + setFtpMkDirs(ftpFilepath+"/"+destFilePath); + + success = setFtpCd(ftpFilepath+"/"+destFilePath); + + if(success){ + success = setFtpFileMove(srcFilePath, destFilePath); + if(!success){ + printMessage = "FTP 파일 이동이 실패하였습니다."; + } + }else{ + printMessage = "경로이동 실패"; + } + } + + }else{ + printMessage = "ftp로그인 실패"; + } + + if(!success){ + System.out.println("####################################"); + System.out.println("####################################"); + System.out.println("########"+printMessage+"############"); + System.out.println("####################################"); + System.out.println("####################################"); + System.out.println("destFilePath: "+ftpFilepath+"/"+destFilePath); + System.out.println("fileName: "+fileName); + } + + }catch(IOException e){ + log.error("IGNORE:",e); + }finally{ + if(ftpChannelSftp!=null)setFtpDisconnection(); + } + return success; + } + + public boolean setFtpLogin() { + + boolean success = false; + + JSch jsch = new JSch(); + + try{ + + ftpSession = jsch.getSession(ftpId, ftpServer, ftpPort); + ftpSession.setPassword(ftpPw); + + java.util.Properties config = new java.util.Properties(); + //rsa key 강제로 저장하는 옵션 + //no로 안하는 경우 UnknownHostKey에러 발생 될수 있음 + config.put("StrictHostKeyChecking", "no"); + ftpSession.setConfig(config); + ftpSession.connect(); + + ftpChannel = ftpSession.openChannel("sftp"); + ftpChannel.connect(); + + success = true; + + }catch (JSchException e){ + log.error("IGNORE:",e); + } + + ftpChannelSftp = (ChannelSftp) ftpChannel; + + return success; + } + + public boolean setFtpMkDirs(String path) { + + boolean success = false; + + try{ + + String[] paths = path.split("/"); + + if(paths.length > 0){ + for(int p=1; p 0){ + + for(int i = 0; i < fileNameList.length; i++) { + + File uploadFile = new File(path+"/"+fileNameList[i]); + + in = new FileInputStream(uploadFile); + ftpChannelSftp.put(in, fileNameList[i]); + success = true; + } + } + }catch (SftpException e){ + success = false; + log.error("IGNORE:",e); + }catch (FileNotFoundException e){ + success = false; + log.error("IGNORE:",e); + }catch (Exception e){ + success = false; + log.error("IGNORE:",e); + }finally{ + if(in!=null)try {in.close();} catch (IOException e) {log.error("IGNORE:",e);} + } + return success; + } + + public boolean setFtpFileDelete(String fileName){ + + boolean success = false; + + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + fileName= SeedUtils.setFilePathReplaceAll(fileName); + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + + try{ + ftpChannelSftp.rm(fileName); + success = true; + }catch(SftpException ex){ + log.error("IGNORE:",ex); + } + + return success; + } + + public boolean setFtpFileMove(String srcFilePath, String fileName){ + + boolean success = false; + + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + fileName= SeedUtils.setFilePathReplaceAll(fileName); + //*** 시큐어코딩 디렉토리 경로조작 ****************************// + + try{ + ftpChannelSftp.rename(srcFilePath, fileName); + success = true; + }catch(SftpException ex){ + log.error("IGNORE:",ex); + } + + return success; + } + + public void setFtpDisconnection() { + ftpChannelSftp.quit(); + if(ftpSession!=null){ftpSession.disconnect();} + } + + public Session getFtpSession() { + return ftpSession; + } + + public void setFtpSession(Session ftpSession) { + this.ftpSession = ftpSession; + } + + public Channel getFtpChannel() { + return ftpChannel; + } + + public void setFtpChannel(Channel ftpChannel) { + this.ftpChannel = ftpChannel; + } + + public ChannelSftp getFtpChannelSftp() { + return ftpChannelSftp; + } + + public void setFtpChannelSftp(ChannelSftp ftpChannelSftp) { + this.ftpChannelSftp = ftpChannelSftp; + } + + public String getFtpServer() { + return ftpServer; + } + + public void setFtpServer(String ftpServer) { + this.ftpServer = ftpServer; + } + + public int getFtpPort() { + return ftpPort; + } + + public void setFtpPort(int ftpPort) { + this.ftpPort = ftpPort; + } + + public String getFtpId() { + return ftpId; + } + + public void setFtpId(String ftpId) { + this.ftpId = ftpId; + } + + public String getFtpPw() { + return ftpPw; + } + + public void setFtpPw(String ftpPw) { + this.ftpPw = ftpPw; + } + + public String getFtpFilepath() { + return ftpFilepath; + } + + public void setFtpFilepath(String ftpFilepath) { + this.ftpFilepath = ftpFilepath; + } +} diff --git a/src/main/webapp/WEB-INF/jeus-web-dd.xml b/src/main/webapp/WEB-INF/jeus-web-dd.xml deleted file mode 100644 index 4a856b26..00000000 --- a/src/main/webapp/WEB-INF/jeus-web-dd.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - /ebt - - true - true - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/weblogic.xml b/src/main/webapp/WEB-INF/weblogic.xml deleted file mode 100644 index f597f05e..00000000 --- a/src/main/webapp/WEB-INF/weblogic.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - /ebt - \ No newline at end of file