381 lines
14 KiB
Java
381 lines
14 KiB
Java
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.RefrncRoomService;
|
|
import geoinfo.com.GeoinfoCommon;
|
|
import geoinfo.session.UserInfo;
|
|
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.OutputStream;
|
|
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.apache.log4j.Logger;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.ModelMap;
|
|
import org.springframework.util.FileCopyUtils;
|
|
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 RefrncRoomController {
|
|
|
|
private static final Logger LOGGER = Logger.getLogger(RefrncRoomController.class.getName());
|
|
|
|
@Resource(name = "refrncRoomService")
|
|
private RefrncRoomService masterService;
|
|
|
|
private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath");
|
|
|
|
@RequestMapping(value = "admins/board/01.do")
|
|
public String board01( @RequestParam HashMap<String, Object> 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.selectInfoList(params);
|
|
|
|
paginationInfo.setTotalRecordCount(Integer.valueOf(((EgovMap) result.get(0)).get("totalrows").toString()));
|
|
|
|
model.addAttribute("params", params);
|
|
model.addAttribute("result", result);
|
|
model.addAttribute("paginationInfo", paginationInfo);
|
|
|
|
return "admins/board/01";
|
|
}
|
|
|
|
@RequestMapping(value = "admins/board/01_write.do")
|
|
public String write01( @RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
|
|
|
|
if (!UserInfo.isValidSession(request, response, "admin")) {
|
|
return "";
|
|
}
|
|
|
|
String pId = params.get("pId").toString();
|
|
|
|
model.addAttribute("pId", pId);
|
|
|
|
return "admins/board/01_write";
|
|
}
|
|
|
|
@RequestMapping(value = "admins/board/01_write-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE })
|
|
public ModelMap saveInfo(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception {
|
|
|
|
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
|
|
|
|
request.setCharacterEncoding("utf-8");
|
|
|
|
String subject = params.get("subject").toString();
|
|
String contents = params.get("contents").toString();
|
|
String cls = params.get("cls").toString();
|
|
String topnotice = params.get("topChk").toString();
|
|
|
|
params.put("subject", subject);
|
|
params.put("contents", contents);
|
|
params.put("cls", cls);
|
|
params.put("topnotice", topnotice);
|
|
|
|
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/01_view.do")
|
|
public String view01( @RequestParam HashMap<String, Object> 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/01_view";
|
|
}
|
|
|
|
@RequestMapping(value = "admins/board/01_delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE })
|
|
public ModelMap delete01(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
|
|
|
|
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
|
|
|
|
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());
|
|
|
|
params.put("fileName1", fileName1);
|
|
params.put("fileName2", fileName2);
|
|
params.put("fileName3", fileName3);
|
|
|
|
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/01-modify.do")
|
|
public String modify01( @RequestParam HashMap<String, Object> 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/01-modify";
|
|
}
|
|
|
|
@RequestMapping(value = "admins/board/fileDownload.do")
|
|
public void fileDownload(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
|
|
|
|
String savename = params.get("savename").toString();
|
|
|
|
File file = new File(savePath + "\\" + FilenameUtils.getName(savename));
|
|
|
|
response.setContentType("multipart/form-data");
|
|
response.setContentLength((int)file.length());
|
|
response.setHeader("Content-Disposition", GeoinfoCommon.safeHttpHeader("attachment; filename=\"" + savename + "\""));
|
|
response.setHeader("Content-Transfer-Encoding", "binary");
|
|
|
|
OutputStream out = response.getOutputStream();
|
|
FileInputStream fis = null;
|
|
|
|
try {
|
|
fis = new FileInputStream(file);
|
|
FileCopyUtils.copy(fis, out);
|
|
}
|
|
catch(IOException e){
|
|
LOGGER.error(e);
|
|
}finally{
|
|
if(fis != null){
|
|
try{
|
|
fis.close();
|
|
}catch(IOException e){
|
|
LOGGER.error(e);
|
|
}
|
|
}
|
|
}
|
|
out.flush();
|
|
}
|
|
|
|
@RequestMapping(value = "admins/board/01-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE })
|
|
public ModelMap updateInfo(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception {
|
|
|
|
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
|
|
|
|
request.setCharacterEncoding("utf-8");
|
|
|
|
String subject = params.get("subject").toString();
|
|
String contents = params.get("contents").toString();
|
|
String topnotice = params.get("top").toString();
|
|
|
|
params.put("subject", subject);
|
|
params.put("contents", contents);
|
|
params.put("topnotice", topnotice);
|
|
|
|
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(!"".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;
|
|
}
|
|
|
|
}
|