package itn.let.cop.bbs.web;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springmodules.validation.commons.DefaultBeanValidator;
import com.penta.scpdb.ScpDbAgent;
import com.sci.v2.pcc.secu.SciSecuManager;
import com.sci.v2.pcc.secu.hmac.SciHmac;
import NiceID.Check.CPClient;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.ComDefaultCodeVO;
import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.EgovMultiPartEmail;
import itn.com.cmm.LoginVO;
import itn.com.cmm.ReadVO;
import itn.com.cmm.UserVO;
import itn.com.cmm.service.EgovCmmUseService;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.EgovFileMngUtil;
import itn.com.cmm.service.FileVO;
import itn.com.cmm.service.ReadService;
import itn.com.cmm.util.EgovDoubleSubmitHelper;
import itn.com.cmm.util.StringUtil;
import itn.com.cmm.util.WebUtil;
import itn.com.uss.ion.cnf.service.ProhibitMngService;
import itn.com.uss.ion.cnf.service.WordFilterService;
import itn.com.uss.ion.cnf.service.WordFilterVO;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cop.bbs.service.Board;
import itn.let.cop.bbs.service.BoardChgHst;
import itn.let.cop.bbs.service.BoardMaster;
import itn.let.cop.bbs.service.BoardMasterVO;
import itn.let.cop.bbs.service.BoardVO;
import itn.let.cop.bbs.service.EgovBBSAttributeManageService;
import itn.let.cop.bbs.service.EgovBBSManageService;
import itn.let.cop.cmt.service.CommentVO;
import itn.let.cop.cmt.service.EgovArticleCommentService;
import itn.let.mjo.mjocommon.MjonCommon;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.sym.mnu.mpm.service.EgovMenuManageService;
import itn.let.sym.mnu.mpm.service.MenuManageVO;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.sym.site.service.JoinSettingVO;
import itn.let.sym.site.service.SiteManagerVO;
import itn.let.sym.site.service.TermsVO;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.uss.umt.service.MberManageVO;
import itn.let.utl.sim.service.EgovClntInfo;
import itn.let.utl.user.service.MjonNoticeSendUtil;
/**
* 게시물 관리를 위한 컨트롤러 클래스
* @author 공통 서비스 개발팀 이삼섭
* @since 2009.03.19
* @version 1.0
* @see
*
*
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.19 이삼섭 최초 생성
* 2009.06.29 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
*
*
*/
@Controller
public class EgovBBSManageController {
@Resource(name = "EgovBBSManageService")
private EgovBBSManageService bbsMngService;
@Resource(name = "EgovBBSAttributeManageService")
private EgovBBSAttributeManageService bbsAttrbService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
@Resource(name = "egovMessageSource")
EgovMessageSource egovMessageSource;
@Resource(name = "egovMultiPartEmail")
private EgovMultiPartEmail egovMultiPartEmail;
//문자발송 서비스
@Resource(name = "MjonMsgDataService")
private MjonMsgDataService mjonMsgDataService;
@Autowired
private DefaultBeanValidator beanValidator;
@Value("#{globalSettings['Globals.Site.URL']}")
private String SITE_URL;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
/** WordFilterService 필터링 */
@Resource(name = "wordFilterService")
private WordFilterService wordFilterService;
@Resource(name = "egovSiteManagerService")
private EgovSiteManagerService egovSiteManagerService;
@Resource(name = "readService")
private ReadService readService;
/** scriptMngService 금지어 */
@Resource(name = "prohibitMngService")
private ProhibitMngService prohibitMngService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
/** EgovMenuManageService */
@Resource(name = "meunManageService")
private EgovMenuManageService menuManageService;
/** 댓글 */
@Resource(name = "EgovArticleCommentService")
protected EgovArticleCommentService egovArticleCommentService;
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
/** 알림전송 Util */
@Resource(name = "mjonNoticeSendUtil")
private MjonNoticeSendUtil mjonNoticeSendUtil;
@Resource(name="MjonCommon")
private MjonCommon mjonCommon;
private static final Logger LOGGER = LoggerFactory.getLogger(EgovBBSManageController.class);
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
private String[][] bbsExcelValue ={
{"0" ,"번호" , "1" , "" },
{"1", "제목" , "글쓰기 테스트" , "[코드]"},
{"2", "첨부파일유무" , "유", ""},
{"3", "공개여부" , "공개", ""},
{"4", "작성자" , "홍길동", "[코드]"},
{"5", "조회수" , "2", ""},
{"6", "작성일" , "2019-10-29", ""}
} ;
/**
* XSS 방지 처리.
*
* @param data
* @return
*/
protected String unscript(String data) {
if (data == null || data.trim().equals("")) {
return "";
}
String ret = data;
ret = ret.replaceAll("<(S|s)(C|c)(R|r)(I|i)(P|p)(T|t)", "<script");
ret = ret.replaceAll("(S|s)(C|c)(R|r)(I|i)(P|p)(T|t)", "</script");
ret = ret.replaceAll("<(O|o)(B|b)(J|j)(E|e)(C|c)(T|t)", "<object");
ret = ret.replaceAll("(O|o)(B|b)(J|j)(E|e)(C|c)(T|t)", "</object");
ret = ret.replaceAll("<(A|a)(P|p)(P|p)(L|l)(E|e)(T|t)", "<applet");
ret = ret.replaceAll("(A|a)(P|p)(P|p)(L|l)(E|e)(T|t)", "</applet");
ret = ret.replaceAll("<(E|e)(M|m)(B|b)(E|e)(D|d)", "<embed");
ret = ret.replaceAll("(E|e)(M|m)(B|b)(E|e)(D|d)", "<embed");
ret = ret.replaceAll("<(F|f)(O|o)(R|r)(M|m)", "<form");
ret = ret.replaceAll("(F|f)(O|o)(R|r)(M|m)", "<form");
ret = ret.replaceAll("<", "<");
ret = ret.replaceAll(">", ">");
ret = ret.replaceAll("alert", "");
//ret = ret.replaceAll("iframe", "");
return ret;
}
/**
* 게시물에 대한 목록을 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/selectBoardList.do")
public String selectBoardArticles(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model
, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
BoardMasterVO vo = new BoardMasterVO();
vo.setBbsId(boardVO.getBbsId());
BoardMasterVO master = bbsAttrbService.selectBBSMasterInf(vo);
String listNum = "";
if (("BBST05").equals(master.getBbsTyCode())) {
listNum = "12"; // 포토형
} else {
listNum = master.getListNum();
}
boardVO.setPageUnit(Integer.parseInt(listNum));
boardVO.setPageSize(Integer.parseInt(master.getPageNum()));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
boardVO.setLoginId(user.getId());
if("".equals(master.getSearchSortCnd())){ //최초조회시 최신것 조회List
if("BBSMSTR_000000000528".equals(master.getBbsId())) { //묻고답하기 제외
}else {
boardVO.setSearchSortCnd("FRST_REGIST_PNTTM desc, NTT_ID");
boardVO.setSearchSortOrd("desc");
}
}
// 공지사항
if (("Y").equals(master.getNoticeYn()) && ("").equals(boardVO.getSearchWrd())) {
List notifyList = bbsMngService.selectBoardNotifyArticles(boardVO, vo.getBbsAttrbCode());
model.addAttribute("notifyList", notifyList);
boardVO.setNoticeAt("N"); //다음에 공지사항 아닌것만 검색
}
if (("BBST05").equals(master.getBbsTyCode())) { //재단소식이면
boardVO.setSearchSortCnd("FRST_REGIST_PNTTM desc, NTT_ID");
boardVO.setSearchSortOrd("desc");
}
Map map = bbsMngService.selectBoardArticles(boardVO, vo.getBbsAttrbCode());
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("resultList", map.get("resultList"));
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("boardVO", boardVO);
model.addAttribute("brdMstrVO", master);
model.addAttribute("paginationInfo", paginationInfo);
//임시 데이터 이관용
/*String ip = request.getHeader("X-Forwarded-For") == null ? request.getHeader("X-Forwarded-For") : request.getHeader("X-Forwarded-For").replaceAll("10.12.107.11", "").replaceAll(",", "").trim();
if (ip == null) ip = request.getRemoteAddr();
String ddd = "";
if("219.240.88.15".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) {
model.addAttribute("Transfer", true );
}
System.out.println("---ip----"+ip);*/
return "cop/bbs/EgovNoticeList";
}
/**
* 게시물을 등록한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/cop/bbs/insertBoardArticle.do" , "/cop/bbs/insertBoardArticleAjax.do"})
public ModelAndView insertBoardArticle(final MultipartHttpServletRequest multiRequest
, @ModelAttribute("searchVO") BoardVO boardVO
, @ModelAttribute("bdMstr") BoardMasterVO bdMstr
, @ModelAttribute("board") Board board
, BindingResult bindingResult
, ModelMap model
, SessionStatus status
, RedirectAttributes redirectAttributes
, @RequestParam Map commandMap ) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
BoardMasterVO bmvo = new BoardMasterVO();
bmvo.setBbsId(board.getBbsId());
bmvo = bbsAttrbService.selectBBSMasterInf(bmvo);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 관리권한, 사용여부
/*if (bmvo == null || !isBBSAuthFlag(bmvo.getManageAuth(), bmvo.getBbsId(), null)) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
modelAndView.addObject("result", "no_auth");
return modelAndView;
}*/
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
model.addAttribute("bdMstr", bmvo);
modelAndView.addObject("result", "no_validate");
return modelAndView;
}
String atchFileId = "";
String isThumbFile = "";
if (("BBST05").equals(bmvo.getBbsTyCode()) || ("BBST06").equals(bmvo.getBbsTyCode())) isThumbFile = "thumbFile";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
List result = fileUtil.parseFileInf(files, "BBS_", 0, atchFileId, "", isThumbFile);
if(!isPosblAtchFile(result, bmvo, model, 0)) {
modelAndView.addObject("result", "no_atchFile");
return modelAndView;
}
atchFileId = fileMngService.insertFileInfs(result);
board.setAtchFileId(atchFileId);
}
board.setFrstRegisterId(user.getUniqId());
//데이터 이관용
if(null ==board.getNtcrNm() || "".equals(board.getNtcrNm())) {
board.setNtcrNm(user.getName());
}
board.setBbsId(board.getBbsId());
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
board.setNttCn(board.getNttCn().replace("\r\n", ""));
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
if(null !=board.getFrstRegisterPnttm() && !"".equals(board.getFrstRegisterPnttm()) ) {
board.getFrstRegisterPnttm();
String tempDete = board.getFrstRegisterPnttm().split("-")[0]+board.getFrstRegisterPnttm().split("-")[1]+board.getFrstRegisterPnttm().split("-")[2];
board.setFrstRegisterPnttm(tempDete);
}
bbsMngService.insertBoardArticle(board);
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 게시물을 등록 미리보기
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/bbsPreview.do")
public String insertBoardArticle(@ModelAttribute("board") Board board, @ModelAttribute("bdMstr") BoardMaster bdMstr,
SessionStatus status, ModelMap model, RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String day = sdf.format(today.getTime());
board.setFrstRegisterPnttm(day);
model.addAttribute("board", board);
model.addAttribute("bdMstr", bdMstr);
return "cop/bbs/bbsPreview";
}
/**
* 공지사항, 채용공고 데이터 과기부 연동
*
* @param boardVO
* @return
* @throws Exception
*/
public String msitShareIn(Board board, String workType) throws Exception {
if (1 == 1 ) return "asdf";
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
String userId = user.getId();
// yu3145 test s
if (userId.equals("yu3145")) {
// if (1 == 1 ) return "asdf";
URL url;
HttpURLConnection conn = null;
Date today = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dTime = dateFormat.format(today); // ex)"2014-11-19 17:01:05"; // 요청 시간 (서버의 현재 시간을 입력 해 주세요.)
String sPassword = "2fd1cf70fca385b36c6e4296a1afcd2b"; // 암호키 ( 미래창조과학부에서 제공 하는 기관의 암호키로 변경 하세요) : 10자이상
String organCd = "POLAORKR"; // 기관코드 ( 미래창조과학부에서 제공 하는 기관코드 )
String timeKey =""; // 시간키(요청시간)
String certKey =""; // 인증키 = MD5(기관코드 + timeKey + 암호키)
String bbsId = board.getBbsId();
long nttId = board.getNttId();
String linkUrl = SITE_URL+"/web/cop/bbsWeb/selectBoardArticle.do?bbsId="+bbsId+"&nttId="+nttId;
String contentType;
timeKey = dTime.replace("-","");
timeKey = timeKey.replace(":","");
timeKey = timeKey.replace(" ",""); // 현재 시간에서 숫자를 제외한 모든 문자를 제거함 (14자리 문자열)
long timeKeyInt = ( Long.parseLong(timeKey) + 222222 ) * 2 ; // 제거된 시간을 숫자로 치환수 더하고 곱함
timeKey = Long.toString(timeKeyInt); // 다시 문자열로 치환 : param_01
// MD5 인증키 생성
WebUtil webutil = new WebUtil();
certKey = webutil.MD5(organCd + timeKey + sPassword); // 인증키 ( 기관코드 + 변형된시간 + 암호키) : param_02
// 과기부 컨텐츠 타입
if (("BBSMSTR_000000000018").equals(bbsId)) { // 공지사항
contentType = "NT";
} else if (("BBSMSTR_000000000029").equals(bbsId)) { // 채용공고
contentType = "RE";
} else {
contentType = "";
linkUrl = "";
}
System.out.println("### msit shareIn: param_01: " + timeKey);
System.out.println("### msit shareIn: param_02: " + certKey);
System.out.println("### msit shareIn: organCd: " + organCd);
System.out.println("### msit shareIn: workType: " + workType);
System.out.println("### msit shareIn: contentType: " + contentType);
System.out.println("### msit shareIn: board_type: " + bbsId);
System.out.println("### msit shareIn: board_cd: " + nttId);
System.out.println("### msit shareIn: board_subject: " + board.getNttSj());
System.out.println("### msit shareIn: board_reg_date: " + dTime);
System.out.println("### msit shareIn: board_link_url: " + linkUrl);
if (1 == 1 ) return "asdf";
try {
Map params = new LinkedHashMap<>(); // 파라미터 세팅
params.put("param_01", timeKey);
params.put("param_02", certKey);
params.put("organ_cd", organCd);
params.put("work_type", workType); // I, U, D
params.put("content_type", contentType);
params.put("board_type", bbsId);
params.put("board_cd", nttId);
params.put("board_subject", board.getNttSj());
params.put("board_reg_date", dTime);
params.put("board_link_url", linkUrl);
StringBuilder postData = new StringBuilder();
for(Map.Entry param : params.entrySet()) {
if(postData.length() != 0) postData.append('&');
postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
url = new URL("https://www.msit.go.kr/web/shareData/shareIn.do");
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.setDoOutput(true);
conn.getOutputStream().write(postDataBytes);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String inputLine;
while((inputLine = in.readLine()) != null) { // response 출력
System.out.println("### msit shareIn: " + inputLine);
}
// 처리결과 Y : 처리완료 , E : 에러 , M : 데이터 누락, O : 시간초과 ,A : 인증실패
in.close();
} catch (Exception e) {
System.out.println("과기부연동에러. msit shareIn error");
} finally {
if (conn != null) conn.disconnect();
}
} // yu3145 test e
return "";
}
/**
* 게시물에 대한 답변 등록을 위한 등록페이지로 이동한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/addReplyBoardArticle.do")
public String addReplyBoardArticle(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model, RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bdMstr = new BoardMasterVO();
bdMstr.setBbsId(boardVO.getBbsId());
bdMstr = bbsAttrbService.selectBBSMasterInf(bdMstr);
// 관리권한, 사용여부
/*if (bdMstr == null || ("N").equals(bdMstr.getUseAt())
|| !isBBSAuthFlag(bdMstr.getManageAuth(), bdMstr.getBbsId(), null)) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/cop/bbs/SelectBBSMasterInfs.do";
}*/
//boardVO.setNttSj("[답변]" + boardVO.getNttSj());
boardVO.setNttSj(boardVO.getNttSj());
model.addAttribute("board", boardVO);
model.addAttribute("bdMstr", bdMstr);
return "cop/bbs/EgovNoticeReply";
}
/**
* 게시물에 대한 답변을 등록한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/replyBoardArticleAjax.do")
public ModelAndView replyBoardArticle(final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("bdMstr") BoardMaster bdMstr,
@ModelAttribute("board") Board board, BindingResult bindingResult, ModelMap model, SessionStatus status, RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
BoardMasterVO bmvo = new BoardMasterVO();
bmvo.setBbsId(boardVO.getBbsId());
bmvo = bbsAttrbService.selectBBSMasterInf(bmvo);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 관리권한, 사용여부
/*if (bmvo == null || !isBBSAuthFlag(bmvo.getManageAuth(), bmvo.getBbsId(), null)) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/cop/bbs/SelectBBSMasterInfs.do";
}*/
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
model.addAttribute("bdMstr", bmvo);
modelAndView.addObject("result", "no_validate");
return modelAndView;
}
final Map files = multiRequest.getFileMap();
String atchFileId = "";
if (!files.isEmpty()) {
List result = fileUtil.parseFileInf(files, "BBS_", 0, "", "", "");
// 파일 사이즈, 개수, 확장자 체크. model에 체크 오류 메세지 set
if(!isPosblAtchFile(result, bmvo, model, 0)) {
modelAndView.addObject("result", "no_atchFile");
return modelAndView;
}
atchFileId = fileMngService.insertFileInfs(result);
}
// 사용자 본인인증값 조회
boardVO.setPlusCount(false);
BoardVO vo = bbsMngService.selectBoardArticle(boardVO);
board.setMblDn(vo.getMblDn());
board.setAtchFileId(atchFileId);
board.setReplyAt("Y");
board.setFrstRegisterId(user.getUniqId());
board.setNtcrNm(user.getName());
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
board.setParnts(Long.toString(boardVO.getNttId()));
board.setReplyLc(Integer.toString(Integer.parseInt(boardVO.getReplyLc()) + 1));
board.setNttCn(board.getNttCn().replace("\r\n", ""));
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
bbsMngService.insertBoardArticle(board);
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
//return "redirect:/cop/bbs/selectBoardList.do";
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 게시물에 대한 내용을 삭제한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/deleteBoardArticle.do")
public String deleteBoardArticle(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("board") Board board,
@ModelAttribute("bdMstr") BoardMaster bdMstr, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
board.setLastUpdusrId(user.getUniqId());
board.setLastUpdusrNm(user.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(request);
board.setNtcrIp(userIp);
bbsMngService.deleteBoardArticle(board);
boardVO.setPageIndex(1); //삭제후 첫페이지로 로딩
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.useN"));
return "redirect:/cop/bbs/selectBoardList.do";
}
/**
* 게시물에 대한 내용을 사용처리한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/updateBoardArticleUseY.do")
public String updateBoardArticleUseY(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("board") Board board,
@ModelAttribute("bdMstr") BoardMaster bdMstr, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
board.setLastUpdusrId(user.getUniqId());
board.setLastUpdusrNm(user.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(request);
board.setNtcrIp(userIp);
bbsMngService.updateBoardArticleUseY(board);
boardVO.setPageIndex(1); //삭제후 첫페이지로 로딩
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.useY"));
return "redirect:/cop/bbs/selectBoardList.do";
}
/**
* 템플릿에 대한 미리보기용 게시물 목록을 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/bbsTmplatPreview.do")
public String previewBoardArticles(@ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("brdMstrVO") BoardMasterVO brdMstrVO, ModelMap model) throws Exception {
String template = boardVO.getSearchWrd(); // 템플릿 URL
String viewCnd = boardVO.getSearchCnd(); // 미리보기 목록/상세 구분
brdMstrVO.setTmplatCours(template);
model.addAttribute("brdMstrVO", brdMstrVO);
if (brdMstrVO.getSearchCnd().equals("detail")) {
return "cop/bbs/EgovPreviewTmplatBBSInqire";
} else {
return "cop/bbs/EgovPreviewTmplatBBSList";
}
}
/**
* 게시물 등록을 위한 등록페이지로 이동한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/addBoardArticle.do")
public String addBoardArticle(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model ,HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bdMstr = new BoardMasterVO();
bdMstr.setBbsId(boardVO.getBbsId());
bdMstr = bbsAttrbService.selectBBSMasterInf(bdMstr);
// 관리권한, 사용여부
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(!"ROLE_ADMIN".equals(user.getAuthority())){ //관리자 제외
if (bdMstr == null || ("N").equals(bdMstr.getUseAt())
|| !isBBSAuthFlag(bdMstr.getManageAuth(), bdMstr.getBbsId(), null)) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/cop/bbs/SelectBBSMasterInfs.do";
}
}
//권한조회 하여 flag 값에 세팅ddd
bdMstr.setAuthorities(EgovUserDetailsHelper.getAuthorities());
model.addAttribute("bdMstr", bdMstr);
model.addAttribute("board", boardVO);
//팝업창시작일자(시)
model.addAttribute("ntceBgndeHH", getTimeHH());
//팝업창시작일자(분)
model.addAttribute("ntceBgndeMM", getTimeMM());
//팝업창종료일자(시)
model.addAttribute("ntceEnddeHH", getTimeHH());
//팝업창정료일자(분)
model.addAttribute("ntceEnddeMM", getTimeMM());
ComDefaultCodeVO vo = new ComDefaultCodeVO(); //모집상태
vo.setCodeId("ITN015");
model.addAttribute("codeList", cmmUseService.selectCmmCodeDetail(vo));
//임시 데이터 이관용
/*String ip = request.getHeader("X-Forwarded-For") == null ? request.getHeader("X-Forwarded-For") : request.getHeader("X-Forwarded-For").replaceAll("10.12.107.11", "").replaceAll(",", "").trim();
if (ip == null) ip = request.getRemoteAddr();
String ddd = "";
if("219.240.88.15".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) {
model.addAttribute("Transfer", true );
}*/
return "cop/bbs/EgovNoticeRegist";
}
/**
* 게시물에 대한 상세 정보를 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/selectBoardArticle.do")
public String selectBoardArticle(@ModelAttribute("searchVO") BoardVO boardVO
, ModelMap model
, HttpServletRequest request
, RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
BoardMasterVO master = new BoardMasterVO();
master.setBbsId(boardVO.getBbsId());
BoardMasterVO masterVo = bbsAttrbService.selectBBSMasterInf(master);
// 조회수 증가 여부 지정
boardVO.setPlusCount(true);
BoardVO vo = bbsMngService.selectBoardArticle(boardVO);
//읽음처리 Insert
ReadVO readVO = new ReadVO();
readVO.setReadId(String.valueOf(boardVO.getNttId()));
readVO.setLoginId(user.getId());
readVO.setMenuNo("2400000");
// 삭제 및 노 데이터 조회 시
if (vo == null) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("info.nodata.msg"));
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
return "redirect:/cop/bbs/selectBoardList.do";
}
// 위/아래 게시글 번호, 제목 조회
EgovMap upDownNttid = bbsMngService.getUpDownNttIdNSj(boardVO);
if(null != upDownNttid) {
model.addAttribute("nextNttIdNSj", upDownNttid.get("nextNttIdNSj"));
model.addAttribute("prevNttIdNSj", upDownNttid.get("prevNttIdNSj"));
}else {
model.addAttribute("nextNttIdNSj", null);
model.addAttribute("prevNttIdNSj", null);
}
model.addAttribute("result", vo);
model.addAttribute("brdMstrVO", masterVo);
String isTotalPage = request.getParameter("isTotalPage");
if (StringUtil.isEmpty(isTotalPage)) {
isTotalPage = "N";
}
model.addAttribute("isTotalPage", isTotalPage);
return "cop/bbs/EgovNoticeInqire";
}
/**
* 게시물에 대한 내용을 수정한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/cop/bbs/updateBoardArticle.do" , "/cop/bbs/updateBoardArticleAjax.do"})
public ModelAndView updateBoardArticle(final MultipartHttpServletRequest multiRequest,
@ModelAttribute("searchVO") BoardVO boardVO,
@ModelAttribute("bdMstr") BoardMaster bdMstr,
@ModelAttribute("board") Board board,
BindingResult bindingResult,
ModelMap model,
SessionStatus status,
RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
BoardMasterVO bmvo = new BoardMasterVO();
bmvo.setBbsId(board.getBbsId());
bmvo = bbsAttrbService.selectBBSMasterInf(bmvo);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 관리권한, 사용여부
/*if (bmvo == null || !isBBSAuthFlag(bmvo.getManageAuth(), bmvo.getBbsId(), null)) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
modelAndView.addObject("result", "no_auth");
return modelAndView;
}*/
String atchFileId = boardVO.getAtchFileId();
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
model.addAttribute("bdMstr", bmvo);
modelAndView.addObject("result", "no_validate");
return modelAndView;
}
String isThumbFile = "";
if (("BBST05").equals(bmvo.getBbsTyCode()) || ("BBST06").equals(bmvo.getBbsTyCode())) isThumbFile = "thumbFile";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
if ("".equals(atchFileId)) {
List result = fileUtil.parseFileInf(files, "BBS_", 0, atchFileId, "", isThumbFile);
if(!isPosblAtchFile(result, bmvo, model, 0)) {
modelAndView.addObject("result", "no_atchFile");
return modelAndView;
}
atchFileId = fileMngService.insertFileInfs(result);
board.setAtchFileId(atchFileId);
} else {
FileVO fvo = new FileVO();
fvo.setAtchFileId(atchFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
List result = fileUtil.parseFileInf(files, "BBS_", cnt, atchFileId, "", isThumbFile);
/*if(!isPosblAtchFile(result, bmvo, model, board.getAtchFileCnt())) {
if(multiRequest.getServletPath().equals("/cop/bbs/updateBoardArticleAjax.do")) {
modelAndView.addObject("result", "fail");
modelAndView.addObject("failMessage", model.get("message"));
return modelAndView;
}
model.addAttribute("bdMstr", bmvo);
modelAndView.addObject("result", "no_atchFile");
return modelAndView;
}*/
fileMngService.updateFileInfs(result);
}
}
board.setLastUpdusrId(user.getUniqId());
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
board.setLastUpdusrNm(user.getName()); // 변경이력에 사용
board.setNttCn(board.getNttCn().replace("\r\n", ""));
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
if(null !=board.getFrstRegisterPnttm() && !"".equals(board.getFrstRegisterPnttm()) ) {
board.getFrstRegisterPnttm();
String tempDete = board.getFrstRegisterPnttm().split("-")[0]+board.getFrstRegisterPnttm().split("-")[1]+board.getFrstRegisterPnttm().split("-")[2];
board.setFrstRegisterPnttm(tempDete);
}
bbsMngService.updateBoardArticle(board);
// 공지사항, 채용공고 과기부 연동
if (("BBSMSTR_000000000018").equals(board.getBbsId()) || ("BBSMSTR_000000000029").equals(board.getBbsId())) {
msitShareIn(board, "U"); // 실서버에서만 테스트
}
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 게시물 수정을 위한 수정페이지로 이동한다.
*
* @param boardVO
* @param vo
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/forUpdateBoardArticle.do")
public String forUpdateBoardArticle(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model , HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO masterVO = new BoardMasterVO();
masterVO.setBbsId(boardVO.getBbsId());
BoardMasterVO bmvo = bbsAttrbService.selectBBSMasterInf(masterVO);
bmvo.setAuthorities(EgovUserDetailsHelper.getAuthorities());
BoardVO bdvo = bbsMngService.selectBoardArticle(boardVO);
if(null == bdvo.getPubLinkTxt() || "".equals(bdvo.getPubLinkTxt())){ //게시판명이 없으면
bdvo.setPubLinkTxt(bdvo.getPubLink());
}
if(bdvo.getAtchFileId() !=null) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bdvo.getAtchFileId());
List fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
model.addAttribute("board", bdvo);
model.addAttribute("bdMstr", bmvo);
//팝업창시작일자(시)
model.addAttribute("ntceBgndeHH", getTimeHH());
//팝업창시작일자(분)
model.addAttribute("ntceBgndeMM", getTimeMM());
//팝업창종료일자(시)
model.addAttribute("ntceEnddeHH", getTimeHH());
//팝업창정료일자(분)
model.addAttribute("ntceEnddeMM", getTimeMM());
ComDefaultCodeVO vo = new ComDefaultCodeVO(); //모집상태
vo.setCodeId("ITN015");
model.addAttribute("codeList", cmmUseService.selectCmmCodeDetail(vo));
//임시 데이터 이관용
String ip = request.getHeader("X-Forwarded-For") == null ? request.getHeader("X-Forwarded-For") : request.getHeader("X-Forwarded-For").replaceAll("10.12.107.11", "").replaceAll(",", "").trim();
if (ip == null) ip = request.getRemoteAddr();
if("219.240.88.15".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) {
model.addAttribute("Transfer", true );
}
return "cop/bbs/EgovNoticeUpdt";
}
/**
* 게시판 관리 권한 여부 체크
* @param manageAuth 게시판 관리권한
* @param bbsId 게시판ID
* @return boolean
* @throws Exception
*/
private boolean isBBSAuthFlag(String manageAuth, String bbsId, List mngIdList) throws Exception {
boolean authFlag = false;
List authorities = EgovUserDetailsHelper.getAuthorities();
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
// 게시판 관리권한 체크
for (String authority : authorities) {
if (authority.equals(manageAuth)) authFlag = true;
}
// 게시판 관리자 체크
if (!authFlag) {
BoardMaster vo = new BoardMaster();
vo.setBbsId(bbsId);
if (mngIdList == null) mngIdList = (List)bbsAttrbService.selectBBSMngIdList(vo);
int mngYn = 0;
for(int i = 0; i < mngIdList.size(); i++) {
String emplyrId = (String) mngIdList.get(i).get("emplyrId");
if (emplyrId.equals(user.getId())) mngYn++;
}
if (mngYn != 0) authFlag = true;
if(mngIdList.size() == 0 ) { //관리자 등록 안 되어 있으면 모두 사용가능
authFlag = true;
}
}
return authFlag;
}
/**
* 첨부파일 개수, 사이즈, 확장자 체크
* @param fileList 파일리스트
* @param boardMasterVO 게시판마스터
* @param atchFileCnt 업로드된 파일 수
* @return boolean
* @return 체크 오류 메세지 model 'flashMessage' 에 set
* @throws Exception
*/
private boolean isPosblAtchFile(List fileList, BoardMaster boardMaster, ModelMap model, int atchFileCnt) throws Exception {
int fileCnt = 0;
long posblAtchFileSize = Long.parseLong(boardMaster.getPosblAtchFileSize()) * 1024 * 1024 ;
int posblAtchFileNumber = Integer.parseInt(boardMaster.getPosblAtchFileNumber());
String bbsTyCode = boardMaster.getBbsTyCode();
String flashMessage = "";
boolean posblAtchFileFlag = true;
boolean posblAtchFileSizeFlag = true;
boolean posblAtchFileExtFlag = true;
Iterator> iter = fileList.iterator();
while (iter.hasNext()) {
FileVO vo = (FileVO) iter.next();
long fileMg = Long.parseLong(vo.getFileMg());
String fileExt = vo.getFileExtsn();
if (fileMg > posblAtchFileSize) posblAtchFileSizeFlag = false;
if (("BBST05").equals(bbsTyCode) || ("BBST06").equals(bbsTyCode)) {
String[] imgExts = {"gif", "jpg", "bmp", "jpeg", "png"};
if (ArrayUtils.indexOf(imgExts, fileExt.toLowerCase()) == -1) posblAtchFileExtFlag = false;
}
fileCnt++;
}
if (!posblAtchFileExtFlag) {
flashMessage += "이미지 형식의 확장자만 업로드 가능합니다." + "\\n";
posblAtchFileFlag = false;
}
if(!posblAtchFileSizeFlag) {
flashMessage += "파일사이즈가 초과되었습니다. 최대크기 " + posblAtchFileSize + "mb" + "\\n";
posblAtchFileFlag = false;
}
if ((fileCnt+atchFileCnt) > posblAtchFileNumber) {
flashMessage += "파일 개수가 초과되었습니다. 최대개수 " + posblAtchFileNumber + "개" + "\\n";
posblAtchFileFlag = false;
}
if (!posblAtchFileFlag) model.addAttribute("message", flashMessage);
return posblAtchFileFlag;
}
/**
* 게시물 변경 이력에 대한 목록을 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
@RequestMapping("/cop/bbs/selectBoardChgHstList.do")
public String selectBoardChgHstList(@ModelAttribute("boardChgHst") BoardChgHst boardChgHst, ModelMap model) throws Exception {
boardChgHst.setPageUnit(propertyService.getInt("pageUnit"));
boardChgHst.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardChgHst.getPageIndex());
paginationInfo.setRecordCountPerPage(boardChgHst.getPageUnit());
paginationInfo.setPageSize(boardChgHst.getPageSize());
boardChgHst.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardChgHst.setLastIndex(paginationInfo.getLastRecordIndex());
boardChgHst.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
Map map = bbsMngService.selectBoardChgHsts(boardChgHst);
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
// 내용에 html 제거
List list = (List) map.get("resultList");
for (BoardChgHst vo : list) {
vo.setNttCn(StringUtil.stripTag(vo.getNttCn()));
}
model.addAttribute("resultList", map.get("resultList"));
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "cop/bbs/EgovNoticeChgHstList";
}
/**
* 게시물 변경이력에 대한 상세 정보를 조회한다.
*
* @param boardChgHst
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/selectBoardChgHst.do")
public String selectBoardChgHst(@ModelAttribute("boardChgHst") BoardChgHst boardChgHst, ModelMap model , RedirectAttributes redirectAttributes) throws Exception {
BoardChgHst vo = bbsMngService.selectBoardChgHst(boardChgHst);
model.addAttribute("result", vo);
return "cop/bbs/EgovNoticeChgHstInqire";
}
/**
* 선택된 게시물에 대한 내용을 삭제한다.
* @param nttIds String
* @param boardVO BoardVO
* @return String
* @exception Exception
*/
@RequestMapping(value = "/cop/bbs/deleteBoardArticles.do")
public String deleteBoardArticles(HttpServletRequest request, @RequestParam("nttIds") String nttIds, @ModelAttribute("BoardVO") BoardVO boardVO, RedirectAttributes redirectAttributes)
throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
boardVO.setLastUpdusrId(user.getUniqId());
boardVO.setLastUpdusrNm(user.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(request);
boardVO.setNtcrIp(userIp);
String[] strNttIds = nttIds.split(";");
for (int i = 0; i < strNttIds.length; i++) {
String[] strNttIdNAtchFileId = strNttIds[i].split("\\|");
boardVO.setNttId(Integer.parseInt(strNttIdNAtchFileId[0]));
if (strNttIdNAtchFileId.length > 1) boardVO.setAtchFileId(strNttIdNAtchFileId[1]);
bbsMngService.deleteBoardArticle(boardVO);
}
// 공지사항, 채용공고 과기부 연동
if (("BBSMSTR_000000000018").equals(boardVO.getBbsId()) || ("BBSMSTR_000000000029").equals(boardVO.getBbsId())) {
msitShareIn(boardVO, "D"); // 실서버에서만 테스트
}
boardVO.setPageIndex(1); //삭제후 첫페이지로 로딩
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
return "redirect:/cop/bbs/selectBoardList.do";
}
/**
* 선택된 게시물 메인화면 폴라스토리 첫번째 게시물 등록
* @param nttIds String
* @param boardVO BoardVO
* @return String
* @exception Exception
*/
@RequestMapping(value = "/cop/bbs/mainPolaImgUpdate.do")
public String mainPolaImgUpdate(HttpServletRequest request, @RequestParam("nttIds") String nttIds, @ModelAttribute("BoardVO") BoardVO boardVO, RedirectAttributes redirectAttributes)
throws Exception {
String[] strNttIdNAtchFileId = nttIds.split("\\|");
boardVO.setNttId(Integer.parseInt(strNttIdNAtchFileId[0]));
bbsMngService.updateMainPolaImg(boardVO);
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
return "redirect:/cop/bbs/selectBoardList.do";
}
/**
* 사용자 게시글 등록 시 해당 게시판 관리자에게 메일 전송
* @param mailAddres 메일 주소
* @param bbsId 게시판ID
* @param nttId 게시글ID
* @param bbsNm 게시판 명
* @return boolean
* @throws Exception
*/
private void sendBBSInsertMail(String mailAddres, String bbsId, long nttId, String bbsNm, String nttSj) throws Exception {
try {
String mailSj = "우체국물류지원단 홈페이지 \'" + bbsNm + "\' 게시판에 사용자 게시글이 등록되었습니다.";
String htmlMsg = "";
htmlMsg += "\'" + bbsNm + "\' 게시판에 사용자 게시글이 등록되었습니다.";
htmlMsg += "
제목: " + nttSj;
htmlMsg += "
링크: 게시물";
htmlMsg += "
우체국물류지원단 시스템관리자";
htmlMsg += "";
// test
/*mailAddres = "yu3145@iten.co.kr";
mailAddres = "kerinet@iten.co.kr" ;
mailAddres = "fruit@pola.or.kr" ;*/
egovMultiPartEmail.send(mailAddres, mailSj, "", htmlMsg);
// egovMultiPartEmail.send(mailAddres, mailSj", mgs); // Simple Text Mail method
} catch (Exception ex) {
LOGGER.error("Sending Mail Exception : {} [unknown Exception]", ex.getCause());
LOGGER.debug(ex.getMessage());
}
}
/**
* @@@@@@@@@@@@@@@@@@@@@@@@@@@@사용자
*/
/**
* (사용자)본인 인증 처리 Test
*
* @param boardVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/authenticationResult.do")
public String authenticationResult(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, ModelMap model
,RedirectAttributes redirectAttributes) throws Exception {
UserVO userVO = new UserVO();
String nameEn = (String)request.getParameter("nameEn");
switch (nameEn) {
case "yu1" :
userVO.setName("홍현준"); userVO.setMblDn("1111"); break;
case "yu2" :
userVO.setName("김현준"); userVO.setMblDn("2222"); break;
case "yu3" :
userVO.setName("박현준"); userVO.setMblDn("3333"); break;
}
request.getSession().setAttribute("userVO", userVO);
String url = (String)request.getSession().getAttribute("url");
BoardVO searchVO = (BoardVO)request.getSession().getAttribute("searchVO");
redirectAttributes.addAttribute("pageIndex", searchVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", searchVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", searchVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", searchVO.getBbsId());
redirectAttributes.addAttribute("nttId", searchVO.getNttId());
return "redirect:" + url;
}
/**
* (사용자)게시물에 대한 목록을 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbsWeb/selectBoardList.do" , "/web/cop/bbsWeb/selectMoreListAjax.do"})
public String selectBoardArticlesWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, ModelMap model
,RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
// 신고게시판 여부
if (("BBST02").equals(bmVO.getBbsTyCode()) || ("BBST03").equals(bmVO.getBbsTyCode())) {
// 신고게시판 인트로 화면 구분
if (("Y").equals(boardVO.getReportIntroYn())) {
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
return "redirect:/web/cop/selfauth/reportIntro.do";
}
if (userVO != null) { // 사용자 인증
boardVO.setMblDn(userVO.getMblDn()); // 사용자 인증 키. 본인글만 조회
} else { // 인증 필요
request.getSession().setAttribute("searchVO", boardVO);
request.getSession().setAttribute("url", "/web/cop/bbsWeb/selectBoardList.do");
return "redirect:/web/cop/selfauth/authentication.do";
}
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if (("BBST05").equals(bmVO.getBbsTyCode())){ //사진게시판 8개씩 9개조회후 9개면 더보기
boardVO.setRecordCountPerPage(8); //리스트 수
boardVO.setFirstIndex( (boardVO.getPageIndex()-1)*8); //offset
paginationInfo.setRecordCountPerPage(boardVO.getRecordCountPerPage()); //웹 접근성 획득 후 롤백
}
if(!"9410000".equals(bmVO.getMenuNo())) {
boardVO.setParntScttNo("0"); //질문글만 가져오기(데이터 이관 숫자 틀려서 질문도 가져옴:공지사항)
}
// 공지사항
if (("Y").equals(bmVO.getNoticeYn())) {
List notifyList = bbsMngService.selectBoardNotifyArticles(boardVO, null);
model.addAttribute("notifyList", notifyList);
boardVO.setNoticeAt("N"); //다음에 공지사항 아닌것만 검색
}
if("BBST05".equals(bmVO.getBbsTyCode())){ //재단소식
boardVO.setSearchSortCnd("FRST_REGIST_PNTTM");
boardVO.setSearchSortOrd("desc");
}
Map map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
SimpleDateFormat t1 = new SimpleDateFormat("yyyyMMdd");
String nowTime = t1.format(cal.getTime());
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
if("9470000".equals(bmVO.getMenuNo())){ //인재채용시
String tempYmd = "";
if(null != bvo.getNtceBgnde() && !"".equals(bvo.getNtceBgnde())) { //모집기간 요일 추가하여 txt로 변환
tempYmd = bvo.getNtceBgnde().substring(0,4)+"-"+ bvo.getNtceBgnde().substring(4,6)+"-"+ bvo.getNtceBgnde().substring(6,8);
tempYmd = tempYmd+"("+getDateDay(tempYmd , "yyyy-MM-dd")+")" ;
tempYmd = tempYmd + " "+bvo.getNtceBgnde().substring(8,10) +":"+bvo.getNtceBgnde().substring(10,12) ;
bvo.setNtceBgndeView(tempYmd);
if(Integer.parseInt(nowTime) > Integer.parseInt(bvo.getNtceEndde().substring(0,8)) ) {
bvo.setSeCd("09");
}
}
if(null != bvo.getNtceEndde() && !"".equals(bvo.getNtceEndde())) {
tempYmd = bvo.getNtceEndde().substring(0,4)+"-"+ bvo.getNtceEndde().substring(4,6)+"-"+ bvo.getNtceEndde().substring(6,8);
tempYmd = tempYmd+"("+getDateDay(tempYmd , "yyyy-MM-dd")+")" ;
tempYmd = tempYmd + " "+bvo.getNtceEndde().substring(8,10) +":"+bvo.getNtceEndde().substring(10,12) ;
bvo.setNtceEnddeView(tempYmd);
}
}
}
PaginationInfo paginationInfoMobile = new PaginationInfo();
paginationInfoMobile.setCurrentPageNo(paginationInfo.getCurrentPageNo());
paginationInfoMobile.setTotalRecordCount(paginationInfo.getTotalRecordCount());
paginationInfoMobile.setPageSize(5);
paginationInfoMobile.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("boardVO", boardVO);
model.addAttribute("brdMstrVO", bmVO);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("paginationInfoMobile", paginationInfoMobile);
if("BBST08".equals(bmVO.getBbsTyCode())){ //인재채용 게시판경우
ComDefaultCodeVO vo = new ComDefaultCodeVO(); //모집상태
vo.setCodeId("ITN015");
model.addAttribute("codeList", cmmUseService.selectCmmCodeDetail(vo));
}
if("BBST05".equals(bmVO.getBbsTyCode())){ //재단소식 포토게시판
if(resultList.size()>8) { //더보기 더튼 추가
model.addAttribute("more", true);
}else {
model.addAttribute("more", false);
}
if("/web/cop/bbsWeb/selectMoreListAjax.do".equals(request.getRequestURI())) { //더보기
return "web/cop/bbs/EgovNoticePhotoListAjax";
}
return "web/cop/bbs/EgovNoticePhotoList"; //메인
}
if("9540000".equals(bmVO.getMenuNo())){ //개인정보처리방침의 경우 자세히 보기 pdf 파일과 제목가져오기
if(resultList.size() > 0 ){
model.addAttribute("pdfFileId", ((BoardVO)resultList.get(0)).getAtchFileId());
model.addAttribute("pdfSj", ((BoardVO)resultList.get(0)).getNttSj());
}
}
return "web/cop/bbs/EgovNoticeList";
}
/*nice체크 오프너로 이용*/
@RequestMapping("/web/cop/bbs/niceCheckAjax.do")
public String niceCheckWeb(HttpServletRequest request,
@RequestParam Map commandMap,
@ModelAttribute("searchVO") BoardVO boardVO,
ModelMap model , HttpSession session
) throws Exception {
String niceMessage = niceCheck(request, session, boardVO).getNiceMessage();
System.out.println("niceMessage --- " + niceMessage) ;
if("".equals(niceMessage)) { //정상의 경우 세션 생성 후 오프너 close
UserVO tempVO = new UserVO();
tempVO.setMblDn(damoEnc(boardVO.getMblDn(), request)); //DI암호화
tempVO.setName(boardVO.getNiceNm());
request.getSession().setAttribute("userVO", tempVO);
}
return "web/cop/selfauth/niceCheckAjax";
}
/**
* (사용자)게시물 등록을 위한 등록페이지로 이동한다.
*
* @param boardVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value={"/web/cop/bbs/addQnaBoardArticle.do","/web/cop/bbs/addSuggestBoardArticle.do"})
public String addQnaBoardArticleWeb(HttpServletRequest request,
@RequestParam Map commandMap,
@ModelAttribute("searchVO") BoardVO boardVO,
ModelMap model , HttpSession session,
RedirectAttributes redirectAttributes ) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
String userId = user == null ? "" : EgovStringUtil.isNullToString(user.getId());
if("".equals(userId)) {
return "redirect:/web/user/login/login.do";
}
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setMberId(user.getId());
mberManageVO = bbsMngService.selectboardArticleWebQnaMberInfo(mberManageVO);
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setUrl("/web/cop/bbs/SuggestList.do");
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(bmVO);
bmVO.setBbsId(boardMenuList.get(0).getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
/*UserVO userVO = new UserVO();
if(null != request.getSession().getAttribute("userVO")) { //세션체크
userVO = ((UserVO)request.getSession().getAttribute("userVO"));
boardVO.setMblDn(userVO.getMblDn());
boardVO.setNtcrNm(userVO.getName());
}else {
if("9530000".equals(bmVO.getMenuNo())) { //묻고답하기
return "redirect:/web/cop/selfauth/authentication.do?bbsId="+boardVO.getBbsId();
}
}*/
/*if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}*/
// 공통코드 Set
/*setBBSCommCd(model, bmVO);*/
model.addAttribute("mberManageVO", mberManageVO);
model.addAttribute("brdMstrVO", bmVO);
model.addAttribute("board", boardVO);
model.addAttribute("suggestBbsId", boardMenuList.get(0).getBbsId());
//최대 첨부파일 갯수 지정
//model.addAttribute("posAtchFileNum", "1");
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
if(pattern.equals("/web/cop/bbs/addSuggestBoardArticle.do")){ // 불편신고
model.addAttribute("boardType", "suggest");
}
// NEW
// 공통
List resultList = new ArrayList();
// 이용약관, 개인정보보호방침 최신버전 List
TermsVO termsVO3 = new TermsVO();
termsVO3.setFirstIndex(0);
termsVO3.setRecordCountPerPage(1);
termsVO3.setSearchDiv("03");
termsVO3.setSearchUseYn("Y");
termsVO3.setSearchSortCnd("effectDate");
termsVO3.setSearchSortOrd("desc");
List termsMastList2 = egovSiteManagerService.selectTermsMastMngList(termsVO3);
if (termsMastList2.size() > 0) {
TermsVO termsVO4 = new TermsVO();
termsVO4.setFirstIndex(0);
termsVO4.setRecordCountPerPage(20);
termsVO4.setTermsMastNo(termsMastList2.get(0).getTermsMastNo());
termsVO4.setSearchUseYn("Y");
termsVO4.setSearchSortCnd("sort");
termsVO4.setSearchSortOrd("ASC");
resultList = egovSiteManagerService.selectTermsSubMngList(termsVO4);
}
model.addAttribute("resultList", resultList);
return "web/cop/bbs/EgovNoticeRegist";
}
/**
* (사용자)게시물 등록을 위한 등록페이지로 이동한다.(문자온 묻고답하기)
*
* @param boardVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/addBoardArticle.do")
public String addBoardArticleWeb(HttpServletRequest request,
@RequestParam Map commandMap,
@ModelAttribute("searchVO") BoardVO boardVO,
ModelMap model , HttpSession session,
BoardMasterVO brdMstrVO ,
RedirectAttributes redirectAttributes ) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
String userId = user == null ? "" : EgovStringUtil.isNullToString(user.getId());
if("".equals(userId)) {
return "redirect:/web/user/login/login.do";
}
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setMberId(user.getId());
mberManageVO = bbsMngService.selectboardArticleWebQnaMberInfo(mberManageVO);
/*if(null != request.getSession().getAttribute("userVO")) { //세션체크
userVO = ((UserVO)request.getSession().getAttribute("userVO")) ;
boardVO.setMblDn(userVO.getMblDn());
boardVO.setNtcrNm(userVO.getName());
}else {
return "redirect:/web/cop/bbs/QnaList.do";
}*/
/*LoginVO loginvo = new LoginVO();
if(null != request.getSession().getAttribute("LoginVO")) {
loginvo = ((LoginVO)request.getSession().getAttribute("LoginVO"));
System.out.println(loginvo.getName());
boardVO.setNtcrNm(loginvo.getName());
}*/
//묻고답하기의 게시판들 가져오기
BoardMasterVO tempBoardMasterVO = new BoardMasterVO();
tempBoardMasterVO.setUrl("/web/cop/bbs/QnaList.do");
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(tempBoardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(tempBoardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){
tempBoardMasterVO.setViewsYn("N");
break ;
}
}
model.addAttribute("mberManageVO", mberManageVO);
model.addAttribute("boardMenuList", boardMenuList);
model.addAttribute("brdMstrVO", brdMstrVO);
/*for(BoardMasterVO tempMasterVO : boardMenuList ) {
tempMasterVO.setBbsNm(tempMasterVO.getBbsNm().split("\\(")[1].split("\\)")[0]) ;
}*/
model.addAttribute("board", boardVO);
//최대 첨부파일 갯수 지정
// NEW
// 공통
List resultList = new ArrayList();
// 이용약관, 개인정보보호방침 최신버전 List
TermsVO termsVO3 = new TermsVO();
termsVO3.setFirstIndex(0);
termsVO3.setRecordCountPerPage(1);
termsVO3.setSearchDiv("03");
termsVO3.setSearchUseYn("Y");
termsVO3.setSearchSortCnd("effectDate");
termsVO3.setSearchSortOrd("desc");
List termsMastList2 = egovSiteManagerService.selectTermsMastMngList(termsVO3);
if (termsMastList2.size() > 0) {
TermsVO termsVO4 = new TermsVO();
termsVO4.setFirstIndex(0);
termsVO4.setRecordCountPerPage(20);
termsVO4.setTermsMastNo(termsMastList2.get(0).getTermsMastNo());
termsVO4.setSearchUseYn("Y");
termsVO4.setSearchSortCnd("sort");
termsVO4.setSearchSortOrd("ASC");
resultList = egovSiteManagerService.selectTermsSubMngList(termsVO4);
}
model.addAttribute("resultList", resultList);
return "web/cop/bbs/EgovNoticeRegist";
}
/**
* (사용자)본인인증 안내 화면
*
* @param
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/selfauth/authentication.do")
public String authentication(HttpServletRequest request,
ModelMap model , @RequestParam Map commandMap,
@ModelAttribute("searchVO") BoardVO boardVO) throws Exception {
boardVO.setNiceSuccUrl(request.getRequestURL().toString().split("selfauth")[0]+"bbs/niceCheckAjax.do");
boardVO.setNiceFailUrl(request.getRequestURL().toString());
model.addAttribute("boardVO", boardVO);
return "web/cop/selfauth/authentication";
}
/**
* (사용자)신고게시판 안내 화면
*
* @param
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/selfauth/reportIntro.do")
public String reportIntro(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model, RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
model.addAttribute("brdMstrVO", bmVO);
return "web/cop/selfauth/reportIntro";
}
/**
* (사용자)글쓰기 권한 없으면 비번 입력란 보이게...
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbsWeb/selectBoardChkDetailAjax"} )
public ModelAndView selectBoardChkDetailAjax(HttpServletRequest request,
@ModelAttribute("searchVO") BoardVO boardVO,
ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
LoginVO loginVO = new LoginVO();
if(!"anonymousUser".equals(EgovUserDetailsHelper.getAuthenticatedUser() )) { //최고 관리자면 바로수정
loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_ADMIN".equals(loginVO.getAuthority())){
model.addAttribute("mblDnFlag", true);
return modelAndView;
}else { //일반관리자
bmVO.setBbsMngId(loginVO.getId());
if( bbsAttrbService.selectBBSMngInfCnt(bmVO) > 0 ) { //게시판 관리자 조회
model.addAttribute("mblDnFlag", true);
return modelAndView;
}
}
}
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
UserVO userVO = new UserVO();
if(request.getSession().getAttribute("userVO") != null){
userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(userVO.getMblDn().equals(bdVO.getMblDn())){
model.addAttribute("mblDnFlag", true);
}else {
model.addAttribute("mblDnFlag", false);
}
}else {
model.addAttribute("mblDnFlag", false);
}
return modelAndView;
}
/**
* (사용자)게시물에 대한 상세 정보를 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbsWeb/selectBoardArticle.do" ,
"/web/cop/bbsWeb/selectBoardDetail.do",
"/web/cop/bbs/NewsDetail.do",
"/web/cop/bbs/LibDetail.do",
"/web/cop/bbs/BussRealDetail.do",
"/web/cop/bbs/QnaDetail.do",
"/web/cop/bbs/SuggestDetail.do",
"/web/cop/bbs/PubOperDetail.do",
"/web/contentBbsDetail.do"
//"/web/cop/bbs/EventDetail.do"
} )
public String selectBoardArticleWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO,
BoardMasterVO masterVO,
ModelMap model,
@RequestParam Map commandMap,
RedirectAttributes redirectAttributes) throws Exception {
//XSS 태그 필터링 처리
boardVO.setBbsId(unscript(boardVO.getBbsId()));
boardVO.setSeCmmnCdId(unscript(boardVO.getSeCmmnCdId()));
boardVO.setFrstRegisterId(unscript(boardVO.getFrstRegisterId()));
boardVO.setSearchBgnDe(unscript(boardVO.getSearchBgnDe()));
boardVO.setSearchEndDe(unscript(boardVO.getSearchEndDe()));
boardVO.setSearchSortCnd(unscript(boardVO.getSearchSortCnd()));
boardVO.setSearchSortOrd(unscript(boardVO.getSearchSortOrd()));
boardVO.setSearchCnd(unscript(boardVO.getSearchCnd()));
boardVO.setSearchWrd(unscript(boardVO.getSearchWrd()));
BoardMasterVO bmVO = new BoardMasterVO();
if("".equals(boardVO.getBbsId())) { //검색에서 조회시 nttid로 마스터 조회
bmVO = bbsAttrbService.selectBbsIdByNttId(boardVO);
if (bmVO == null) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
boardVO.setBbsId(bmVO.getBbsId());
}else {
bmVO.setBbsId(boardVO.getBbsId());
}
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
if("/web/cop/bbs/NewsDetail.do".equals(request.getRequestURI()) || "/web/contentBbsDetail.do".equals(request.getRequestURI())) { //원자력소식 수정삭제등록 없음.
bmVO.setWebChgYn("N");
model.addAttribute("masterVO", masterVO);
}
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
{//묻고답하기 권한체크
boolean passChk = false;
if("9530000".equals(bmVO.getMenuNo())) {
LoginVO loginVO = new LoginVO();
if(!"anonymousUser".equals(EgovUserDetailsHelper.getAuthenticatedUser() )) { //최고 관리자면 바로수정
loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_ADMIN".equals(loginVO.getAuthority())){
passChk = true;
}else { //일반관리자
bmVO.setBbsMngId(loginVO.getId());
if( bbsAttrbService.selectBBSMngInfCnt(bmVO) > 0 ) { //게시판 관리자 조회
passChk = true;
}
}
}else{//방문자 세션있는방문자
UserVO userVO = new UserVO();
if(request.getSession().getAttribute("userVO") != null) {
userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(userVO.getMblDn().equals(bdVO.getMblDn())) {
passChk = true;
}
}
}
if(!"T".equals(bdVO.getSecretAt())){
if(!passChk){
if("".equals(boardVO.getPassword())) {
redirectAttributes.addFlashAttribute("message", "패스워드를 넣어주세요");
return "redirect:/web/cop/bbs/QnaList.do";
}else {
if(!damoDec(bdVO.getPassword(), request).equals(boardVO.getPassword())) {
redirectAttributes.addFlashAttribute("message", "패스워드가 맞지 않습니다.");
if("9530000".equals(bmVO.getMenuNo())) {
return "redirect:/web/cop/bbs/QnaList.do";
}else {
return "redirect:/web/cop/bbsWeb/selectBoardList.do?bbsId="+boardVO.getBbsId();
}
}
}
}
}
}
}
// 조회수 증가 여부 지정
boardVO.setPlusCount(true);
bbsMngService.updateBoardArticleInqireCo(boardVO);
boardVO.setMblDn(bdVO.getMblDn());
// 위/아래 게시글 번호, 제목 조회
if("/web/cop/bbs/QnaDetail.do".equals(request.getRequestURI())){
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userUniqId = user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId());
boardVO.setFrstRegisterId(userUniqId);
}
EgovMap upDownNttid = bbsMngService.getUpDownNttIdNSj(boardVO);
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO resultBbsMsInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
//답변글 리스트
if(bdVO.getAnswerCnt() > 0) {
List answerList = bbsMngService.selectBoardAnswerList(bdVO);
model.addAttribute("answerList", answerList);
}
model.addAttribute("nextNttIdNSj", upDownNttid.get("nextNttIdNSj"));
model.addAttribute("prevNttIdNSj", upDownNttid.get("prevNttIdNSj"));
model.addAttribute("result", bdVO);
model.addAttribute("brdMstrVO", bmVO);
model.addAttribute("resultBbsMsInfo", resultBbsMsInfo);
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId()); //게시판ID
commentVO.setNttId(boardVO.getNttId()); //게시글ID
//댓글 조회
List> resultList = egovArticleCommentService.selectArticleCommentListAll(commentVO);
int totCnt = resultList.size();
model.addAttribute("resultCnt", totCnt);
model.addAttribute("resultList", resultList);
if("BBST05".equals(bmVO.getBbsTyCode())){ //이벤트 포토게시판
if(bdVO.getAtchFileCnt() > 0 ) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bdVO.getAtchFileId());
List result = fileService.selectImageFileList(fileVO);
model.addAttribute("fileList", result);
}
return "web/cop/bbs/EgovNoticePhotoInqire";
}
if("Y".equals(masterVO.getTabBbsId())){
model.addAttribute("PubDetail", true);
}
System.out.println("boardVO.toString()");
System.out.println(boardVO.toString());
return "web/cop/bbs/EgovNoticeInqire";
}
/**
* (사용자)게시물에 대한 상세 정보를 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= { "/web/cop/bbs/NoticeDetail.do" } )
public String selectBoardNoticeDetailWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO,
BoardMasterVO masterVO,
ModelMap model,
@RequestParam Map commandMap,
RedirectAttributes redirectAttributes) throws Exception {
//XSS 태그 필터링 처리
boardVO.setBbsId(unscript(boardVO.getBbsId()));
boardVO.setSeCmmnCdId(unscript(boardVO.getSeCmmnCdId()));
boardVO.setFrstRegisterId(unscript(boardVO.getFrstRegisterId()));
boardVO.setSearchBgnDe(unscript(boardVO.getSearchBgnDe()));
boardVO.setSearchEndDe(unscript(boardVO.getSearchEndDe()));
boardVO.setSearchSortCnd(unscript(boardVO.getSearchSortCnd()));
boardVO.setSearchSortOrd(unscript(boardVO.getSearchSortOrd()));
boardVO.setSearchCnd(unscript(boardVO.getSearchCnd()));
boardVO.setSearchWrd(unscript(boardVO.getSearchWrd()));
BoardMasterVO bmVO = new BoardMasterVO();
//선택된 카테고리가 없는 경우
if("".equals(boardVO.getBbsId())) { //검색에서 조회시 nttid로 마스터 조회
bmVO = bbsAttrbService.selectBbsIdByNttId(boardVO);
if (bmVO == null) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
boardVO.setBbsId(bmVO.getBbsId());
}else {
bmVO.setBbsId(boardVO.getBbsId());
}
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
if("/web/cop/bbs/NewsDetail.do".equals(request.getRequestURI()) || "/web/contentBbsDetail.do".equals(request.getRequestURI())) { //원자력소식 수정삭제등록 없음.
bmVO.setWebChgYn("N");
model.addAttribute("masterVO", masterVO);
}
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
{//묻고답하기 권한체크
boolean passChk = false;
if("9530000".equals(bmVO.getMenuNo())) {
LoginVO loginVO = new LoginVO();
if(!"anonymousUser".equals(EgovUserDetailsHelper.getAuthenticatedUser() )) { //최고 관리자면 바로수정
loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_ADMIN".equals(loginVO.getAuthority())){
passChk = true;
}else { //일반관리자
bmVO.setBbsMngId(loginVO.getId());
if( bbsAttrbService.selectBBSMngInfCnt(bmVO) > 0 ) { //게시판 관리자 조회
passChk = true;
}
}
}else{//방문자 세션있는방문자
UserVO userVO = new UserVO();
if(request.getSession().getAttribute("userVO") != null) {
userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(userVO.getMblDn().equals(bdVO.getMblDn())) {
passChk = true;
}
}
}
if(!"T".equals(bdVO.getSecretAt())){
if(!passChk){
if("".equals(boardVO.getPassword())) {
redirectAttributes.addFlashAttribute("message", "패스워드를 넣어주세요");
return "redirect:/web/cop/bbs/QnaList.do";
}else {
if(!damoDec(bdVO.getPassword(), request).equals(boardVO.getPassword())) {
redirectAttributes.addFlashAttribute("message", "패스워드가 맞지 않습니다.");
if("9530000".equals(bmVO.getMenuNo())) {
return "redirect:/web/cop/bbs/QnaList.do";
}else {
return "redirect:/web/cop/bbsWeb/selectBoardList.do?bbsId="+boardVO.getBbsId();
}
}
}
}
}
}
}
// 조회수 증가 여부 지정
boardVO.setPlusCount(true);
bbsMngService.updateBoardArticleInqireCo(boardVO);
boardVO.setMblDn(bdVO.getMblDn());
// 위/아래 게시글 번호, 제목 조회
EgovMap upDownNttid = bbsMngService.getUpDownNttIdNSj(boardVO);
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO resultBbsMsInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
//답변글 리스트
if(bdVO.getAnswerCnt() > 0) {
List answerList = bbsMngService.selectBoardAnswerList(bdVO);
model.addAttribute("answerList", answerList);
}
model.addAttribute("nextNttIdNSj", upDownNttid.get("nextNttIdNSj"));
model.addAttribute("prevNttIdNSj", upDownNttid.get("prevNttIdNSj"));
model.addAttribute("result", bdVO);
bmVO.setUrl(request.getRequestURI()); //url 넘겨주기 - 게시판 상세 jsp는 공용으로 사용하는데, 공지사항 상세는 작성자를 '운영자'로 고정하기 위해 url을 넘겨 메뉴 구분
model.addAttribute("brdMstrVO", bmVO);
model.addAttribute("resultBbsMsInfo", resultBbsMsInfo);
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId()); //게시판ID
commentVO.setNttId(boardVO.getNttId()); //게시글ID
//댓글 조회
List> resultList = egovArticleCommentService.selectArticleCommentListAll(commentVO);
int totCnt = resultList.size();
model.addAttribute("resultCnt", totCnt);
model.addAttribute("resultList", resultList);
if("BBST05".equals(bmVO.getBbsTyCode())){ //이벤트 포토게시판
if(bdVO.getAtchFileCnt() > 0 ) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bdVO.getAtchFileId());
List result = fileService.selectImageFileList(fileVO);
model.addAttribute("fileList", result);
}
return "web/cop/bbs/EgovNoticePhotoInqire";
}
if("Y".equals(masterVO.getTabBbsId())){
model.addAttribute("PubDetail", true);
}
System.out.println("boardVO.toString()");
System.out.println(boardVO.toString());
return "web/cop/bbs/EgovNoticeInqire";
}
/**
* (사용자)게시물에 대한 상세 정보를 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbsWeb/selectBoardChkDetailAjax.do"} )
public ModelAndView selectBoardChkDetailAjax(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO,
BoardMasterVO masterVO,
ModelMap model ,
RedirectAttributes redirectAttributes) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return modelAndView;
}
{//묻고답하기 권한체크
boolean passChk = false;
if("9530000".equals(bmVO.getMenuNo())) {
LoginVO loginVO = new LoginVO();
if(!"anonymousUser".equals(EgovUserDetailsHelper.getAuthenticatedUser() )) { //최고 관리자면 바로수정
loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_ADMIN".equals(loginVO.getAuthority())){
passChk = true;
}else { //일반관리자
bmVO.setBbsMngId(loginVO.getId());
if( bbsAttrbService.selectBBSMngInfCnt(bmVO) > 0 ) { //게시판 관리자 조회
passChk = true;
}
}
}else{//방문자 세션있는방문자
UserVO userVO = new UserVO();
if(request.getSession().getAttribute("userVO") != null) {
userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(userVO.getMblDn().equals(bdVO.getMblDn())) {
passChk = true;
}
}
}
if(!"T".equals(bdVO.getSecretAt())){
if(!passChk){
if("".equals(boardVO.getPassword())) {
model.addAttribute("passChk", "01"); //패스워드 필요
return modelAndView;
}else {
//패스워드 복구화
if(!damoDec(bdVO.getPassword(), request).equals(boardVO.getPassword())) {
model.addAttribute("passChk", "02"); //패스워드가 틀림
return modelAndView;
}
}
}
}
}
}
boardVO.setMblDn(bdVO.getMblDn());
model.addAttribute("boardVO", boardVO);
return modelAndView;
}
/**
* (사용자)게시물 수정을 위한 수정페이지로 이동한다.
*
* @param boardVO
* @param vo
* @param model
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/forUpdateBoardArticle.do")
public String forUpdateBoardArticleWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, ModelMap model , RedirectAttributes redirectAttributes, BoardMasterVO brdMstrVO) throws Exception {
/*BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//게시글 불러오기
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
if(bdVO.getAtchFileId() !=null) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bdVO.getAtchFileId());
List fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
UserVO userVO = new UserVO();
//게시글 본인인증 번호 변수 저장
String mblDn = bdVO.getMblDn();
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("board", bdVO);
model.addAttribute("brdMstrVO", bmVO);
//최대 첨부파일 갯수 지정
model.addAttribute("posAtchFileNum", bmVO.getPosblAtchFileNumber());
if("9530000".equals(bmVO.getMenuNo())){ //묻고답하기
//묻고답하기의 게시판들 가져오기
BoardMasterVO boardMasterVO = new BoardMasterVO();
boardMasterVO.setUrl("/web/cop/bbs/QnaList.do");
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
for(BoardMasterVO tempMasterVO : boardMenuList ) {
tempMasterVO.setBbsNm(tempMasterVO.getBbsNm().split("\\(")[1].split("\\)")[0]) ;
}
model.addAttribute("boardMenuList", boardMenuList);
}*/
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
String userId = user == null ? "" : EgovStringUtil.isNullToString(user.getId());
if("".equals(userId)) {
return "redirect:/web/user/login/login.do";
}
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setMberId(user.getId());
mberManageVO = bbsMngService.selectboardArticleWebQnaMberInfo(mberManageVO);
/*if(null != request.getSession().getAttribute("userVO")) { //세션체크
userVO = ((UserVO)request.getSession().getAttribute("userVO")) ;
boardVO.setMblDn(userVO.getMblDn());
boardVO.setNtcrNm(userVO.getName());
}else {
return "redirect:/web/cop/bbs/QnaList.do";
}*/
/*LoginVO loginvo = new LoginVO();
if(null != request.getSession().getAttribute("LoginVO")) {
loginvo = ((LoginVO)request.getSession().getAttribute("LoginVO"));
System.out.println(loginvo.getName());
boardVO.setNtcrNm(loginvo.getName());
}*/
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
if(bdVO.getAtchFileId() !=null) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bdVO.getAtchFileId());
List fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
//묻고답하기의 게시판들 가져오기
BoardMasterVO tempBoardMasterVO = new BoardMasterVO();
tempBoardMasterVO.setUrl("/web/cop/bbs/QnaList.do");
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(tempBoardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(tempBoardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){
tempBoardMasterVO.setViewsYn("N");
break ;
}
}
model.addAttribute("mberManageVO", mberManageVO);
model.addAttribute("boardMenuList", boardMenuList);
model.addAttribute("brdMstrVO", brdMstrVO);
/*for(BoardMasterVO tempMasterVO : boardMenuList ) {
tempMasterVO.setBbsNm(tempMasterVO.getBbsNm().split("\\(")[1].split("\\)")[0]) ;
}*/
model.addAttribute("board", bdVO);
//최대 첨부파일 갯수 지정
return "web/cop/bbs/EgovNoticeUpdt";
}
/**
* (사용자)게시물에 대한 내용을 수정한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbs/updateBoardArticle.do" , "/web/cop/bbs/updateBoardArticleAjax.do"})
public ModelAndView updateBoardArticleWeb(HttpServletRequest request, final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("bdMstr") BoardMaster bdMstr,
@ModelAttribute("board") Board board, BindingResult bindingResult, ModelMap model, SessionStatus status, RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// Start => bbsId를 변조해서 공지사항에 글 등록 방지 처리
//boardVO.setBbsId("BBSMSTR_000000000651"); // 공지사항
List userBbsWriteList = bbsMngService.selectUserBbsWriteList(boardVO);
System.out.println("boardVO.getBbsId : " + boardVO.getBbsId());
System.out.println("userBbsWriteList.size() : " + userBbsWriteList.size());
if (userBbsWriteList.size() == 0) {
// 1:1문의, 불편사항 등 고객이 등록할수있는 게시판 목록이 아닐경우
modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요.");
modelAndView.addObject("result", "fail");
return modelAndView;
}
// End
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
//return "redirect:/web/main/mainPage.do";
modelAndView.addObject("result", "no_imposbl");
return modelAndView;
}
// if (userVO == null) { // 인증 필요
// multiRequest.getSession().setAttribute("searchVO", boardVO);
// multiRequest.getSession().setAttribute("url", "/web/cop/bbs/forUpdateBoardArticle.do");
// return "redirect:/web/cop/selfauth/authentication.do";
// }
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
// String frstRegisterId = bdVO.getFrstRegisterId(); // 관리자 유무
//230801 이지우 - 본인글 외에 nttId 변조를 통하여 다른 게시글 수정 가능한 취약점 방지
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(!bdVO.getFrstRegisterId().equals(userId)) {
modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요.");
modelAndView.addObject("result", "fail");
return modelAndView;
}
UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
//게시글 본인인증 번호 변수 저장
//String mblDn = bdVO.getMblDn();
// 본인글 체크
/*if (!mblDn.equals(userVO.getMblDn())) {
redirectAttributes.addFlashAttribute("message", "본인글 외에는 수정할 수 없습니다.");
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addAttribute("nttId", boardVO.getNttId());
modelAndView.addObject("result", "no_imposbl");
return modelAndView;
}*/
String atchFileId = boardVO.getAtchFileId();
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
modelAndView.addObject("result", "no_Validator");
return modelAndView;
}
String isThumbFile = "";
if (("BBST05").equals(bmVO.getBbsTyCode()) || ("BBST06").equals(bmVO.getBbsTyCode())) isThumbFile = "thumbFile";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
if ("".equals(atchFileId)) {
List result = fileUtil.parseFileInf(files, "BBS_", 0, atchFileId, "", isThumbFile);
if(!isPosblAtchFile(result, bmVO, model, 0)) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
modelAndView.addObject("result", "no_fileupdate");
return modelAndView;
}
atchFileId = fileMngService.insertFileInfs(result);
board.setAtchFileId(atchFileId);
} else {
FileVO fvo = new FileVO();
fvo.setAtchFileId(atchFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
List result = fileUtil.parseFileInf(files, "BBS_", cnt, atchFileId, "", isThumbFile);
/*
* 파일 확장자 및 사이즈 등을 체크해주는 부분
* if(!isPosblAtchFile(result, bmVO, model, board.getAtchFileCnt())) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
//return "web/cop/bbs/EgovNoticeUpdt";
modelAndView.addObject("result", "no_fileupdate");
return modelAndView;
}*/
fileMngService.updateFileInfs(result);
}
}
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
//board.setLastUpdusrNm(userVO.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
bbsMngService.updateBoardArticle(board);
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* (사용자)게시물에 대한 내용을 삭제한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/deleteBoardArticle.do")
public String deleteBoardArticleWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("board") Board board,
@ModelAttribute("bdMstr") BoardMaster bdMstr, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
String userUniqId = user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId());
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
//String frstRegisterId = bdVO.getFrstRegisterId(); // 관리자 유무
String frstRegisterId = bdVO.getFrstRegisterId();
//bdVO.setMblDn(""); // 화면단으로 모바일키 인증 방지
// 본인글 체크
if (!frstRegisterId.equals(userUniqId)) {
redirectAttributes.addFlashAttribute("message", "본인글 외에는 삭제할 수 없습니다.");
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addAttribute("nttId", boardVO.getNttId());
return "redirect:/web/cop/bbsWeb/selectBoardArticle.do";
}
board.setLastUpdusrNm(user.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(request);
board.setNtcrIp(userIp);
bbsMngService.deleteBoardArticle(board);
boardVO.setPageIndex(1); //삭제후 첫페이지로 로딩
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
return "redirect:/web/cop/bbs/QnaList.do";
}
/**
* (사용자)본인인증 요청 입력 Sample
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/pccInput.do")
public String pccInput(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
return "web/cop/selfauth/pcc_V3_input_seed";
}
/**
* (사용자)본인인증 요청 팝업 Sample
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/selfauth.do")
public String selfauthTest(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
return "web/cop/selfauth/pcc_V3_sample_seed";
}
@Value("#{globalSettings['Globals.selfauth.siteId']}")
private String SELFAUTH_SITE_ID;
@Value("#{globalSettings['Globals.selfauth.srvNo']}")
private String SELFAUTH_SRV_NO;
/**
* (사용자)본인인증 요청
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/selfauth/selfauth.do")
public String selfauth(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
java.util.Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
String certGb = "H";
String addVar = "";
String reqNum = day + randomStr; // //reqNum은 최대 40byte 까지 사용 가능
String certDate=day;
String exVar = "0000000000000000"; // 복호화용 임시필드
request.getSession().setAttribute("reqNum", reqNum); // 결과값 복호화시 필요
//01. 암호화 모듈 선언
SciSecuManager seed = new SciSecuManager();
//02. 1차 암호화
String encStr = "";
String reqInfo = SELFAUTH_SITE_ID+"^"+SELFAUTH_SRV_NO+"^"+reqNum+"^"+certDate+"^"+certGb+"^"+addVar+"^"+exVar; // 데이터 암호화
encStr = seed.getEncPublic(reqInfo);
//03. 위변조 검증 값 생성
String hmacMsg = SciHmac.HMacEncriptPublic(encStr);
//03. 2차 암호화
reqInfo = seed.getEncPublic(encStr + "^" + hmacMsg + "^" + "0000000000000000"); //2차암호화
request.getSession().setAttribute("reqInfo", reqInfo); // 본인확인 요청 정보
request.getSession().setAttribute("SITE_URL", SITE_URL); // 사이트 URL
return "web/cop/selfauth/selfauth";
}
/**
* (사용자)본인인증 결과 리턴
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/selfauth/resultSeed.do")
public String resultSeed(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
String retInfo = request.getParameter("retInfo").trim();
String cookiereqNum = (String)request.getSession().getAttribute("reqNum");
//복화화용 변수
String encPara = "";
String encMsg = "";
String msgChk = "N";
// 1. 암호화 모듈 (jar) Loading
SciSecuManager sciSecuMg = new SciSecuManager();
//쿠키에서 생성한 값을 Key로 생성 한다.
retInfo = sciSecuMg.getDec(retInfo, cookiereqNum);
// 2.1차 파싱---------------------------------------------------------------
String[] aRetInfo1 = retInfo.split("\\^");
encPara = aRetInfo1[0]; //암호화된 통합 파라미터
encMsg = aRetInfo1[1]; //암호화된 통합 파라미터의 Hash값
String encMsg2 = sciSecuMg.getMsg(encPara);
// 3.위/변조 검증 ---------------------------------------------------------------
if(encMsg2.equals(encMsg)) msgChk="Y";
if(msgChk.equals("N")) {
// 비정상 접근 처리
}
retInfo = sciSecuMg.getDec(encPara, cookiereqNum);
String[] aRetInfo = retInfo.split("\\^");
String name = aRetInfo[0]; //성명
// String birYMD = aRetInfo[1]; //생년월일
// String sex = aRetInfo[2]; //성별
// String fgnGbn = aRetInfo[3]; //내외국인 구분값
String di = aRetInfo[4]; //DI
// String ci1 = aRetInfo[5]; //CI
// String ci2 = aRetInfo[6]; //CI
// String civersion = aRetInfo[7]; //CI Version
// String reqNum = aRetInfo[8]; // 본인확인 요청번호
// String result = aRetInfo[9]; // 본인확인결과 (Y/N)
// String certGb = aRetInfo[10]; // 인증수단
// String cellNo = aRetInfo[11]; // 핸드폰 번호
// String cellCorp = aRetInfo[12]; // 이동통신사
// String certDate = aRetInfo[13]; // 검증시간
// String addVar = aRetInfo[14];
// 사용자 세션생성
UserVO userVO = new UserVO();
userVO.setName(name);
userVO.setMblDn(di);
request.getSession().setAttribute("userVO", userVO);
String url = (String)request.getSession().getAttribute("url");
BoardVO searchVO = (BoardVO)request.getSession().getAttribute("searchVO");
model.addAttribute("searchVO", searchVO);
model.addAttribute("url", url);
return "web/cop/selfauth/resultSeed";
}
/**
* (사용자)본인인증 결과 리턴 Sample
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/pccPopSeed.do")
public String pccPopSeed(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
return "web/cop/selfauth/pcc_V3_popup_seed";
}
/**
* (사용자)본인인증 결과 Sample
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/pccResult.do")
public String pccResult(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
return "web/cop/selfauth/pcc_V3_result_seed";
}
/**
* 게시판 공통코드
* @param model
* @throws Exception
*/
private void setBBSCommCd(ModelMap model, BoardMasterVO bmVO) throws Exception {
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
// 폴라스토리. 사용자 유형
if (("BBSMSTR_000000000153").equals(bmVO.getBbsId())) {
comDefaultCodeVO.setCodeId("ITN003");
List> userTypeList = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("userTypeList", userTypeList);
}
// 통합신고게시판. 게시판 유형
if (("BBST03").equals(bmVO.getBbsTyCode())) {
comDefaultCodeVO.setCodeId("ITN004");
List> reportTyList = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("reportTyList", reportTyList);
}
}
/**
* (사용자)게시물을 등록한다.
*
* @param boardVO
* @param board
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbs/insertBoardArticle.do" , "/web/cop/bbs/insertBoardArticleAjax.do"})
public ModelAndView insertBoardArticleWeb(HttpServletRequest request,
final MultipartHttpServletRequest multiRequest,
@ModelAttribute("searchVO") BoardVO boardVO,
@ModelAttribute("bdMstr") BoardMasterVO bdMstr,
@ModelAttribute("board") Board board,
BindingResult bindingResult,
SessionStatus status,
ModelMap model,
RedirectAttributes redirectAttributes,
@RequestParam Map commandMap ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey", multiRequest)) {
modelAndView.addObject("message", "너무많은 글쓰기가 시도되었습니다.");
modelAndView.addObject("result", "fail");
return modelAndView;
}
// Start => bbsId를 변조해서 공지사항에 글 등록 방지 처리
//boardVO.setBbsId("BBSMSTR_000000000651"); // 공지사항
List userBbsWriteList = bbsMngService.selectUserBbsWriteList(boardVO);
System.out.println("boardVO.getBbsId : " + boardVO.getBbsId());
System.out.println("userBbsWriteList.size() : " + userBbsWriteList.size());
if (userBbsWriteList.size() == 0) {
// 1:1문의, 불편사항 등 고객이 등록할수있는 게시판 목록이 아닐경우
modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요.");
modelAndView.addObject("result", "fail");
return modelAndView;
}
// End
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
//return "redirect:/web/main/mainPage.do";
modelAndView.addObject("result", "no_imposbl");
return modelAndView;
}
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("bdMstr", bmVO);
//return "web/cop/bbs/EgovNoticeRegist";
modelAndView.addObject("result", "no_validate");
return modelAndView;
}
List result = null;
String atchFileId = "";
String isThumbFile = "";
if (("BBST05").equals(bmVO.getBbsTyCode()) || ("BBST06").equals(bmVO.getBbsTyCode())) isThumbFile = "thumbFile";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
result = fileUtil.parseFileInf(files, "BBS_", 0, "", "", isThumbFile);
// 파일 사이즈, 개수, 확장자 체크. model에 체크 오류 메세지 set
if(!isPosblAtchFile(result, bmVO, model, 0)) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("bdMstr", bmVO);
//return "web/cop/bbs/EgovNoticeRegist";
modelAndView.addObject("result", "no_atchFile");
return modelAndView;
}
atchFileId = fileMngService.insertFileInfs(result);
}
board.setAtchFileId(atchFileId);
board.setBbsId(board.getBbsId());
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
//게시판 정보 입력
/*board.setPassword(damoEnc(board.getPassword(), request)); *///비번암호화
board.setPassword(board.getPassword());
bbsMngService.insertBoardArticle(board);
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
modelAndView.addObject("result", "success");
// 법인폰 알람여부 체크
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
// 이메일 체크
if (joinSettingVO != null && joinSettingVO.getEmailNoti().equals("Y")) {
// 알림 모듈 추가(게시판 id, 게시판 제목, 게시판 내용)
mjonNoticeSendUtil.mjonInquiryNoticeSend(board.getBbsId(), board.getNttSj(), board.getNttCn());
}
// SMS 체크
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
String smsTitle = bmVO.getBbsNm()+" 문의";
// CS관리자 SMS 알림전송
mjonNoticeSendUtil.csAdminSmsNoticeSend(board.getNttSj(), smsTitle);
}
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] "+ bmVO.getBbsNm() + "- " + board.getNttSj();
mjonCommon.sendSimpleSlackMsg(msg);
}
return modelAndView;
}
/**
* (사용자)게시물 등록을 위한 등록페이지로 이동한다.
*
* @param boardVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/member/cop/bbs/addBoardArticle.do")
public String siteMemberAddBoardArticleWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, ModelMap model , RedirectAttributes redirectAttributes ) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
boolean authFlag = false;
List authorities = EgovUserDetailsHelper.getAuthorities();
// 게시판 쓰기 권한 체크
for (String authority : authorities) {
if (authority.equals(bmVO.getWriteAuth())) authFlag = true;
}
/*model.addAttribute("siteId", siteId);
String siteFolder = "site/"+siteId ;
if (bmVO == null || ("N").equals(bmVO.getUseAt()) || !authFlag) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/"+siteId+"/web/main/mainPage.do";
}*/
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
model.addAttribute("board", boardVO);
/*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeRegist";
}*/
return "web/cop/bbs/EgovNoticeRegist";
}
/**
* (사용자)게시물을 등록한다.
*
* @param boardVO
* @param board
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/member/cop/bbs/insertBoardArticle.do")
public String siteMemberInsertBoardArticleWeb(HttpServletRequest request , final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("bdMstr") BoardMasterVO bdMstr,
@ModelAttribute("board") Board board, BindingResult bindingResult, SessionStatus status, ModelMap model, RedirectAttributes redirectAttributes,
@RequestParam Map commandMap, WordFilterVO wordFilterVO ) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
/*model.addAttribute("siteId", siteId);
String siteFolder = "site/"+siteId ; */
boolean authFlag = false;
List authorities = EgovUserDetailsHelper.getAuthorities();
// 게시판 쓰기 권한 체크
for (String authority : authorities) {
if (authority.equals(bmVO.getWriteAuth())) authFlag = true;
}
/*if (bmVO == null || ("N").equals(bmVO.getUseAt()) || !authFlag) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/"+siteId+"/web/main/mainPage.do";
}*/
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("bdMstr", bmVO);
/*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeRegist";
}*/
return "web/cop/bbs/EgovNoticeRegist";
}
//필터체크
//wordFilterVO.setSiteId(siteId);
wordFilterVO = wordFilterService.selectWordFilterVO(wordFilterVO);
if(wordFilterVO !=null){
wordFilterVO.getFilterCn() ;
board.getNttCn();
}
List result = null;
String atchFileId = "";
String isThumbFile = "";
if (("BBST05").equals(bmVO.getBbsTyCode()) || ("BBST06").equals(bmVO.getBbsTyCode())) isThumbFile = "thumbFile";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
result = fileUtil.parseFileInf(files, "BBS_", 0, "", "", isThumbFile);
// 파일 사이즈, 개수, 확장자 체크. model에 체크 오류 메세지 set
if(!isPosblAtchFile(result, bmVO, model, 0)) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("bdMstr", bmVO);
/*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeRegist";
}*/
return "web/cop/bbs/EgovNoticeRegist";
}
atchFileId = fileMngService.insertFileInfs(result);
}
if(loginVO == null){ //테스트
UserVO tempUserVO = new UserVO();
tempUserVO.setName("testName");
tempUserVO.setMblDn("testMblDn");
board.setNtcrNm(tempUserVO.getName());
board.setMblDn(tempUserVO.getMblDn());
}else{
board.setNtcrNm(loginVO.getName());
board.setFrstRegisterId(loginVO.getUniqId());
}
board.setAtchFileId(atchFileId);
board.setBbsId(board.getBbsId());
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
Board resultVO = bbsMngService.insertBoardArticle(board);
List mngIdList = bbsAttrbService.selectBBSMngIdList(bmVO); // 게시판 관리자ID 조회
// 사용자 게시글 등록 시 메일 전송
/*if (userVO != null) {
for (EgovMap mngId : mngIdList) {
String mailAdres = (String)mngId.get("emailAdres");
if (mailAdres != null && !("").equals(mailAdres))
sendBBSInsertMail((String)mngId.get("emailAdres"), board.getBbsId(), resultVO.getNttId(), bmVO.getBbsNm(), board.getNttSj());
}
}*/
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
return "redirect:/web/cop/bbsWeb/selectBoardList.do";
}
/**
* (사용자)게시물 수정을 위한 수정페이지로 이동한다.
*
* @param boardVO
* @param vo
* @param model
* @throws Exception
*/
@RequestMapping("/{siteId}/web/member/cop/bbs/forUpdateBoardArticle.do")
public String siteForUpdateBoardArticleWeb(@PathVariable("siteId") String siteId , HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, ModelMap model , RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
boolean authFlag = false;
List authorities = EgovUserDetailsHelper.getAuthorities();
// 게시판 쓰기 권한 체크
for (String authority : authorities) {
if (authority.equals(bmVO.getWriteAuth())) authFlag = true;
}
model.addAttribute("siteId", siteId);
String siteFolder = "site/"+siteId ;
if (bmVO == null || ("N").equals(bmVO.getUseAt()) || !authFlag) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/"+siteId+"/web/main/mainPage.do";
}
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
String frstRegisterId = bdVO.getFrstRegisterId(); // 관리자 유무
bdVO.setMblDn(""); // 화면단으로 모바일키 인증 방지
// 본인글 체크
if (!frstRegisterId.equals(loginVO.getUniqId())) {
redirectAttributes.addFlashAttribute("message", "본인글 외에는 수정할 수 없습니다.");
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addAttribute("nttId", boardVO.getNttId());
return "redirect:/"+siteId+"/web/cop/bbsWeb/selectBoardArticle.do";
}
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("board", bdVO);
model.addAttribute("brdMstrVO", bmVO);
/*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeUpdt";
}*/
return "web/"+siteFolder+"/cop/bbs/EgovNoticeUpdt";
}
/**
* (사용자)게시물에 대한 내용을 수정한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/{siteId}/web/member/cop/bbs/updateBoardArticle.do")
public String siteUpdateBoardArticleWeb(@PathVariable("siteId") String siteId ,HttpServletRequest request , final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("bdMstr") BoardMaster bdMstr,
@ModelAttribute("board") Board board, BindingResult bindingResult, ModelMap model, SessionStatus status, RedirectAttributes redirectAttributes) throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)multiRequest.getSession().getAttribute("userVO"); // 사용자 정보
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
boolean authFlag = false;
List authorities = EgovUserDetailsHelper.getAuthorities();
// 게시판 쓰기 권한 체크
for (String authority : authorities) {
if (authority.equals(bmVO.getWriteAuth())) authFlag = true;
}
if (bmVO == null || ("N").equals(bmVO.getUseAt()) || !authFlag) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/"+siteId+"/web/main/mainPage.do";
}
/*if (userVO == null) { // 인증 필요
multiRequest.getSession().setAttribute("searchVO", boardVO);
multiRequest.getSession().setAttribute("url", "/web/cop/bbs/forUpdateBoardArticle.do");
return "redirect:/web/cop/selfauth/authentication.do";
}*/
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
String frstRegisterId = bdVO.getFrstRegisterId(); // 글쓴이 아이디
String mblDn = bdVO.getMblDn();
bdVO.setMblDn(""); // 화면단으로 모바일키 인증 방지
// 본인글 체크
if (!bdVO.getFrstRegisterId().equals(loginVO.getUniqId())) {
redirectAttributes.addFlashAttribute("message", "본인글 외에는 수정할 수 없습니다.");
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addAttribute("nttId", boardVO.getNttId());
return "redirect:/"+siteId+"/web/cop/bbsWeb/selectBoardArticle.do";
}
String atchFileId = boardVO.getAtchFileId();
beanValidator.validate(board, bindingResult);
if (bindingResult.hasErrors()) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
String siteFolder = "site/"+siteId ;
if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
//return "web/site/theme_"+siteManagerVO.getTheme()+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeUpdt";
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeUpdt";
}
return "web/"+siteFolder+"/cop/bbs/EgovNoticeUpdt";
}
String isThumbFile = "";
if (("BBST05").equals(bmVO.getBbsTyCode()) || ("BBST06").equals(bmVO.getBbsTyCode())) isThumbFile = "thumbFile";
final Map files = multiRequest.getFileMap();
if (!files.isEmpty()) {
if ("".equals(atchFileId)) {
List result = fileUtil.parseFileInf(files, "BBS_", 0, atchFileId, "", isThumbFile);
if(!isPosblAtchFile(result, bmVO, model, 0)) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
String siteFolder = "site/"+siteId ;
/*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeUpdt";
}*/
return "web/"+siteFolder+"/cop/bbs/EgovNoticeUpdt";
}
atchFileId = fileMngService.insertFileInfs(result);
board.setAtchFileId(atchFileId);
} else {
FileVO fvo = new FileVO();
fvo.setAtchFileId(atchFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
List result = fileUtil.parseFileInf(files, "BBS_", cnt, atchFileId, "", isThumbFile);
if(!isPosblAtchFile(result, bmVO, model, board.getAtchFileCnt())) {
// 공통코드 Set
setBBSCommCd(model, bmVO);
model.addAttribute("brdMstrVO", bmVO);
String siteFolder = "site/"+siteId ;
/*if(!("linc".equals(siteId) || "klc".equals(siteId)) ){
SiteManagerVO siteManagerVO = new SiteManagerVO();
siteManagerVO.setSiteId(siteId);
setSiteinfo(siteManagerVO, model , request );
return "web/site/"+siteId+"/"+siteManagerVO.getIsMobile()+"/cop/bbs/EgovNoticeUpdt";
}*/
return "web/"+siteFolder+"/cop/bbs/EgovNoticeUpdt";
}
fileMngService.updateFileInfs(result);
}
}
board.setNttCn(unscript(board.getNttCn())); // XSS 방지
board.setLastUpdusrNm(loginVO.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(multiRequest);
board.setNtcrIp(userIp);
bbsMngService.updateBoardArticle(board);
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
return "redirect:/"+siteId+"/web/cop/bbsWeb/selectBoardList.do";
}
/**
* (사용자)게시물에 대한 내용을 삭제한다.
*
* @param boardVO
* @param board
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/{siteId}/web/member/cop/bbs/deleteBoardArticle.do")
public String siteDeleteBoardArticleWeb(@PathVariable("siteId") String siteId , HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO, @ModelAttribute("board") Board board,
@ModelAttribute("bdMstr") BoardMaster bdMstr, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
List authorities = EgovUserDetailsHelper.getAuthorities();
boolean authFlag = false;
// 게시판 쓰기 권한 체크
for (String authority : authorities) {
if (authority.equals(bmVO.getWriteAuth())) authFlag = true;
}
if (bmVO == null || ("N").equals(bmVO.getUseAt()) || !authFlag) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/"+siteId+"/web/main/mainPage.do";
}
/*if (loginVO == null) { // 인증 필요
request.getSession().setAttribute("searchVO", boardVO);
request.getSession().setAttribute("url", "/web/cop/bbsWeb/selectBoardArticle.do");
return "redirect:/web/cop/selfauth/authentication.do";
}
*/
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
String frstRegisterId = bdVO.getFrstRegisterId(); // 글쓴이
String mblDn = bdVO.getMblDn();
bdVO.setMblDn(""); // 화면단으로 모바일키 인증 방지
// 본인글 체크
if (frstRegisterId.equals("") || !frstRegisterId.equals(loginVO.getUniqId())) {
redirectAttributes.addFlashAttribute("message", "본인글 외에는 삭제할 수 없습니다.");
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addAttribute("nttId", boardVO.getNttId());
return "redirect:/"+siteId+"/web/cop/bbsWeb/selectBoardArticle.do";
}
board.setLastUpdusrNm(loginVO.getName()); // 변경이력에 사용
String userIp = EgovClntInfo.getClntIP(request);
board.setNtcrIp(userIp);
bbsMngService.deleteBoardArticle(board);
boardVO.setPageIndex(1); //삭제후 첫페이지로 로딩
redirectAttributes.addAttribute("pageIndex", boardVO.getPageIndex());
redirectAttributes.addAttribute("searchCnd", boardVO.getSearchCnd());
redirectAttributes.addAttribute("searchWrd", boardVO.getSearchWrd());
redirectAttributes.addAttribute("bbsId", boardVO.getBbsId());
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
return "redirect:/"+siteId+"/web/cop/bbsWeb/selectBoardList.do";
}
private void setSiteinfo(SiteManagerVO siteManagerVO , ModelMap model , HttpServletRequest request) throws Exception{
SiteManagerVO tempSiteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ;
if(tempSiteManagerVO !=null){
siteManagerVO.setIsMobile("pc") ;
siteManagerVO.setTheme(tempSiteManagerVO.getTheme());
}else{
siteManagerVO.setTheme("01");
}
WebUtil util = new WebUtil();
if(util.isMobile(request)){
siteManagerVO.setIsMobile("mobile");
}
model.addAttribute("siteId", siteManagerVO.getSiteId());
//model.addAttribute("site_path" , "/site/theme_"+siteManagerVO.getTheme()+"/"+siteManagerVO.getIsMobile());
model.addAttribute("site_path" , "/site/"+siteManagerVO.getSiteId()+"/"+siteManagerVO.getIsMobile());
}
/**
* 첨부파일 개수, 사이즈, 확장자 체크
* 썸네일, 모델, 기개수, 종류
* @param fileList 파일리스트
* @param boardMaster
* @param model
* @param atchFileCnt 업로드된 파일 수
* @param fileSe 파일 구분
* @return boolean
* @return 체크 오류 메세지 model 'flashMessage' 에 set
* @throws Exception
*/
private boolean isPosblAtchFile_tobe(Map fileList, BoardMaster boardMaster,
ModelMap model, int atchFileCnt, String fileSe) throws Exception {
long posblAtchFileSize = Long.parseLong(boardMaster.getPosblAtchFileSize()) * 1024 * 1024 ;
int posblAtchFileNumber = Integer.parseInt(boardMaster.getPosblAtchFileNumber());
String bbsTyCode = boardMaster.getBbsTyCode();
String flashMessage = "";
String fileSeMsg = "첨부파일: ";
String fileExtMsg = "";
boolean posblAtchFileFlag = true;
boolean posblAtchFileSizeFlag = true;
boolean posblAtchFileExtFlag = true;
boolean isImg = false;
// 썸네일 시
if (fileSe.equals("thumb")) {
posblAtchFileNumber = 1;
isImg = true;
fileSeMsg = "썸네일: ";
}
Iterator> itr = fileList.entrySet().iterator();
MultipartFile file;
int fileCnt = 0;
while (itr.hasNext()) {
Entry entry = itr.next();
file = entry.getValue();
long fileMg = file.getSize();
String orginFileName = file.getOriginalFilename();
int index = orginFileName.lastIndexOf(".");
String fileExt = orginFileName.substring(index + 1);
if (fileMg > posblAtchFileSize) posblAtchFileSizeFlag = false;
// 이미지 형식 확인
// if (("BBST05").equals(bbsTyCode) || ("BBST06").equals(bbsTyCode) || isImg) {
if (isImg) {
String[] imgExts = {"gif", "jpg", "bmp", "jpeg", "png"};
if (ArrayUtils.indexOf(imgExts, fileExt.toLowerCase()) == -1) {
posblAtchFileExtFlag = false;
fileExtMsg = "이미지";
}
}
// 포토형2 pdf 예외처리 필요
// if (("ㅁㄴㅇㄹ").equals(bbsTyCode)) {
// String[] imgExts = {"pdf"};
// if (ArrayUtils.indexOf(imgExts, fileExt.toLowerCase()) == -1) {
// posblAtchFileExtFlag = false;
// fileExtMsg = "PDF";
// }
// }
fileCnt++;
}
if (!posblAtchFileExtFlag) {
flashMessage += fileSeMsg + fileExtMsg + " 형식의 확장자만 업로드 가능합니다." + "\\n";
posblAtchFileFlag = false;
}
if(!posblAtchFileSizeFlag) {
flashMessage += fileSeMsg + "파일사이즈가 초과되었습니다. 최대크기 " + posblAtchFileSize + "mb" + "\\n";
posblAtchFileFlag = false;
}
if ((fileCnt+atchFileCnt) > posblAtchFileNumber) {
flashMessage += fileSeMsg + "파일 개수가 초과되었습니다. 최대개수 " + posblAtchFileNumber + "개" + "\\n";
posblAtchFileFlag = false;
}
if (!posblAtchFileFlag) model.addAttribute("message", flashMessage);
return posblAtchFileFlag;
}
//게시판 리스트 엑셀 다운로드
@RequestMapping(value="/cop/bbs/bbsExcelDownload.do")
public void bbsExcelDownload( BoardVO boardVO,
HttpServletRequest request,
HttpServletResponse response ,
ModelMap model) throws Exception {
BoardMasterVO vo = new BoardMasterVO();
vo.setBbsId(boardVO.getBbsId());
BoardMasterVO master = bbsAttrbService.selectBBSMasterInf(vo);
boardVO.setRecordCountPerPage(100000);
boardVO.setFirstIndex(0);
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
// 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다.
SXSSFWorkbook wb = new SXSSFWorkbook(100);
CellStyle style = wb.createCellStyle();
style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setBorderTop(CellStyle.BORDER_THIN);
Font font = wb.createFont();
font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold
Cell cell = null;
Row row = null;
String fileName ="게시판 리스트";
String sheetTitle = "";
try{
Map bbsList = bbsMngService.selectBoardArticles(boardVO, vo.getBbsAttrbCode());
{ //화면 리스트
sheetTitle = "게시판 리스트(화면)" ; //제목
Sheet sheet = wb.createSheet(sheetTitle);
row = sheet.createRow(0);
for(int i=0 ; i < bbsExcelValue.length ; i++) {
cell = row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(bbsExcelValue[i][1]);
}
List bbsCastList = (List)bbsList.get("resultList") ;
for(int i=0; i < bbsCastList.size(); i++){
row = sheet.createRow(i+1);
for(int j=0 ; j < bbsExcelValue.length ; j++) {
cell = row.createCell(j);
cell.setCellStyle(style);
if(j==0) cell.setCellValue(i+1); //번호
if(j==1) cell.setCellValue(((BoardVO)bbsCastList.get(i)).getNttSj()); //제목
if(j==2) cell.setCellValue( ((BoardVO)bbsCastList.get(i)).getAtchFileCnt() > 0 ? "있음" : "없음"); //첨부파일유무
if(j==3) cell.setCellValue( "Y".equals( ((BoardVO)bbsCastList.get(i)).getSecretAt() ) ? "비공개" : "공개" ); //공개여부
if(j==4) cell.setCellValue(((BoardVO)bbsCastList.get(i)).getFrstRegisterNm()); //작성자
if(j==5) cell.setCellValue(((BoardVO)bbsCastList.get(i)).getInqireCo()); //조회수
if(j==6) cell.setCellValue(((BoardVO)bbsCastList.get(i)).getFrstRegisterPnttm()); //작성일
}
}
}
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy_MM_dd_HH_mm_ss", Locale.KOREA );
Date currentTime = new Date ();
String mTime = mSimpleDateFormat.format ( currentTime );
fileName = fileName+"("+mTime+")";
response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx"));
wb.write(response.getOutputStream());
}catch(Exception e) {
response.setHeader("Set-Cookie", "fileDownload=false; path=/");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Content-Type","text/html; charset=utf-8");
OutputStream out = null;
try {
out = response.getOutputStream();
byte[] data = new String("fail..").getBytes();
out.write(data, 0, data.length);
} catch(Exception ignore) {
ignore.printStackTrace();
} finally {
if(out != null) try { out.close(); } catch(Exception ignore) {}
}
}finally {
// 디스크 적었던 임시파일을 제거합니다.
wb.dispose();
try { wb.close(); } catch(Exception ignore) {}
}
}
//읽음 처리 (버튼 클릭)
@RequestMapping("/cop/bbs/insertReadYn.do")
public ModelAndView insertReadYn(@RequestParam("checkList") String[] checkList,
RedirectAttributes redirectAttributes , ReadVO readVO,
HttpServletRequest request,
@RequestParam Map commandMap,
Model model) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
for(String id:checkList) {
try{
String[] idSplit = id.split("\\|");
id = idSplit[0];
readVO.setMenuNo("2400000");
readVO.setReadId(id);
readVO.setLoginId(user.getId());
ReadVO readYn = readService.selectReadYn(readVO);
if(readYn == null) {
readService.insertReadYn(readVO);
}
modelAndView.addObject("result", "success");
}catch(Exception e){
modelAndView.addObject("result", "fail");
}
}
return modelAndView;
}
/**
* (사용자)자주하는 질문.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
* TotMngListAjax (통합경영공시)
*/
@RequestMapping(value= {"/web/cop/bbs/FaqList.do" ,
"/web/cop/bbs/FaqDetail.do",
"/web/cop/bbs/FaqListAjax.do"
} )
public String selectFaqListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
if("/web/cop/bbs/FaqDetail.do".equals(request.getRequestURI())) { //통합검색시
boardMasterVO.setUrl("/web/cop/bbs/FaqList.do");
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
model.addAttribute("boardMenuList", boardMenuList);
if("".equals(boardVO.getBbsId())) { //검색에서 조회시 nttid로 마스터 조회
BoardMasterVO bmVO = bbsAttrbService.selectBbsIdByNttId(boardVO);
if (bmVO == null) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
BoardVO searchTotalVO = new BoardVO();
searchTotalVO.setSearchNttId(boardVO.getNttId());
searchTotalVO.setBbsId(bmVO.getBbsId());
model.addAttribute("searchTotalVO", searchTotalVO);
return "web/cop/bbs/FaqList";
}
}
boardMasterVO.setUrl(request.getRequestURI());
//메뉴에 등록된 url에 등록된 게시판 조회
if("/web/cop/bbs/FaqList.do".equals(request.getRequestURI())) { //최초로딩
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
model.addAttribute("boardMenuList", boardMenuList);
if(0!=boardMenuList.size()) { //원자력 소식은 전체 매뉴 없음.
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
}
if("/web/cop/bbs/FaqListAjax.do".equals(request.getRequestURI())) { //게시판 조회
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
//전체 게시글 불러오기
Map map = new HashMap();
if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);
}else {
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
if(bvo.getAtchFileCnt() > 0) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bvo.getAtchFileId());
List fileList = fileService.selectFileInfs(fileVO);
bvo.setFileList(fileList);
}
}
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO bbsMasterInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
model.addAttribute("bbsMasterInfo", bbsMasterInfo);
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "web/cop/bbs/FaqListAjax";
}else {
model.addAttribute("bbsId", "");
}
return "web/cop/bbs/FaqList";
}
/**
* (사용자) 탭 게시판 통합
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*
*
* URL
* /web/cop/bbs/NewsList.do (원자력소식)
* /web/cop/bbs/selectLibList.do (자료실)
* /web/cop/bbs/bussRealList.do (사업실명제)
*/
@RequestMapping(value= {"/web/cop/bbs/NewsList.do"
, "/web/cop/bbs/NewsListAjax.do"
, "/web/cop/bbs/LibList.do"
, "/web/cop/bbs/LibListAjax.do"
, "/web/cop/bbs/BussRealList.do"
, "/web/cop/bbs/BussRealListAjax.do"
, "/web/cop/bbs/TotMngListAjax.do"
})
public String selectTabBbsListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
//메뉴에 등록된 url 조회
boardMasterVO.setUrl(request.getRequestURI());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
if(0!=boardMenuList.size()) { //원자력 소식은 전체 매뉴 없음.
if(!"9420000".equals(((BoardMasterVO)boardMenuList.get(0)).getMenuNo())) {
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
}
if(request.getRequestURI().contains("List.do")){ //최초 로딩 매뉴이름가져오기
MenuManageVO tempMenuManageVO = new MenuManageVO();
tempMenuManageVO.setUrl(request.getRequestURI());
MenuManageVO menuManageVO = menuManageService.selectMenuManageUrl(tempMenuManageVO);
model.addAttribute("menuManageVO", menuManageVO);
}
if(request.getRequestURI().contains("ListAjax.do") //하단 리스트
) { //상세 하단 리스트
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
//전체 게시글 불러오기
Map map = new HashMap();
if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
//전체 게시글 불러오기
map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);
}else {
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//메뉴별 게시글 불러오기
map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
/*모바일 페이지 5개씩 나오게 하기*/
PaginationInfo paginationInfoMobile = new PaginationInfo();
paginationInfoMobile.setCurrentPageNo(paginationInfo.getCurrentPageNo());
paginationInfoMobile.setTotalRecordCount(paginationInfo.getTotalRecordCount());
paginationInfoMobile.setPageSize(5);
paginationInfoMobile.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
model.addAttribute("paginationInfoMobile", paginationInfoMobile);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
if(request.getRequestURI().contains("/web/cop/bbs/QnaListAjax.do")){ //묻고 답하기
return "web/cop/bbs/QnaListAjax";
}
if(request.getRequestURI().contains("/web/cop/bbs/TotMngListAjax.do")){ //통합경영공시
model.addAttribute("bmVO", bmVO);
return "web/cop/bbs/TotMngListAjax";
}
return "web/cop/bbs/CntBbsListAjax";
}
model.addAttribute("boardMenuList", boardMenuList);
model.addAttribute("detailPage", request.getRequestURI().replace("List", "Detail"));
return "web/cop/bbs/CntBbsList";
}
/**
*
* URL
* /web/cop/bbs/QnaList.do (묻고답하기)
*/
@RequestMapping(value= {
"/web/cop/bbs/QnaListAjax.do"
})
public String selectQnaListAjaxWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userUniqId = user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId());
if("".equals(userUniqId)) {
redirectAttributes.addFlashAttribute("message", "로그인 후 이용해 주세요.");
return "redirect:/web/user/login/login.do";
}
boardMasterVO.setFrstRegisterId(userUniqId);
boardVO.setFrstRegisterId(userUniqId);
boardMasterVO.setUrl(request.getRequestURI());
/*
//메뉴에 등록된 url 조회
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
if(0!=boardMenuList.size()) { //묻고답하기
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
*/
//상세 하단 리스트
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
if("".equals(boardMasterVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
boardMasterVO.setSearchSortCnd("nttId");
boardMasterVO.setSearchSortOrd("desc");
}
//전체 게시글 불러오기
Map map = new HashMap();
//if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
if("".equals(boardVO.getSeCmmnCdId())){ //전체 게시글 불러오기
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
//답변 조회
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId());
List> commentList = egovArticleCommentService.selectArticleCommentListAllList(commentVO);
int commentCnt = commentList.size();
model.addAttribute("commentCnt", commentCnt);
model.addAttribute("commentList", commentList);
//전체 게시글 불러오기
map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);
}else {
//bmVO.setBbsId(boardVO.getBbsId());
bmVO.setBbsId(boardVO.getSeCmmnCdId());
boardVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//답변 조회
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId());
List commentList = egovArticleCommentService.selectArticleCommentListAllList(commentVO);
int commentCnt = commentList.size();
model.addAttribute("commentCnt", commentCnt);
model.addAttribute("commentList", commentList);
//메뉴별 게시글 불러오기
map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", totCnt);
model.addAttribute("paginationInfo", paginationInfo);
if(request.getRequestURI().contains("/web/cop/bbs/QnaListAjax.do")){ //묻고 답하기
return "web/cop/bbs/QnaListAjax";
}
return "web/cop/bbs/QnaListAjax";
}
/**
*
* URL
* /web/cop/bbs/NoticeList.do (공지사항)
*/
@RequestMapping(value= {"web/cop/bbs/NoticeList.do"})
public String selectNoticeListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
//메뉴에 등록된 url 조회
boardMasterVO.setUrl(request.getRequestURI());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
//List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : boardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
//게시판 메뉴 리스트
if(0!=boardMenuList.size()) { //공지사항
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
model.addAttribute("boardMenuList", boardMenuList);
model.addAttribute("detailPage", request.getRequestURI().replace("List", "Detail"));
return "web/cop/bbs/NoticeList";
}
/**
*
* URL
* /web/cop/bbs/SuggestList.do (불편신고)
*/
@RequestMapping(value= {"web/cop/bbs/SuggestList.do"})
public String selectSuggestListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userUniqId = user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId());
if("".equals(userUniqId)) {
redirectAttributes.addFlashAttribute("message", "로그인 후 이용해 주세요.");
return "redirect:/web/user/login/login.do";
}
//메뉴에 등록된 url 조회
boardMasterVO.setUrl(request.getRequestURI());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
//List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : boardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
//게시판 메뉴 리스트
if(0!=boardMenuList.size()) { //공지사항
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
model.addAttribute("boardMenuList", boardMenuList);
model.addAttribute("detailPage", request.getRequestURI().replace("List", "Detail"));
return "web/cop/bbs/SuggestList";
}
/**
*
* URL
* /web/cop/bbs/SuggestList.do (불편신고)
*/
@RequestMapping(value= {
"/web/cop/bbs/SuggestListAjax.do"
})
public String selectSuggestListAjaxWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userUniqId = user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId());
if("".equals(userUniqId)) {
redirectAttributes.addFlashAttribute("message", "로그인 후 이용해 주세요.");
return "redirect:/web/user/login/login.do";
}
boardMasterVO.setFrstRegisterId(userUniqId);
boardVO.setFrstRegisterId(userUniqId);
boardMasterVO.setUrl(request.getRequestURI());
/*
//메뉴에 등록된 url 조회
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
if(0!=boardMenuList.size()) { //묻고답하기
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
*/
//상세 하단 리스트
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
if("".equals(boardMasterVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
boardMasterVO.setSearchSortCnd("nttId");
boardMasterVO.setSearchSortOrd("desc");
}
//전체 게시글 불러오기
Map map = new HashMap();
//if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
if("".equals(boardVO.getSeCmmnCdId())){ //전체 게시글 불러오기
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
//답변 조회
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId());
List> commentList = egovArticleCommentService.selectArticleCommentListAllList(commentVO);
int commentCnt = commentList.size();
model.addAttribute("commentCnt", commentCnt);
model.addAttribute("commentList", commentList);
//전체 게시글 불러오기
map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);
}else {
//bmVO.setBbsId(boardVO.getBbsId());
bmVO.setBbsId(boardVO.getSeCmmnCdId());
boardVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//답변 조회
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId());
List commentList = egovArticleCommentService.selectArticleCommentListAllList(commentVO);
int commentCnt = commentList.size();
model.addAttribute("commentCnt", commentCnt);
model.addAttribute("commentList", commentList);
//메뉴별 게시글 불러오기
map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", totCnt);
model.addAttribute("paginationInfo", paginationInfo);
return "web/cop/bbs/SuggestListAjax";
}
/**
*
* URL
* /web/cop/bbs/QnaList.do (묻고답하기)
*/
@RequestMapping(value= {
"web/cop/bbs/QnaList.do"
})
public String selectQnaListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userUniqId = user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId());
if("".equals(userUniqId)) {
//redirectAttributes.addFlashAttribute("message", "문자온 서비스는 로그인 후 이용 가능합니다.");
return "redirect:/web/user/login/login.do";
}
boardMasterVO.setFrstRegisterId(userUniqId);
boardVO.setFrstRegisterId(userUniqId);
//메뉴에 등록된 url 조회
boardMasterVO.setUrl(request.getRequestURI());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
//List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : boardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
if(0!=boardMenuList.size()) { //묻고답하기
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
model.addAttribute("boardMenuList", boardMenuList);
model.addAttribute("detailPage", request.getRequestURI().replace("List", "Detail"));
return "web/cop/bbs/QnaList";
}
/**
*
* URL
* /web/cop/bbs/NoticeListAjax.do (공지사항 - 내용)
*/
@RequestMapping(value= {
"/web/cop/bbs/NoticeListAjax.do"
})
public String selectNoticeListAjaxWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO
) throws Exception {
//step1.현재 url을 저장한다.(?)
//step2.현재 url의 게시판 리스트 정보를 가져온다.
//step3.현재 url의 게시판 리스트 정보를 가져온다.
boardMasterVO.setUrl(request.getRequestURI());
//메뉴에 등록된 url 조회
/*
boardMasterVO.setUrl(request.getRequestURI());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
//게시판 메뉴 리스트
if(0!=boardMenuList.size()) { //공지사항
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
*/
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
if("".equals(boardMasterVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
boardMasterVO.setSearchSortCnd("nttId");
boardMasterVO.setSearchSortOrd("desc");
}
//전체 게시글 불러오기
Map map = new HashMap();
if("".equals(boardVO.getSeCmmnCdId())){ //전체 게시글 불러오기
//if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
//전체 게시글 불러오기
map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);
}else {
System.out.println("boardVO.getSeCmmnCdId()");
System.out.println(boardVO.getSeCmmnCdId());
//bmVO.setBbsId(boardVO.getBbsId());
bmVO.setBbsId(boardVO.getSeCmmnCdId());
boardVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//메뉴별 게시글 불러오기
map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "web/cop/bbs/NoticeListAjax";
}
/**
* (사용자)이벤트 게시판(포토형 탭게시판).
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*
*/
@RequestMapping(value= {
"/web/cop/bbs/EventList.do"
} )
public String selectEventListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
boardMasterVO.setUrl(request.getRequestURI());
//메뉴에 등록된 url에 등록된 게시판 조회
if("/web/cop/bbs/EventList.do".equals(request.getRequestURI())) { //최초로딩
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
model.addAttribute("boardMenuList", boardMenuList);
if(0!=boardMenuList.size()) {
//BoardMasterVO totalBoardMasterVO1 = new BoardMasterVO();
//totalBoardMasterVO1.setBbsNm("전체");
//totalBoardMasterVO1.setBbsId(boardMenuList.get(0).getBbsId());
//boardMenuList.add(0,totalBoardMasterVO1) ;
BoardMasterVO totalBoardMasterVO2 = new BoardMasterVO();
totalBoardMasterVO2.setBbsNm("종료된 이벤트");
totalBoardMasterVO2.setBbsId(boardMenuList.get(0).getBbsId());
boardMenuList.add(boardMenuList.size(),totalBoardMasterVO2) ;
}
}
//model.addAttribute("bbsId", "");
model.addAttribute("detailPage", request.getRequestURI().replace("List", "Detail"));
return "web/cop/bbs/EventList";
}
/**
* (사용자)이벤트 게시판(포토형 탭게시판).
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*
*/
@RequestMapping(value= {
"/web/cop/bbs/EventListAjax.do"
} )
public String selectEventListAjaxWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO
) throws Exception {
boardMasterVO.setUrl(request.getRequestURI());
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
//전체 게시글 불러오기
Map map = new HashMap();
//종료
if("End".equals(boardVO.getBbsId())) {
//}else if("End".equals(boardVO.getSeCmmnCdId())) {
//boardVO.setBbsId("BBSMSTR_000000000731");
//bmVO.setBbsId(boardVO.getBbsId());
boardVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
/*map = bbsMngService.selectBoardArticlesWeb(boardVO, null);*/
map = bbsMngService.selectBoardArticlesWebEventEnd(boardVO, null);
}else if("Ing".equals(boardVO.getBbsId())) {
//bmVO.setBbsId(boardVO.getBbsId());
boardVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO.setBbsId(boardVO.getSeCmmnCdId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
map = bbsMngService.selectBoardArticlesWebEvent(boardVO, null);
}else { //전체
//if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
if(boardMasterVO.getPageUnit() != 10) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
/*map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);*/
map = bbsMngService.selectBoardArticlesWebUrlEventAll(boardMasterVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
if(bvo.getAtchFileCnt() > 0) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bvo.getAtchFileId());
List fileList = fileService.selectFileInfs(fileVO);
bvo.setFileList(fileList);
}
}
if (("BBST05").equals(bmVO.getBbsTyCode())){ //사진게시판 8개씩 9개조회후 9개면 더보기
if(boardMasterVO.getPageUnit() != 9) {
bmVO.setPageUnit(boardMasterVO.getPageUnit());
}
boardVO.setRecordCountPerPage(9); //리스트 수
boardVO.setFirstIndex( (boardVO.getPageIndex()-1)*9); //offset
paginationInfo.setRecordCountPerPage(boardVO.getRecordCountPerPage()); //웹 접근성 획득 후 롤백
}
if("BBST05".equals(bmVO.getBbsTyCode())){
boardVO.setSearchSortCnd("FRST_REGIST_PNTTM");
boardVO.setSearchSortOrd("desc");
}
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO bbsMasterInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
model.addAttribute("bbsMasterInfo", bbsMasterInfo);
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", totCnt);
model.addAttribute("paginationInfo", paginationInfo);
return "web/cop/bbs/EventListAjax";
//model.addAttribute("detailPage", request.getRequestURI().replace("List", "Detail"));
//return "web/cop/bbs/EventList";
}
/**
* (사용자)게시물에 대한 상세 정보를 조회한다.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {
"/web/cop/bbs/EventDetail.do"
} )
public String selectBoardEventDetailWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardVO boardVO,
BoardMasterVO masterVO,
ModelMap model,
@RequestParam Map commandMap,
RedirectAttributes redirectAttributes) throws Exception {
//XSS 태그 필터링 처리
boardVO.setBbsId(unscript(boardVO.getBbsId()));
boardVO.setSeCmmnCdId(unscript(boardVO.getSeCmmnCdId()));
boardVO.setFrstRegisterId(unscript(boardVO.getFrstRegisterId()));
boardVO.setSearchBgnDe(unscript(boardVO.getSearchBgnDe()));
boardVO.setSearchEndDe(unscript(boardVO.getSearchEndDe()));
boardVO.setSearchSortCnd(unscript(boardVO.getSearchSortCnd()));
boardVO.setSearchSortOrd(unscript(boardVO.getSearchSortOrd()));
boardVO.setSearchCnd(unscript(boardVO.getSearchCnd()));
boardVO.setSearchWrd(unscript(boardVO.getSearchWrd()));
BoardMasterVO bmVO = new BoardMasterVO();
if("".equals(boardVO.getBbsId())) { //검색에서 조회시 nttid로 마스터 조회
bmVO = bbsAttrbService.selectBbsIdByNttId(boardVO);
if (bmVO == null) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
boardVO.setBbsId(bmVO.getBbsId());
}else {
bmVO.setBbsId(boardVO.getBbsId());
}
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
if("/web/cop/bbs/NewsDetail.do".equals(request.getRequestURI()) || "/web/contentBbsDetail.do".equals(request.getRequestURI())) { //원자력소식 수정삭제등록 없음.
bmVO.setWebChgYn("N");
model.addAttribute("masterVO", masterVO);
}
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
if (bmVO == null || ("N").equals(bmVO.getUseAt())) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.imposbl"));
return "redirect:/web/main/mainPage.do";
}
{//묻고답하기 권한체크
boolean passChk = false;
if("9530000".equals(bmVO.getMenuNo())) {
LoginVO loginVO = new LoginVO();
if(!"anonymousUser".equals(EgovUserDetailsHelper.getAuthenticatedUser() )) { //최고 관리자면 바로수정
loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_ADMIN".equals(loginVO.getAuthority())){
passChk = true;
}else { //일반관리자
bmVO.setBbsMngId(loginVO.getId());
if( bbsAttrbService.selectBBSMngInfCnt(bmVO) > 0 ) { //게시판 관리자 조회
passChk = true;
}
}
}else{//방문자 세션있는방문자
UserVO userVO = new UserVO();
if(request.getSession().getAttribute("userVO") != null) {
userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(userVO.getMblDn().equals(bdVO.getMblDn())) {
passChk = true;
}
}
}
if(!"T".equals(bdVO.getSecretAt())){
if(!passChk){
if("".equals(boardVO.getPassword())) {
redirectAttributes.addFlashAttribute("message", "패스워드를 넣어주세요");
return "redirect:/web/cop/bbs/QnaList.do";
}else {
if(!damoDec(bdVO.getPassword(), request).equals(boardVO.getPassword())) {
redirectAttributes.addFlashAttribute("message", "패스워드가 맞지 않습니다.");
if("9530000".equals(bmVO.getMenuNo())) {
return "redirect:/web/cop/bbs/QnaList.do";
}else {
return "redirect:/web/cop/bbsWeb/selectBoardList.do?bbsId="+boardVO.getBbsId();
}
}
}
}
}
}
}
// 조회수 증가 여부 지정
boardVO.setPlusCount(true);
bbsMngService.updateBoardArticleInqireCo(boardVO);
boardVO.setMblDn(bdVO.getMblDn());
// 위/아래 게시글 번호, 제목 조회
EgovMap upDownNttid = bbsMngService.getUpDownNttIdNSj(boardVO);
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO resultBbsMsInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
//답변글 리스트
if(bdVO.getAnswerCnt() > 0) {
List answerList = bbsMngService.selectBoardAnswerList(bdVO);
model.addAttribute("answerList", answerList);
}
System.out.println("boardVO.toString()");
System.out.println("getNtceBgnde");
System.out.println(bdVO.getNiceFailUrl());
System.out.println(bdVO.getNiceSuccUrl());
if ("1".equals(bdVO.getNiceFailUrl()) //s-date
&& "1".equals(bdVO.getNiceSuccUrl()) //e-date
) {
bmVO.setBbsNm("진행전");
}else if ("-1".equals(bdVO.getNiceFailUrl()) //s-date
&& "-1".equals(bdVO.getNiceSuccUrl()) //e-date
) {
bmVO.setBbsNm("종료");
}else {
bmVO.setBbsNm("진행중");
}
model.addAttribute("nextNttIdNSj", upDownNttid.get("nextNttIdNSj"));
model.addAttribute("prevNttIdNSj", upDownNttid.get("prevNttIdNSj"));
model.addAttribute("result", bdVO);
model.addAttribute("brdMstrVO", bmVO);
model.addAttribute("resultBbsMsInfo", resultBbsMsInfo);
CommentVO commentVO = new CommentVO();
commentVO.setBbsId(boardVO.getBbsId()); //게시판ID
commentVO.setNttId(boardVO.getNttId()); //게시글ID
//댓글 조회
List> resultList = egovArticleCommentService.selectArticleCommentListAll(commentVO);
int totCnt = resultList.size();
model.addAttribute("resultCnt", totCnt);
model.addAttribute("resultList", resultList);
if("BBST05".equals(bmVO.getBbsTyCode())){ //이벤트 포토게시판
if(bdVO.getAtchFileCnt() > 0 ) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(bdVO.getAtchFileId());
List result = fileService.selectImageFileList(fileVO);
model.addAttribute("fileList", result);
}
//masterVO.setBbsNm(bbsNm);
return "web/cop/bbs/EgovNoticePhotoInqire";
}
if("Y".equals(masterVO.getTabBbsId())){
model.addAttribute("PubDetail", true);
}
return "web/cop/bbs/EgovNoticeInqire";
}
/**
*
* URL
* /web/cop/bbs/TermsList.do (공지사항)
*/
@RequestMapping(value= {"web/cop/bbs/TermsList.do"
, "/web/cop/bbs/TermsListAjax.do"
})
public String selectNoticeListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") TermsVO termsVO, ModelMap model ,
RedirectAttributes redirectAttributes) throws Exception {
//상세 하단 리스트
if(request.getRequestURI().contains("ListAjax.do")) {
// 공통
List resultList = new ArrayList();
// 이용약관, 개인정보보호방침 이전버전 List
TermsVO termsVO2 = new TermsVO();
termsVO2.setFirstIndex(0);
termsVO2.setRecordCountPerPage(20);
termsVO2.setSearchDiv(termsVO.getMenuNm());
termsVO2.setSearchUseYn("N");
termsVO2.setSearchSortCnd("effectDate");
termsVO2.setSearchSortOrd("desc");
List termsMastList = egovSiteManagerService.selectTermsMastMngBeforeList(termsVO2);
model.addAttribute("termsMastList", termsMastList);
// NEW
// 이용약관, 개인정보보호방침 최신버전 List
TermsVO termsVO3 = new TermsVO();
termsVO3.setFirstIndex(0);
termsVO3.setRecordCountPerPage(1);
termsVO3.setSearchDiv(termsVO.getMenuNm());
termsVO3.setSearchUseYn("Y");
termsVO3.setSearchSortCnd("effectDate");
termsVO3.setSearchSortOrd("desc");
List termsMastList2 = egovSiteManagerService.selectTermsMastMngList(termsVO3);
if (termsMastList2.size() > 0) {
TermsVO termsVO4 = new TermsVO();
termsVO4.setFirstIndex(0);
termsVO4.setRecordCountPerPage(20);
termsVO4.setTermsMastNo(termsMastList2.get(0).getTermsMastNo());
termsVO4.setSearchUseYn("Y");
termsVO4.setSearchSortCnd("sort");
termsVO4.setSearchSortOrd("ASC");
resultList = egovSiteManagerService.selectTermsSubMngList(termsVO4);
}
// 불법스팸방지안내
if (termsVO.getMenuNm().equals("04")) {
termsVO.setSearchSortCnd("TERMS_ID");
termsVO.setSearchSortOrd("ASC");
resultList = egovSiteManagerService.selectTermsMenu(termsVO);
}
model.addAttribute("resultList", resultList);
return "web/cop/bbs/TermsListAjax";
}
else {
String effectDate_02 = "";
String effectDate_03 = "";
TermsVO termsVO7 = new TermsVO();
termsVO7.setFirstIndex(0);
termsVO7.setRecordCountPerPage(2);
termsVO7.setSearchUseYn("Y");
termsVO7.setSearchSortCnd("effectDate");
termsVO7.setSearchSortOrd("desc");
List termsMastList7 = egovSiteManagerService.selectTermsMastMngList(termsVO7);
for(TermsVO item : termsMastList7) {
if (item.getTermsDivCode().equals("02")) {
effectDate_02 = "(" + item.getEffectDate() + ")";
}
if (item.getTermsDivCode().equals("03")) {
effectDate_03 = "(" + item.getEffectDate() + ")";
}
}
model.addAttribute("effectDate_02", effectDate_02);
model.addAttribute("effectDate_03", effectDate_03);
}
return "web/cop/bbs/TermsList";
}
@RequestMapping(value= {"/web/cop/bbs/TermsHistPopAjax.do"})
public String TermsHistPop(HttpServletRequest request,
@ModelAttribute("searchVO") TermsVO termsVO, ModelMap model) throws Exception {
List resultList = new ArrayList();
termsVO.setSearchSortCnd("TERMS_ID");
termsVO.setSearchSortOrd("ASC");
resultList = egovSiteManagerService.selectTermsMenu(termsVO);
// New
/*
termsVO.setSearchSortCnd("sort");
termsVO.setSearchSortOrd("ASC");
resultList = egovSiteManagerService.selectTermsSubMngList(termsVO);
*/
model.addAttribute("resultList", resultList);
return "web/cop/bbs/TermsHistPopAjax";
}
// 이용약관 메일 발송 테스트
@RequestMapping(value = "/web/cop/bbs/TermsHistSendEmailAjax.do")
public ModelAndView ignoreIpCntAjax(
@ModelAttribute("searchVO") TermsVO termsVO
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
try {
// 이용약관 회원 전체발송
//mjonNoticeSendUtil.userAllTermsEmailSend();
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
* (사용자)사전정보공표.
*
* @param boardVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/cop/bbs/PubOperList.do"
,"/web/cop/bbs/PubOperMainAjax.do"
,"/web/cop/bbs/PubOperListAjax.do"
,"/web/cop/bbs/PubOperSubListAjax.do"
,"/web/cop/bbs/PubOperSubDetailListAjax.do"
})
public String selectPubOperList(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
//메뉴에 등록된 url 조회
boardMasterVO.setUrl(request.getRequestURI());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
if("/web/cop/bbs/PubOperMainAjax.do".equals(request.getRequestURI())){ //사전정보공표 최초 로딩
BoardMasterVO mainMasterVO = new BoardMasterVO();
mainMasterVO.setFirstIndex(0);
mainMasterVO.setLastIndex(20);
mainMasterVO.setRecordCountPerPage(30);
mainMasterVO.setBbsTyCode("BBST07");
mainMasterVO.setUseAt("Y"); //사용만
mainMasterVO.setSearchSortCnd("BBS_SORT");
mainMasterVO.setSearchSortOrd("ASC");
mainMasterVO.setSeCmmnCdId("01"); //기관운영관련정보
Map map01 = bbsAttrbService.selectBBSMasterInfs(mainMasterVO);
model.addAttribute("resultList01", map01.get("resultList"));
mainMasterVO.setSeCmmnCdId("02"); //주요사업정보
Map map02 = bbsAttrbService.selectBBSMasterInfs(mainMasterVO);
model.addAttribute("resultList01", map01.get("resultList"));
model.addAttribute("resultList02", map02.get("resultList"));
return "web/cop/bbs/PubOperMainAjax";
}
if("/web/cop/bbs/PubOperListAjax.do".equals(request.getRequestURI())){ //사전정보공표 리스트
BoardMasterVO mainMasterVO = new BoardMasterVO();
mainMasterVO.setFirstIndex(0);
mainMasterVO.setLastIndex(20);
mainMasterVO.setRecordCountPerPage(30);
mainMasterVO.setBbsTyCode("BBST07");
mainMasterVO.setUseAt("Y"); //사용만
Map mapMain = bbsAttrbService.selectBBSMasterInfs(mainMasterVO);
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(bmVO != null) {
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
}
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//전체 게시글 불러오기
Map map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO bbsMasterInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
List mapMainList = new ArrayList();
mapMainList = (List)mapMain.get("resultList") ;
for(BoardMasterVO tempVO : mapMainList ) {
if(tempVO.getBbsId().equals(bbsMasterInfo.getBbsId())) {
tempVO.setSelectedFlag(true);
}
}
model.addAttribute("resultMainList", mapMain.get("resultList"));
model.addAttribute("bbsMasterInfo", bbsMasterInfo);
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "web/cop/bbs/PubOperListAjax";
}
if("/web/cop/bbs/PubOperSubListAjax.do".equals(request.getRequestURI())){ //사전정보공표 바로가기
BoardMasterVO mainMasterVO = new BoardMasterVO();
mainMasterVO.setFirstIndex(0);
mainMasterVO.setLastIndex(20);
mainMasterVO.setRecordCountPerPage(30);
mainMasterVO.setBbsTyCode("BBST07");
mainMasterVO.setUseAt("Y"); //사용만
Map mapMain = bbsAttrbService.selectBBSMasterInfs(mainMasterVO);
BoardMasterVO bmVO = new BoardMasterVO();
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
if(bmVO != null) {
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
}
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//전체 게시글 불러오기
Map map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO bbsMasterInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
List mapMainList = new ArrayList();
mapMainList = (List)mapMain.get("resultList") ;
for(BoardMasterVO tempVO : mapMainList ) {
if(tempVO.getBbsId().equals(boardMasterVO.getTabBbsId())) { //탭에서 가져온 상단 tabBbsId
tempVO.setSelectedFlag(true);
}
}
model.addAttribute("resultMainList", mapMain.get("resultList"));
model.addAttribute("bbsMasterInfo", bbsMasterInfo);
model.addAttribute("subBbsNm", bbsMasterInfo.getBbsNm());
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
//return "web/cop/bbs/PubOperListAjax";
BoardVO boardTabVO = bbsMngService.selectBbsTabIdByPubUrl(boardVO);
model.addAttribute("boardTabVO", boardTabVO);
return "web/cop/bbs/PubOperSubListAjax";
}
if("/web/cop/bbs/PubOperSubDetailListAjax.do".equals(request.getRequestURI())){ //사전정보공표 바로가기
// 조회수 증가 여부 지정
boardVO.setPlusCount(true);
bbsMngService.updateBoardArticleInqireCo(boardVO);
// 위/아래 게시글 번호, 제목 조회
EgovMap upDownNttid = bbsMngService.getUpDownNttIdNSj(boardVO);
//게시판 마스터 옵션 정보
BoardMasterVO searchVO = new BoardMasterVO();
searchVO.setBbsId(boardVO.getBbsId());
BoardMasterVO resultBbsMsInfo = bbsAttrbService.selectBBSMasterInf(searchVO);
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO);
model.addAttribute("nextNttIdNSj", upDownNttid.get("nextNttIdNSj"));
model.addAttribute("prevNttIdNSj", upDownNttid.get("prevNttIdNSj"));
model.addAttribute("brdMstrVO", resultBbsMsInfo);
model.addAttribute("result", bdVO);
return "web/cop/bbs/PubOperSubDetailListAjax";
}
if("Y".equals(boardVO.getPubDetail())){
model.addAttribute("pubDetail", true);
return "web/cop/bbs/PubOperList";
}
if(null !=boardVO.getBbsId() && !"".equals(boardVO.getBbsId() )) {
return "web/cop/bbs/PubOperSubList";
}
return "web/cop/bbs/PubOperList";
}
/**
* 시간을 LIST를 반환한다.
* @return List
* @throws
*/
@SuppressWarnings("unused")
private List getTimeHH() {
ArrayList listHH = new ArrayList();
HashMap, ?> hmHHMM;
for (int i = 0; i <= 24; i++) {
String sHH = "";
String strI = String.valueOf(i);
if (i < 10) {
sHH = "0" + strI;
} else {
sHH = strI;
}
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
codeVO.setCode(sHH);
codeVO.setCodeNm(sHH);
listHH.add(codeVO);
}
return listHH;
}
/**
* 분을 LIST를 반환한다.
* @return List
* @throws
*/
@SuppressWarnings("unused")
private List getTimeMM() {
ArrayList listMM = new ArrayList();
HashMap, ?> hmHHMM;
for (int i = 0; i <= 60; i++) {
String sMM = "";
String strI = String.valueOf(i);
if (i < 10) {
sMM = "0" + strI;
} else {
sMM = strI;
}
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
codeVO.setCode(sMM);
codeVO.setCodeNm(sMM);
listMM.add(codeVO);
}
return listMM;
}
/**
* (사용자) 컨텐츠 게시판 통합
*
* URL
* /web/cop/bbs/CntBbsListAjax (상단 검색부분 없는 리스트)
* /web/cop/bbs/CntBbs01ListAjax.do(상단 검색부분 있는 리스트) 01타입
*/
@RequestMapping(value= {"/web/cop/bbs/CntBbsList.do"
, "/web/cop/bbs/CntBbsListAjax.do"
, "/web/cop/bbs/CntBbs01ListAjax.do"
})
public String selectCntBbsListWeb(HttpServletRequest request,
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model , BoardVO boardVO ,
RedirectAttributes redirectAttributes) throws Exception {
//메뉴에 등록된 url 조회
boardMasterVO.setUrl("/web/content.do?proFn?="+boardMasterVO.getMenuNm());
List boardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
List viewBoardMenuList = bbsAttrbService.selectBBSMenuByUrl(boardMasterVO);
for(BoardMasterVO tempVO : viewBoardMenuList) {
if("N".equals(tempVO.getViewsYn())){;
boardMasterVO.setViewsYn("N");
break ;
}
}
if(0!=boardMenuList.size()) { //원자력 소식은 전체 매뉴 없음.
if(!"9420000".equals(((BoardMasterVO)boardMenuList.get(0)).getMenuNo())) {
BoardMasterVO totalBoardMasterVO = new BoardMasterVO();
totalBoardMasterVO.setBbsNm("전체");
boardMenuList.add(0,totalBoardMasterVO) ;
}
}
if(request.getRequestURI().contains("List.do")){ //최초 로딩 매뉴이름가져오기
MenuManageVO tempMenuManageVO = new MenuManageVO();
tempMenuManageVO.setUrl(request.getRequestURI());
MenuManageVO menuManageVO = menuManageService.selectMenuManageUrl(tempMenuManageVO);
model.addAttribute("menuManageVO", menuManageVO);
}
if(request.getRequestURI().contains("ListAjax.do") //하단 리스트
) { //상세 하단 리스트
BoardMasterVO bmVO = new BoardMasterVO();
PaginationInfo paginationInfo = new PaginationInfo();
//전체 게시글 불러오기
Map map = new HashMap();
if("".equals(boardVO.getBbsId())){ //전체 게시글 불러오기
boardVO.setPageUnit(bmVO.getPageUnit());
boardVO.setPageSize(bmVO.getPageSize());
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
String temp = boardMasterVO.getUrl(); //Url 패턴에 Ajax 구문 삭제처리
boardMasterVO.setUrl(temp.replace("Ajax", ""));
//전체 게시글 불러오기
map = bbsMngService.selectBoardArticlesWebUrl(boardMasterVO, null);
}else {
bmVO.setBbsId(boardVO.getBbsId());
bmVO = bbsAttrbService.selectBBSMasterInf(bmVO);
//UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
boardVO.setPageUnit(Integer.parseInt(bmVO.getListNum()));
boardVO.setPageSize(Integer.parseInt(bmVO.getPageNum()));
paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
paginationInfo.setPageSize(boardVO.getPageSize());
boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//메뉴별 게시글 불러오기
map = bbsMngService.selectBoardArticlesWeb(boardVO, null);
}
int totCnt = Integer.parseInt((String) map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
List resultList = (List)map.get("resultList");
for (BoardVO bvo: resultList) {
Document doc = Jsoup.parse(bvo.getNttCn());
String text = doc.text();
bvo.setNttCn2(text);
}
model.addAttribute("resultList", resultList);
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
if(request.getRequestURI().contains("CntBbs01ListAjax")){ //01타입
model.addAttribute("boardVO", boardVO);
return "web/cop/bbs/CntBbs01ListAjax";
}
return "web/cop/bbs/CntBbsListAjax";
}
model.addAttribute("boardMenuList", boardMenuList);
return "web/cop/bbs/CntBbsList";
}
public String getDateDay(String date, String dateType) throws Exception {
String day = "" ;
SimpleDateFormat dateFormat = new SimpleDateFormat(dateType) ;
Date nDate = dateFormat.parse(date) ;
Calendar cal = Calendar.getInstance() ;
cal.setTime(nDate);
int dayNum = cal.get(Calendar.DAY_OF_WEEK) ;
switch(dayNum){
case 1:
day = "일";
break ;
case 2:
day = "월";
break ;
case 3:
day = "화";
break ;
case 4:
day = "수";
break ;
case 5:
day = "목";
break ;
case 6:
day = "금";
break ;
case 7:
day = "토";
break ;
}
return day ;
}
public BoardVO niceCheck(HttpServletRequest request, HttpSession session, BoardVO boardVO) {
CPClient niceCheck = new CPClient();
String sEncodeData = requestReplace(request.getParameter("EncodeData"), "encodeData");
String sSiteCode = "BS933"; // NICE로부터 부여받은 사이트 코드
String sSitePassword = "2CU5kY9wpppk"; // NICE로부터 부여받은 사이트 패스워드
String sCipherTime = ""; // 복호화한 시간
String sRequestNumber = ""; // 요청 번호
String sResponseNumber = ""; // 인증 고유번호
String sAuthType = ""; // 인증 수단
String sName = ""; // 성명
String sDupInfo = ""; // 중복가입 확인값 (DI_64 byte)
String sConnInfo = ""; // 연계정보 확인값 (CI_88 byte)
String sBirthDate = ""; // 생년월일(YYYYMMDD)
String sGender = ""; // 성별
String sNationalInfo = ""; // 내/외국인정보 (개발가이드 참조)
String sMobileNo = ""; // 휴대폰번호
String sMobileCo = ""; // 통신사
String sMessage = "";
String sPlainData = "";
int iReturn = niceCheck.fnDecode(sSiteCode, sSitePassword, sEncodeData);
if( iReturn == 0 )
{
sPlainData = niceCheck.getPlainData();
sCipherTime = niceCheck.getCipherDateTime();
// 데이타를 추출합니다.
java.util.HashMap mapresult = niceCheck.fnParse(sPlainData);
sRequestNumber = (String)mapresult.get("REQ_SEQ");
sResponseNumber = (String)mapresult.get("RES_SEQ");
sAuthType = (String)mapresult.get("AUTH_TYPE");
sName = (String)mapresult.get("NAME");
//sName = (String)mapresult.get("UTF8_NAME"); //charset utf8 사용시 주석 해제 후 사용
sBirthDate = (String)mapresult.get("BIRTHDATE");
sGender = (String)mapresult.get("GENDER");
sNationalInfo = (String)mapresult.get("NATIONALINFO");
sDupInfo = (String)mapresult.get("DI");
sConnInfo = (String)mapresult.get("CI");
sMobileNo = (String)mapresult.get("MOBILE_NO");
sMobileCo = (String)mapresult.get("MOBILE_CO");
String session_sRequestNumber = (String)session.getAttribute("REQ_SEQ");
if(!sRequestNumber.equals(session_sRequestNumber))
{
sMessage = "세션값 불일치 오류입니다.";
sResponseNumber = "";
sAuthType = "";
}
}
else if( iReturn == -1)
{
sMessage = "복호화 시스템 오류입니다.";
}
else if( iReturn == -4)
{
sMessage = "복호화 처리 오류입니다.";
}
else if( iReturn == -5)
{
sMessage = "복호화 해쉬 오류입니다.";
}
else if( iReturn == -6)
{
sMessage = "복호화 데이터 오류입니다.";
}
else if( iReturn == -9)
{
sMessage = "입력 데이터 오류입니다.";
}
else if( iReturn == -12)
{
sMessage = "사이트 패스워드 오류입니다.";
}
else
{
sMessage = "알수 없는 에러 입니다. iReturn : " + iReturn;
}
try {
boardVO.setNiceMessage(sMessage);
boardVO.setNiceNm(sName);
boardVO.setMblDn(sDupInfo);
}catch(Exception e) {
e.printStackTrace();
}
return boardVO;
}
//나이스 인증
public String requestReplace (String paramValue, String gubun) {
String result = "";
if (paramValue != null) {
paramValue = paramValue.replaceAll("<", "<").replaceAll(">", ">");
paramValue = paramValue.replaceAll("\\*", "");
paramValue = paramValue.replaceAll("\\?", "");
paramValue = paramValue.replaceAll("\\[", "");
paramValue = paramValue.replaceAll("\\{", "");
paramValue = paramValue.replaceAll("\\(", "");
paramValue = paramValue.replaceAll("\\)", "");
paramValue = paramValue.replaceAll("\\^", "");
paramValue = paramValue.replaceAll("\\$", "");
paramValue = paramValue.replaceAll("'", "");
paramValue = paramValue.replaceAll("@", "");
paramValue = paramValue.replaceAll("%", "");
paramValue = paramValue.replaceAll(";", "");
paramValue = paramValue.replaceAll(":", "");
paramValue = paramValue.replaceAll("-", "");
paramValue = paramValue.replaceAll("#", "");
paramValue = paramValue.replaceAll("--", "");
paramValue = paramValue.replaceAll("-", "");
paramValue = paramValue.replaceAll(",", "");
if(gubun != "encodeData"){
paramValue = paramValue.replaceAll("\\+", "");
paramValue = paramValue.replaceAll("/", "");
paramValue = paramValue.replaceAll("=", "");
}
result = paramValue;
}
return result;
}
public String damoDec(String strEnc, HttpServletRequest request) {
//DI 복구화
System.out.println("-----damoDec---request.getRequestURL().toString()-----------" + request.getRequestURL().toString()+"-----") ;
String iniFilePath = "/usr/local/tomcat/damo/scpdb_agent.ini"; //실서버
if(request.getRequestURL().toString().contains("test.kofons.or.kr")){ //로컬
iniFilePath = "C:\\damo\\scpdb_agent.ini";
}else if(request.getRequestURL().toString().contains("219.240.88.15")) { //테스트
iniFilePath = "/usr/local/tomcat_kofons/damo/scpdb_agent.ini";
}
System.out.println("iniFilePath --" + iniFilePath + "---");
ScpDbAgent agt = new ScpDbAgent();
String strDec = "";
try {
strDec = agt.ScpDecB64( iniFilePath, "KEY1", strEnc);
}catch(Exception e) {
}
return strDec ;
}
public String damoEnc(String strDec, HttpServletRequest request) {
//DI 암호화
System.out.println("-----damoEnc---request.getRequestURL().toString()-----------" + request.getRequestURL().toString()+"-----") ;
String iniFilePath = "/usr/local/tomcat/damo/scpdb_agent.ini"; //실서버
if(request.getRequestURL().toString().contains("test.kofons.or.kr")){ //로컬
iniFilePath = "C:\\damo\\scpdb_agent.ini";
}else if(request.getRequestURL().toString().contains("219.240.88.15")) { //테스트
iniFilePath = "/usr/local/tomcat_kofons/damo/scpdb_agent.ini";
}
System.out.println("iniFilePath --" + iniFilePath + "---");
ScpDbAgent agt = new ScpDbAgent();
String strEnc = "";
try {
strEnc = agt.ScpEncB64( iniFilePath, "KEY1", strDec);
}catch(Exception e) {
}
return strEnc ;
}
}