();
+ fileList.add(file);
+
+
+ if (multipartFiles.put(fileItem.getName(), fileList) != null) { // CHANGED!!
+ throw new MultipartException("Multiple files for field name [" + file.getName()
+ + "] found - not supported by MultipartResolver");
+ }
+ if (logger.isDebugEnabled()) {
+ logger.debug("Found multipart file [" + file.getName() + "] of size " + file.getSize() + " bytes with original filename ["
+ + file.getOriginalFilename() + "], stored " + file.getStorageDescription());
+ }
+ }
+
+ }
+ }
+
+ return new MultipartParsingResult(multipartFiles, multipartParameters, null);
+ }
+}
diff --git a/src/main/java/gtpa/brs/bbsfro/service/BbsFroService.java b/src/main/java/gtpa/brs/bbsfro/service/BbsFroService.java
new file mode 100644
index 0000000..ca07f71
--- /dev/null
+++ b/src/main/java/gtpa/brs/bbsfro/service/BbsFroService.java
@@ -0,0 +1,65 @@
+package gtpa.brs.bbsfro.service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : jackt
+ * Date : 27/05/2019
+ * TIME : 9:34 AM
+ * Project : brspw
+ * Class : BbsFroService
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+public interface BbsFroService {
+ //알려드립니다
+ public List getNoticeList(Map param);
+
+ public Map getNoticeCnt(Map param);
+
+ public Map getNoticeDetail(Map param);
+
+ public Map noticeInsert(Map param);
+
+ public Map noticeUpdate(Map param);
+
+ public Map noticeDelete(Map param);
+
+ //자주찾는 질문
+ public List getQsearchList(Map param);
+
+ public Map getQsearchCnt(Map param);
+
+ public Map getQsearchDetail(Map param);
+
+ public Map qsearchInsert(Map param);
+
+ public Map qsearchUpdate(Map param);
+
+ public Map qsearchDelete(Map param);
+
+ //자료실
+ public List getFileRegistList(Map param);
+
+ public Map getFileRegistCnt(Map param);
+
+ public Map getFileRegistDetail(Map param);
+
+ public Map fileRegistInsert(Map param);
+
+ public Map fileRegistUpdate(Map param);
+
+ public Map fileRegistDelete(Map param);
+
+ //파일정보 -> 공통
+ public List getFileDetailInfo(Map param);
+
+ public Map fileDownload(Map param);
+}
+
+
+
+
diff --git a/src/main/java/gtpa/brs/bbsfro/service/impl/BbsFroMapper.java b/src/main/java/gtpa/brs/bbsfro/service/impl/BbsFroMapper.java
new file mode 100644
index 0000000..10a8c3b
--- /dev/null
+++ b/src/main/java/gtpa/brs/bbsfro/service/impl/BbsFroMapper.java
@@ -0,0 +1,154 @@
+package gtpa.brs.bbsfro.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : jackt
+ *
+ * Date : 27/05/2019
+ * TIME : 9:34 AM
+ * Project : brspw
+ * Class : BbsFroMapper
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@Repository("bbsFroDao")
+public class BbsFroMapper extends EgovAbstractMapper {
+ private String NAMESPACE = "BbsFroDao";
+
+ //알려드립니다
+ public List getNoticeList(Map param) {
+ return selectList(NAMESPACE + ".getNoticeList", param);
+ }
+
+ ;
+
+ public Map getNoticeCnt(Map param) {
+ return selectOne(NAMESPACE + ".getNoticeCnt", param);
+ }
+
+ ;
+
+ public Map getNoticeDetail(Map param) {
+ return selectOne(NAMESPACE + ".getNoticeDetail", param);
+ }
+
+ ;
+
+ public int noticeInsert(Map param) {
+ return insert(NAMESPACE + ".noticeInsert", param);
+ }
+
+ ;
+
+ public int noticeUpdate(Map param) {
+ return update(NAMESPACE + ".noticeUpdate", param);
+ }
+
+ ;
+
+ public int noticeDelete(Map param) {
+ return update(NAMESPACE + ".noticeDelete", param);
+ }
+
+ ;
+
+ //자주찾는 질문
+ public List getQsearchList(Map param) {
+ return selectList(NAMESPACE + ".getQsearchList", param);
+ }
+
+ ;
+
+ public Map getQsearchCnt(Map param) {
+ return selectOne(NAMESPACE + ".getQsearchCnt", param);
+ }
+
+ ;
+
+ public Map getQsearchDetail(Map param) {
+ return selectOne(NAMESPACE + ".getQsearchDetail", param);
+ }
+
+ ;
+
+ public int qsearchInsert(Map param) {
+ return insert(NAMESPACE + ".qsearchInsert", param);
+ }
+
+ ;
+
+ public int qsearchUpdate(Map param) {
+ return update(NAMESPACE + ".qsearchUpdate", param);
+ }
+
+ ;
+
+ public int qsearchDelete(Map param) {
+ return update(NAMESPACE + ".qsearchDelete", param);
+ }
+
+ ;
+
+ //자료실
+ public List getFileRegistList(Map param) {
+ return selectList(NAMESPACE + ".getFileRegistList", param);
+ }
+
+ ;
+
+ public Map getFileRegistCnt(Map param) {
+ return selectOne(NAMESPACE + ".getFileRegistCnt", param);
+ }
+
+ ;
+
+ public Map getFileRegistDetail(Map param) {
+ return selectOne(NAMESPACE + ".getFileRegistDetail", param);
+ }
+
+ ;
+
+ public int fileRegistInsert(Map param) {
+ return insert(NAMESPACE + ".fileRegistInsert", param);
+ }
+
+ ;
+
+ public int fileRegistUpdate(Map param) {
+ return update(NAMESPACE + ".fileRegistUpdate", param);
+ }
+
+ ;
+
+ public int fileRegistDelete(Map param) {
+ return update(NAMESPACE + ".fileRegistDelete", param);
+ }
+
+ ;
+
+ //파일정보 -> 공통
+ public List getFileDetailInfo(Map param) {
+ return selectList(NAMESPACE + ".getFileDetailInfo", param);
+ }
+
+ ;
+
+ public Map fileDownload(Map param) {
+ return selectOne(NAMESPACE + ".fileDownload", param);
+ }
+
+ ;
+
+}
+
+
+
+
diff --git a/src/main/java/gtpa/brs/bbsfro/service/impl/BbsFroServiceImpl.java b/src/main/java/gtpa/brs/bbsfro/service/impl/BbsFroServiceImpl.java
new file mode 100644
index 0000000..d56312d
--- /dev/null
+++ b/src/main/java/gtpa/brs/bbsfro/service/impl/BbsFroServiceImpl.java
@@ -0,0 +1,212 @@
+package gtpa.brs.bbsfro.service.impl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
+import javax.annotation.Resource;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.springframework.stereotype.Service;
+
+import gtpa.brs.bbsfro.service.BbsFroService;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : jackt
+ * Date : 27/05/2019
+ * TIME : 9:34 AM
+ * Project : brspw
+ * Class : BbsFroServiceImpl
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+@Service
+public class BbsFroServiceImpl implements BbsFroService {
+
+ @Resource(name = "bbsFroDao")
+ private BbsFroMapper bbsFroMapper;
+
+ //알려드립니다
+ @Override
+ public List getNoticeList(Map param) {
+ List rs = null;
+ rs = bbsFroMapper.getNoticeList(param);
+ return rs;
+ }
+
+ @Override
+ public Map getNoticeCnt(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.getNoticeCnt(param);
+ return rs;
+ }
+
+ @Override
+ public Map getNoticeDetail(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.getNoticeDetail(param);
+ return rs;
+ }
+
+ @Override
+ public Map noticeInsert(Map param) {
+ int iCnt = 0;
+ iCnt = bbsFroMapper.noticeInsert(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("ICNT", String.valueOf(iCnt));
+ return result;
+ }
+
+ @Override
+ public Map noticeUpdate(Map param) {
+ int uCnt = 0;
+ uCnt = bbsFroMapper.noticeUpdate(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("UCNT", String.valueOf(uCnt));
+ return result;
+ }
+
+ @Override
+ public Map noticeDelete(Map param) {
+ int dCnt = 0;
+ dCnt = bbsFroMapper.noticeDelete(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("DCNT", String.valueOf(dCnt));
+ return result;
+ }
+
+ //자주찾는 질문
+ @Override
+ public List getQsearchList(Map param) {
+ List rs = null;
+ rs = bbsFroMapper.getQsearchList(param);
+ return rs;
+ }
+
+ @Override
+ public Map getQsearchCnt(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.getQsearchCnt(param);
+ return rs;
+ }
+
+ @Override
+ public Map getQsearchDetail(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.getQsearchDetail(param);
+ return rs;
+ }
+
+ @Override
+ public Map qsearchInsert(Map param) {
+ int iCnt = 0;
+ iCnt = bbsFroMapper.qsearchInsert(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("ICNT", String.valueOf(iCnt));
+ return result;
+ }
+
+ @Override
+ public Map qsearchUpdate(Map param) {
+ int uCnt = 0;
+ uCnt = bbsFroMapper.qsearchUpdate(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("UCNT", String.valueOf(uCnt));
+ return result;
+ }
+
+ @Override
+ public Map qsearchDelete(Map param) {
+ int dCnt = 0;
+ dCnt = bbsFroMapper.qsearchDelete(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("DCNT", String.valueOf(dCnt));
+ return result;
+ }
+
+
+ //자료실
+ @Override
+ public List getFileRegistList(Map param) {
+ List rs = null;
+ rs = bbsFroMapper.getFileRegistList(param);
+ return rs;
+ }
+
+ @Override
+ public Map getFileRegistCnt(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.getFileRegistCnt(param);
+ return rs;
+ }
+
+ @Override
+ public Map getFileRegistDetail(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.getFileRegistDetail(param);
+ return rs;
+ }
+
+ @Override
+ public Map fileRegistInsert(Map param) {
+ int iCnt = 0;
+ iCnt = bbsFroMapper.fileRegistInsert(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("ICNT", String.valueOf(iCnt));
+ return result;
+ }
+
+ @Override
+ public Map fileRegistUpdate(Map param) {
+ int uCnt = 0;
+ uCnt = bbsFroMapper.fileRegistUpdate(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("UCNT", String.valueOf(uCnt));
+ return result;
+ }
+
+ @Override
+ public Map fileRegistDelete(Map param) {
+ int dCnt = 0;
+ dCnt = bbsFroMapper.fileRegistDelete(param);
+
+ Map result = new HashMap();
+ result.put("STATUS", "S");
+ result.put("DCNT", String.valueOf(dCnt));
+ return result;
+ }
+
+ //파일정보 -> 공통
+ @Override
+ public List getFileDetailInfo(Map param) {
+ List rs = null;
+ rs = bbsFroMapper.getFileDetailInfo(param);
+ return rs;
+ }
+
+ @Override
+ public Map fileDownload(Map param) {
+ Map rs = null;
+ rs = bbsFroMapper.fileDownload(param);
+ return rs;
+ }
+}
diff --git a/src/main/java/gtpa/brs/bbsfro/web/BbsFroController.java b/src/main/java/gtpa/brs/bbsfro/web/BbsFroController.java
new file mode 100644
index 0000000..6ec6a73
--- /dev/null
+++ b/src/main/java/gtpa/brs/bbsfro/web/BbsFroController.java
@@ -0,0 +1,331 @@
+package gtpa.brs.bbsfro.web;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+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.bind.annotation.ResponseBody;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.util.IOUtils;
+
+import gtpa.brs.bbsfro.service.BbsFroService;
+import gtpa.brs.common.web.BaseController;
+import gtpa.brs.util.Result;
+
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : jackt
+ * Date : 27/05/2019
+ * TIME : 11:30 AM
+ * Project : brspw
+ * Class : BbsFroController
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+@Controller
+public class BbsFroController extends BaseController{
+ private Logger logger = LoggerFactory.getLogger(BbsFroController.class);
+
+ @Autowired
+ BbsFroService bbsFroService;
+
+ @Resource(name = "globalsProperties")
+ private Properties env;
+
+ // 알려드립니다 목록
+ @RequestMapping(value = "/bbsfro/getNoticeList.do",method = RequestMethod.POST)
+ public @ResponseBody Map getNoticeList(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_searchParm");
+
+ result.setData("TOTAL_CNT", bbsFroService.getNoticeCnt(dbParam));
+ result.setData("dlt_resultList", bbsFroService.getNoticeList(dbParam));
+
+ logger.info("Result Data List: " + result.getResult());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ // 알려드립니다 상세
+ @RequestMapping(value = "/bbsfro/getNoticeDetail.do",method = RequestMethod.POST)
+ public @ResponseBody Map getNoticeDetail(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_param");
+ result.setData("dma_result", bbsFroService.getNoticeDetail(dbParam));
+
+ logger.info("Result Data Detail: " + result.getResult());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ // 자주찾는질문 목록
+ @RequestMapping(value = "/bbsfro/getQsearchList.do",method = RequestMethod.POST)
+ public @ResponseBody Map getQsearchList(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_searchParm");
+
+ result.setData("TOTAL_CNT", bbsFroService.getQsearchCnt(dbParam));
+ result.setData("dlt_resultList", bbsFroService.getQsearchList(dbParam));
+
+ logger.info("Result Data List: " + result.getResult());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ // 자주찾는질문 상세
+ @RequestMapping(value = "/bbsfro/getQsearchDetail.do",method = RequestMethod.POST)
+ public @ResponseBody Map getQsearchDetail(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_param");
+ result.setData("dma_result", bbsFroService.getQsearchDetail(dbParam));
+
+ logger.info("Result Data Detail: " + result.getResult());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ // 자료실 목록
+ @RequestMapping(value = "/bbsfro/getFileRegistList.do",method = RequestMethod.POST)
+ public @ResponseBody Map getFileRegistList(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_searchParm");
+
+ result.setData("TOTAL_CNT", bbsFroService.getFileRegistCnt(dbParam));
+ result.setData("dlt_resultList", bbsFroService.getFileRegistList(dbParam));
+
+ logger.info("Result Data List: " + result.getResult());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ // 자료실 상세
+ @RequestMapping(value = "/bbsfro/getFileRegistDetail.do",method = RequestMethod.POST)
+ public @ResponseBody Map getFileRegistDetail(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_param");
+ Map fileRegDetail = bbsFroService.getFileRegistDetail(dbParam);
+ result.setData("dma_result", fileRegDetail);
+
+ String fileType = StringUtils.defaultIfBlank((String)fileRegDetail.get("ATCH_FILE_TY"), "");
+ if(!"".equals(fileType)) {
+ dbParam.put("ATCH_FILE_ID",fileRegDetail.get("ATCH_FILE_ID"));
+ if("01".equals(fileType)) {
+ dbParam.put("ATCH_FILE_TY","SY");
+ }else {
+ dbParam.put("ATCH_FILE_TY","SN");
+ }
+ //dbParam.put("ATCH_FILE_TY",fileRegDetail.get("ATCH_FILE_TY"));
+ List fileList = bbsFroService.getFileDetailInfo(dbParam);
+ result.setData("dlt_orgFileList", fileList);
+ }
+
+ logger.info("Result Data Detail: " + result.getResult());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ // 게시판용 파일다운로드
+ @RequestMapping(value = "/bbs/fileDownload.do",method = RequestMethod.GET)
+ public void getFileDownload(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ logger.info("====#####== POST fileDownload =======");
+ // fileId를 이용해서 DB에서 serverFileName, localFileName과 fileDir를 가져와야 한다.
+ String fileId = request.getParameter("fileId");
+ String atchFileTy = request.getParameter("atchFileTy");
+ String fileSeq = request.getParameter("fileSeq");
+ Map param = new HashMap();
+ param.put("ATCH_FILE_ID", fileId);
+ param.put("ATCH_FILE_TY", atchFileTy);
+ if (fileSeq == null) fileSeq = "0";
+ param.put("FILE_SEQ_NO", fileSeq);
+ Map fileInfo = bbsFroService.fileDownload(param);
+ logger.info("fileInfo::" + fileInfo);
+
+ String browser = getBrowser(request);
+ logger.info("browser::" + browser);
+ if (fileInfo != null) {
+ String serverFileName = (String) fileInfo.get("STRE_FILE_NM");
+ String localFileName = (String) fileInfo.get("ORGINL_FILE_NM");
+ String fileDir = (String) fileInfo.get("FILE_STRE_PATH_NM");
+ String encodedFilename = null;
+
+ if (browser.equals("MSIE")) {
+ encodedFilename = URLEncoder.encode(localFileName, "UTF-8").replaceAll("\\+", "%20");
+ } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
+ encodedFilename = URLEncoder.encode(localFileName, "UTF-8").replaceAll("\\+", "%20");
+ } else if (browser.equals("Firefox")) {
+ encodedFilename = "\"" + new String(localFileName.getBytes("UTF-8"), "8859_1") + "\"";
+ } else if (browser.equals("Opera")) {
+ encodedFilename = "\"" + new String(localFileName.getBytes("UTF-8"), "8859_1") + "\"";
+ } else if (browser.equals("Chrome")) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < localFileName.length(); i++) {
+ char c = localFileName.charAt(i);
+ if (c > '~') {
+ sb.append(URLEncoder.encode("" + c, "UTF-8"));
+ } else {
+ sb.append(c);
+ }
+ }
+ encodedFilename = sb.toString();
+ }
+
+ Path file = Paths.get(fileDir, serverFileName);
+
+ if (Files.exists(file)) {
+ response.setContentType("application/octet-stream;");
+ response.addHeader("Content-Disposition", "attachment; filename=" + encodedFilename);
+ try {
+ logger.info("file::" + file);
+ Files.copy(file, response.getOutputStream());
+ response.getOutputStream().flush();
+ } catch (IOException ex) {
+ logger.error("[process error::"+"ex.getMessage()" + "]",ex);
+ }
+ } else {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+ response.getWriter().print("");
+ }
+ } else {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+ response.getWriter().print("");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::"+ "" + "]",e);
+ }
+ }
+
+
+ /**
+ * 브라우저 구분 얻기.
+ *
+ * @param request
+ * @return
+ */
+ private String getBrowser(HttpServletRequest request) {
+ String header = request.getHeader("User-Agent");
+ if (header.indexOf("MSIE") > -1) {
+ return "MSIE";
+ } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
+ return "Trident";
+ } else if (header.indexOf("Chrome") > -1) {
+ return "Chrome";
+ } else if (header.indexOf("Opera") > -1) {
+ return "Opera";
+ }
+ return "Firefox";
+ }
+
+}
diff --git a/src/main/java/gtpa/brs/common/service/CommonService.java b/src/main/java/gtpa/brs/common/service/CommonService.java
new file mode 100644
index 0000000..5fb30d6
--- /dev/null
+++ b/src/main/java/gtpa/brs/common/service/CommonService.java
@@ -0,0 +1,28 @@
+package gtpa.brs.common.service;
+
+import java.sql.SQLException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 23/04/2019
+ * TIME : 1:30 PM
+ * Project : BRSPW
+ * Class : CommonService
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+public interface CommonService {
+ List getCommonCode();
+
+ List getCommonCode(Map param);
+
+ Map fileDownload(Map param);
+
+ List exsistNoticePopups() throws SQLException;
+
+ Map exsistNoticePopup(Map param) throws SQLException;
+}
diff --git a/src/main/java/gtpa/brs/common/service/impl/CommonMapper.java b/src/main/java/gtpa/brs/common/service/impl/CommonMapper.java
new file mode 100644
index 0000000..bfa9183
--- /dev/null
+++ b/src/main/java/gtpa/brs/common/service/impl/CommonMapper.java
@@ -0,0 +1,44 @@
+package gtpa.brs.common.service.impl;
+
+import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
+import org.springframework.stereotype.Repository;
+
+import java.sql.SQLException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 23/04/2019
+ * TIME : 1:33 PM
+ * Project : BRSPW
+ * Class : CommonMapper
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@Repository("commonDao")
+public class CommonMapper extends EgovAbstractMapper {
+ private String NAMESPACE = "CommonDAO";
+
+ public List getCommonCode() {
+ return selectList(NAMESPACE + ".getAllCommonCode");
+ }
+
+ public List getCommonCode(Map param) {
+ return selectList(NAMESPACE + ".getCommonCode", param);
+ }
+
+ public Map fileDownload(Map param) {
+ return selectOne(NAMESPACE + ".fileDownload", param);
+ }
+
+ public List exsistNoticePopups() throws SQLException {
+ return selectList(NAMESPACE + ".exsistNoticePopups");
+ }
+
+ public Map exsistNoticePopup(Map param) throws SQLException {
+ return selectOne(NAMESPACE + ".exsistNoticePopup", param);
+ }
+}
diff --git a/src/main/java/gtpa/brs/common/service/impl/CommonServiceImpl.java b/src/main/java/gtpa/brs/common/service/impl/CommonServiceImpl.java
new file mode 100644
index 0000000..8f64fd9
--- /dev/null
+++ b/src/main/java/gtpa/brs/common/service/impl/CommonServiceImpl.java
@@ -0,0 +1,53 @@
+package gtpa.brs.common.service.impl;
+
+import gtpa.brs.common.service.CommonService;
+import gtpa.brs.common.service.impl.CommonMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.sql.SQLException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 23/04/2019
+ * TIME : 1:32 PM
+ * Project : BRSPW
+ * Class : CommonServiceImpl
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@Service("commonService")
+public class CommonServiceImpl implements CommonService {
+
+ @Resource(name = "commonDao")
+ CommonMapper commonMapper;
+
+ @Override
+ public List getCommonCode() {
+ return commonMapper.getCommonCode();
+ }
+
+ @Override
+ public List getCommonCode(Map param) {
+ return commonMapper.getCommonCode(param);
+ }
+
+ @Override
+ public Map fileDownload(Map param) {
+ return commonMapper.fileDownload(param);
+ }
+
+ @Override
+ public List exsistNoticePopups() throws SQLException {
+ return commonMapper.exsistNoticePopups();
+ }
+
+ @Override
+ public Map exsistNoticePopup(Map param) throws SQLException{
+ return commonMapper.exsistNoticePopup(param);
+ }
+}
diff --git a/src/main/java/gtpa/brs/common/web/BaseController.java b/src/main/java/gtpa/brs/common/web/BaseController.java
new file mode 100644
index 0000000..872804d
--- /dev/null
+++ b/src/main/java/gtpa/brs/common/web/BaseController.java
@@ -0,0 +1,30 @@
+package gtpa.brs.common.web;
+
+import java.util.Enumeration;
+import javax.servlet.http.HttpServletRequest;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.MessageSource;
+
+@SuppressFBWarnings
+public class BaseController {
+
+ private Logger logger = LoggerFactory.getLogger(BaseController.class);
+
+ @Autowired
+ protected MessageSource messageSource;
+
+ public void printRequest(HttpServletRequest pReq) {
+
+ Enumeration> eParam = pReq.getParameterNames();
+ while (eParam.hasMoreElements()) {
+ String pName = (String) eParam.nextElement();
+ String pValue = pReq.getParameter(pName);
+
+ logger.info("#### RequestParamMap = " + pName + " : " + pValue);
+ }
+ }
+}
diff --git a/src/main/java/gtpa/brs/common/web/CommonController.java b/src/main/java/gtpa/brs/common/web/CommonController.java
new file mode 100644
index 0000000..8a86b0f
--- /dev/null
+++ b/src/main/java/gtpa/brs/common/web/CommonController.java
@@ -0,0 +1,333 @@
+package gtpa.brs.common.web;
+
+import gtpa.brs.common.service.CommonService;
+import gtpa.brs.util.Result;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.io.*;
+import java.net.URLEncoder;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.*;
+
+import javax.activation.MimetypesFileTypeMap;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 23/04/2019
+ * TIME : 1:30 PM
+ * Project : BRSPW
+ * Class : CommonController
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+@Controller
+public class CommonController {
+
+ private Logger logger = LoggerFactory.getLogger(CommonController.class);
+ /**
+ * The Common service.
+ */
+ @Autowired
+ CommonService commonService;
+
+ @Resource(name = "globalsProperties")
+ private Properties env;
+
+ /**
+ * Get common code result.
+ *
+ * @return the result
+ */
+ @RequestMapping(value = "/common/getCommonCode.do", method = RequestMethod.GET)
+ public @ResponseBody
+ Result getCommonCode() {
+ Result result = new Result();
+ List codeList = new ArrayList<>();
+ try {
+ codeList = commonService.getCommonCode();
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ } finally {
+ result.setData("code", codeList);
+ }
+ return result;
+ }
+
+ /**
+ * Get common code result.
+ *
+ * @param param the param
+ * @return the result
+ */
+ @RequestMapping(value = "/common/getCommonCode.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Result getCommonCode(@RequestBody Map param) {
+ Result result = new Result();
+ List codeList = new ArrayList<>();
+ Map params = (Map) param.get("param");
+ try {
+ codeList = commonService.getCommonCode(params);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ } finally {
+ result.setData("code", codeList);
+ }
+ return result;
+ }
+
+ @RequestMapping(value = "/fileDownload.do", method = RequestMethod.GET)
+ public void getFileDownload(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ try {
+ // fileId를 이용해서 DB에서 serverFileName, localFileName과 fileDir를 가져와야 한다.
+ String fileId = request.getParameter("fileId");
+ String atchFileTy = request.getParameter("atchFileTy");
+ String fileSeq = request.getParameter("fileSeq");
+ Map param = new HashMap();
+ param.put("ATCH_FILE_ID", fileId);
+ param.put("ATCH_FILE_TY", atchFileTy);
+ if (fileSeq == null) fileSeq = "0";
+ param.put("FILE_SEQ_NO", fileSeq);
+ Map fileInfo = commonService.fileDownload(param);
+
+ String browser = getBrowser(request);
+ logger.info("browser::" + browser);
+ if (fileInfo != null) {
+ String serverFileName = (String) fileInfo.get("STRE_FILE_NM");
+ String localFileName = (String) fileInfo.get("ORGINL_FILE_NM");
+ String fileDir = (String) fileInfo.get("FILE_STRE_PATH_NM");
+ String encodedFilename = null;
+
+ if (browser.equals("MSIE")) {
+ encodedFilename = URLEncoder.encode(localFileName, "UTF-8").replaceAll("\\+", "%20");
+ } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
+ encodedFilename = URLEncoder.encode(localFileName, "UTF-8").replaceAll("\\+", "%20");
+ } else if (browser.equals("Firefox")) {
+ encodedFilename = "\"" + new String(localFileName.getBytes("UTF-8"), "8859_1") + "\"";
+ } else if (browser.equals("Opera")) {
+ encodedFilename = "\"" + new String(localFileName.getBytes("UTF-8"), "8859_1") + "\"";
+ } else if (browser.equals("Chrome")) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < localFileName.length(); i++) {
+ char c = localFileName.charAt(i);
+ if (c > '~') {
+ sb.append(URLEncoder.encode("" + c, "UTF-8"));
+ } else {
+ sb.append(c);
+ }
+ }
+ encodedFilename = sb.toString();
+ }
+
+ Path file = Paths.get(fileDir, serverFileName);
+
+ if (Files.exists(file)) {
+ response.setContentType("application/octet-stream;");
+ response.addHeader("Content-Disposition", "attachment; filename=" + encodedFilename);
+ try {
+ Files.copy(file, response.getOutputStream());
+ response.getOutputStream().flush();
+ } catch (IOException ex) {
+ logger.error("[process error::" + "ex.getMessage()" + "]", ex);
+ }
+ } else {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+ response.getWriter().print("");
+ }
+ } else {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+ response.getWriter().print("");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ @RequestMapping(value = "/fileDownloadTmp.do", method = RequestMethod.GET)
+ public void getFileDownloadTmp(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ try {
+ // fileId를 이용해서 DB에서 serverFileName, localFileName과 fileDir를 가져와야 한다.
+ String fileId = request.getParameter("fileId");
+ String atchFileTy = request.getParameter("atchFileTy");
+ String fileSeq = request.getParameter("fileSeq");
+ Map param = new HashMap();
+ param.put("ATCH_FILE_ID", fileId);
+ param.put("ATCH_FILE_TY", atchFileTy);
+ if (fileSeq == null) fileSeq = "0";
+ param.put("FILE_SEQ_NO", fileSeq);
+ Map fileInfo = commonService.fileDownload(param);
+ if (fileInfo != null) {
+ String serverFileName = (String) fileInfo.get("STRE_FILE_NM");
+ String localFileName = (String) fileInfo.get("ORGINL_FILE_NM");
+ String fileDir = (String) fileInfo.get("FILE_STRE_PATH_NM");
+
+ Path file = Paths.get(fileDir, serverFileName);
+
+ if (Files.exists(file)) {
+ response.setContentType("application/octet-stream;");
+ response.addHeader("Content-Disposition", "attachment; filename=" + localFileName);
+ try {
+ Files.copy(file, response.getOutputStream());
+ response.getOutputStream().flush();
+ } catch (IOException ex) {
+ logger.error("[process error::" + "ex.getMessage()" + "]", ex);
+ }
+ } else {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+ response.getWriter().print("");
+ }
+ } else {
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+ response.getWriter().print("");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ @RequestMapping(value = "/common/imageView.do", method = RequestMethod.GET, produces = {MediaType.IMAGE_PNG_VALUE, MediaType.IMAGE_GIF_VALUE, MediaType.IMAGE_JPEG_VALUE})
+ public @ResponseBody
+ ResponseEntity getImage(@RequestParam("fileName") String fileName) throws IOException {
+ InputStream inputStream = null;
+ HttpHeaders responseHeaders = new HttpHeaders();
+ byte[] out = new byte[0];
+ try {
+ if (fileName == null || "".equals(fileName)) {
+ logger.error("fileName null ::" + fileName);
+ return ResponseEntity.badRequest().contentLength(0).build();
+ } else {
+ fileName = fileName.replaceAll("\\\\", "");
+ fileName = fileName.replaceAll("\\.\\.", "");
+ }
+ String extension = FilenameUtils.getExtension(fileName);
+ String path = FilenameUtils.getPrefix(fileName) + FilenameUtils.getPath(fileName);
+ String name = FilenameUtils.getBaseName(fileName);
+
+ File file = new File(path, name + "." + extension);
+ //File file = new File("/"+FilenameUtils.getPath(fileName),FilenameUtils.getName(fileName)); //Fix
+ //File file = new File(env.getProperty("Globals.FilePath"),FilenameUtils.getName(fileName)); //Fix
+ if (file.exists()) {
+ inputStream = new FileInputStream(path + name + "." + extension);
+ MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap();
+ String type = mimeTypesMap.getContentType(file);
+ out = IOUtils.toByteArray(inputStream);
+ responseHeaders.add("Content-Type", type);
+
+ } else {
+ logger.error("file not exsist ::" + fileName);
+ return ResponseEntity.ok().contentLength(0).build();
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ return ResponseEntity.notFound().build();
+ } catch (Exception e) {
+ logger.error("Exception ::" + fileName);
+ return ResponseEntity.notFound().build();
+ } finally {
+ try {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ } catch (IOException io) {
+ logger.warn("inputStream close error");
+ }
+ return new ResponseEntity(out, responseHeaders, HttpStatus.OK);
+ }
+ }
+
+ /**
+ * 브라우저 구분 얻기.
+ *
+ * @param request
+ * @return
+ */
+ private String getBrowser(HttpServletRequest request) {
+ String header = request.getHeader("User-Agent");
+ if (header.indexOf("MSIE") > -1) {
+ return "MSIE";
+ } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
+ return "Trident";
+ } else if (header.indexOf("Chrome") > -1) {
+ return "Chrome";
+ } else if (header.indexOf("Opera") > -1) {
+ return "Opera";
+ }
+ return "Firefox";
+ }
+
+ @RequestMapping(value = "/common/exsistNoticePopup.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map exsistNoticePopup(@RequestBody Map param) {
+ Result result = new Result();
+ Map params = (Map) param.get("param");
+ try {
+ if (params != null && params.get("NOTICE_SEQ_NO") != null) {
+ Map popup = commonService.exsistNoticePopup(params);
+ if (popup != null) {
+ result.setData("popup", popup);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCCESS_NODATA, result.STATUS_SUCCESS_NODATA_MESSAGE);
+ }
+ } else {
+ List popupList = commonService.exsistNoticePopups();
+ if (popupList.size() > 0) {
+ result.setData("popup", popupList);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCCESS_NODATA, result.STATUS_SUCCESS_NODATA_MESSAGE);
+ }
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ return result.getResult();
+ }
+
+ @GetMapping(value = "/common/moviePopup.do")
+ public ModelAndView moviePopup (HttpServletRequest request, HttpServletResponse response) {
+ String movieUrl = request.getParameter("movieUrl");
+ if(movieUrl == null || movieUrl.equals("")){
+ movieUrl = "none";
+ }
+ ModelAndView mv = new ModelAndView();
+ mv.setViewName("popup/moviePopup");
+ mv.addObject("movieUrl", movieUrl);
+ return mv;
+ }
+}
diff --git a/src/main/java/gtpa/brs/fee/service/FeeService.java b/src/main/java/gtpa/brs/fee/service/FeeService.java
new file mode 100644
index 0000000..3daa90b
--- /dev/null
+++ b/src/main/java/gtpa/brs/fee/service/FeeService.java
@@ -0,0 +1,204 @@
+package gtpa.brs.fee.service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The interface Fee service.
+ */
+public interface FeeService {
+ /**
+ * Gets fee list.
+ *
+ * @param param the param
+ * @return the fee list
+ */
+ Map getFeeList(Map param);
+
+ /**
+ * Gets park fee list.
+ *
+ * @param param the param
+ * @return the park fee list
+ */
+ Map getParkFeeList(Map param);
+
+ /**
+ * Gets fees info.
+ *
+ * @param param the param
+ * @return the fees info
+ */
+ Map getFeesInfo(Map param);
+
+ /**
+ * Gets complaints list.
+ *
+ * @param param the param
+ * @return the complaints list
+ */
+ Map getComplaintsList(Map param);
+
+ /**
+ * Gets complaint info.
+ *
+ * @param param the param
+ * @return the complaint info
+ */
+ Map getComplaintInfo(Map param);
+
+ /**
+ * Gets complaint file info.
+ *
+ * @param param the param
+ * @return the complaint file info
+ */
+ List getComplaintFileInfo(Map param);
+
+ /**
+ * Is exsist complaint info map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ Map isExsistComplaintInfo(Map param);
+
+ /**
+ * Submit a complaint map.
+ *
+ * @param complaintInfo the complaint info
+ * @param files the files
+ * @return the map
+ */
+ Map submitAComplaint(Map complaintInfo, List files);
+
+ /**
+ * Cancle a complaint map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ Map cancleAComplaint(Map param);
+
+ /**
+ * Submit a complaint reply map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ Map submitAComplaintReply(Map param);
+
+ /**
+ * Pay a fee map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ Map payAFee(Map param);
+
+ /**
+ * Modify a complaint map.
+ *
+ * @param complaintInfo the complaint info
+ * @param files the files
+ * @return the map
+ */
+ Map modifyAComplaint(Map complaintInfo, List files);
+
+ /**
+ * Modify a complaint file delete map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ Map modifyAComplaintFileDelete(Map param);
+
+ /**
+ * Modify a complaint file insert map.
+ *
+ * @param files the files
+ * @param param the param
+ * @return the map
+ */
+ Map modifyAComplaintFileInsert(List files, Map param);
+
+ /**
+ * Gets refnd list.
+ *
+ * @param param the param
+ * @return the refnd list
+ */
+ Map getRefndList(Map param);
+
+ /**
+ * Gets refnd cnt.
+ *
+ * @param param the param
+ * @return the refnd cnt
+ */
+ public Map getRefndCnt(Map param);
+
+ /**
+ * Gets refnd detail.
+ *
+ * @param param the param
+ * @return the refnd detail
+ */
+ public Map getRefndDetail(Map param);
+
+ /**
+ * Refnd insert map.
+ *
+ * @param param1 the param 1
+ * @param param2 the param 2
+ * @return the map
+ */
+ public Map refndInsert(Map param1, Map param2);
+
+ /**
+ * Refnd update map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ public Map refndUpdate(Map param);
+
+ /**
+ * Privach check api map.
+ *
+ * @param param the param
+ * @param files the files
+ * @return the map
+ */
+ public Map privachCheckApi(Map param, List files);
+
+ /**
+ * Refund privach check api map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ public Map refundPrivachCheckApi(Map param);
+
+
+ /**
+ * Gets recipt list.
+ *
+ * @param param the param
+ * @return the recipt list
+ */
+ Map getReciptList(Map param);
+
+ Map getJmpTunnelFees(Map params);
+
+ Map getYdpParkFees(Map params);
+
+ Map getJgParkFees(Map params);
+
+ Map getSbgRoadFees(Map params);
+
+ Map getScgParkFees(Map params);
+
+ List getFeeData(Map dbParam);
+}
diff --git a/src/main/java/gtpa/brs/fee/service/impl/FeeMapper.java b/src/main/java/gtpa/brs/fee/service/impl/FeeMapper.java
new file mode 100644
index 0000000..07c6122
--- /dev/null
+++ b/src/main/java/gtpa/brs/fee/service/impl/FeeMapper.java
@@ -0,0 +1,131 @@
+package gtpa.brs.fee.service.impl;
+
+import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 20/05/2019
+ * TIME : 5:49 PM
+ * Project : BRSPW
+ * Class : FeeMapper
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@Repository("feeDao")
+public class FeeMapper extends EgovAbstractMapper {
+ private String NAMESPACE = "FeeDAO";
+
+
+ public List getComplaintsList(Map param) {
+ return selectList(NAMESPACE + ".getComplaintsList", param);
+ }
+
+ public Map getComplaintInfo(Map param) {
+ return selectOne(NAMESPACE + ".getComplaintInfo", param);
+ }
+
+ public List getComplaintFileInfo(Map param) {
+ return selectList(NAMESPACE + ".getComplaintFileInfo", param);
+ }
+
+
+ public Map isExsistComplaintInfo(Map param) {
+ return selectOne(NAMESPACE + ".isExsistComplaintInfo", param);
+ }
+
+ public void submitAComplaintInfo(Map param) {
+ insert(NAMESPACE + ".submitAComplaintInfo", param);
+ }
+
+ public void submitAComplaintDetail(Map param) {
+ insert(NAMESPACE + ".submitAComplaintDetail", param);
+ }
+
+ public void submitAComplaintFile(List files) {
+ insert(NAMESPACE + ".submitAComplaintFile", files.get(0));
+ }
+
+ public void submitAComplaintFileMap(Map param) {
+ insert(NAMESPACE + ".submitAComplaintFile", param);
+ }
+
+ public void submitAComplaintFileDetail(List files) {
+ insert(NAMESPACE + ".submitAComplaintFileDetail", files);
+ }
+
+ public void modifyAComplaintInfo(Map param) {
+ update(NAMESPACE + ".modifyAComplaintInfo", param);
+ }
+
+ public void modifyAComplaintDetail(Map param) {
+ update(NAMESPACE + ".modifyAComplaintDetail", param);
+ }
+
+ public void modifyAComplaintFile(Map param) {
+ update(NAMESPACE + ".modifyAComplaintFile", param);
+ }
+
+ public void modifyAComplaintFileDetail(Map param) {
+ update(NAMESPACE + ".modifyAComplaintFileDetail", param);
+ }
+
+ public void cancleAComplaintInfo(Map param) {
+ update(NAMESPACE + ".cancleAComplaintInfo", param);
+ }
+
+ public void cancleAComplaintDetail(Map param) {
+ update(NAMESPACE + ".cancleAComplaintDetail", param);
+ }
+
+ public void submitAComplaintReply(Map param) {
+ insert(NAMESPACE + ".submitAComplaintReply", param);
+ }
+
+ //환불정보
+ public List getRefndList(Map param) {
+ return selectList(NAMESPACE + ".getRefndList", param);
+ }
+
+
+ public Map getRefndCnt(Map param) {
+ return selectOne(NAMESPACE + ".getRefndCnt", param);
+ }
+
+
+ public Map getRefndDetail(Map param) {
+ return selectOne(NAMESPACE + ".getNoticeDetail", param);
+ }
+
+
+ public int refndUpdate(Map param) {
+ return update(NAMESPACE + ".refndUpdate", param);
+ }
+
+ public int atchfileInfoDelete(String fileId) {
+ return update(NAMESPACE + ".atchfileInfoDelete", fileId);
+ }
+
+ public int atchfileInfoInsert(String fileId) {
+ return insert(NAMESPACE + ".atchfileInfoInsert", fileId);
+ }
+
+ public int atchfileDetailInfoDelete(String fileId) {
+ return update(NAMESPACE + ".atchfileDetailInfoDelete", fileId);
+ }
+
+ public int atchfileDetailInfoInsert(Map param) {
+ return insert(NAMESPACE + ".atchfileDetailInfoInsert", param);
+ }
+
+ public List getFeeData(Map dbParam) {
+ return selectList(NAMESPACE + ".getFeeData", dbParam);
+ }
+
+}
diff --git a/src/main/java/gtpa/brs/fee/service/impl/FeeServiceImpl.java b/src/main/java/gtpa/brs/fee/service/impl/FeeServiceImpl.java
new file mode 100644
index 0000000..cc69db5
--- /dev/null
+++ b/src/main/java/gtpa/brs/fee/service/impl/FeeServiceImpl.java
@@ -0,0 +1,2956 @@
+package gtpa.brs.fee.service.impl;
+
+import java.io.File;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import gtpa.brs.util.CommonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import gtpa.brs.fee.service.FeeService;
+import gtpa.brs.payment.service.PreRegistPaymentService;
+import gtpa.brs.user.dto.UserInfo;
+import gtpa.brs.util.BrsIdGnrUtil;
+import gtpa.brs.util.Http;
+import gtpa.brs.util.Result;
+import gtpa.brs.vehicle.service.VehicleService;
+
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 17/05/2019
+ * TIME : 5:27 PM
+ * Project : BRSPW
+ * Class : FeeServiceImpl
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+@Service("FeeService")
+public class FeeServiceImpl implements FeeService {
+
+ Logger logger = LoggerFactory.getLogger(FeeServiceImpl.class);
+ /**
+ * The Fee mapper.
+ */
+ @Resource(name = "feeDao")
+ FeeMapper feeMapper;
+
+ /**
+ * The Pre regist payment service.
+ */
+ @Autowired
+ PreRegistPaymentService preRegistPaymentService;
+
+ /**
+ * The User info.
+ */
+ @Autowired
+ UserInfo userInfo;
+
+ /**
+ * The Vehicle service.
+ */
+ @Autowired
+ VehicleService vehicleService;
+
+ @Resource(name = "fileGenIDService")
+ BrsIdGnrUtil fileGenIDService;
+
+ @Resource(name = "globalsProperties")
+ Properties env;
+
+ /*@Autowired
+ HttpClient httpClient;*/
+
+ @Override
+ public Map getFeeList(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.rntFeeInfo");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) param.get("startDate");
+ String endDt = (String) param.get("endDate");
+ String vhcleNo = (String) param.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestRntFeeInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getParkFeeList(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.recvPassThroughList");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) param.get("startDate");
+ String endDt = (String) param.get("endDate");
+ String vhcleNo = (String) param.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestParkFeeInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getJmpTunnelFees(Map params) {
+ Map result;
+ String url = env.getProperty("Globals.jmpTunnel.getFeesList");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) params.get("startDate");
+ String endDt = (String) params.get("endDate");
+ String vhcleNo = (String) params.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestJmpFeeInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getYdpParkFees(Map params) {
+ Map result;
+ String url = env.getProperty("Globals.ydpPark.getFeesList");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) params.get("startDate");
+ String endDt = (String) params.get("endDate");
+ String vhcleNo = (String) params.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestYdpParkInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getJgParkFees(Map params) {
+ Map result;
+ String url = env.getProperty("Globals.jgPark.getFeesList");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) params.get("startDate");
+ String endDt = (String) params.get("endDate");
+ String vhcleNo = (String) params.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestJgParkInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getScgParkFees(Map params) {
+ Map result;
+ String url = env.getProperty("Globals.scgPark.getFeesList");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) params.get("startDate");
+ String endDt = (String) params.get("endDate");
+ String vhcleNo = (String) params.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestScgParkInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getSbgRoadFees(Map params) {
+ Map result;
+ String url = env.getProperty("Globals.sbgRoad.getFeesList");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) params.get("startDate");
+ String endDt = (String) params.get("endDate");
+ String vhcleNo = (String) params.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestSbgRoadInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getFeesInfo(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.rntFeeInfo");
+ String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+ String startDt = (String) param.get("startDate");
+ String endDt = (String) param.get("endDate");
+ String vhcleNo = (String) param.get("vhcleNum");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNo);
+
+ logger.info("reqData::" + reqData);
+ result = requestRntFeeInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getComplaintsList(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.getDefaultCivilAcceptList");
+ String startDt = (String) param.get("startDate");
+ String endDt = (String) param.get("endDate");
+ String vhcleNum = (String) param.get("vhcleNum");
+ String status = (String) param.get("status");
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("vhcleNum", vhcleNum);
+ reqData.put("status", status);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("reqData::" + reqData);
+ result = getDefaultCivilAcceptList(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getComplaintInfo(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.getDefaultCivilAcceptDetail");
+ String insttNo = (String) param.get("insttNo");
+ String insttDelngNo = String.valueOf(param.get("insttDelngNo"));
+ String civilNo = String.valueOf(param.get("civilNo"));
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", insttNo);
+ reqData.put("insttCntcJobSe", "");
+ reqData.put("insttDelngNo", insttDelngNo);
+ reqData.put("civilNo", civilNo);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("reqData::" + reqData);
+ result = getDefaultCivilAcceptDetail(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public List getComplaintFileInfo(Map param) {
+ List fileList = feeMapper.getComplaintFileInfo(param);
+ return fileList;
+ }
+
+ @Override
+ public Map isExsistComplaintInfo(Map param) {
+ Map complaintInfo = feeMapper.isExsistComplaintInfo(param);
+ return complaintInfo;
+ }
+
+ @Override
+ //@Transactional(propagation = Propagation.REQUIRED) //이메소드를 트랜잭션처리
+ public Map submitAComplaint(Map param, List files) {
+ Map result;
+ Map filesMap = null;
+ for (String key : param.keySet()) {
+ param.put(key, CommonUtil.cleanCode(param.get(key) == null ? "" : param.get(key).toString()));
+ }
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.setDefaultCivilAccept");
+ String insttNo = (String) param.get("insttNo");
+ String insttCntcJobSe = (String) param.get("insttCntcJobSe");
+ String insttDelngNo = String.valueOf(param.get("insttDelngNo"));
+ String vhcleNum = (String) param.get("vhcleNum");
+ String civilTitle = (String) param.get("civilTitle");
+ String civilContents = (String) param.get("civilContents");
+ String passAmount = String.valueOf(param.get("passAmount"));
+ String addFile1 = "";
+ String addFile2 = "";
+ String addFile3 = "";
+ String fileId = "";
+
+ if (files != null && files.size() > 0) {
+ fileId = fileGenIDService.makeGnrID();
+ int idx = 1;
+ for (Object file : files) {
+ // API 호출용
+ if (filesMap == null) filesMap = new HashMap();
+ //int idx = files.indexOf(file);
+ filesMap.put("addFile" + idx, file);
+ idx++;
+ }
+ if (filesMap != null && filesMap.get("addFile1") != null) {
+ Map addFile1Info = (HashMap) filesMap.get("addFile1");
+ addFile1 = addFile1Info.get("serverFilePath") + "/" + addFile1Info.get("serverFileName");
+ //addFile1 = fileId;
+ }
+ if (filesMap != null && filesMap.get("addFile2") != null) {
+ Map addFile2Info = (HashMap) filesMap.get("addFile2");
+ addFile2 = addFile2Info.get("serverFilePath") + "/" + addFile2Info.get("serverFileName");
+ //addFile2 = fileId;
+ }
+ if (filesMap != null && filesMap.get("addFile3") != null) {
+ Map addFile3Info = (HashMap) filesMap.get("addFile3");
+ addFile3 = addFile3Info.get("serverFilePath") + "/" + addFile3Info.get("serverFileName");
+ //addFile3 = fileId;
+ }
+ }
+
+ Map reqData = new LinkedHashMap();
+ //reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttNo", insttNo);
+ reqData.put("insttCntcJobSe", insttCntcJobSe);
+ reqData.put("insttDelngNo", insttDelngNo);
+ reqData.put("vhcleNum", vhcleNum);
+ reqData.put("civilTitle", civilTitle);
+ reqData.put("civilContents", civilContents);
+ reqData.put("addFile1", addFile1);
+ reqData.put("addFile2", addFile2);
+ reqData.put("addFile3", addFile3);
+ reqData.put("passAmount", passAmount);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("reqData::" + reqData);
+ result = setDefaultCivilAccept(url, reqData);
+ logger.info("result::" + result);
+ /*if (result.get("rspnsResult").equals("S")) {
+ if (files != null && files.size() > 0) {
+ int fileSeq = 0;
+ for (Object file : files) {
+ // 대민 파일정보 DB저장용
+ Map fileInfo = (Map) file;
+ fileInfo.put("fileId", fileId);
+ fileInfo.put("fileSeq", fileSeq);
+ fileInfo.put("atchFileTy", "03");
+ String fileNm = fileInfo.get("localFileName").toString();
+ int pos = fileNm.lastIndexOf(".");
+ String ext = fileNm.substring(pos + 1);
+ fileInfo.put("fileExtsnNm", ext);
+
+ if (fileSeq == 0) {
+ feeMapper.submitAComplaintFileMap(fileInfo);
+ }
+ fileSeq++;
+ }
+
+ if (files.size() > 0) {
+ feeMapper.submitAComplaintFileDetail(files);
+ }
+ }
+ }*/
+
+ return result;
+ }
+
+ @Override
+ //@Transactional(propagation = Propagation.REQUIRED) //이메소드를 트랜잭션처리
+ public Map modifyAComplaint(Map param, List files) {
+ Map resultMap = null;
+ //try {
+ Map filesMap = null;
+ for (String key : param.keySet()) {
+ param.put(key, CommonUtil.cleanCode(param.get(key) == null ? "" : param.get(key).toString()));
+ }
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.setUpdateDefaultCivilAccept");
+ String insttNo = (String) param.get("insttNo");
+ String insttCntcJobSe = (String) param.get("insttCntcJobSe");
+ String insttDelngNo = String.valueOf(param.get("insttDelngNo"));
+ String vhcleNum = (String) param.get("vhcleNum");
+ String civilNo = String.valueOf(param.get("civilNo"));
+ String civilTitle = (String) param.get("civilTitle");
+ String civilContents = (String) param.get("civilContents");
+ String passAmount = String.valueOf(param.get("passAmount"));
+ String addFile1 = "";
+ String addFile2 = "";
+ String addFile3 = "";
+ String fileId = "";
+ String fileIdNew = "";
+
+ if (files != null && files.size() > 0) {
+ int idx = 1;
+ for (Object file : files) {
+ // API 호출용
+ if (filesMap == null) filesMap = new HashMap();
+ filesMap.put("addFile" + idx, file);
+ idx++;
+ }
+
+ fileId = param.get("addFile1").toString();
+ fileIdNew = fileGenIDService.makeGnrID();
+ if (filesMap != null && filesMap.get("addFile1") != null) {
+ Map addFile1Info = (HashMap) filesMap.get("addFile1");
+ addFile1 = addFile1Info.get("serverFilePath") + "/" + addFile1Info.get("serverFileName");
+ //addFile1 = fileId;
+ }
+ if (filesMap != null && filesMap.get("addFile2") != null) {
+ Map addFile2Info = (HashMap) filesMap.get("addFile2");
+ addFile2 = addFile2Info.get("serverFilePath") + "/" + addFile2Info.get("serverFileName");
+ //addFile2 = fileId;
+ }
+ if (filesMap != null && filesMap.get("addFile3") != null) {
+ Map addFile3Info = (HashMap) filesMap.get("addFile3");
+ addFile3 = addFile3Info.get("serverFilePath") + "/" + addFile3Info.get("serverFileName");
+ //addFile3 = fileId;
+ }
+ }
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", insttCntcJobSe);
+ //reqData.put("insttCntcJobSe", "176");
+ reqData.put("insttDelngNo", insttDelngNo);
+ reqData.put("vhcleNum", vhcleNum);
+ reqData.put("civilNo", civilNo);
+ reqData.put("civilTitle", civilTitle);
+ reqData.put("civilContents", civilContents);
+ reqData.put("addFile1", addFile1);
+ reqData.put("addFile2", addFile2);
+ reqData.put("addFile3", addFile3);
+ reqData.put("passAmount", passAmount);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("url::" + url);
+ logger.info("reqData::" + reqData);
+ resultMap = setUpdateDefaultCivilAccept(url, reqData);
+ resultMap.put("fileIdOld", fileId);
+ resultMap.put("fileIdNew", fileIdNew);
+ logger.info("result::" + resultMap);
+
+ return resultMap;
+ }
+
+ @Override
+ @Transactional(propagation = Propagation.REQUIRED) //이메소드를 트랜잭션처리
+ public Map modifyAComplaintFileDelete(Map param) {
+ Map resultMap = new HashMap();
+ try {
+ int cnt = 0;
+ String fileId = "";
+
+ fileId = param.get("fileIdOld").toString();
+ feeMapper.atchfileDetailInfoDelete(fileId);
+
+ resultMap.put("rspnsResult", "S");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ resultMap.put("rspnsResult", "E");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ resultMap.put("rspnsResult", "E");
+ } finally {
+ // FileInfo 삭제처리 에러발생시 API 재호출 시행
+ }
+
+ return resultMap;
+ }
+
+ @Override
+ @Transactional(propagation = Propagation.REQUIRED) //이메소드를 트랜잭션처리
+ public Map modifyAComplaintFileInsert(List files, Map param) {
+ Map resultMap = new HashMap();
+ try {
+ int cnt = 0;
+ String fileIdOld = "";
+ String fileIdNew = "";
+
+ fileIdOld = param.get("fileIdOld").toString();
+ fileIdNew = param.get("fileIdNew").toString();
+
+ feeMapper.atchfileInfoDelete(fileIdOld);
+ feeMapper.atchfileInfoInsert(fileIdNew);
+
+ int fileSeq = 0;
+ for (Object file : files) {
+ Map fileInfo = (Map) file;
+ fileInfo.put("fileId", fileIdNew);
+ fileInfo.put("fileSeq", fileSeq);
+ fileInfo.put("atchFileTy", "03");
+ String fileNm = fileInfo.get("localFileName").toString();
+ int pos = fileNm.lastIndexOf(".");
+ String ext = fileNm.substring(pos + 1);
+ fileInfo.put("fileExtsnNm", ext);
+
+ String serverFileName = "";
+ serverFileName = fileInfo.get("serverFileName").toString();
+ if (!"".equals(serverFileName)) {
+ feeMapper.atchfileDetailInfoInsert(fileInfo);
+ }
+
+ fileSeq++;
+ }
+
+ resultMap.put("rspnsResult", "S");
+
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ resultMap.put("rspnsResult", "E");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ resultMap.put("rspnsResult", "E");
+ } finally {
+ // FileInfo 신규생성처리 에러발생시 API 재호출 시행
+ }
+
+ return resultMap;
+ }
+
+ @Override
+ //@Transactional(propagation = Propagation.REQUIRED) //이메소드를 트랜잭션처리
+ public Map cancleAComplaint(Map param) {
+ Map result;
+ for (String key : param.keySet()) {
+ param.put(key, CommonUtil.cleanCode(param.get(key) == null ? "" : param.get(key).toString()));
+ }
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.setCancelDefaultCivilAccept");
+ String insttNo = (String) param.get("insttNo");
+ String insttCntcJobSe = (String) param.get("insttCntcJobSe");
+ String insttDelngNo = String.valueOf(param.get("insttDelngNo"));
+ String vhcleNum = (String) param.get("vhcleNum");
+ String civilNo = String.valueOf(param.get("civilNo"));
+ String civilCancleMsg = (String) param.get("civilCancleMsg");
+
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "BRSMC0000002");
+ //reqData.put("insttCntcJobSe", insttCntcJobSe);
+ reqData.put("insttCntcJobSe", "001");
+ reqData.put("insttDelngNo", insttDelngNo);
+ //reqData.put("vhcleNum", vhcleNum);
+ reqData.put("civilNo", civilNo);
+ reqData.put("civilCancleMsg", civilCancleMsg);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("====#####== FeeServiceImpl cancleAComplaint POST =======");
+ logger.info("url::" + url);
+ logger.info("reqData::" + reqData);
+ result = setCancelDefaultCivilAccept(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map submitAComplaintReply(Map param) {
+ feeMapper.submitAComplaintReply(param);
+ return null;
+ }
+
+ @Override
+ public Map payAFee(Map param) {
+ Result result = new Result();
+ List resultList = new ArrayList();
+ List feeList = (List) param.get("feeList");
+ LinkedHashMap specPaymentDate = (LinkedHashMap) param.get("specPaymentDate");
+ String resrvDate = (String) specPaymentDate.get("specPaymentDate");
+
+ logger.info("feeList::" + feeList);
+ logger.info("specPaymentDate" + specPaymentDate);
+ Map response = new LinkedHashMap();
+ if (resrvDate.equals("")) {
+ for (Object obj : feeList) {
+ Map data = new LinkedHashMap();
+ Map feeInfo = (LinkedHashMap) obj;
+ data.put("vhcleNo", feeInfo.get("vhcleNum"));
+ Map searchParam = new HashMap();
+ searchParam.put("MBER_NO", userInfo.getUserNo());
+ searchParam.put("VHCLE_NO", feeInfo.get("vhcleNum"));
+ Map vhcleInfo = vehicleService.getVhcleInfo(searchParam);
+ if (vhcleInfo != null) {
+ data.put("vhcleTy", feeInfo.get("vhcleTy"));
+ data.put("vhcleOwnerCi", vhcleInfo.get("VHCLE_OWNER_CI"));
+ data.put("insttNo", feeInfo.get("insttNo"));
+ data.put("insttDelngNo", feeInfo.get("insttDelngNo"));
+ data.put("requstAmount", feeInfo.get("passAmount"));
+ data.put("occrrncDate", feeInfo.get("occrrncDate"));
+ data.put("occrrncTime", feeInfo.get("occrrncTime"));
+ //혼잡: 01, 공영:02 분기처리, 과태료:03
+ if ("T".equals(feeInfo.get("gubun"))) {
+ data.put("insttChrgeDetail", "01");
+ } else {
+ data.put("insttChrgeDetail", "02");
+ }
+ data.put("insttDetailCode", feeInfo.get("insttDetailCode"));
+ data.put("insttDetailNm", feeInfo.get("collectNm"));
+ data.put("pasngSeCode", feeInfo.get("pasngSeCode"));
+ data.put("ffnlgTaxitm", (feeInfo.get("ffnlgTaxitm") == null) ? "" : feeInfo.get("ffnlgTaxitm"));
+ data.put("passivePaymentAt", "Y");
+ response = preRegistPaymentService.approvalPayment(data);
+ if (response.get("rspnsCode").equals("0000")) {
+ resultList.add(response);
+ }
+ }
+ }
+ } else {
+ for (Object obj : feeList) {
+ Map data = new LinkedHashMap();
+ Map feeInfo = (LinkedHashMap) obj;
+ data.put("vhcleNo", feeInfo.get("vhrno"));
+ Map searchParam = new HashMap();
+ searchParam.put("MBER_NO", userInfo.getUserNo());
+ searchParam.put("VHCLE_NO", feeInfo.get("vhrno"));
+ Map vhcleInfo = vehicleService.getVhcleInfo(searchParam);
+ if (vhcleInfo != null) {
+ data.put("vhcleTy", feeInfo.get("vhcleTy"));
+ data.put("vhcleOwnerCi", vhcleInfo.get("VHCLE_OWNER_CI"));
+ data.put("insttNo", feeInfo.get("insttNo"));
+ data.put("insttDelngNo", feeInfo.get("insttDelngNo"));
+ data.put("requstAmount", feeInfo.get("fine"));
+ String checkDate = feeInfo.get("checkDate").toString();
+ data.put("occrrncDate", checkDate.substring(0, 8));
+ data.put("occrrncTime", checkDate.substring(8, 14));
+ ////혼잡: 01, 공영:02 분기처리, 과태료:03
+ if ("T".equals(feeInfo.get("gubun"))) {
+ data.put("insttChrgeDetail", "01");
+ } else {
+ data.put("insttChrgeDetail", "02");
+ }
+ data.put("insttChrgeSe", feeInfo.get("insttChrgeSe"));
+ data.put("insttDetailCode", feeInfo.get("insttDetailCode"));
+ data.put("insttDetailNm", feeInfo.get("violatContents"));
+ data.put("pasngSeCode", feeInfo.get("pasngSeCode"));
+ data.put("ffnlgTaxitm", (feeInfo.get("ffnlgTaxitm") == null) ? "" : feeInfo.get("ffnlgTaxitm"));
+ data.put("passivePaymentAt", "Y");
+ data.put("reserveDate", resrvDate);
+ response = preRegistPaymentService.approvalReservePayment(data);
+ if (response.get("rspnsCode").equals("0000")) {
+ resultList.add(response);
+ }
+ }
+ }
+ }
+ if (feeList.size() != resultList.size()) {
+ result.setMsg(result.STATUS_ERROR, "총 " + feeList.size() + "건 중 " + resultList.size() + "건 처리되었습니다.");
+ } else {
+ result.setMsg(result.STATUS_SUCESS, "총 " + feeList.size() + "건 중 " + resultList.size() + "건 처리되었습니다.");
+ }
+ return result.getResult();
+ }
+
+ @Override
+ public Map getRefndList(Map param) {
+ logger.info("====#####== FeeServiceImpl.java getRefndList =======");
+ logger.info("Param Data : " + param);
+
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.getRefundAcceptInfo");
+ String startDt = (String) param.get("startDate");
+ String endDt = (String) param.get("endDate");
+ String vhcleNum = (String) param.get("vhcleNum");
+ String status = (String) param.get("status");
+
+ Map reqData = new LinkedHashMap();
+
+ reqData.put("insttNo", "BRSMC0000002");
+ reqData.put("insttCntcJobSe", "001");
+ reqData.put("startDt", startDt);
+ reqData.put("endDt", endDt);
+ reqData.put("status", status);
+ reqData.put("vhcleNum", vhcleNum);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("reqData::" + reqData);
+ result = getRefundAcceptInfo(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map getRefndCnt(Map param) {
+ Map rs = null;
+ rs = feeMapper.getRefndCnt(param);
+ return rs;
+ }
+
+ @Override
+ public Map getRefndDetail(Map param) {
+ Map rs = null;
+ rs = feeMapper.getRefndDetail(param);
+ return rs;
+ }
+
+ @Override
+ public Map refndInsert(Map param1, Map param2) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.setInsertRefundAccept");
+ String insttNo = (String) param1.get("insttNo");
+ String insttCntcJobSe = (String) param1.get("insttCntcJobSe");
+ String insttDelngNo = String.valueOf(param1.get("insttDelngNo"));
+ String vhcleNum = (String) param1.get("vhcleNum");
+ String rfnBank = (String) param1.get("rfnBank");
+ String rfnAccount = (String) param1.get("rfnAccount");
+ String rfnName = (String) param1.get("rfnName");
+ String rfnTel = (String) param1.get("rfnTel");
+ String passAmount = String.valueOf(param1.get("passAmount"));
+ String rfnAmount = String.valueOf(param1.get("rfnAmount"));
+ rfnTel = "";
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", insttNo);
+ reqData.put("insttCntcJobSe", "126");
+ //reqData.put("insttCntcJobSe", insttCntcJobSe);
+ reqData.put("insttDelngNo", insttDelngNo);
+ reqData.put("vhcleNum", vhcleNum);
+ reqData.put("rfnBank", rfnBank);
+ reqData.put("rfnAccount", rfnAccount);
+ reqData.put("rfnName", rfnName);
+ reqData.put("passAmount", passAmount);
+ reqData.put("rfnAmount", rfnAmount);
+ //reqData.put("rfnTel", rfnTel);
+ String mberNo = (String) param2.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param2.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("url::" + url);
+ logger.info("reqData::" + reqData);
+ result = setInsertRefundAccept(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map refndUpdate(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.setUpdateRefundAccept");
+ String insttNo = (String) param.get("insttNo");
+ String insttCntcJobSe = (String) param.get("insttCntcJobSe");
+ String insttDelngNo = String.valueOf(param.get("insttDelngNo"));
+ String vhcleNum = (String) param.get("vhcleNum");
+ String rfnBank = (String) param.get("rfnBank");
+ String rfnAccount = (String) param.get("rfnAccount");
+ String rfnName = (String) param.get("rfnName");
+ String rfnAcepNo = String.valueOf(param.get("rfnAcepNo"));
+ String rfnTel = (String) param.get("rfnTel");
+ String passAmount = String.valueOf(param.get("passAmount"));
+ String rfnAmount = String.valueOf(param.get("rfnAmount"));
+ rfnTel = "";
+ /*
+ * insttNo insttNo
+ insttCntcJobSe 기관 연계 업무 구분
+ insttDelngNo 기관 거래 번호 (50)
+ rfnAcepNo 환불신청번호 (20)
+ rfnBank 환불받을 은행명
+ rfnAccount 환불받을 계좌
+ rfnName 환불신청자명
+ rfnTel 환불신청자연락처
+ 당일 신청하고 처리상태가 접수인 경우만 수정 가능
+ * */
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", insttNo);
+ reqData.put("insttCntcJobSe", "126");
+ //reqData.put("insttCntcJobSe", insttCntcJobSe);
+ reqData.put("insttDelngNo", insttDelngNo);
+ reqData.put("vhcleNum", vhcleNum);
+ reqData.put("rfnBank", rfnBank);
+ reqData.put("rfnAccount", rfnAccount);
+ reqData.put("rfnName", rfnName);
+ reqData.put("rfnAcepNo", rfnAcepNo);
+ reqData.put("passAmount", passAmount);
+ reqData.put("rfnAmount", rfnAmount);
+ //reqData.put("rfnTel", rfnTel);
+ String mberNo = (String) param.get("mberNo");
+ reqData.put("mberNo", mberNo);
+ String mberCi = (String) param.get("mberCi");
+ reqData.put("mberCi", mberCi);
+ logger.info("url::" + url);
+ logger.info("reqData::" + reqData);
+ result = setUpdateRefundAccept(url, reqData);
+ logger.info("result::" + result);
+ return result;
+ }
+
+ @Override
+ public Map getReciptList(Map param) {
+ Map result;
+ String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.getReceiptList");
+ String insttNo = (String) param.get("insttNo");
+ String insttDelngNos = String.valueOf(param.get("insttDelngNos"));
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("insttNo", "");
+ reqData.put("insttCntcJobSe", "001");
+ reqData.put("insttDelngNo", insttDelngNos);
+
+ logger.info("url::" + url);
+ logger.info("reqData::" + reqData);
+ result = getReceiptList(url, reqData);
+ logger.info("result::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map privachCheckApi(Map param, List files) {
+ Map result;
+ String apiUrl = env.getProperty("Globals.Uprivacy.ApiUrl");
+ String hostUrl = env.getProperty("Globals.Uprivacy.RealHostUrl");
+ String hostIp = env.getProperty("Globals.Uprivacy.RealHostIp");
+ String returnUrl = env.getProperty("Globals.Uprivacy.RealHostUrl") + "fee/privachCheckApi.do";
+ String civilTitle = StringUtils.defaultIfBlank(param.get("civilTitle").toString(), "");
+ String civilContents = StringUtils.defaultIfBlank(param.get("civilContents").toString(), "");
+ String uiGubun = StringUtils.defaultIfBlank(param.get("uiGubun").toString(), "");
+ String content = "";
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ String userIP = "";
+ userIP = getRemoteAddr(request);
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("hostUrl", hostUrl);
+ reqData.put("hostIP", hostIp);
+ reqData.put("returnURL", returnUrl);
+ reqData.put("userIP", userIP);
+ logger.info("uiGubun::" + uiGubun);
+ if (uiGubun.equals("complaint")) {
+ content = civilTitle + "," + civilContents;
+ } else if (uiGubun.equals("complaintCancle")) {
+ content = civilContents;
+ }
+ reqData.put("content", content);
+
+ logger.info("reqData::" + reqData);
+ result = setPrivachCheckApi(apiUrl, reqData, files, request);
+ logger.info("result privachCheckApi::" + result);
+
+ return result;
+ }
+
+ @Override
+ public Map refundPrivachCheckApi(Map param) {
+ Map result;
+ String apiUrl = env.getProperty("Globals.Uprivacy.ApiUrl");
+ String hostUrl = env.getProperty("Globals.Uprivacy.RealHostUrl");
+ String hostIp = env.getProperty("Globals.Uprivacy.RealHostIp");
+ String returnUrl = env.getProperty("Globals.Uprivacy.RealHostUrl") + "fee/refundPrivachCheckApi.do";
+ String rfnBank = StringUtils.defaultIfBlank(param.get("rfnBank").toString(), "");
+ String rfnAccount = StringUtils.defaultIfBlank(param.get("rfnAccount").toString(), "");
+ String rfnName = StringUtils.defaultIfBlank(param.get("rfnName").toString(), "");
+ String content = "";
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ String userIP = "";
+ userIP = getRemoteAddr(request);
+
+ Map reqData = new LinkedHashMap();
+ reqData.put("hostUrl", hostUrl);
+ reqData.put("hostIP", hostIp);
+ reqData.put("returnURL", returnUrl);
+ reqData.put("userIP", userIP);
+ content = rfnBank + "," + rfnAccount + "," + rfnName;
+ reqData.put("content", content);
+
+ logger.info("reqData::" + reqData);
+ result = setRefundPrivachCheckApi(apiUrl, reqData);
+ logger.info("result privachCheckApi::" + result);
+
+ return result;
+ }
+
+ public static String getRemoteAddr(HttpServletRequest request) {
+ String ip = null;
+ ip = request.getHeader("X-Forwarded-For");
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("Proxy-Client-IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("WL-Proxy-Client-IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_CLIENT_IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("X-Real-IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("X-RealIP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("REMOTE_ADDR");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getRemoteAddr();
+ }
+ return ip;
+ }
+
+ /**
+ * 서울시 개인정보 보호시스템 API 요청 수신
+ *
+ * @param requestURL the request url
+ * @param files the files
+ * @param reqData the req data
+ * @return the update refund accept
+ */
+ public Map setPrivachCheckApi(String requestURL, Map reqData, List files, HttpServletRequest req) {
+ Map resultMap = new HashMap();
+
+ try {
+ String addFile1 = "";
+ String addFile2 = "";
+ String addFile3 = "";
+ String realUrl = env.getProperty("Globals.Url");
+ String fsl = File.separator;
+ String root = req.getSession().getServletContext().getRealPath(fsl);
+ Map filesMap = null;
+
+ if (files != null && files.size() > 0) {
+ int idx = 1;
+ for (Object file : files) {
+ if (filesMap == null) filesMap = new HashMap();
+ filesMap.put("addFile" + idx, file);
+ idx++;
+ }
+ if (filesMap != null && filesMap.get("addFile1") != null) {
+ Map addFile1Info = (HashMap) filesMap.get("addFile1");
+ addFile1 = addFile1Info.get("serverFilePath") + "/" + addFile1Info.get("serverFileName");
+ }
+ if (filesMap != null && filesMap.get("addFile2") != null) {
+ Map addFile2Info = (HashMap) filesMap.get("addFile2");
+ addFile2 = addFile2Info.get("serverFilePath") + "/" + addFile2Info.get("serverFileName");
+ }
+ if (filesMap != null && filesMap.get("addFile3") != null) {
+ Map addFile3Info = (HashMap) filesMap.get("addFile3");
+ addFile3 = addFile3Info.get("serverFilePath") + "/" + addFile3Info.get("serverFileName");
+ }
+ }
+
+ logger.info("addFile1::" + addFile1);
+ logger.info("addFile2::" + addFile2);
+ logger.info("addFile3::" + addFile3);
+
+ Http http = new Http(requestURL);
+ resultMap = http.addParam("returnURL", reqData.get("returnURL").toString())
+ .addParam("hostIP", reqData.get("hostIP").toString())
+ .addParam("hostUrl", reqData.get("hostUrl").toString())
+ .addParam("userIP", reqData.get("userIP").toString())
+ .addParam("content", reqData.get("content").toString())
+ .addParam("upload_file1", new File(addFile1))
+ .addParam("upload_file2", new File(addFile2))
+ .addParam("upload_file3", new File(addFile3))
+ .submit();
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[setPrivachCheckApi process error::" + "e.getMessage()" + "]", e);
+ }
+
+ return resultMap;
+ }
+
+ /**
+ * 서울시 개인정보 보호시스템 API 요청 수신
+ *
+ * @param requestURL the request url
+ * @param files the files
+ * @param reqData the req data
+ * @return the update refund accept
+ */
+ public Map setPrivachCheckApiTmp(String requestURL, Map reqData, List files) {
+ Map result = new HashMap();
+ Map resultData = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("privacy");
+ /*
+ * 개인정보 점점결과 Return 항목 및 코드 설명
+ * isPriv -> 개인정보 유무(0:개인정보 없음, 1:개인정보 있음)
+ * privType -> 검출된 개인정보 유형(1:주민(외국인)번호, 2:카드번호, 3:여권번호, 4:운전면허번호, 5:휴대폰번호,
+ * 6:일반전화번호, 7:이메일, 8:건강보험번호, 9:은행계좌번호, 10:금칙어)
+ * privContent -> 검출된 개인정보 내용
+ * hostIP -> 요청받을때 전달받은 HostIP 값
+ * hostUrl -> 요청받을때 전달받은 HostUrl 값
+ * userIP -> 요청받을때 전달받은 userIP 값
+ * checkType -> 검출위치 표시(C: 본문내용, F:첨부파일)
+ */
+ resultData = (Map) datas.get(0);
+ result.put("rspnsResult", "S");
+ result.put("data", resultData);
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsMssage", "response is error");
+ }
+
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ //e.printStackTrace();
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("io ErrorMessage::" + "io.getMessage()", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 서울시 개인정보 보호시스템 API 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the update refund accept
+ */
+ public Map setRefundPrivachCheckApi(String requestURL, Map reqData) {
+ Map resultMap = new HashMap();
+
+ try {
+ Http http = new Http(requestURL);
+ resultMap = http.addParam("returnURL", reqData.get("returnURL").toString())
+ .addParam("hostIP", reqData.get("hostIP").toString())
+ .addParam("hostUrl", reqData.get("hostUrl").toString())
+ .addParam("userIP", reqData.get("userIP").toString())
+ .addParam("content", reqData.get("content").toString())
+ .submit();
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[setRefundPrivachCheckApi process error::" + "e.getMessage()" + "]", e);
+ }
+
+ return resultMap;
+ }
+
+ /**
+ * 서울시 개인정보 보호시스템 API 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the update refund accept
+ */
+ public Map setRefundPrivachCheckApiTmp(String requestURL, Map reqData) {
+ Map result = new HashMap();
+ Map resultData = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("privacy");
+ /*
+ * 개인정보 점점결과 Return 항목 및 코드 설명
+ * isPriv -> 개인정보 유무(0:개인정보 없음, 1:개인정보 있음)
+ * privType -> 검출된 개인정보 유형(1:주민(외국인)번호, 2:카드번호, 3:여권번호, 4:운전면허번호, 5:휴대폰번호,
+ * 6:일반전화번호, 7:이메일, 8:건강보험번호, 9:은행계좌번호, 10:금칙어)
+ * privContent -> 검출된 개인정보 내용
+ * hostIP -> 요청받을때 전달받은 HostIP 값
+ * hostUrl -> 요청받을때 전달받은 HostUrl 값
+ * userIP -> 요청받을때 전달받은 userIP 값
+ * checkType -> 검출위치 표시(C: 본문내용, F:첨부파일)
+ */
+ resultData = (Map) datas.get(0);
+ result.put("rspnsResult", "S");
+ result.put("data", resultData);
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsMssage", "response is error");
+ }
+
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ //e.printStackTrace();
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("io ErrorMessage::" + "io.getMessage()", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 이용료 정보 조회 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the map
+ */
+ public Map requestRntFeeInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ public Map requestParkFeeInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ public Map requestJmpFeeInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ logger.info("body::" + jsonObj.toJSONString());
+ if("0".equals(String.valueOf(jsonObj.get("dataCount")))) {
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ } else {
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ }
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ public Map requestYdpParkInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ logger.info("body::" + jsonObj.toJSONString());
+ if("0".equals(String.valueOf(jsonObj.get("dataCount")))) {
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ } else {
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ }
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ public Map requestJgParkInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ logger.info("body::" + jsonObj.toJSONString());
+ if("0".equals(String.valueOf(jsonObj.get("dataCount")))) {
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ } else {
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ }
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+
+ public Map requestScgParkInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ logger.info("body::" + jsonObj.toJSONString());
+ if("0".equals(String.valueOf(jsonObj.get("dataCount")))) {
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ } else {
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ }
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ public Map requestSbgRoadInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ logger.info("body::" + jsonObj.toJSONString());
+ if("0".equals(String.valueOf(jsonObj.get("dataCount")))) {
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", new JSONArray());
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ } else {
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else if (jsonObj.get("resultCode").equals("E0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+ }
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 민원접수 목록 조회 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the default civil accept list
+ */
+ public Map getDefaultCivilAcceptList(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 민원접수 상세 조회 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the default civil accept detail
+ */
+ public Map getDefaultCivilAcceptDetail(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ /*JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);*/
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", jsonObj.get("rspnsCode"));
+ result.put("rspnsMssage", jsonObj.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 민원접수 등록 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the default civil accept
+ */
+ public Map setDefaultCivilAccept(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ /*if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }*/
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ result.put("rspnsCode", jsonObj.get("resultCode"));
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 민원접수 수정 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the update default civil accept
+ */
+ public Map setUpdateDefaultCivilAccept(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ //JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ /*if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", data.get("rspnsCode"));
+ result.put("rspnsMssage", data.get("rspnsMssage"));*/
+
+ result.put("rspnsResult", "S");
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 민원접수 취소 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the update default civil accept
+ */
+ public Map setCancelDefaultCivilAccept(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ /*if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }*/
+
+ result.put("rspnsResult", "S");
+ //result.put("data", data);
+ //result.put("rspnsCode", data.get("rspnsCode"));
+ //result.put("rspnsMssage", data.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 환불신청 목록 및 상세 조회 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the default civil accept list
+ */
+ public Map getRefundAcceptInfo(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 환불신청 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the insert refund accept
+ */
+ public Map setInsertRefundAccept(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ /*if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }*/
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ result.put("rspnsCode", data.get("rspnsCode"));
+ result.put("rspnsMssage", data.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 환불신청 수정 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the update refund accept
+ */
+ public Map setUpdateRefundAccept(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ //JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ /* if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }*/
+ result.put("rspnsResult", "S");
+ //result.put("data", data);
+ //result.put("rspnsCode", data.get("rspnsCode"));
+ //result.put("rspnsMssage", data.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 과태료 의견제출 및 이의제기 신청 목록 조회 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the default civil accept list
+ */
+ public Map getPenaltyCivilAcceptList(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 과태료 의견제출 및 이의제기 신청 상세 조회 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the default civil accept detail
+ */
+ public Map getPenaltyCivilAcceptDetail(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+/* if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }*/
+ result.put("data", data);
+ result.put("rspnsResult", "S");
+ result.put("rspnsCode", data.get("rspnsCode"));
+ result.put("rspnsMssage", data.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * 과태료 의견제출 및 이의제기 수정 요청 수신
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the update refund accept
+ */
+ public Map setUpdatePenaltyCivilAccept(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(10000)
+ .setConnectTimeout(10000)
+ .setConnectionRequestTimeout(10000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ //JSONObject data = (JSONObject) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ /*if (jsonObj.get("resultCode").equals("0000")) {
+ result.put("rspnsResult", "S");
+ result.put("data", data);
+ } else {
+ result.put("rspnsResult", "E");
+ }*/
+
+ result.put("rspnsResult", "S");
+ //result.put("data", data);
+ //result.put("rspnsCode", data.get("rspnsCode"));
+ //result.put("rspnsMssage", data.get("rspnsMssage"));
+ } else {
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ /**
+ * Gets receipt list.
+ *
+ * @param requestURL the request url
+ * @param reqData the req data
+ * @return the receipt list
+ */
+ public Map getReceiptList(String requestURL,
+ Map reqData
+ ) {
+ Map result = new HashMap();
+ //CloseableHttpClient client = HttpClients.createDefault();
+ RequestConfig defaultRequestConfig = RequestConfig.custom()
+ .setSocketTimeout(60000)
+ .setConnectTimeout(60000)
+ .setConnectionRequestTimeout(60000)
+ .setStaleConnectionCheckEnabled(true)
+ .build();
+ CloseableHttpClient client = HttpClients.custom()
+ .setDefaultRequestConfig(defaultRequestConfig)
+ .build();
+ try {
+ String token = env.getProperty("Globals.SmartPlatform.token");
+ HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
+ postRequest.setHeader("Accept", "application/json");
+ postRequest.setHeader("BROKER_TOKEN", token);
+ List pairs = new ArrayList<>();
+ Iterator keys = reqData.keySet().iterator();
+ while (keys.hasNext()) {
+ String key = keys.next();
+ pairs.add(new BasicNameValuePair(key, (String) reqData.get(key)));
+ }
+ postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+ HttpResponse response = client.execute(postRequest);
+ //Response 출력
+ if (response.getStatusLine().getStatusCode() == 200) {
+ ResponseHandler handler = new BasicResponseHandler();
+ String body = handler.handleResponse(response);
+ JSONParser parser = new JSONParser();
+ Object obj = parser.parse(body);
+ JSONObject jsonObj = (JSONObject) obj;
+ JSONArray datas = (JSONArray) jsonObj.get("data");
+ logger.info("body::" + jsonObj.toJSONString());
+ if (jsonObj.get("result").equals("SUCCESS")) {
+ if (jsonObj.get("resultCode").equals("")) {
+ result.put("rspnsResult", "S");
+ result.put("data", datas);
+ } else {
+ result.put("rspnsResult", "E");
+ }
+ result.put("rspnsCode", "0000");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ } else {
+
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", jsonObj.get("resultMessage"));
+ }
+
+ } else {
+ logger.error("response is error : " + response.getStatusLine().getStatusCode());
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "response is error");
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
+ } catch (Exception e) {
+ logger.error("errorMessage::" + "", e);
+ result.put("rspnsResult", "E");
+ result.put("rspnsCode", "9999");
+ result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
+ } finally {
+ try {
+ client.close();
+ } catch (IOException io) {
+ logger.error("[process error::" + "" + "]", io);
+ }
+
+ }
+ return result;
+ }
+
+ @Override
+ public List getFeeData(Map dbParam) {
+ List result = feeMapper.getFeeData(dbParam);
+ return result;
+ }
+}
diff --git a/src/main/java/gtpa/brs/fee/web/FeeController.java b/src/main/java/gtpa/brs/fee/web/FeeController.java
new file mode 100644
index 0000000..8257a31
--- /dev/null
+++ b/src/main/java/gtpa/brs/fee/web/FeeController.java
@@ -0,0 +1,1309 @@
+
+package gtpa.brs.fee.web;
+
+import java.io.IOException;
+import java.util.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+import gtpa.brs.login.service.LoginService;
+import org.apache.commons.io.FilenameUtils;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import gtpa.brs.fee.service.FeeService;
+import gtpa.brs.join.service.JoinService;
+import gtpa.brs.payment.service.PreRegistPaymentService;
+import gtpa.brs.user.dto.UserInfo;
+import gtpa.brs.util.Result;
+import gtpa.brs.vehicle.service.VehicleService;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 16/04/2019
+ * TIME : 10:55 AM
+ * Project : BRSPW
+ * Class : FeeController
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+@Controller
+public class FeeController {
+
+ /**
+ * The User info.
+ */
+ @Autowired
+ UserInfo userInfo;
+
+ @Autowired
+ FeeService feeService;
+
+ @Autowired
+ JoinService joinService;
+
+ /**
+ * The Vehicle service.
+ */
+ @Autowired
+ VehicleService vehicleService;
+
+ @Autowired
+ PreRegistPaymentService preRegistPaymentService;
+
+ @Autowired
+ LoginService loginService;
+
+ Logger logger = LoggerFactory.getLogger(FeeController.class);
+
+ /**
+ * Gets vehicles.
+ *
+ * @return the vehicles
+ */
+ @RequestMapping(value = "/fee/getVehicles.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getVehicles() {
+ Result result = new Result();
+ Map params = new HashMap();
+ params.put("MBER_NO", userInfo.getUserNo());
+ params.put("SEARCHTYPE", "F");
+ List carInfos = vehicleService.getVhclesInfo(params);
+ if (carInfos.size() > 0) {
+ result.setData("vhcleList", carInfos);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCESS, "본인 명의의 차량등록이 필요합니다.");
+ }
+ return result.getResult();
+ }
+
+ /**
+ * Gets fee list.
+ *
+ * @param param the param
+ * @return the fee list
+ */
+ @RequestMapping(value = "/fee/getFeeList.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getFeeList(@RequestBody Map param) {
+ Map params = (Map) param.get("param");
+ logger.info("Param Data : " + params);
+ Map userData = loginService.isMemberNoMap(userInfo.getUserNo());
+ Result result = new Result();
+ List feeList = new ArrayList();
+ params.put("mberNo", userInfo.getUserNo());
+ params.put("mberCi", userInfo.getUserCi());
+ Map rtnVhcles = new HashMap();
+ if (userInfo.isTempMber()) {
+ rtnVhcles.put("VHCLES_NUM", params.get("vhcleNum"));
+ userData = new HashMap();
+ userData.put("TUNNEL_FEE_AGRE_AT", "N");
+ userData.put("PARK_FEE_AGRE_AT", "N");
+ userData.put("JMP_TUNNEL_FEE_AGRE_AT", "N");
+ userData.put("SSM_TUNNEL_FEE_AGRE_AT", "N");
+ } else {
+ rtnVhcles = vehicleService.rtnMyVhclesBySearchParam(params);
+ }
+ logger.info("rtnVhcles : " + rtnVhcles);
+
+ /** try {
+ String test = "{\"data\":"
++"[" +"{" +"\"chk\":\"\"," +"\"gubun\":\"\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301614240000000223\"," +"\"vhcleNum\":\"36우2523\"," +"\"passDt\":\"20200630161424\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161424S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161424\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"01\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161424M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301614240000000223\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630161424\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161424S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161424\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161424M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301613540000000279\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630161354\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630161354S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161354\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630161354M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301613290000000221\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630161329\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161329S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161329\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161329M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301612510000000274\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630161251\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630161251S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161251\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630161251M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"미납\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301611430000000218\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630161143\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"2\"," +"\"dueDatePayment\":\"20200715\"," +"\"dueDatePaymentMsg\":\"2020.07.15 (휴일이면 다음날) 납부기한까지 미납시 통행료의 5배 과태료가 부과됩니다.\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161143S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161143\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630161143M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"미납\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301611240000000266\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630161124\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"2\"," +"\"dueDatePayment\":\"20200715\"," +"\"dueDatePaymentMsg\":\"2020.07.15 (휴일이면 다음날) 납부기한까지 미납시 통행료의 5배 과태료가 부과됩니다.\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630161124S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"161124\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630161124M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"현금\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301605090000000198\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160509\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"1\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160509\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"현금\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630160509M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"현금\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301604170000000238\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160417\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"1\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160417\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"현금\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630160417M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301603130000000193\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160313\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":0," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160313\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630160313M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301602560000000235\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160256\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":0," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160256\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630160256M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301602370000000191\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160237\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":0," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160237\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630160237M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"면제\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301602130000000233\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160213\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":0," +"\"receiptCd\":\"0\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160213\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"면제\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630160213M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"카드\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301601490030400190\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160149\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"1\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160149\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"카드\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630160149M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"카드\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301601190030700227\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160119\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"1\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160119\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"10\"," +"\"statusNm\":\"민원신청 등록\"," +"\"receiptTypeNm\":\"카드\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630160119M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"현금\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301600320000000186\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160032\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"1\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160032\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"13\"," +"\"statusNm\":\"민원신청 거부\"," +"\"receiptTypeNm\":\"현금\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630160032M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"현금\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301600120000000223\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630160012\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"1\"," +"\"dueDatePayment\":\"\"," +"\"dueDatePaymentMsg\":\"\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/null\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"160012\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"10\"," +"\"statusNm\":\"민원신청 등록\"," +"\"receiptTypeNm\":\"현금\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630160012M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"미납\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301558180000000183\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630155818\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"2\"," +"\"dueDatePayment\":\"20200715\"," +"\"dueDatePaymentMsg\":\"2020.07.15 (휴일이면 다음날) 납부기한까지 미납시 통행료의 5배 과태료가 부과됩니다.\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630155818S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"155818\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630155818M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"미납\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301557580000000209\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630155758\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"2\"," +"\"dueDatePayment\":\"20200715\"," +"\"dueDatePaymentMsg\":\"2020.07.15 (휴일이면 다음날) 납부기한까지 미납시 통행료의 5배 과태료가 부과됩니다.\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630155758S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"155758\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630155758M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"미납\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300840304202006301557230000000180\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630155723\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"04차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"2\"," +"\"dueDatePayment\":\"20200715\"," +"\"dueDatePaymentMsg\":\"2020.07.15 (휴일이면 다음날) 납부기한까지 미납시 통행료의 5배 과태료가 부과됩니다.\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630155723S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"155723\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"1\"," +"\"status\":\"00\"," +"\"statusNm\":\"미신청\"," +"\"receiptTypeNm\":\"\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030420200630155723M.MP4\"," +"\"rowStatus\":\"R\"" +"}," +"{" +"\"chk\":\"\"," +"\"gubun\":\"T\"," +"\"collectNm\":\"미납\"," +"\"insttNo\":\"BRSMC0300004\"," +"\"insttDelngNo\":\"0300130307202006301556550000000204\"," +"\"vhcleNum\":\"340로1833\"," +"\"passDt\":\"20200630155655\"," +"\"passFareOfi\":\"남산03터널\"," +"\"passLocBooth\":\"07차로\"," +"\"passAmount\":2000," +"\"receiptCd\":\"2\"," +"\"dueDatePayment\":\"20200715\"," +"\"dueDatePaymentMsg\":\"2020.07.15 (휴일이면 다음날) 납부기한까지 미납시 통행료의 5배 과태료가 부과됩니다.\"," +"\"imgPath\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630155655S.JPG\"," +"\"vhcleTy\":\"60\"," +"\"occrrncDate\":\"20200630\"," +"\"occrrncTime\":\"155655\"," +"\"insttDetailCode\":\"003\"," +"\"pasngSeCode\":\"2\"," +"\"status\":\"14\"," +"\"statusNm\":\"민원신청 취소\"," +"\"receiptTypeNm\":\"\"," +"\"usePay\":\"Y\"," +"\"virtualAcc\":\"남산 3호터널 우리 1005-881-229064 ※ 위 전용계좌로 인터넷뱅킹, 은행 등 납부 가능 (타행이체시 수수료 본인 부담)\"," +"\"movieUrl\":\"http://175.193.201.51/anprImages/cfs/2020/03/20200630/030720200630155655M.MP4\"," +"\"rowStatus\":\"R\"" +"}" +"]"
+ +"}";
+ JSONParser jpa = new JSONParser();
+ JSONObject job = (JSONObject)jpa.parse(test);
+ Map testInfo = new ObjectMapper().readValue(job.toString(), HashMap.class);
+ List testList = (List) testInfo.get("data");
+ for(int i=0; i 0) {
+ feeList.addAll(tunnelFeesInfoList);
+ }
+
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ if (params.get("vhcleNum") != null) {
+ String vhcleNums = (String) params.get("vhcleNum");
+ String[] arrVhcleNums = vhcleNums.split(",");
+ for (String vhcleNum : arrVhcleNums) {
+ params.put("vhcleNum", vhcleNum);
+ Map parkFeesInfo = feeService.getParkFeeList(params);
+ try {
+ if (parkFeesInfo.get("data") != null) {
+ List parkFeesInfoList = (List) parkFeesInfo.get("data");
+ for (Object parkFeesObj : parkFeesInfoList) {
+ Map feesInfo = (Map) parkFeesObj;
+ feesInfo.put("gubun", "P");
+ feesInfo.put("ffnlgTaxitm", "02");
+ feesInfo.put("usePay", userData.get("PARK_FEE_AGRE_AT") == null ? 'N' : userData.get("PARK_FEE_AGRE_AT"));
+ }
+ if (parkFeesInfoList.size() > 0) {
+ feeList.addAll(parkFeesInfoList);
+ }
+
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+ }
+
+ /*신월여의지하도로 이용료 조회*/
+ if (params.get("vhcleNum") != null) {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map jmpTunnelFeesInfo = feeService.getJmpTunnelFees(params);
+ try {
+ if (jmpTunnelFeesInfo.get("data") != null) {
+ List jmpTunnelFeesList = (List) jmpTunnelFeesInfo.get("data");
+ for (Object jmpTunnelFeesObj : jmpTunnelFeesList) {
+ Map jmpTunnelFeeInfo = (Map) jmpTunnelFeesObj;
+ jmpTunnelFeeInfo.put("gubun", "J");
+ jmpTunnelFeeInfo.put("ffnlgTaxitm", "04");
+ jmpTunnelFeeInfo.put("usePay", userData.get("JMP_TUNNEL_FEE_AGRE_AT") == null ? 'N' : userData.get("JMP_TUNNEL_FEE_AGRE_AT"));
+ }
+ if (jmpTunnelFeesList.size() > 0) {
+ feeList.addAll(jmpTunnelFeesList);
+ }
+
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ /*영등포 주차장 이용료 조회*/
+ if (params.get("vhcleNum") != null) {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map ydpParkFeesInfo = feeService.getYdpParkFees(params);
+ try {
+ if (ydpParkFeesInfo.get("data") != null) {
+ List ydpParkFeesList = (List) ydpParkFeesInfo.get("data");
+ for (Object ydpParkFeesObj : ydpParkFeesList) {
+ Map ydpParkFeeInfo = (Map) ydpParkFeesObj;
+ ydpParkFeeInfo.put("gubun", "J");
+ ydpParkFeeInfo.put("ffnlgTaxitm", "04");
+ ydpParkFeeInfo.put("usePay", userData.get("PARK_FEE_AGRE_AT") == null ? 'N' : userData.get("PARK_FEE_AGRE_AT"));
+ }
+ if (ydpParkFeesList.size() > 0) {
+ feeList.addAll(ydpParkFeesList);
+ }
+
+ }/* else if("E".equals(ydpParkFeesInfo.get("rspnsResult"))) {
+ logger.info("영등포구청 오류 - 사전등록결제 리스트");
+ Map dbParam = new HashMap<>();
+ List ydpFeeDataList = new ArrayList();
+
+ dbParam.put("vhcleNo", rtnVhcles.get("VHCLES_NUM"));
+ dbParam.put("mberNo", userInfo.getUserNo());
+ dbParam.put("startDate", (String) params.get("startDate"));
+ dbParam.put("endDate", (String) params.get("endDate"));
+ dbParam.put("se", "ydp");
+ logger.info("영등포구청 오류 -> "+ dbParam);
+ List ydpFeeData = feeService.getYdpParkFeeData(dbParam);
+ logger.info("영등포구청 오류 - ydpFeeData > "+ydpFeeData);
+ for (Object ydpParkFeesObj : ydpFeeData) {
+ Map ydpParkFeeInfo = (Map) ydpParkFeesObj;
+ ydpParkFeeInfo.put("gubun", "J");
+ ydpParkFeeInfo.put("ffnlgTaxitm", "04");
+ ydpParkFeeInfo.put("usePay", userData.get("PARK_FEE_AGRE_AT") == null ? 'N' : userData.get("PARK_FEE_AGRE_AT"));
+
+ Map ydpFeeInfo = new HashMap<>();
+ ydpFeeInfo.clear();
+ if("정상승인".equals(ydpParkFeeInfo.get("RSPNS_MSSAGE"))) {
+ ydpFeeInfo.put("collectNm", "사전등록");
+ ydpFeeInfo.put("receiptCd", "1");
+ } else {
+ ydpFeeInfo.put("collectNm", "미납");
+ ydpFeeInfo.put("receiptCd", "2");
+ }
+ ydpFeeInfo.put("insttNo", ydpParkFeeInfo.get("INSTT_NO"));
+ ydpFeeInfo.put("insttDelngNo", ydpParkFeeInfo.get("INSTT_DELNG_NO"));
+ ydpFeeInfo.put("vhcleNum", ydpParkFeeInfo.get("VHCLE_NO"));
+ ydpFeeInfo.put("passDt", (String) ydpParkFeeInfo.get("DELNG_YMD") + (String) ydpParkFeeInfo.get("DELNG_HMS"));
+ ydpFeeInfo.put("passFareOfi", ydpParkFeeInfo.get("INSTT_NM"));
+ ydpFeeInfo.put("passLocBooth", ydpParkFeeInfo.get("INSTT_DETAIL_NM"));
+ ydpFeeInfo.put("passAmount", ydpParkFeeInfo.get("SETLE_AMOUNT"));
+ ydpFeeInfo.put("vhcleTy", ydpParkFeeInfo.get("CARS_TY"));
+ ydpFeeInfo.put("occrrncDate", ydpParkFeeInfo.get("OCCRRNC_DATE"));
+ ydpFeeInfo.put("occrrncTime", ydpParkFeeInfo.get("OCCRRNC_TIME"));
+ ydpFeeInfo.put("insttDetailCode", ydpParkFeeInfo.get("INSTT_DETAIL_CODE"));
+ ydpFeeInfo.put("pasngSeCode", ydpParkFeeInfo.get("PASNG_SE_CODE"));
+ ydpFeeInfo.put("receiptTypeNm", "사전등록");
+ ydpFeeDataList.add(ydpFeeInfo);
+ }
+ if (ydpFeeData.size() > 0) {
+ feeList.addAll(ydpFeeDataList);
+ }
+ logger.info("영등포구청 오류 - feeList > "+feeList);
+ }*/
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ /*중구 주차장 이용료 조회*/
+ if (params.get("vhcleNum") != null) {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map jgParkFeesInfo = feeService.getJgParkFees(params);
+ try {
+ if (jgParkFeesInfo.get("data") != null) {
+ List jgParkFeesList = (List) jgParkFeesInfo.get("data");
+ for (Object jgParkFeesObj : jgParkFeesList) {
+ Map jgParkFeeInfo = (Map) jgParkFeesObj;
+ jgParkFeeInfo.put("gubun", "J");
+ jgParkFeeInfo.put("ffnlgTaxitm", "04");
+ jgParkFeeInfo.put("usePay", userData.get("PARK_FEE_AGRE_AT") == null ? 'N' : userData.get("PARK_FEE_AGRE_AT"));
+ }
+ if (jgParkFeesList.size() > 0) {
+ feeList.addAll(jgParkFeesList);
+ }
+
+ }/* else if("E".equals(jgParkFeesInfo.get("rspnsResult"))) {
+ logger.error("중구 오류 - 사전등록결제 리스트");
+ Map dbParam = new HashMap<>();
+ List jgFeeDataList = new ArrayList();
+
+ dbParam.put("vhcleNo", rtnVhcles.get("VHCLES_NUM"));
+ dbParam.put("mberNo", userInfo.getUserNo());
+ dbParam.put("startDate", (String) params.get("startDate"));
+ dbParam.put("endDate", (String) params.get("endDate"));
+ dbParam.put("se", "jg");
+ logger.error("중구 오류 -> "+ dbParam);
+ List jgFeeData = feeService.getYdpParkFeeData(dbParam);
+ logger.error("중구 오류 - jgFeeData > "+jgFeeData);
+ for (Object jgParkFeesObj : jgFeeData) {
+ Map jgParkFeeInfo = (Map) jgParkFeesObj;
+ jgParkFeeInfo.put("gubun", "J");
+ jgParkFeeInfo.put("ffnlgTaxitm", "04");
+ jgParkFeeInfo.put("usePay", userData.get("PARK_FEE_AGRE_AT") == null ? 'N' : userData.get("PARK_FEE_AGRE_AT"));
+
+ Map jgFeeInfo = new HashMap<>();
+ jgFeeInfo.clear();
+ if("정상승인".equals(jgParkFeeInfo.get("RSPNS_MSSAGE"))) {
+ jgFeeInfo.put("collectNm", "사전등록");
+ jgFeeInfo.put("receiptCd", "1");
+ } else {
+ jgFeeInfo.put("collectNm", "미납");
+ jgFeeInfo.put("receiptCd", "2");
+ }
+ jgFeeInfo.put("insttNo", jgParkFeeInfo.get("INSTT_NO"));
+ jgFeeInfo.put("insttDelngNo", jgParkFeeInfo.get("INSTT_DELNG_NO"));
+ jgFeeInfo.put("vhcleNum", jgParkFeeInfo.get("VHCLE_NO"));
+ jgFeeInfo.put("passDt", (String) jgParkFeeInfo.get("DELNG_YMD") + (String) jgParkFeeInfo.get("DELNG_HMS"));
+ jgFeeInfo.put("passFareOfi", jgParkFeeInfo.get("INSTT_NM"));
+ jgFeeInfo.put("passLocBooth", jgParkFeeInfo.get("INSTT_DETAIL_NM"));
+ jgFeeInfo.put("passAmount", jgParkFeeInfo.get("SETLE_AMOUNT"));
+ jgFeeInfo.put("vhcleTy", jgParkFeeInfo.get("CARS_TY"));
+ jgFeeInfo.put("occrrncDate", jgParkFeeInfo.get("OCCRRNC_DATE"));
+ jgFeeInfo.put("occrrncTime", jgParkFeeInfo.get("OCCRRNC_TIME"));
+ jgFeeInfo.put("insttDetailCode", jgParkFeeInfo.get("INSTT_DETAIL_CODE"));
+ jgFeeInfo.put("pasngSeCode", jgParkFeeInfo.get("PASNG_SE_CODE"));
+ jgFeeInfo.put("receiptTypeNm", "사전등록");
+ jgFeeDataList.add(jgFeeInfo);
+ }
+ if (jgFeeData.size() > 0) {
+ feeList.addAll(jgFeeDataList);
+ }
+ logger.error("중구 오류 - feeList > "+feeList);
+ }*/
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ /*서초구 주차장 이용료 조회*/
+ if (params.get("vhcleNum") != null) {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map scgParkFeesInfo = feeService.getScgParkFees(params);
+ try {
+ if (scgParkFeesInfo.get("data") != null) {
+ List scgParkFeesList = (List) scgParkFeesInfo.get("data");
+ for (Object scgParkFeesObj : scgParkFeesList) {
+ Map scgParkFeeInfo = (Map) scgParkFeesObj;
+ scgParkFeeInfo.put("gubun", "J");
+ scgParkFeeInfo.put("ffnlgTaxitm", "04");
+ scgParkFeeInfo.put("usePay", userData.get("PARK_FEE_AGRE_AT") == null ? 'N' : userData.get("PARK_FEE_AGRE_AT"));
+ }
+ if (scgParkFeesList.size() > 0) {
+ feeList.addAll(scgParkFeesList);
+ }
+
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ /*서부간선도로 이용료 조회*/
+ if (params.get("vhcleNum") != null) {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map sbgRoadFeesInfo = feeService.getSbgRoadFees(params);
+ try {
+ if (sbgRoadFeesInfo.get("data") != null) {
+ List sbgRoadFeesList = (List) sbgRoadFeesInfo.get("data");
+ for (Object sbgRoadFeesObj : sbgRoadFeesList) {
+ Map sbgRoadFeeInfo = (Map) sbgRoadFeesObj;
+ sbgRoadFeeInfo.put("gubun", "J");
+ sbgRoadFeeInfo.put("ffnlgTaxitm", "04");
+ sbgRoadFeeInfo.put("usePay", userData.get("JMP_TUNNEL_FEE_AGRE_AT") == null ? 'N' : userData.get("JMP_TUNNEL_FEE_AGRE_AT"));
+ }
+ if (sbgRoadFeesList.size() > 0) {
+ feeList.addAll(sbgRoadFeesList);
+ }
+
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+
+ /*if (params.get("vhcleNum") != null) {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map ssmTunnelFeesInfo = feeService.getJmpTunnelFees(params);
+ if (ssmTunnelFeesInfo.get("data") != null) {
+ List ssmTunnelFeesList = (List) ssmTunnelFeesInfo.get("data");
+ for (Object ssmTunnelFeesObj : ssmTunnelFeesList) {
+ Map ssmTunnelFeeInfo = (Map) ssmTunnelFeesObj;
+ ssmTunnelFeeInfo.put("gubun", "J");
+ ssmTunnelFeeInfo.put("ffnlgTaxitm", "05");
+ ssmTunnelFeeInfo.put("usePay", userData.get("SSM_TUNNEL_FEE_AGRE_AT") == null ? 'N' : userData.get("SSM_TUNNEL_FEE_AGRE_AT"));
+ }
+ if (ssmTunnelFeesList.size() > 0) {
+ feeList.addAll(ssmTunnelFeesList);
+ }
+
+ }
+ }*/
+
+ if (feeList.size() > 0) {
+ try {
+ Collections.sort(feeList, new Comparator() {
+ @Override
+ public int compare(Object o1, Object o2) {
+ Long l1 = 0L;
+ Long l2 = 0L;
+ try {
+ Map m1 = (Map) o1;
+ Map m2 = (Map) o2;
+ String d1 = (String) m1.get("passDt");
+ l1 = Long.parseLong(d1);
+ String d2 = (String) m2.get("passDt");
+ l2 = Long.parseLong(d2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ return l2.compareTo(l1);
+ }
+ });
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ result.setData("feeList", feeList);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCCESS_NODATA, "조회된 데이터가 없습니다.");
+ }
+ }
+ return result.getResult();
+ }
+
+ /**
+ * Gets fee list.
+ *
+ * @param param the param
+ * @return the fee list
+ */
+ @RequestMapping(value = "/fee/getDbFeeList.do", method = RequestMethod.POST)
+ public @ResponseBody Map getDbFeeList(@RequestBody Map param) {
+ Map params = (Map) param.get("param");
+ logger.info("Param Data : " + params);
+ Map userData = loginService.isMemberNoMap(userInfo.getUserNo());
+ Result result = new Result();
+ List feeList = new ArrayList();
+ params.put("mberNo", userInfo.getUserNo());
+ params.put("mberCi", userInfo.getUserCi());
+ Map rtnVhcles = new HashMap();
+ if (userInfo.isTempMber()) {
+ rtnVhcles.put("VHCLES_NUM", params.get("vhcleNum"));
+ userData = new HashMap();
+ userData.put("TUNNEL_FEE_AGRE_AT", "N");
+ userData.put("PARK_FEE_AGRE_AT", "N");
+ userData.put("JMP_TUNNEL_FEE_AGRE_AT", "N");
+ userData.put("SSM_TUNNEL_FEE_AGRE_AT", "N");
+ } else {
+ rtnVhcles = vehicleService.rtnMyVhclesBySearchParam(params);
+ }
+ logger.info("rtnVhcles : " + rtnVhcles);
+
+ if (rtnVhcles == null || "".equals(rtnVhcles.get("VHCLES_NUM")) || rtnVhcles.get("VHCLES_NUM") == null) {
+ result.setMsg(result.STATUS_ERROR, "조회할 차량이 존재하지 않습니다.");
+ } else {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ if (params.get("vhcleNum") != null) {
+ String vhcleNums = (String) params.get("vhcleNum");
+ String[] arrVhcleNums = vhcleNums.split(",");
+ for (String vhcleNum : arrVhcleNums) {
+ params.put("vhcleNum", vhcleNum);
+ try {
+ Map dbParam = new HashMap<>();
+ List jgFeeDataList = new ArrayList();
+ dbParam.put("vhcleNo", params.get("vhcleNum"));
+ dbParam.put("mberNo", userInfo.getUserNo());
+ dbParam.put("startDate", (String) params.get("startDate"));
+ dbParam.put("endDate", (String) params.get("endDate"));
+ logger.error("DB 결제내역 조회 -> " + dbParam);
+ List feeData = feeService.getFeeData(dbParam);
+ logger.error("DB 결제내역 조회 - jgFeeData > " + feeData);
+ for (Object feeDataObj : feeData) {
+ Map feeDataInfo = (Map) feeDataObj;
+ Map feeInfo = new HashMap<>();
+ feeInfo.clear();
+ if ("정상승인".equals(feeDataInfo.get("RSPNS_MSSAGE"))) {
+ feeInfo.put("collectNm", "사전등록");
+ feeInfo.put("receiptCd", "1");
+ } else {
+ feeInfo.put("collectNm", "미납");
+ // feeInfo.put("receiptCd", "2");
+ }
+ feeInfo.put("insttNo", feeDataInfo.get("INSTT_NO"));
+ feeInfo.put("insttDelngNo", feeDataInfo.get("INSTT_DELNG_NO"));
+ feeInfo.put("vhcleNum", feeDataInfo.get("VHCLE_NO"));
+ feeInfo.put("passDt", (String) feeDataInfo.get("DELNG_YMD") + (String) feeDataInfo.get("DELNG_HMS"));
+ feeInfo.put("passFareOfi", feeDataInfo.get("INSTT_NM")+"("+(String) feeDataInfo.get("MNGR_NM")+")");
+ feeInfo.put("passLocBooth", feeDataInfo.get("INSTT_DETAIL_NM"));
+ feeInfo.put("passAmount", feeDataInfo.get("SETLE_AMOUNT"));
+ feeInfo.put("vhcleTy", feeDataInfo.get("CARS_TY"));
+ feeInfo.put("occrrncDate", feeDataInfo.get("OCCRRNC_DATE"));
+ feeInfo.put("occrrncTime", feeDataInfo.get("OCCRRNC_TIME"));
+ feeInfo.put("insttDetailCode", feeDataInfo.get("INSTT_DETAIL_CODE"));
+ feeInfo.put("pasngSeCode", feeDataInfo.get("PASNG_SE_CODE"));
+ feeInfo.put("receiptTypeNm", "사전등록");
+ jgFeeDataList.add(feeInfo);
+ }
+ if (feeData.size() > 0) {
+ feeList.addAll(jgFeeDataList);
+ }
+ logger.error("DB 결제내역 조회 - feeList size > " + feeList.size());
+ if (feeList.size() > 0) {
+ try {
+ Collections.sort(feeList, new Comparator() {
+ @Override
+ public int compare(Object o1, Object o2) {
+ Long l1 = 0L;
+ Long l2 = 0L;
+ try {
+ Map m1 = (Map) o1;
+ Map m2 = (Map) o2;
+ String d1 = (String) m1.get("passDt");
+ l1 = Long.parseLong(d1);
+ String d2 = (String) m2.get("passDt");
+ l2 = Long.parseLong(d2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ return l2.compareTo(l1);
+ }
+ });
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ logger.error("DB 결제내역 조회 - feeList size2 > " + feeList.size());
+ result.setData("feeList", feeList);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCCESS_NODATA, "조회된 데이터가 없습니다.");
+ }
+ logger.error("DB 결제내역 조회 - feeList > " + feeList);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ }
+ }
+ }
+ return result.getResult();
+ }
+
+ /**
+ * Gets fees info.
+ *
+ * @param param the param
+ * @return the fees info
+ */
+ @RequestMapping(value = "/fee/getFeesInfo.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getFeesInfo(@RequestBody Map param) {
+ Map params = (Map) param.get("param");
+ Map param2 = (Map) param.get("dma_param2");
+ logger.info("====#####== FeeController getFeesInfo POST =======");
+ logger.info("Param Data : " + params);
+
+ Result result = new Result();
+ params.put("vhcleNum", param2.get("vhcleNum"));
+ Map feesInfo = feeService.getFeesInfo(params);
+ /*Map complaintInfo = feeService.isExsistComplaintInfo(feesInfo);
+ if (complaintInfo != null) {
+ result.setData("complaintInfo", complaintInfo);
+ }*/
+ if (feesInfo.get("rspnsResult").equals("S")) {
+ result.setData("feesInfo", feesInfo);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_ERROR, feesInfo.get("rspnsMssage").toString());
+ }
+
+
+ return result.getResult();
+ }
+
+ /**
+ * Gets pay info.
+ *
+ * @return the pay info
+ */
+ @RequestMapping(value = "/fee/getPayInfo.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getPayInfo() {
+ Result result = new Result();
+
+ Map payInfo = preRegistPaymentService.getPaymentInfo(userInfo.getUserNo());
+
+ result.setData("payInfo", payInfo);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+
+ return result.getResult();
+ }
+
+ /**
+ * Pay a fee map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ @RequestMapping(value = "/fee/payAFee.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map payAFee(@RequestBody Map param) {
+ logger.info("Param Data : " + param);
+ Map response = feeService.payAFee(param);
+ return response;
+ }
+
+ /**
+ * Gets complaints list.
+ *
+ * @param param the param
+ * @return the complaints list
+ */
+ @RequestMapping(value = "/fee/getComplaintsList.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getComplaintsList(@RequestBody Map param) {
+ Result result = new Result();
+ try {
+ logger.info("====#####== FeeController getComplaintsList POST =======");
+ logger.info("Param Data : " + param);
+
+ Map params = (Map) param.get("param");
+ params.put("mberNo", userInfo.getUserNo());
+ params.put("mberCi", userInfo.getUserCi());
+ Map rtnVhcles = new HashMap();
+ if (userInfo.isTempMber()) {
+ rtnVhcles.put("VHCLES_NUM", params.get("vhcleNum"));
+ } else {
+ rtnVhcles = vehicleService.rtnMyVhclesBySearchParam(params);
+ }
+ logger.info("rtnVhcles : " + rtnVhcles);
+ if (rtnVhcles == null || "".equals(rtnVhcles.get("VHCLES_NUM")) || rtnVhcles.get("VHCLES_NUM") == null) {
+ result.setMsg(result.STATUS_ERROR, "조회할 차량이 존재하지 않습니다.");
+ } else {
+ params.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map resultMap = feeService.getComplaintsList(params);
+ logger.info("resultMap::" + resultMap);
+
+ if (resultMap.get("rspnsResult").equals("S")) {
+ List complaintsList = new ArrayList();
+ if (resultMap.get("data") != null) {
+ complaintsList = (List) resultMap.get("data");
+ }
+ if (complaintsList.size() > 0) {
+ Collections.sort(complaintsList, new Comparator() {
+ @Override
+ public int compare(Object o1, Object o2) {
+ Long l1 = 0L;
+ Long l2 = 0L;
+ try {
+ Map m1 = (Map) o1;
+ Map m2 = (Map) o2;
+ String d1 = (String) m1.get("requDt");
+ l1 = Long.parseLong(d1);
+ String d2 = (String) m2.get("requDt");
+ l2 = Long.parseLong(d2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ return l2.compareTo(l1);
+ }
+ });
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCCESS_NODATA_MESSAGE);
+ }
+ result.setData("dlt_complaintsList2", complaintsList);
+ } else {
+ result.setMsg(result.STATUS_ERROR, resultMap.get("rspnsMssage").toString());
+ }
+ }
+ logger.info("Result Data : " + result.getResult());
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Gets complaint info.
+ *
+ * @param param the param
+ * @return the complaint info
+ */
+ @RequestMapping(value = "/fee/getComplaintInfo.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getComplaintInfo(@RequestBody Map param) {
+ Result result = new Result();
+ try {
+ logger.info("====#####== FeeController getComplaintInfo POST =======");
+ logger.info("Param Data : " + param);
+
+ Map params = (Map) param.get("param");
+ params.put("mberNo", userInfo.getUserNo());
+ params.put("mberCi", userInfo.getUserCi());
+ Map complatint = feeService.getComplaintInfo(params);
+ if (complatint.get("rspnsResult").equals("S")) {
+ Map data = null;
+ List resultList = new ArrayList();
+ List fileList = new ArrayList();
+ resultList = (List) complatint.get("data");
+ data = (Map) resultList.get(0);
+
+ /*String fileId = "";
+ if (data.get("addFile1") != null) {
+ fileId = data.get("addFile1").toString();
+ fileParam.put("ATCH_FILE_ID", fileId);
+ fileList = feeService.getComplaintFileInfo(fileParam);
+ }*/
+ if (data.get("addFile1") != null) {
+ String file = data.get("addFile1").toString();
+ /*info.fileId = o.ATCH_FILE_ID;
+ info.localFileName = o.ORGINL_FILE_NM;
+ info.fileSeq = o.FILE_SEQ_NO;*/
+ Map fileParam = new HashMap();
+ fileParam.put("ATCH_FILE_ID", file);
+ fileParam.put("ORGINL_FILE_NM", FilenameUtils.getName(file));
+ fileParam.put("FILE_SEQ_NO", 1);
+ fileList.add(fileParam);
+ }
+ if (data.get("addFile2") != null) {
+ String file = data.get("addFile2").toString();
+ /*info.fileId = o.ATCH_FILE_ID;
+ info.localFileName = o.ORGINL_FILE_NM;
+ info.fileSeq = o.FILE_SEQ_NO;*/
+ Map fileParam = new HashMap();
+ fileParam.put("ATCH_FILE_ID", file);
+ fileParam.put("ORGINL_FILE_NM", FilenameUtils.getName(file));
+ fileParam.put("FILE_SEQ_NO", 2);
+ fileList.add(fileParam);
+ }
+ if (data.get("addFile3") != null) {
+ String file = data.get("addFile3").toString();
+ /*info.fileId = o.ATCH_FILE_ID;
+ info.localFileName = o.ORGINL_FILE_NM;
+ info.fileSeq = o.FILE_SEQ_NO;*/
+ Map fileParam = new HashMap();
+ fileParam.put("ATCH_FILE_ID", file);
+ fileParam.put("ORGINL_FILE_NM", FilenameUtils.getName(file));
+ fileParam.put("FILE_SEQ_NO", 3);
+ fileList.add(fileParam);
+ }
+
+ result.setData("fileList", fileList);
+ result.setData("dlt_complaintsList", resultList);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ String rspnsMssage = "";
+ rspnsMssage = complatint.get("rspnsMssage").toString();
+ if (!"".equals(rspnsMssage)) {
+ result.setMsg(result.STATUS_ERROR, rspnsMssage);
+ } else {
+ result.setMsg(result.STATUS_ERROR, result.STATUS_SUCESS_MESSAGE);
+ }
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[process error::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Submit a complaint map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ @RequestMapping(value = "/fee/submitAComplaint.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map submitAComplaint(@RequestBody Map param) {
+ Result result = new Result();
+ try {
+ logger.info("====#####== FeeController submitAComplaint POST =======");
+ logger.info("Param Data : " + param);
+
+ Map complaintInfo = (Map) param.get("complaintInfo");
+ complaintInfo.put("mberNo", userInfo.getUserNo());
+ complaintInfo.put("mberCi", userInfo.getUserCi());
+ logger.info("complaintInfo:: " + complaintInfo);
+ List files = (List) param.get("fileList");
+ logger.info("files:: " + files);
+
+ //complaintInfo.put("MBER_CI", userInfo.getUserCi());
+ Map resultMap = feeService.submitAComplaint(complaintInfo, files);
+ if (resultMap.get("rspnsResult").equals("S")) {
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ String rspnsMssage = "";
+ rspnsMssage = resultMap.get("rspnsMssage").toString();
+ if (!"".equals(rspnsMssage)) {
+ result.setMsg(result.STATUS_ERROR, rspnsMssage);
+ } else {
+ result.setMsg(result.STATUS_ERROR, result.STATUS_SUCESS_MESSAGE);
+ }
+ }
+
+ Map resultMap2 = feeService.privachCheckApi(complaintInfo, files);
+ result.setData("dma_result", resultMap2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+
+ /**
+ * Modify a complaint map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ @RequestMapping(value = "/fee/modifyAComplaint.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map modifyAComplaint(@RequestBody Map param) {
+
+ logger.info("====#####== FeeController modifyAComplaint POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dma_param = (Map) param.get("dma_param");
+ logger.info("dma_param:: " + dma_param);
+ Map complaintInfo = (Map) param.get("dma_complaint");
+ complaintInfo.put("mberNo", userInfo.getUserNo());
+ complaintInfo.put("mberCi", userInfo.getUserCi());
+ logger.info("complaintInfo:: " + complaintInfo);
+ List files = (List) param.get("fileList");
+ logger.info("files::" + files);
+
+ complaintInfo.put("insttDelngNo", dma_param.get("insttDelngNo"));
+ complaintInfo.put("civilNo", dma_param.get("civilNo"));
+
+ Map resultMap = new HashMap();
+ Map resultMap1 = feeService.modifyAComplaint(complaintInfo, files);
+ if (resultMap1.get("rspnsResult").equals("S")) {
+ resultMap.put("rspnsResult", "S");
+ } else {
+ resultMap.put("rspnsResult", "E");
+ }
+
+ logger.info("resultMap11::" + resultMap);
+ Map resultMap2 = feeService.privachCheckApi(complaintInfo, files);
+ resultMap.putAll(resultMap2);
+ logger.info("resultMap22::" + resultMap);
+
+ return resultMap;
+ }
+
+ /**
+ * Cancle a complaint map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ @RequestMapping(value = "/fee/cancleAComplaint.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map cancleAComplaint(@RequestBody Map param) {
+ Result result = new Result();
+ try {
+ logger.info("====#####== FeeController cancleAComplaint POST =======");
+ logger.info("Param Data : " + param);
+
+ Map dma_param = (Map) param.get("dma_param");
+ dma_param.put("mberNo", userInfo.getUserNo());
+ dma_param.put("mberCi", userInfo.getUserCi());
+ logger.info("dma_param : " + dma_param);
+
+ Map resultMap = feeService.cancleAComplaint(dma_param);
+ logger.info("resultMap:: " + resultMap);
+
+ if (resultMap.get("rspnsResult").equals("S")) {
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE);
+ }
+
+ List files = null;
+ Map resultMap2 = feeService.privachCheckApi(dma_param, files);
+ result.setData("dma_result", resultMap2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Submit a complaint reply map.
+ *
+ * @param param the param
+ * @return the map
+ */
+ @RequestMapping(value = "/fee/submitAComplaintReply.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map submitAComplaintReply(@RequestBody Map param) {
+ Map params = (Map) param.get("param");
+ logger.info("Param Data : " + params);
+
+ Result result = new Result();
+
+ Map complatint = feeService.submitAComplaintReply(param);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+
+ return result.getResult();
+ }
+
+ /**
+ * Gets refnd list.
+ *
+ * @param param the param
+ * @return the refnd list
+ */
+ @RequestMapping(value = "/fee/getRefndList.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getRefndList(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST getRefndList =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("param");
+ dbParam.put("mberNo", userInfo.getUserNo());
+ dbParam.put("mberCi", userInfo.getUserCi());
+ Map rtnVhcles = new HashMap();
+ if (userInfo.isTempMber()) {
+ rtnVhcles.put("VHCLES_NUM", dbParam.get("vhcleNum"));
+ } else {
+ rtnVhcles = vehicleService.rtnMyVhclesBySearchParam(dbParam);
+ }
+ logger.info("rtnVhcles : " + rtnVhcles);
+ if (rtnVhcles == null || "".equals(rtnVhcles.get("VHCLES_NUM")) || rtnVhcles.get("VHCLES_NUM") == null) {
+ logger.error("rtnVhcles not exsist" + rtnVhcles);
+ result.setMsg(result.STATUS_ERROR, "조회할 차량이 존재하지 않습니다.");
+ } else {
+ dbParam.put("vhcleNum", rtnVhcles.get("VHCLES_NUM"));
+ Map resutMap = feeService.getRefndList(dbParam);
+ logger.info("resutMap::" + resutMap);
+ if (resutMap.get("rspnsResult").equals("S")) {
+ List refundsList = new ArrayList();
+ if (resutMap.get("data") != null) {
+ refundsList = (List) resutMap.get("data");
+ }
+ if (refundsList.size() > 0) {
+ Collections.sort(refundsList, new Comparator() {
+ @Override
+ public int compare(Object o1, Object o2) {
+ Long l1 = 0L;
+ Long l2 = 0L;
+ try {
+ Map m1 = (Map) o1;
+ Map m2 = (Map) o2;
+ String d1 = (String) m1.get("rfnProcDt");
+ l1 = Long.parseLong(d1);
+ String d2 = (String) m2.get("rfnProcDt");
+ l2 = Long.parseLong(d2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ }
+ return l2.compareTo(l1);
+ }
+ });
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCCESS_NODATA_MESSAGE);
+ }
+ result.setData("dlt_resultList2", refundsList);
+ } else {
+ result.setMsg(result.STATUS_ERROR, resutMap.get("rspnsMssage").toString());
+ }
+ }
+ logger.info("Result Data List: " + result.getResult());
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+ return result.getResult();
+ }
+
+ /**
+ * Gets bank code list.
+ *
+ * @param param the param
+ * @return the bank code list
+ */
+ @RequestMapping(value = "/fee/getBankCodeList.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map getBankCodeList(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST =======");
+ logger.info("Param Data : " + param);
+
+ result.setData("dlt_bankCodeList", joinService.getBankCode());
+ result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Gets bank code Insert Map.
+ *
+ * @param param the param
+ * @return the bank code Map
+ */
+ @RequestMapping(value = "/fee/refndInsert.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map refndInsert(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST refndInsert =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam1 = (Map) param.get("dma_result");
+ Map dbParam2 = (Map) param.get("dma_param");
+ dbParam2.put("mberNo", userInfo.getUserNo());
+ dbParam2.put("mberCi", userInfo.getUserCi());
+ Map resutMap = feeService.refndInsert(dbParam1, dbParam2);
+ logger.info("resutMap::" + resutMap);
+ if (resutMap.get("rspnsResult").equals("S")) {
+ result.setData("dma_result", resutMap);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_ERROR, resutMap.get("rspnsMssage").toString());
+ }
+
+ Map resultMap2 = feeService.refundPrivachCheckApi(dbParam1);
+ result.setData("dma_result", resultMap2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Gets bank code Update Map.
+ *
+ * @param param the param
+ * @return the bank code Map
+ */
+ @RequestMapping(value = "/fee/refndUpdate.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map refndUpdate(@RequestBody Map param) {
+
+ Result result = new Result();
+ try {
+ logger.info("====#####== POST refndUpdate =======");
+ logger.info("Param Data : " + param);
+
+ Map dbParam = (Map) param.get("dma_result");
+ dbParam.put("mberNo", userInfo.getUserNo());
+ dbParam.put("mberCi", userInfo.getUserCi());
+ Map resutMap = feeService.refndUpdate(dbParam);
+ logger.info("resutMap::" + resutMap);
+ if (resutMap.get("rspnsResult").equals("S")) {
+ result.setData("dma_result", resutMap);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_ERROR, resutMap.get("rspnsMssage").toString());
+ }
+
+ Map resultMap2 = feeService.refundPrivachCheckApi(dbParam);
+ result.setData("dma_result", resultMap2);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, "처리시 에러가 발생하였습니다.", ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Fee recipt string.
+ *
+ * @param model the model
+ * @param request the request
+ * @return the string
+ */
+ @RequestMapping(value = "/fee/feeRecipt.do", method = RequestMethod.GET)
+ public String feeRecipt(ModelMap model, HttpServletRequest request) {
+ model.addAttribute("insttDelngNos", request.getParameter("insttDelngNos"));
+ return "report/fee/feeRecipt";
+ }
+
+ /**
+ * View fee recipt list map.
+ *
+ * @param request the request
+ * @return the map
+ */
+ @RequestMapping(value = "/report/viewFeeReciptList.do", method = RequestMethod.GET)
+ public @ResponseBody
+ Map viewFeeReciptList(HttpServletRequest request) {
+ Result result = new Result();
+ logger.info("report insttDelngNos [" + request.getParameter("insttDelngNos") + "]");
+ String insttDelngNos = request.getParameter("insttDelngNos");
+ Map param = new HashMap<>();
+ param.put("insttDelngNos", insttDelngNos);
+ Map resutMap = feeService.getReciptList(param);
+ if (resutMap.get("rspnsResult").equals("S")) {
+ List reciptList = (List) resutMap.get("data");
+ result.setData("reciptList", reciptList);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ List reciptList = new ArrayList();
+ result.setData("reciptList", reciptList);
+ result.setMsg(result.STATUS_ERROR, resutMap.get("rspnsMssage").toString());
+ }
+ return result.getResult();
+ }
+
+ @RequestMapping(value = "/report/viewFeeReciptList.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map viewFeeReciptListPOST(HttpServletRequest request) {
+ Result result = new Result();
+ logger.info("report insttDelngNos [" + request.getParameter("insttDelngNos") + "]");
+ String insttDelngNos = request.getParameter("insttDelngNos");
+ Map param = new HashMap<>();
+ param.put("insttDelngNos", insttDelngNos);
+ Map resutMap = feeService.getReciptList(param);
+ if (resutMap.get("rspnsResult").equals("S")) {
+ List reciptList = (List) resutMap.get("data");
+ result.setData("reciptList", reciptList);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ List reciptList = new ArrayList();
+ result.setData("reciptList", reciptList);
+ result.setMsg(result.STATUS_ERROR, resutMap.get("rspnsMssage").toString());
+ }
+ return result.getResult();
+ }
+
+ /**
+ * Gets U-PRIVACY CHECK API Map.
+ *
+ * @param param the param
+ * @return the penalty Map
+ */
+ @RequestMapping(value = "/fee/privachCheckApi.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map privachCheckApi(@RequestBody Map param) {
+
+ Result result = new Result();
+ Map resutMap = new HashMap<>();
+ try {
+ logger.info("====#####== POST privachCheckApi =======");
+ logger.info("Param Data : " + param);
+
+ Map inputData = (Map) param.get("inputData");
+ List files = (List) param.get("fileList");
+
+ resutMap = feeService.privachCheckApi(inputData, files);
+
+ if (resutMap.get("rspnsResult").equals("S")) {
+ result.setData("dma_result", resutMap);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE);
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, ex);
+ }
+
+ return result.getResult();
+ }
+
+ /**
+ * Gets U-PRIVACY CHECK API Map.
+ *
+ * @param param the param
+ * @return the penalty Map
+ */
+ @RequestMapping(value = "/fee/refundPrivachCheckApi.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map refundPrivachCheckApi(@RequestBody Map param) {
+
+ Result result = new Result();
+ Map resutMap = new HashMap<>();
+ try {
+ logger.info("====#####== POST privachCheckApi =======");
+ logger.info("Param Data : " + param);
+
+ Map inputData = (Map) param.get("inputData");
+
+ resutMap = feeService.refundPrivachCheckApi(inputData);
+
+ if (resutMap.get("rspnsResult").equals("S")) {
+ result.setData("dma_result", resutMap);
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } else {
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE);
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, re);
+ } catch (Exception ex) {
+ logger.error("[Exception::" + "" + "]", ex);
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, ex);
+ }
+
+ return result.getResult();
+ }
+
+}
diff --git a/src/main/java/gtpa/brs/handler/ClobTypeHandler.java b/src/main/java/gtpa/brs/handler/ClobTypeHandler.java
new file mode 100644
index 0000000..3370573
--- /dev/null
+++ b/src/main/java/gtpa/brs/handler/ClobTypeHandler.java
@@ -0,0 +1,45 @@
+package gtpa.brs.handler;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 23/04/2019
+ * TIME : 2:13 PM
+ * Project : BRSPW
+ * Class : ClobTypeHandler
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@MappedJdbcTypes(value = {JdbcType.CLOB})
+public class ClobTypeHandler extends BaseTypeHandler {
+
+ @Override
+ public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
+ preparedStatement.setString(i, s);
+ }
+
+ @Override
+ public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
+ return resultSet.getString(s);
+ }
+
+ @Override
+ public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
+ return resultSet.getString(i);
+ }
+
+ @Override
+ public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+ return callableStatement.getString(i);
+ }
+}
diff --git a/src/main/java/gtpa/brs/handler/StringTypeHandler.java b/src/main/java/gtpa/brs/handler/StringTypeHandler.java
new file mode 100644
index 0000000..4227474
--- /dev/null
+++ b/src/main/java/gtpa/brs/handler/StringTypeHandler.java
@@ -0,0 +1,58 @@
+package gtpa.brs.handler;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 23/04/2019
+ * TIME : 2:01 PM
+ * Project : BRSPW
+ * Class : StringTypeHandler
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@MappedJdbcTypes(value = {JdbcType.VARCHAR, JdbcType.CHAR})
+public class StringTypeHandler extends BaseTypeHandler {
+
+ @Override
+ public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
+ preparedStatement.setString(i, s);
+ }
+
+ @Override
+ public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
+ if (resultSet.getString(s) != null) {
+ return resultSet.getString(s).trim();
+ } else {
+ return resultSet.getString(s);
+ }
+
+ }
+
+ @Override
+ public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
+ if (resultSet.getString(i) != null) {
+ return resultSet.getString(i).trim();
+ } else {
+ return resultSet.getString(i);
+ }
+ }
+
+ @Override
+ public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+ if (callableStatement.getString(i) != null) {
+ return callableStatement.getString(i).trim();
+ } else {
+ return callableStatement.getString(i);
+ }
+ }
+}
diff --git a/src/main/java/gtpa/brs/home/web/InitController.java b/src/main/java/gtpa/brs/home/web/InitController.java
new file mode 100644
index 0000000..cb716db
--- /dev/null
+++ b/src/main/java/gtpa/brs/home/web/InitController.java
@@ -0,0 +1,221 @@
+package gtpa.brs.home.web;
+
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import gtpa.brs.user.dto.UserInfo;
+import gtpa.brs.util.PageURIUtil;
+import gtpa.brs.util.Result;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import eu.bitwalker.useragentutils.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.view.RedirectView;
+
+import java.util.Map;
+
+
+/**
+ * The type Init controller.
+ */
+@SuppressFBWarnings
+@Controller
+public class InitController {
+
+ Logger logger = LoggerFactory.getLogger(InitController.class);
+ @Autowired
+ UserInfo userInfo;
+
+ @Autowired
+ PageURIUtil pageURIUtil;
+
+ /**
+ * Instantiates a new Init controller.
+ */
+ public InitController() {
+ }
+
+ /**
+ * 다국어 처리 Root Url 처리
+ *
+ * @param request the request
+ * @param response the response
+ * @param model the model
+ * @return the string
+ * @throws Exception the exception
+ * @date 2017.12.22
+ * @author Inswave
+ * @example websquare 진입 후 세션과 설정 값에 따른 화면 xml 분기를 위한 controller. 고려 대상은 websquare.jsp와 I18N.jsp. 화면 페이지의 정보는 properties파일에서 일괄 관리.
+ * @todo 차후 interceptor에서 일괄 처리 가능한지 체크 해야 함.
+ */
+ @RequestMapping(value = "/I18N", method = RequestMethod.GET)
+ public String indexMultiLang(HttpServletRequest request, HttpServletResponse response, Model model) {
+ model.addAttribute("movePage", getInitPage(request.getParameter("w2xPath")));
+ return "websquare/I18N";
+ }
+
+ /**
+ * 기본 Root Url 처리
+ *
+ * @param request the request
+ * @param response the response
+ * @return the model and view
+ * @throws Exception the exception
+ * @date 2017.12.22
+ * @author Inswave
+ * @todo url의 경로가 /(root)인 경우 웹스퀘어 엔진에서 하위 컨텐츠 로딩 부분의 특이사항이 발견되어 redirect로 처리.수정 및 개선 필요.
+ */
+ @RequestMapping(value = "/ws.do", method = RequestMethod.GET)
+ public ModelAndView IndexHideBase(HttpServletRequest request, HttpServletResponse response) {
+ ModelAndView mv = new ModelAndView();
+ HttpSession session = request.getSession(false);
+
+ String movePage = request.getParameter("w2xPath");
+ String linkPage = request.getParameter("link");
+ if (session.getAttribute("w2xPath") != null) {
+ movePage = (String) session.getAttribute("w2xPath");
+ session.removeAttribute("w2xPath");
+ } else {
+ if (movePage == null || movePage.equals("")) {
+ movePage = getInitPage(movePage);
+ }
+ }
+
+ if (linkPage == null && session.getAttribute("link") != null) {
+ linkPage = (String) session.getAttribute("link");
+ session.removeAttribute("link");
+ }
+
+ mv.setViewName("websquare/websquare");
+ mv.addObject("movePage", movePage);
+ mv.addObject("link", linkPage);
+ logger.info("movePage ::" + movePage);
+ logger.info("link ::" + linkPage);
+
+ UserAgent agent = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
+ // operating system
+ OperatingSystem os = agent.getOperatingSystem();
+ // device type
+ DeviceType deviceType = os.getDeviceType();
+ logger.info("*Device: " + deviceType.getName());
+ if (deviceType.getName().indexOf("Computer") > -1) {
+ return mv;
+ } else {
+ String redirectUrl= "/";
+ RedirectView redirectView = new RedirectView(redirectUrl);
+ redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
+ return new ModelAndView(redirectView);
+ }
+ }
+
+ /**
+ * SPA IFrame에서 호출하는 Blank 페이지를 반환하다.
+ *
+ * @param request the request
+ * @param model the model
+ * @return string
+ * @throws Exception the exception
+ */
+ @RequestMapping(value = "/blank.xml", method = RequestMethod.GET)
+ public String callBlankPage(HttpServletRequest request, Model model){
+ return "websquare/blank";
+ }
+
+ /**
+ * 로그인 페이지 Url을 반환한다.
+ *
+ * @param w2xPath w2xPath 파라미터
+ * @return 로그인 페이지 Url
+ */
+ private String getInitPage(String w2xPath) {
+ String movePage = w2xPath;
+ // session이 없을 경우 login 화면으로 이동.
+ if (!userInfo.isLogined()) {
+ // session이 있고 w2xPath가 없을 경우 index화면으로 이동.
+ if (movePage == null) {
+ //movePage = pageURIUtil.getLoginPage();
+ movePage = pageURIUtil.getIndexPage();
+ } else if (w2xPath.indexOf("/cm/main/") < 0) {
+ //movePage = pageURIUtil.getLoginPage();
+ movePage = pageURIUtil.getIndexPage();
+ } else if (w2xPath.indexOf("/cm/join/") < 0) {
+ logger.info(w2xPath);
+ }
+ } else {
+ if (movePage == null) {
+ // DB 설정조회 초기 page 구성
+ movePage = pageURIUtil.getIndexPageURI();
+
+ // DB에 값이 저장되어 있지 않은 경우 기본 index화면으로 이동
+ if (movePage == null) {
+ movePage = pageURIUtil.getIndexPageURI();
+ }
+ }
+ }
+ logger.info("getInit movePage ::" + movePage);
+ return movePage;
+ }
+
+ /**
+ * Init temp data map.
+ *
+ * @param request the request
+ * @return the map
+ */
+ @RequestMapping(value = "/initTempData.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map initTempData(HttpServletRequest request) {
+ Result result = new Result();
+ try {
+ HttpSession session = request.getSession(false);
+ if (session != null && session.getAttribute("scopedTarget.tempUserSessionInfoDTO") != null) {
+ session.invalidate();
+ }
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE,e);
+ }
+ return result.getResult();
+ }
+
+ @RequestMapping(value = "/refreshPage.do", method = RequestMethod.POST)
+ public @ResponseBody
+ Map refreshPage(HttpServletRequest request, @RequestBody Map param) {
+ Result result = new Result();
+ try {
+ HttpSession session = request.getSession(false);
+ if (session != null) {
+ session.setAttribute("link", param.get("link"));
+ }
+ result.setMsg(result.STATUS_SUCESS, result.STATUS_SUCESS_MESSAGE);
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE,e);
+ }
+ return result.getResult();
+ }
+
+ @RequestMapping(value = "/error.do", method = RequestMethod.GET)
+ public String errorPage() {
+ return "error/errorPage";
+ }
+}
diff --git a/src/main/java/gtpa/brs/interceptor/AccessStaticInterceptor.java b/src/main/java/gtpa/brs/interceptor/AccessStaticInterceptor.java
new file mode 100644
index 0000000..58fe8f8
--- /dev/null
+++ b/src/main/java/gtpa/brs/interceptor/AccessStaticInterceptor.java
@@ -0,0 +1,141 @@
+package gtpa.brs.interceptor;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import eu.bitwalker.useragentutils.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.servlet.mvc.WebContentInterceptor;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 31/05/2019
+ * TIME : 5:30 PM
+ * Project : BRSMW
+ * Class : AccessStaticInterceptor
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+public class AccessStaticInterceptor extends WebContentInterceptor {
+ private Logger logger = LoggerFactory.getLogger(AccessStaticInterceptor.class);
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
+ logger.info("=== refresh browser");
+ logger.info("=== access Browser:" + request.getHeader("user-agent"));
+ logger.info("- - - - - - - - - - - - - - - - -");
+
+ UserAgent agent = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
+ // browser
+ Browser browser = agent.getBrowser();
+ HashMap userBrowser = userBrowserChk(request);
+ if("".equals(userBrowser.get("browser"))) {
+ userBrowser.put("browser",browser.getName());
+ }
+
+ logger.info("Browser type: " + browser.getBrowserType().getName());
+ logger.info("**Browser name: " + userBrowser.get("browser"));
+ logger.info("Browser render engine: " + browser.getRenderingEngine());
+ /*
+ * 21.05.12 - 서주희 : 아이폰에서 카카오톡 웹뷰로 실행하는 경우 오류가 발생하는 걸로 파악되어 try catch 적용
+ * */
+ try{
+ Version version = agent.getBrowserVersion();
+ if ("".equals(userBrowser.get("version"))) {
+ logger.info("*Browser version: " + version.getVersion());
+ logger.info("Browser major version: " + version.getMajorVersion());
+ logger.info("Browser minor version: " + version.getMinorVersion());
+ } else {
+ logger.info("*Browser version: " + userBrowser.get("version"));
+ }
+ }catch(RuntimeException e){
+ logger.info("**Browser version: " + userBrowser.get("version"));
+ }
+ logger.info("Browser manufacturer: " + browser.getManufacturer().getName());
+
+ // operating system
+ OperatingSystem os = agent.getOperatingSystem();
+ logger.info("*OS Name: " + os.getName());
+ logger.info("OS Manufacturer: " + os.getManufacturer());
+ OperatingSystem group = os.getGroup();
+ logger.info("*OS group: " + group.getName());
+
+ // device type
+ DeviceType deviceType = os.getDeviceType();
+ logger.info("*Device: " + deviceType.getName());
+ return super.preHandle(request, response, handler);
+ }
+
+ private HashMap userBrowserChk(HttpServletRequest request) {
+
+ String userAgent = request.getHeader("user-agent");
+ HashMap info = new HashMap();
+ String browser = "";
+ String version = "";
+ try {
+ if(userAgent.indexOf("Trident") > -1 || userAgent.indexOf("MSIE") > -1) { //IE
+
+ if(userAgent.indexOf("Trident/7") > -1) {
+ browser = "Internet Explorer";
+ version = "11";
+ }else if(userAgent.indexOf("Trident/6") > -1) {
+ browser = "Internet Explorer";
+ version = "10";
+ }else if(userAgent.indexOf("Trident/5") > -1) {
+ browser = "Internet Explorer";
+ version = "9";
+ }else if(userAgent.indexOf("Trident/4") > -1) {
+ browser = "Internet Explorer";
+ version = "8";
+ }else if(userAgent.indexOf("edge") > -1 || userAgent.indexOf("Edge") > -1) {
+ browser = "Edge";
+ }
+
+ }else if(userAgent.indexOf("Whale") > -1){ //네이버 WHALE
+ //browser = "WHALE " + userAgent.split("Whale/")[1].toString().split(" ")[0].toString();
+ browser = "Whale";
+ version = userAgent.split("Whale/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("SamsungBrowser") > -1){ //SamsungBrowser
+ //browser = "WHALE " + userAgent.split("Whale/")[1].toString().split(" ")[0].toString();
+ browser = "SamsungBrowser";
+ version = userAgent.split("SamsungBrowser/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1){ //오페라
+ if(userAgent.indexOf("Opera") > -1) {
+ browser = "Opera";
+ version = userAgent.split("Opera/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("OPR") > -1) {
+ browser = "Opera";
+ version = userAgent.split("OPR/")[1].toString().split(" ")[0].toString();
+ }
+ }else if(userAgent.indexOf("Firefox") > -1){ //파이어폭스
+ browser = "Firefox";
+ version = userAgent.split("Firefox/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1 ){ //사파리
+ browser = "Safari";
+ version = userAgent.split("Safari/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("egde") > -1 || userAgent.indexOf("Edge") == -1 || userAgent.indexOf("Edg") == -1){ //사파리
+ browser = "Edge";
+ }else if(userAgent.indexOf("Chrome") > -1){ //크롬
+ browser = "Chrome";
+ version = userAgent.split("Chrome/")[1].toString().split(" ")[0].toString();
+ }
+ } catch (RuntimeException e) {
+ logger.error("[userBrowserChk Error::",e);
+ }
+
+
+ info.put("browser",browser);
+ info.put("version",version);
+
+ return info;
+ }
+}
diff --git a/src/main/java/gtpa/brs/interceptor/AuthenticInterceptor.java b/src/main/java/gtpa/brs/interceptor/AuthenticInterceptor.java
new file mode 100644
index 0000000..b28dfb2
--- /dev/null
+++ b/src/main/java/gtpa/brs/interceptor/AuthenticInterceptor.java
@@ -0,0 +1,81 @@
+package gtpa.brs.interceptor;
+
+import gtpa.brs.user.dto.UserInfo;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.WebContentInterceptor;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Method;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 17/04/2019
+ * TIME : 5:59 PM
+ * Project : BRSPW
+ * Class : AuthenticInterceptor
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+public class AuthenticInterceptor extends WebContentInterceptor {
+
+ private Logger logger = LoggerFactory.getLogger(AuthenticInterceptor.class);
+
+ @Autowired
+ private UserInfo userInfo;
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
+ boolean result = true;
+ try {
+ logger.info("== AuthenticInterceptor preHandle start =======" + request.getRequestURI());
+ HandlerMethod handlerMethod = (HandlerMethod) handler;
+ Method method = handlerMethod.getMethod();
+ logger.info("== method ======" + method);
+ logger.info("== bean ======" + handlerMethod.getBean());
+
+ //logger.info("== UserInfo ============================" + userInfo.getUserInfo());
+ if(request.getSession(false) != null){
+ logger.info("== tempUserSessionInfoDTO =====================" + request.getSession(false).getAttribute("scopedTarget.tempUserSessionInfoDTO"));
+ }
+
+ if (userInfo.getUserId() != null) {
+ result = true;
+ } else {
+ result = false;
+ //response.sendRedirect("/error.do");
+ response.setContentType("application/json");
+ response.setCharacterEncoding("UTF-8");
+ //response.getWriter().write("{\"rsMsg\":{\"message\":\"장시간 서비스 이용이 없어 접속 종료되었습니다.\"}}");
+ response.getWriter().write("{\"rsMsg\":{\"message\":\"접근권한이 없습니다. 중복로그인 또는 장시간 서비스 이용이 없어 접속이 종료되었습니다.\"}}");
+ /*response.setContentType("text/html; charset=UTF-8");
+ response.setCharacterEncoding("UTF-8");
+ response.getWriter().write("");*/
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::"+ "" + "]",e);
+ }finally {
+ logger.info("== result ============================" + result);
+ }
+
+ return result;
+ }
+
+ @Override
+ public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+ super.postHandle(request, response, handler, modelAndView);
+ logger.info("== AuthenticInterceptor postHandle start =======" + request.getRequestURI());
+ }
+}
+
diff --git a/src/main/java/gtpa/brs/interceptor/MessageAdvice.java b/src/main/java/gtpa/brs/interceptor/MessageAdvice.java
new file mode 100644
index 0000000..8af53d1
--- /dev/null
+++ b/src/main/java/gtpa/brs/interceptor/MessageAdvice.java
@@ -0,0 +1,267 @@
+package gtpa.brs.interceptor;
+
+import gtpa.brs.login.service.LoginService;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import eu.bitwalker.useragentutils.*;
+import gtpa.brs.util.Result;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.AfterThrowing;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@SuppressFBWarnings
+@Aspect // AOP bean : AOP 애노테이션
+@Component
+@EnableAspectJAutoProxy
+public class MessageAdvice {
+
+ @Autowired
+ private LoginService loginService;
+ private Logger logger = LoggerFactory.getLogger(MessageAdvice.class);
+
+ // 매개변수 확인, @Before(대상:호출전)
+ @Before("execution(* gtpa.brs.login.web.LoginController.login(..)) || execution(* gtpa.brs.login.web.LoginController.deUserLogin(..))")
+ public void startLog(JoinPoint jp) {
+ // 핵심업무의 클래스,매서드, 매개변수 로깅
+ //logger.info("핵심업무 코드정보 : "+jp.getSignature());
+ //logger.info("메서드 : "+jp.getSignature().getName());
+ //logger.info("매개변수:"+ Arrays.toString(jp.getArgs()));
+ }
+
+ // method 실행 시간 확인, @Around : 핵심업무 전후에 자동호출, ProceedingJoinPoint
+ @Around("execution(* gtpa.brs.login.web.LoginController.login(..)) || execution(* gtpa.brs.login.web.LoginController.deUserLogin(..))")
+ public Object timeLog(ProceedingJoinPoint pjp) throws Throwable {
+ // 핵심업무 실행 전
+ long start = System.currentTimeMillis();
+ // 핵심업무 실행
+ Object result = pjp.proceed();
+ // 핵심업무 실행 후
+ long end = System.currentTimeMillis();
+ // 핵심업무 실행시간 연산
+ //logger.info("매개변수:"+Arrays.toString(pjp.getArgs()));
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ UserAgent agent = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
+ // browser
+ Browser browser = agent.getBrowser();
+ //logger.info("Browser type: " + browser.getBrowserType().getName());
+ //logger.info("*Browser name: " + browser.getName());
+ //logger.info("Browser render engine: " + browser.getRenderingEngine());
+
+ Version version = agent.getBrowserVersion();
+ if (version != null) {
+ //logger.info("Browser version: " + version.getVersion());
+ //logger.info("Browser major version: " + version.getMajorVersion());
+ //logger.info("Browser minor version: " + version.getMinorVersion());
+ }
+ //logger.info("Browser manufacturer: " + browser.getManufacturer().getName());
+
+ // operating system
+ OperatingSystem os = agent.getOperatingSystem();
+ //logger.info("*OS Name: " + os.getName());
+ //logger.info("OS Manufacturer: " + os.getManufacturer());
+ OperatingSystem group = os.getGroup();
+ //logger.info("*OS group: " + group.getName());
+
+ // device type
+ DeviceType deviceType = os.getDeviceType();
+ logger.info("SESSION::" + request.getSession().getAttribute("MBER_NO"));
+ HashMap param = new HashMap();
+ param.put("MBER_NO", request.getSession().getAttribute("MBER_NO"));
+ param.put("DEVICE", deviceType.getName());
+ //param.put("BROWSER", browser.getName());
+ HashMap userBrowser = userBrowserChk(request);
+ if("".equals(userBrowser.get("browser"))) {
+ userBrowser.put("browser",browser.getName());
+ }
+ logger.info("**Browser name: " + userBrowser.get("browser"));
+ param.put("BROWSER", userBrowser.get("browser"));
+ //HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
+ String ip = getRemoteAddr(request);
+ logger.info("logined::" + ip);
+ boolean isLogined = false;
+ boolean isTempMber = false;
+ if (request.getSession().getAttribute("IS_LOGIN") != null) {
+ isLogined = (boolean) request.getSession().getAttribute("IS_LOGIN");
+ if (request.getSession().getAttribute("IS_TEMPMBER") != null) {
+ isTempMber = (boolean) request.getSession().getAttribute("IS_TEMPMBER");
+ }
+ }
+ if (isLogined) {
+ if (isTempMber) {
+ param.put("MBER_NO", request.getSession().getAttribute("MBER_ID"));
+ }
+ loginService.insertConnInfo(param);
+ }
+ logger.info(pjp.getSignature().getName()+"메서드 실행시간:"+(end-start));
+ logger.info("==========================================");
+ return result;
+ }
+
+ public String getRemoteAddr(HttpServletRequest request) {
+ String ip = null;
+ ip = request.getHeader("X-Forwarded-For");
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("Proxy-Client-IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("WL-Proxy-Client-IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_CLIENT_IP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+ }
+ if (ip == null || ip.length()== 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("X-Real-IP");
+ }
+ if (ip == null || ip.length()== 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("X-RealIP");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("REMOTE_ADDR");
+ }
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getRemoteAddr();
+ }
+ return ip;
+ }
+
+ @AfterReturning(value = "execution(* gtpa.brs.login.web.LoginController.login(..)) || execution(* gtpa.brs.login.web.LoginController.deUserLogin(..))", returning = "returnValue")
+ public void writeErrorLog(JoinPoint joinPoint,Object returnValue) {
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ Object[] args = joinPoint.getArgs();
+ LinkedHashMap reqParam = new LinkedHashMap<>();
+ for (Object arg:args) {
+ if(arg instanceof LinkedHashMap){
+ LinkedHashMap obj = (LinkedHashMap)arg;
+ if(obj instanceof LinkedHashMap) {
+ reqParam = (LinkedHashMap) obj.get("dma_loginCheck");
+ }
+ }
+ }
+ logger.info("로그인 요청 ID : "+reqParam.get("id"));
+ if(returnValue instanceof Object){
+ if (returnValue instanceof Map){
+ if(((Map) returnValue).get("rsMsg") != null) {
+ Map rsMsg = (Map)((Map) returnValue).get("rsMsg");
+ if("E".equals(rsMsg.get("statusCode")) || "O".equals(rsMsg.get("statusCode"))){
+ logger.error("핵심업무 코드정보 : "+joinPoint.getSignature());
+ logger.error("메서드 : "+joinPoint.getSignature().getName());
+ logger.error("매개변수 : "+ Arrays.toString(joinPoint.getArgs()));
+ logger.error("에러메세지 : " + rsMsg.get("message"));
+ logger.error("에러코드 : " + rsMsg.get("statusCode"));
+ logger.error("returnValue Error::" + returnValue);
+ logger.error("Client IP Addr::" + getRemoteAddr(request));
+ Map errLogKey = new HashMap();
+ errLogKey.put("REQ_ID",reqParam.get("id"));
+ errLogKey.put("RES_CODE",rsMsg.get("statusCode"));
+ errLogKey.put("RES_MESG",rsMsg.get("message"));
+ loginService.insertPromptErrorConnInfo(errLogKey);
+
+ }
+ }
+ }
+ } else if (returnValue instanceof Result){
+ if(((Result) returnValue).getResult().get("rsMsg") != null){
+ Map rsMsg = (Map) ((Result) returnValue).getResult().get("rsMsg");
+ if("E".equals(rsMsg.get("statusCode")) || "O".equals(rsMsg.get("statusCode"))){
+ logger.error("핵심업무 코드정보 : "+joinPoint.getSignature());
+ logger.error("메서드 : "+joinPoint.getSignature().getName());
+ logger.error("매개변수 : "+ Arrays.toString(joinPoint.getArgs()));
+ logger.error("에러메세지 : " + rsMsg.get("message"));
+ logger.error("에러코드 : " + rsMsg.get("statusCode"));
+ logger.error("returnValue Error::" + returnValue);
+ logger.error("Client IP Addr::" + getRemoteAddr(request));
+ Map errLogKey = new HashMap();
+ errLogKey.put("REQ_ID",reqParam.get("id"));
+ errLogKey.put("RES_CODE",rsMsg.get("statusCode"));
+ errLogKey.put("RES_MESG",rsMsg.get("message"));
+ loginService.insertPromptErrorConnInfo(errLogKey);
+
+ }
+ }
+ }
+ }
+
+ private HashMap userBrowserChk(HttpServletRequest request) {
+
+ String userAgent = request.getHeader("user-agent");
+ HashMap info = new HashMap();
+ String browser = "";
+ String version = "";
+ try {
+ if(userAgent.indexOf("Trident") > -1 || userAgent.indexOf("MSIE") > -1) { //IE
+
+ if(userAgent.indexOf("Trident/7") > -1) {
+ browser = "Internet Explorer";
+ version = "11";
+ }else if(userAgent.indexOf("Trident/6") > -1) {
+ browser = "Internet Explorer";
+ version = "10";
+ }else if(userAgent.indexOf("Trident/5") > -1) {
+ browser = "Internet Explorer";
+ version = "9";
+ }else if(userAgent.indexOf("Trident/4") > -1) {
+ browser = "Internet Explorer";
+ version = "8";
+ }else if(userAgent.indexOf("edge") > -1 || userAgent.indexOf("Edge") > -1) {
+ browser = "Edge";
+ }
+
+ }else if(userAgent.indexOf("Whale") > -1){ //네이버 WHALE
+ //browser = "WHALE " + userAgent.split("Whale/")[1].toString().split(" ")[0].toString();
+ browser = "Whale";
+ version = userAgent.split("Whale/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("SamsungBrowser") > -1){ //SamsungBrowser
+ //browser = "WHALE " + userAgent.split("Whale/")[1].toString().split(" ")[0].toString();
+ browser = "SamsungBrowser";
+ version = userAgent.split("SamsungBrowser/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1){ //오페라
+ if(userAgent.indexOf("Opera") > -1) {
+ browser = "Opera";
+ version = userAgent.split("Opera/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("OPR") > -1) {
+ browser = "Opera";
+ version = userAgent.split("OPR/")[1].toString().split(" ")[0].toString();
+ }
+ }else if(userAgent.indexOf("Firefox") > -1){ //파이어폭스
+ browser = "Firefox";
+ version = userAgent.split("Firefox/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1 ){ //사파리
+ browser = "Safari";
+ version = userAgent.split("Safari/")[1].toString().split(" ")[0].toString();
+ }else if(userAgent.indexOf("egde") > -1 || userAgent.indexOf("Edge") == -1 || userAgent.indexOf("Edg") == -1){ //사파리
+ browser = "Edge";
+ }else if(userAgent.indexOf("Chrome") > -1){ //크롬
+ browser = "Chrome";
+ version = userAgent.split("Chrome/")[1].toString().split(" ")[0].toString();
+ }
+ } catch (RuntimeException e) {
+ logger.error("[userBrowserChk Error::",e);
+ }
+
+
+ info.put("browser",browser);
+ info.put("version",version);
+
+ return info;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/gtpa/brs/interceptor/SessionCheckInterceptor.java b/src/main/java/gtpa/brs/interceptor/SessionCheckInterceptor.java
new file mode 100644
index 0000000..c9bff01
--- /dev/null
+++ b/src/main/java/gtpa/brs/interceptor/SessionCheckInterceptor.java
@@ -0,0 +1,123 @@
+package gtpa.brs.interceptor;
+
+import gtpa.brs.user.dto.UserInfo;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 11/04/2019
+ * TIME : 2:57 PM
+ * Project : BRSPW
+ * Class : SessionCheckInterceptor
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+public class SessionCheckInterceptor extends HandlerInterceptorAdapter {
+
+ private Logger logger = LoggerFactory.getLogger(SessionCheckInterceptor.class);
+
+ @Autowired
+ private UserInfo userInfo;
+
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+ String loginInfo;
+ HttpSession session = request.getSession();
+ String reqUrl = request.getRequestURI();
+ String w2xPath = request.getParameter("w2xPath");
+ String link = request.getParameter("link");
+ logger.info("== sessionId ============================" + session.getId());
+ logger.info("== preHandle start ============================" + reqUrl);
+ logger.info("== w2xPath ============================" + w2xPath);
+ logger.info("== link ============================" + link);
+ //logger.info("== userInfo =====================" + userInfo.getUserInfo());
+
+ boolean result = true;
+ try {
+ loginInfo = (String) session.getAttribute("MBER_ID");
+ logger.info("== loginInfo =====================" + loginInfo);
+ if (loginInfo != null) {
+ userInfo.setUserInfo(session);
+ } else {
+ if (!isSkipURI(request)) {
+ if ((w2xPath != null) || (reqUrl.indexOf(".xml") > -1)) {
+ // 웹스퀘어 화면 호출 시 세션이 종료된 경우, 로그인 페이지로 Redirect 처리한다.
+ result = false;
+ //response.sendRedirect("/ws.do?w2xPath=/cm/main/sub.xml&link=/cm/main/auth_check.xml");
+ session.setAttribute("w2xPath", "/cm/main/auth_check.xml");
+ response.sendRedirect("/");
+ } else {
+ // 서비스 호출 시 세션이 종료된 경우, Session 종료 Alert 후, 로그인 페이지로 Redirect 처리 한다.
+ result = false;
+ response.setContentType("application/json");
+ response.setCharacterEncoding("UTF-8");
+ response.getWriter().write("{\"rsMsg\":{\"statusCode\":\"E\", \"errorCode\" : \"E0001\", \"message\":\"접근권한이 없습니다. 중복로그인 또는 장시간 서비스 이용이 없어 접속이 종료되었습니다.\",\"status\":\"Error\"}}");
+ /*response.getWriter().write("{\"statusCode\":\"E\", \"errorCode\" : \"E0001\", \"message\":\"Session이 종료 되었습니다.\",\"status\":\"Error\"}");*/
+ }
+ }
+
+ if (link != null) {
+ if (link.indexOf("/ui") > -1) {
+ result = false;
+ //response.sendRedirect("/ws.do?w2xPath=/cm/main/sub.xml&link=/cm/main/auth_check.xml");
+ session.setAttribute("w2xPath", "/cm/main/auth_check.xml");
+ response.sendRedirect("/");
+ }
+ }
+ }
+ } catch (RuntimeException re) {
+ logger.error("[RuntimeException::" + "" + "]", re);
+ } catch (Exception e) {
+ logger.error("[process error::" + "" + "]", e);
+ } finally {
+ logger.info("== result ============================" + result);
+ }
+ return result;
+ }
+
+ /**
+ * Session 체크 대상에서 예외 URI 구성
+ *
+ * @param request 파라미터 정보
+ * @date 2016. 8. 29.
+ * @returns 반환 변수 및 객체
+ * @author InswaveSystems
+ * @example 샘플 코드
+ */
+ private boolean isSkipURI(HttpServletRequest request) {
+
+ String[] skipUrl = {"/", "/I18N", "/ws.do"};
+ String[] skipw2xPath = {"/cm", "/pub"};
+ boolean result = false;
+ String uri = (request.getRequestURI()).replace(request.getContextPath(), "");
+ String w2xPath = request.getParameter("w2xPath");
+
+ for (int i = 0; i < skipUrl.length; i++) {
+ if (uri.equals(skipUrl[i])) {
+ result = true;
+ break;
+ }
+ }
+ if (w2xPath != null) {
+ for (int i = 0; i < skipw2xPath.length; i++) {
+ if (w2xPath.contains(skipw2xPath[i])) {
+ if (!result) result = true;
+ break;
+ } else {
+ result = false;
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/gtpa/brs/join/service/CACheckService.java b/src/main/java/gtpa/brs/join/service/CACheckService.java
new file mode 100644
index 0000000..eb717d7
--- /dev/null
+++ b/src/main/java/gtpa/brs/join/service/CACheckService.java
@@ -0,0 +1,943 @@
+package gtpa.brs.join.service;
+
+import gtpa.brs.security.CACHECK;
+import gtpa.brs.util.Result;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import eu.bitwalker.useragentutils.*;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * /////////////////////////////////////////////////////
+ * Company : MQNIC
+ * Create : seunghyun
+ * Date : 18/04/2019
+ * TIME : 10:56 AM
+ * Project : BRSPW
+ * Class : CACheckService
+ * Desc :
+ * /////////////////////////////////////////////////////
+ */
+@SuppressFBWarnings
+@Service
+public class CACheckService {
+
+ Logger logger = LoggerFactory.getLogger(CACheckService.class);
+
+ @Resource(name = "globalsProperties")
+ Properties env;
+
+ /*@Autowired
+ HttpClient httpClient;*/
+
+ /**
+ * Is exsist comp map.
+ *
+ * @param compRegNum the comp reg num
+ * @param corpRegNum the corp reg num
+ * @param compNm the comp nm
+ * @param compRepNm the comp rep nm
+ * @return the map
+ */
+ public Map isExsistComp(String compRegNum, String corpRegNum, String compNm, String compRepNm) {
+ Map result = new HashMap<>();
+ CACHECK caComp = new CACHECK();
+ int iReturn = -1;
+
+ iReturn = caComp.fnRequest(env.getProperty("Globals.Nice.CACheck.Code"), env.getProperty("Globals.Nice.CACheck.Key"), "3", compRegNum, corpRegNum, compNm, compRepNm);
+
+ if (iReturn == 0) {
+ logger.info("RETURN_CODE=" + caComp.getReturnCode()); // 인증결과코드
+ logger.info("STATUS_CODE=" + caComp.getStatusCode()); // 기업상태코드
+ logger.info("RETURN_COMPNAME=" + caComp.getReturnCompName()); // 응답 기업명
+ logger.info("RETURN_REPNAME=" + caComp.getReturnRepName()); // 응답 대표자명
+ result.put("RETURN_CODE", caComp.getReturnCode());
+ result.put("STATUS_CODE", caComp.getStatusCode());
+ result.put("RETURN_MSG", getRtnMessage(caComp.getReturnCode()));
+ result.put("STATUS_MSG", getStatusMessage(caComp.getStatusCode()));
+ result.put("RETURN_COMPNAME", caComp.getReturnCompName());
+ result.put("RETURN_REPNAME", caComp.getReturnRepName());
+ } else {
+ logger.info("AUTH_ERROR=" + iReturn);
+ }
+ result.put("iReturn", iReturn);
+ result.put("iReturn_MSG", getIReturnMessage(iReturn));
+
+ return result;
+ }
+
+ /**
+ * Interop service map.
+ *
+ * @param niNo the ni no
+ * @return the map
+ */
+ public Map