package geoinfo.admins.board; import egovframework.com.cmm.service.EgovProperties; import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import geoinfo.admins.board.service.CommunityService; import geoinfo.com.GeoinfoCommon; import geoinfo.session.UserInfo; import java.io.File; import java.io.IOException; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Objects; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FilenameUtils; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; 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.multipart.MultipartHttpServletRequest; @Controller public class CommunityController { @Resource(name = "communityService") private CommunityService masterService; private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); @RequestMapping(value = "admins/board/12.do") public String board00( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } /** pageing */ PaginationInfo paginationInfo = new PaginationInfo(); if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { paginationInfo.setCurrentPageNo(1); params.put("pageIndex", 1); } else { paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); } paginationInfo.setRecordCountPerPage(10); paginationInfo.setPageSize(10); params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); List result = masterService.selectInfo(params); paginationInfo.setTotalRecordCount(Integer.valueOf(((EgovMap) result.get(0)).get("totalrows").toString())); model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("result", result); return "admins/board/12"; } @RequestMapping(value = "admins/board/12_write.do") public String write12( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } return "admins/board/12_write"; } @RequestMapping(value = "admins/board/12_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) public ModelMap saveInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { HashMap jsonMap = new HashMap(); request.setCharacterEncoding("euc-kr"); String topnotice = params.get("topChk").toString(); params.put("topnotice", topnotice); params.put("password", "kictgis1234"); MultipartFile fileName1 = multiRequest.getFile("fileName1"); MultipartFile fileName2 = multiRequest.getFile("fileName2"); MultipartFile fileName3 = multiRequest.getFile("fileName3"); try { if(fileName1.getOriginalFilename().equals("")) { params.put("fileName1", ""); } else { GregorianCalendar cal = new GregorianCalendar(); String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); params.put("saveName1", saveName1); params.put("fileName1", fileName1.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); fileName1.transferTo(saveFile); } if(fileName2.getOriginalFilename().equals("")) { params.put("fileName2", ""); } else { GregorianCalendar cal = new GregorianCalendar(); String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); params.put("saveName2", saveName2); params.put("fileName2", fileName2.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); fileName2.transferTo(saveFile); } if(fileName3.getOriginalFilename().equals("")) { params.put("fileName3", ""); } else { GregorianCalendar cal = new GregorianCalendar(); String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); params.put("saveName3", saveName3); params.put("fileName3", fileName3.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); fileName3.transferTo(saveFile); } masterService.saveInfo(params); jsonMap.put("success", true); } catch (IOException Ex) { jsonMap.put("success", false); } model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 return model; } @RequestMapping(value = "admins/board/12-view.do") public String view01( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } String aid; if(Objects.isNull(params.get("aid"))) { aid = params.get("idx").toString(); } else { aid = params.get("aid").toString(); } EgovMap result = masterService.selectDetailInfo(params); model.addAttribute("aid", aid); model.addAttribute("result", result); model.addAttribute("br", "\r"); return "admins/board/12-view"; } @RequestMapping(value = "admins/board/12-delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) public ModelMap delete12(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { HashMap jsonMap = new HashMap(); try { masterService.deleteInfo(params); String fileName1 = GeoinfoCommon.parseData(params.get("fileName1").toString()); String fileName2 = GeoinfoCommon.parseData(params.get("fileName2").toString()); String fileName3 = GeoinfoCommon.parseData(params.get("fileName3").toString()); File deleteFile1 = new File(savePath + "/" + FilenameUtils.getName(fileName1)); if(deleteFile1.exists()) { deleteFile1.delete(); } File deleteFile2 = new File(savePath + "/" + FilenameUtils.getName(fileName2)); if(deleteFile2.exists()) { deleteFile2.delete(); } File deleteFile3 = new File(savePath + "/" + FilenameUtils.getName(fileName3)); if(deleteFile3.exists()) { deleteFile3.delete(); } jsonMap.put("success", true); } catch (IOException Ex) { jsonMap.put("success", false); } model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 return model; } @RequestMapping(value = "admins/board/12-modify.do") public String modify12( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } String aid = params.get("aid").toString(); EgovMap result = masterService.selectModifyInfo(params); model.addAttribute("aid", aid); model.addAttribute("result", result); return "admins/board/12-modify"; } @RequestMapping(value = "admins/board/12-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) public ModelMap updateInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { HashMap jsonMap = new HashMap(); request.setCharacterEncoding("euc-kr"); String topnotice = params.get("top").toString(); params.put("topnotice", topnotice); params.put("password", "kictgis1234"); String delFile1 = params.get("delFile1").toString(); String delFile2 = params.get("delFile2").toString(); String delFile3 = params.get("delFile3").toString(); String preFile1 = params.get("preFile1").toString(); String preFile2 = params.get("preFile2").toString(); String preFile3 = params.get("preFile3").toString(); String preSaveNm1 = params.get("preSaveNm1").toString(); String preSaveNm2 = params.get("preSaveNm2").toString(); String preSaveNm3 = params.get("preSaveNm3").toString(); MultipartFile fileName1 = multiRequest.getFile("fileName1"); MultipartFile fileName2 = multiRequest.getFile("fileName2"); MultipartFile fileName3 = multiRequest.getFile("fileName3"); try { // if(!preFile1.equals("") && delFile1.equals("0") ) { if(!"".equals(preFile1) && "0".equals(delFile1)) { params.put("saveName1", preSaveNm1); params.put("fileName1", preFile1); } else { if(fileName1.getOriginalFilename().equals("")) { params.put("fileName1", ""); } else { GregorianCalendar cal = new GregorianCalendar(); String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); params.put("saveName1", saveName1); params.put("fileName1", fileName1.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); fileName1.transferTo(saveFile); } } if(!"".equals(preFile2) && "0".equals(delFile2)) { params.put("saveName2", preSaveNm2); params.put("fileName2", preFile2); } else { if(fileName2.getOriginalFilename().equals("")) { params.put("fileName2", ""); } else { GregorianCalendar cal = new GregorianCalendar(); String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); params.put("saveName2", saveName2); params.put("fileName2", fileName2.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); fileName2.transferTo(saveFile); } } if(!"".equals(preFile3) && "0".equals(delFile3)) { params.put("saveName3", preSaveNm3); params.put("fileName3", preFile3); } else { if(fileName3.getOriginalFilename().equals("")) { params.put("fileName3", ""); } else { GregorianCalendar cal = new GregorianCalendar(); String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); params.put("saveName3", saveName3); params.put("fileName3", fileName3.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); fileName3.transferTo(saveFile); } } masterService.updateInfo(params); jsonMap.put("success", true); } catch (IOException Ex) { jsonMap.put("success", false); } model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 return model; } @RequestMapping(value = "admins/board/12_reply_write.do") public String replyWrite(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } int pos = 0; String content = ""; EgovMap result = masterService.selectReplyInfo(params); content = result.get("content").toString(); while((pos=content.indexOf("\'", pos)) != -1) { String left = content.substring(0, pos); String right = content.substring(pos, content.length()); content = left + "\'" + right; pos += 2; } result.put("content", content); model.addAttribute("A", "작성자"); model.addAttribute("B", "비밀번호"); model.addAttribute("C", "제목"); model.addAttribute("D", "내 용"); model.addAttribute("result", result); return "admins/board/12_reply_write"; } @RequestMapping(value = "admins/board/12_reply_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) public ModelMap replySave(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { HashMap jsonMap = new HashMap(); try { params.put("password", "kictgis1234"); MultipartFile fileName = multiRequest.getFile("fileName"); String seq = GeoinfoCommon.parseData(params.get("seq").toString()); String lseq = seq.substring(0, 1); int seq_num = Integer.parseInt(seq); String L_dat = null; String L_tmp = null; String saveName = ""; int idx = 0; params.put("fileName2", ""); params.put("saveName2", ""); params.put("fileName3", ""); params.put("saveName3", ""); boolean replyMax = true; int maxIdx = masterService.getMaxIdx(); if(maxIdx == 0) { idx = 1; } else { idx = maxIdx + 1; } params.put("idx", idx); int seq_temp = 0; String mseq_right = ""; if(seq_num == 0) { int maxSeq = masterService.getMaxSeq(params); seq_temp = maxSeq + 10; seq = Integer.toString(seq_temp); params.put("seq", seq); if(fileName.getOriginalFilename().equals("")) { params.put("fileName", ""); } else { GregorianCalendar cal = new GregorianCalendar(); L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); saveName = L_dat + "_" + L_tmp + fileName.getOriginalFilename().substring(fileName.getOriginalFilename().lastIndexOf(".")); params.put("saveName", saveName); params.put("fileName", fileName.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName)); fileName.transferTo(saveFile); } masterService.replyWrite(params); } else { params.put("lseq", lseq); int maxSeq2 = masterService.getMaxSeq2(params); mseq_right = Integer.toString(maxSeq2).substring(1, 2); if("9".equals(mseq_right)) { replyMax = false; } else { seq_temp = maxSeq2 + 1; seq = Integer.toString(seq_temp); params.put("seq", seq); if(fileName.getOriginalFilename().equals("")) { params.put("fileName", ""); } else { GregorianCalendar cal = new GregorianCalendar(); L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); saveName = L_dat + "_" + L_tmp + fileName.getOriginalFilename().substring(fileName.getOriginalFilename().lastIndexOf(".")); params.put("saveName", saveName); params.put("fileName", fileName.getOriginalFilename()); File saveFile = new File(savePath, FilenameUtils.getName(saveName)); fileName.transferTo(saveFile); } masterService.replyWrite(params); } } jsonMap.put("replyMax", replyMax); jsonMap.put("success", true); } catch (IOException Ex) { jsonMap.put("success", false); } model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 return model; } }