geoinfo_admin/src/main/java/geoinfo/admins/board/CommunityController.java

461 lines
17 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.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.User");
@RequestMapping(value = "admins/board/12.do")
public String board00( @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.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<String, Object> 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<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception {
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
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<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/12-view";
}
@RequestMapping(value = "admins/board/12-delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE })
public ModelMap delete12(@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());
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<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/12-modify";
}
@RequestMapping(value = "admins/board/12-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("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<String, Object> 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<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception {
HashMap<String, Object> jsonMap = new HashMap<String, Object>();
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;
}
}