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; } }