File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.mjo.cert.web;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.LoginVO;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.FileVO;
import itn.com.cmm.util.RedirectUrlMaker;
import itn.let.mjo.cert.service.CertService;
import itn.let.mjo.cert.service.CertVO;
@Controller
public class CertController {
@Resource(name = "certService")
private CertService certService;
/** EgovMessageSource */
@Resource(name="egovMessageSource")
EgovMessageSource egovMessageSource;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
/**
*
* (관리자)인증서류 목록을 조회한다. (pageing)
* /uss/ion/cert/CertSentList.do //발신번호 인증서류
* /uss/ion/cert/CertEtcList.do //기타인증 서류
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovUserManage
* @throws Exception
*/
@RequestMapping({"/uss/ion/cert/CertSentList.do", "/uss/ion/cert/CertEtcList.do"})
public String certEtcList(@ModelAttribute("searchVO") CertVO certVO,
ModelMap model,
HttpServletRequest request,
HttpSession session) throws Exception {
if(certVO.getPageUnit() != 10) {
certVO.setPageUnit(certVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(certVO.getPageIndex());
paginationInfo.setRecordCountPerPage(certVO.getPageUnit());
paginationInfo.setPageSize(certVO.getPageSize());
certVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
certVO.setLastIndex(paginationInfo.getLastRecordIndex());
certVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(certVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
certVO.setSearchSortCnd("certId");
certVO.setSearchSortOrd("desc");
}
List<CertVO> resultList = new ArrayList<CertVO>();
String pattern = (String) request.getAttribute(
HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
if(pattern.equals("/uss/ion/cert/CertSentList.do")){ //발신인증서류
certVO.setCertType("01");
}
if(pattern.equals("/uss/ion/cert/CertEtcList.do")){ //기타인증서류
certVO.setCertType("09");
}
resultList = certService.selectCertEtcList(certVO);
for(CertVO tempCertVO : resultList) { //첨부파일 id 와 확장자 추출
if(null != tempCertVO.getAtchFileIds()) {
if(tempCertVO.getAtchFileIds().contains("^")) {
//첨부파일 2개 이상 EX)FILE_000000000011221^FILE_000000000011221|test.jpg^test.PNG
if(tempCertVO.getAtchFileIds().split("\\|").length > 1) { //형식 맞을때
if((tempCertVO.getAtchFileIds().split("\\|")[0]).split("\\^").length > 1) { //형식체크
List<String> tempFileSn = new ArrayList<>();
for(int i = 0 ; i < (tempCertVO.getAtchFileIds().split("\\|")[0]).split("\\^").length ; i++){
tempFileSn.add((tempCertVO.getAtchFileIds().split("\\|")[0]).split("\\^")[i]) ;
}
List<String> tempOrignlFileNm = new ArrayList<>();
for(int i = 0 ; i < (tempCertVO.getAtchFileIds().split("\\|")[1]).split("\\^").length ; i++){
tempOrignlFileNm.add((tempCertVO.getAtchFileIds().split("\\|")[1]).split("\\^")[i].toUpperCase()) ;
}
tempCertVO.setFileSnList(tempFileSn);
tempCertVO.setOrignlFileNmList(tempOrignlFileNm);
}
}
}else { //첨부파일 하나일때
if(tempCertVO.getAtchFileIds().split("\\|").length > 1) { //형식 맞을때
List<String> tempFileSn = new ArrayList<>();
List<String> tempOrignlFileNm = new ArrayList<>();
tempFileSn.add(tempCertVO.getAtchFileIds().split("\\|")[0]);
tempOrignlFileNm.add(tempCertVO.getAtchFileIds().split("\\|")[1].toUpperCase());
tempCertVO.setFileSnList(tempFileSn);
tempCertVO.setOrignlFileNmList(tempOrignlFileNm);
}
}
}
}
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((CertVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
/*
String command = "ls -al";
shellCmd(command);
execute("ipconfig");
execute("ps ef | grep java");
*/
if(pattern.equals("/uss/ion/cert/CertSentList.do")){ //발신인증서류
return "uss/ion/cert/CertSentList";
}
return "uss/ion/cert/CertEtcList";
}
public void execute(String cmd) {
Process process = null;
Runtime runtime = Runtime.getRuntime();
StringBuffer successOutput = new StringBuffer(); // 성공 스트링 버퍼
StringBuffer errorOutput = new StringBuffer(); // 오류 스트링 버퍼
BufferedReader successBufferReader = null; // 성공 버퍼
BufferedReader errorBufferReader = null; // 오류 버퍼
String msg = null; // 메시지
List<String> cmdList = new ArrayList<String>();
// 운영체제 구분 (window, window 가 아니면 무조건 linux 로 판단)
if (System.getProperty("os.name").indexOf("Windows") > -1) {
cmdList.add("cmd");
cmdList.add("/c");
} else {
cmdList.add("/bin/sh");
cmdList.add("-c");
}
// 명령어 셋팅
cmdList.add(cmd);
String[] array = cmdList.toArray(new String[cmdList.size()]);
try {
// 명령어 실행
process = runtime.exec(array);
// shell 실행이 정상 동작했을 경우
successBufferReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "EUC-KR"));
while ((msg = successBufferReader.readLine()) != null) {
successOutput.append(msg + System.getProperty("line.separator"));
}
// shell 실행시 에러가 발생했을 경우
errorBufferReader = new BufferedReader(new InputStreamReader(process.getErrorStream(), "EUC-KR"));
while ((msg = errorBufferReader.readLine()) != null) {
errorOutput.append(msg + System.getProperty("line.separator"));
}
// 프로세스의 수행이 끝날때까지 대기
process.waitFor();
// shell 실행이 정상 종료되었을 경우
if (process.exitValue() == 0) {
System.out.println("성공");
System.out.println(successOutput.toString());
} else {
// shell 실행이 비정상 종료되었을 경우
System.out.println("비정상 종료");
System.out.println(successOutput.toString());
}
// shell 실행시 에러가 발생
if ("".equals(errorOutput.toString())) {
// shell 실행이 비정상 종료되었을 경우
System.out.println("오류");
System.out.println(successOutput.toString());
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
try {
process.destroy();
if (successBufferReader != null) successBufferReader.close();
if (errorBufferReader != null) errorBufferReader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public void shellCmd(String command) throws Exception{
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(command);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
}
/**
* 기타서류관리 등록/수정
* @param searchVO
* @param model
* @return "/uss/ion/cert/CertSentModify.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/ion/cert/CertSentModify.do" , "/uss/ion/cert/CertEtcModify.do"})
public String CashModify(
@ModelAttribute("searchVO") CertVO searchVO,
HttpServletRequest request ,
Model model) throws Exception {
String pattern = (String) request.getAttribute(
HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
List<CertVO> certFileList = new ArrayList<CertVO>();
if(pattern.equals("/uss/ion/cert/CertSentModify.do")){ //발신인증서류
searchVO.setCertEtcType("01");
}
if(pattern.equals("/uss/ion/cert/CertEtcModify.do")){ //기타인증서류
searchVO.setCertEtcType("09");
}
if(null != searchVO.getCertId() && !"".equals(searchVO.getCertId())) { //수정
certFileList = certService.selectCertFileList(searchVO);
}
model.addAttribute("certFileList", certFileList); //CertFile파일정보
List<CertVO> fileList = new ArrayList<>();
//첨부파일정보
if(certFileList !=null){
if(1==certFileList.size() && ((CertVO)certFileList.get(0)).getOrignlFileNm() == null) {
}else {
fileList.addAll(certFileList);
}
}
model.addAttribute("fileList", fileList);
model.addAttribute("searchVO", searchVO);
if(pattern.equals("/uss/ion/cert/CertSentModify.do")){ //발신번호 인증
searchVO.setCertEtcType("01");
return "/uss/ion/cert/CertSentModify";
}
return "/uss/ion/cert/CertEtcModify";
}
/*기타서류 삭제 */
@RequestMapping({"/uss/ion/cert/CertEtcDelete.do" , "/uss/ion/cert/CertSentDelete.do"})
public String deleteCertEtc(@RequestParam("del") String[] del,
RedirectAttributes redirectAttributes ,
HttpServletRequest request ,
Model model) throws Exception {
CertVO tempCertVO = new CertVO();
boolean delete = false;
List<CertVO> certFileList = new ArrayList<>();
String whFile = "";
for(String id:del) {
tempCertVO.setCertId(id);
List<FileVO> fileDelList = new ArrayList<>(); //파일테이블 삭제 조회
fileDelList = certService.selectCertDetailFileList(tempCertVO);
for(FileVO delCertFileVo : fileDelList){
whFile = delCertFileVo.getWhFile() ;
if(whFile !=null){
File delFile = new File(whFile);
delete = delFile.delete();
}
}
fileService.deleteFileInfs(fileDelList);
certService.deleteCertEtc(tempCertVO);
}
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
String pattern = (String) request.getAttribute(
HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
if(pattern.equals("/uss/ion/cert/CertSentDelete.do")){ //발신번호 인증
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/cert/CertSentList.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/cert/CertEtcList.do");
return redirectUrlMaker.getRedirectUrl();
}
}