File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.lett.web;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.support.RequestContextUtils;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
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.EgovMessageSource;
import itn.com.cmm.LoginVO;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.EgovFileMngUtil;
import itn.com.cmm.service.FileVO;
import itn.com.cmm.util.EgovDoubleSubmitHelper;
import itn.com.cmm.util.RedirectUrlMaker;
import itn.com.cmm.util.StringUtil;
import itn.com.uss.ion.fms.service.FmsFileService;
import itn.com.uss.ion.fms.service.FmsFileVO;
import itn.let.lett.service.CateConfVO;
import itn.let.lett.service.HashConfVO;
import itn.let.lett.service.LetterService;
import itn.let.lett.service.LetterVO;
import itn.let.mjo.msgagent.service.MjonMsgAgentStsService;
import itn.let.mjo.msgagent.service.MjonMsgAgentStsVO;
import itn.let.sym.ccm.cde.service.CateCode;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.uss.umt.service.UserDefaultVO;
@Controller
public class LetterController {
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
@Resource(name = "LetterService")
private LetterService letterService;
/** EgovPropertyService */
@Resource(name = "propertiesService")
protected EgovPropertyService propertiesService;
@Resource(name="egovMessageSource")
EgovMessageSource egovMessageSource;
@Resource(name = "fmsFileService")
private FmsFileService fmsFileService;
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "egovFmsFileGnrService")
private EgovIdGnrService idgenService;
/** 첨부파일 저장경로 */
@Value("#{globalSettings['Globals.file.saveDir']}")
private String fileSaveDir;
@Resource(name = "mjonMsgAgentStsService")
private MjonMsgAgentStsService mjonMsgAgentStsService;
//카테고리 배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
private String[][] categoryExcelValue ={
{"0" ,"번호" , "1" , "" },
{"1", "카테고리 타입" , "ITN" , "[코드]"},
{"2", "카테고리 이름" , "선거", "[코드]"},
{"3", "순서" , "1", ""},
{"4", "사용 유무" , "사용", ""},
{"5", "등록일" ,"2019-10-31", ""}
} ;
//해쉬태그 배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
private String[][] hashTagExcelValue ={
{"0" ,"번호" , "1" , "" },
{"1", "해쉬테그 이름" , "ITN" ,""},
{"2", "순서" , "1", ""},
{"3", "사용 유무" , "사용", ""},
{"4", "등록일" ,"2019-10-31", ""}
} ;
/**
*
* 단문/장문 문자 목록 화면
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return letter/messages/letterMessagesList
* @throws Exception
*/
@RequestMapping("/letter/messages/letterMessagesList.do")
public String letterMessagesList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model,
HttpServletRequest request,
HttpSession session) throws Exception {
Map<String, ?> flashMap =RequestContextUtils.getInputFlashMap(request);
if(flashMap!=null && flashMap.get("userSearchVO") != null) {
userSearchVO = (UserDefaultVO)flashMap.get("userSearchVO");
}
if(userSearchVO.getPageUnit() != 10) {
userSearchVO.setPageUnit(userSearchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit());
paginationInfo.setPageSize(userSearchVO.getPageSize());
userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex());
userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("regdate");
userSearchVO.setSearchSortOrd("desc");
}
if("".equals(userSearchVO.getSearchDiv()) || userSearchVO.getSearchDiv() == null){
userSearchVO.setSearchDiv("S");
}
//2뎁스(상위카테고리) selectbox 검색 시
if(!"".equals(userSearchVO.getSearchTwoDptCategoryCode())) {
userSearchVO.setSearchCategoryCode(userSearchVO.getSearchTwoDptCategoryCode());
}
//3뎁스(상위카테고리) selectbox 검색 시
if(!"".equals(userSearchVO.getSearchThrDptCategoryCode())) {
userSearchVO.setSearchCategoryCode(userSearchVO.getSearchThrDptCategoryCode());
}
//List<?> resultList = userManageService.selectUserList(userSearchVO) ;
List<?> resultList = letterService.selectLetterMessageList(userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
//카테고리 미리만들기 selectbox 미리 만들기
CateCode cateCode = new CateCode();
//일반 카테고리(맞춤X)만 조회
cateCode.setCateType("N");
List<CateCode> cateCodeList = letterService.selectCateCodeTwoDptWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "letter/messages/LetterMessageList";
}
/**
* 단문/장문 문자 등록 화면
*
* @param
* @param
* @return letter/messages/letterMessagesRegist
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/messages/letterMessagesRegist.do")
public String letterMessagesRegist(
LetterVO letterVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
// 권한 체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
// 그림문자 카테고리 리스트 불러오기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "letter/messages/LetterMessageRegist";
}
/**
* 단문/장문 문자 데이터 디비 입력 처리
*
* @param
* @param
* @return letter/messages/letterMessagesList
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/messages/insertLetterMessages.do")
public String insertLetterMessages(
LetterVO letterVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
letterVO.setCategoryCode(depth3);
}else{
letterVO.setCategoryCode(depth2);
}
//장/단문 메세지 내용 저장하기
String resultSts = letterService.insertLetterMessages(letterVO);
letterVO.setLetterId(resultSts);
//우선순위 변경
if(!"".equals(letterVO.getPriNum()) && letterVO.getPriNum() != null) {
String[] tmpArray = {letterVO.getLetterId()};
letterVO.setChkIds(tmpArray);
letterVO.setChkIdsSize(tmpArray.length);
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int cnt = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
cnt += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
cnt += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
cnt += letterService.updateNullPriority(letterVO);
}
if(StringUtil.isNotEmpty(resultSts)) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
}else {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert"));
}
return "redirect:/letter/messages/letterMessagesList.do";
}
/**
* 단문/장문 문자 삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/letter/messages/letterMessagesList.do
* @throws Exception
*/
@RequestMapping("/letter/messages/letterMessageDelete.do")
public String letterMessageDelete(@RequestParam("checkedIdForDel") String checkedIdForDel,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/letter/messages/letterMessagesList.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
// 단문/장문 문자 삭제 - USE_YN 값을 'N'으로 변경함
letterService.deleteLetterMessage(checkedIdForDel);
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
if(userSearchVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/messages/letterMessagesList.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/messages/letterMessagesList.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
* 단문/장문 문자 데이터 디비 상세화면 이동
*
* @param
* @param
* @return letter/messages/letterMessagesDetail
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/messages/letterMessagesDetail.do")
public String letterMessagesDetail(
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
LetterVO letterVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
// 그림문자 카테고리 리스트 불러오기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
//등록된 카테고리 정보 불러오기
List<CateCode> cateCodeRegList = new ArrayList<CateCode>();
String cateCodeId = commandMap.get("cateCodeId").toString();
cateCodeRegList = letterService.selectPhotoCateCodeListWithId(cateCodeId);
model.addAttribute("cateCodeRegList", cateCodeRegList);
String letterId = commandMap.get("selectedId").toString();
letterVO.setLetterId(letterId);
//장/단문 메세지 내용 저장하기
LetterVO result = new LetterVO();
result = letterService.letterMessagesDetail(letterVO);
model.addAttribute("result", result);
return "letter/messages/LetterMessageDetail";
}
/**
* 단문/장문 문자 데이터 수정 처리
*
* @param
* @param
* @return /letter/messages/updateLetterMessages.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/messages/updateLetterMessages.do")
public String updateLetterMessages(
LetterVO letterVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model,
UserDefaultVO userSearchVO,
RedirectAttributes rttr) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
letterVO.setCategoryCode(depth3);
}else{
letterVO.setCategoryCode(depth2);
}
//장/단문 메세지 내용 수정하기
int result = letterService.updateLetterMessages(letterVO);
//우선순위 변경
if(!"".equals(letterVO.getPriNum()) && letterVO.getPriNum() != null) {
String[] tmpArray = {letterVO.getLetterId()};
letterVO.setChkIds(tmpArray);
letterVO.setChkIdsSize(tmpArray.length);
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int cnt = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
cnt += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
cnt += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
cnt += letterService.updateNullPriority(letterVO);
}
if(result > 0) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
}else {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.update"));
}
rttr.addFlashAttribute("userSearchVO", userSearchVO);
return "redirect:/letter/messages/letterMessagesList.do";
}
/**
* 그림 문자 등록화면
*
* @param
* @param
* @return /letter/photo/letterPhotoList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping(value="/letter/photo/letterPhotosRegist.do")
public String letterPhotosRegist(CateCode cateCode, Model model, @ModelAttribute("userSearchVO") UserDefaultVO userSearchVO) throws Exception {
//카테고리 미리만들기 selectbox 미리 만들기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "letter/photo/LetterPhotoRegist";
}
/**
* 그림 문자 등록 프로세스
*
* @param
* @param
* @return /letter/photo/letterPhotoList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping(value="/letter/photo/insertletterPhotosAjax.do")
public ModelAndView insertletterPhotos(@RequestParam Map<?, ?> commandMap,
@ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO,
@ModelAttribute("fileVO") FileVO fileVO,
LetterVO letterVO,
RedirectAttributes redirectAttributes,
final MultipartHttpServletRequest multiRequest,
HttpServletRequest request)
throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
List<FileVO> result = null;
String atchFileId = fmsFileVO.getFmsImageFile(); //수정일때
String isThumbFile = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
String KeyStr = "PHO_";
if(!files.isEmpty()) {
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//그림문자 일반
if(depth1.equals("13000")) {
// 일반문자
letterVO.setMemberType("P");
}else if(depth1.equals("15000")) { // 기업 기업문자
letterVO.setMemberType("B");
}else {
letterVO.setMemberType("C");
}
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
letterVO.setCategoryCode(depth3);
}else{
letterVO.setCategoryCode(depth2);
}
//문자 타입 입력
//그림문자 일반
if(depth1.equals("11000")) {
// 맞춤제작문자
letterVO.setLetterType("C");
}else {
//일반그림문자
letterVO.setLetterType("P");
}
if ("".equals(atchFileId)){ // 첨부 이미지 등록
String imagePath = "";
Date now = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMdd");
String fdlDate = formatDate.format(now);
//로컬 과 개발서버의 이미지 저장 경로 분기처리
if(request.getServerName().equals("localhost")) {
imagePath = fileSaveDir + "src/main/webapp/mjon/MMS/" + fdlDate;
}else {
/*imagePath = "/usr/local/tomcat_mjon/webapps/mjon/MMS/" + fdlDate;*/
imagePath = fileSaveDir+"/file/MMS/" + fdlDate;
}
//별도 이미지 저장 함수로 파일 처리함
result = fileUtil.parseImageFileInf(files, KeyStr, 0, atchFileId , imagePath, isThumbFile);
atchFileId = fileMngService.insertFileInfs(result);
FileVO vo = null;
Iterator<FileVO> iter = result.iterator();
while (iter.hasNext()) {
vo = iter.next();
letterVO.setOrignlFileNm(vo.getOrignlFileNm());
letterVO.setAttachFileId(vo.getAtchFileId());
}
}
}
//그림문자 내용 입력
String resultSts = letterService.insertletterPhotosInfo(letterVO);
letterVO.setLetterId(resultSts);
//우선순위 변경
if(!"".equals(letterVO.getPriNum()) && letterVO.getPriNum() != null) {
String[] tmpArray = {letterVO.getLetterId()};
letterVO.setChkIds(tmpArray);
letterVO.setChkIdsSize(tmpArray.length);
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int cnt = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
cnt += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
cnt += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
cnt += letterService.updateNullPriority(letterVO);
}
if(StringUtil.isNotEmpty(resultSts)) {
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("result", "fail");
}
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/*그림문자 리스트 화면 관리*/
@RequestMapping(value="/letter/photo/letterPhotosList.do")
public String letterPhotosList(ModelMap model ,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
HttpSession session,
HttpServletRequest request) throws Exception {
Map<String, ?> flashMap =RequestContextUtils.getInputFlashMap(request);
if(flashMap!=null && flashMap.get("userSearchVO") != null) {
userSearchVO = (UserDefaultVO)flashMap.get("userSearchVO");
}
if(userSearchVO.getPageUnit() != 10) {
userSearchVO.setPageUnit(userSearchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit());
paginationInfo.setPageSize(userSearchVO.getPageSize());
userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex());
userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("regdate");
userSearchVO.setSearchSortOrd("desc");
}
//2뎁스(상위카테고리) selectbox 검색 시
if(!"".equals(userSearchVO.getSearchTwoDptCategoryCode())) {
userSearchVO.setSearchCategoryCode(userSearchVO.getSearchTwoDptCategoryCode());
}
//3뎁스(상위카테고리) selectbox 검색 시
if(!"".equals(userSearchVO.getSearchThrDptCategoryCode())) {
userSearchVO.setSearchCategoryCode(userSearchVO.getSearchThrDptCategoryCode());
}
List<?> resultList = letterService.selectLetterPhotosList(userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
//카테고리 미리만들기 selectbox 미리 만들기
CateCode cateCode = new CateCode();
cateCode.setCateType("N");
List<CateCode> cateCodeList = letterService.selectCateCodeTwoDptWithList(cateCode);
/*List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);*/
model.addAttribute("cateCodeList", cateCodeList);
return "letter/photo/LetterPhotoList";
}
/**
* 그림 문자 삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/letter/photo/letterPhotosList.do
* @throws Exception
*/
@RequestMapping("/letter/photo/letterPhotosDelete.do")
public String letterPhotosDelete(@RequestParam("checkedIdForDel") String checkedIdForDel,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/letter/photo/letterPhotosList.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
// 그림문자 문자 삭제 - USE_YN 값을 'N'으로 변경함
letterService.deleteLetterPhotos(checkedIdForDel);
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
if(userSearchVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/photo/letterPhotosList.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/photo/letterPhotosList.do");
return redirectUrlMaker.getRedirectUrl();
}
/*그림문자 상세보기 화면*/
@RequestMapping(value="/letter/photo/letterPhotosDetail.do")
public String letterPhotosDetail(@RequestParam Map<?, ?> commandMap,
@ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO,
CateCode cateCode,
LetterVO letterVO,
HttpServletRequest request,
HttpServletResponse response,
RedirectAttributes redirectAttributes,
Model model,
@ModelAttribute("userSearchVO")UserDefaultVO userSearchVO,
HttpSession session)
throws Exception {
//카테고리 미리만들기 selectbox 미리 만들기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
//등록된 카테고리 정보 불러오기
List<CateCode> cateCodeRegList = new ArrayList<CateCode>();
String cateCodeId = commandMap.get("cateCodeId").toString();
cateCodeRegList = letterService.selectPhotoCateCodeListWithId(cateCodeId);
model.addAttribute("cateCodeRegList", cateCodeRegList);
letterVO.setLetterId(commandMap.get("selectedId").toString());
//그림문자 내용 불러오기
LetterVO resultPhotoList = letterService.selectPhotosDetail(letterVO);
model.addAttribute("resultPhotoList", resultPhotoList);
String attchFileId = resultPhotoList.getAttachFileId();
//그림문자 첨부파일 정보 불러오기
LetterVO resultFileList = letterService.selectPhotoFileList(attchFileId);
model.addAttribute("resultFileList", resultFileList);
return "letter/photo/LetterPhotoDetail";
}
/* 그림문자 수정 처리 */
@RequestMapping(value="/letter/photo/updateLetterPhotosAjax.do")
public ModelAndView updateLetterPhotosAjax(@RequestParam Map<?, ?> commandMap,
@ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO,
@ModelAttribute("fileVO") FileVO fileVO,
LetterVO letterVO,
final MultipartHttpServletRequest multiRequest,
ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail"); //권한없음 팝업창 닫고, 오프너 창 리로드
return modelAndView;
}
try {
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//그림문자 일반
if(depth1.equals("13000")) {
letterVO.setMemberType("P");
}else if(depth1.equals("15000")) { // 기업 기업문자
letterVO.setMemberType("B");
}else {// 맞춤제작문자
letterVO.setMemberType("C");
}
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
letterVO.setCategoryCode(depth3);
}else{
letterVO.setCategoryCode(depth2);
}
//문자 타입 입력
//그림문자 일반
if(depth1.equals("11000")) {
// 맞춤제작문자
letterVO.setLetterType("C");
}else {
//일반그림문자
letterVO.setLetterType("P");
}
List<FileVO> result = null;
String attachFileId = letterVO.getAttachFileId(); //수정일때
String orignlFileNm = letterVO.getOrignlFileNm();
String isThumbFile = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
String KeyStr = "PHO_";
String imagePath = "";
Date now = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMdd");
String fdlDate = formatDate.format(now);
//로컬 과 개발서버의 이미지 저장 경로 분기처리
if(request.getServerName().equals("localhost")) {
imagePath = fileSaveDir + "src/main/webapp" + "/mjon/MMS/" + fdlDate;
}else {
/*imagePath = "/usr/local/tomcat_mjon/webapps/mjon/MMS/" + fdlDate;*/
imagePath = fileSaveDir+"/file/MMS/" + fdlDate;
}
if (!files.isEmpty()){
if ("".equals(attachFileId)){ //이미지 등록
result = fileUtil.parseImageFileInf(files, KeyStr, 0, attachFileId , imagePath, isThumbFile);
attachFileId = fileMngService.insertFileInfs(result);
FileVO vo = null;
Iterator<FileVO> iter = result.iterator();
while (iter.hasNext()) {
vo = iter.next();
orignlFileNm = vo.getOrignlFileNm();
attachFileId = vo.getAtchFileId();
}
if (vo == null) {
} else {
letterVO.setOrignlFileNm(orignlFileNm);
letterVO.setAttachFileId(attachFileId);
}
}else{ //파일 업데이트
FileVO fvo = new FileVO();
fvo.setAtchFileId(attachFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
result = fileUtil.parseImageFileInf(files, KeyStr , cnt, attachFileId, imagePath, isThumbFile);
fileMngService.updateFileInfs(result);
}
}
//해당 매뉴 DB에 update
int resultUpdateCnt = 0;
if(result != null) { // 첨부파일이 수정되었다면 신규 파일 정보로 업데이트
letterVO.setAttachFileId(result.get(0).getAtchFileId());
letterVO.setOrignlFileNm(result.get(0).getOrignlFileNm());
resultUpdateCnt = letterService.updateLetterPhotosInfo(letterVO);
}else { // 첨부파일 수정이 없다면 기존 파일 명으로 업데이트 처리
letterVO.setAttachFileId(attachFileId);
letterVO.setOrignlFileNm(orignlFileNm);
resultUpdateCnt = letterService.updateLetterPhotosInfo(letterVO);
}
//우선순위 변경
if(!"".equals(letterVO.getPriNum()) && letterVO.getPriNum() != null) {
String[] tmpArray = {letterVO.getLetterId()};
letterVO.setChkIds(tmpArray);
letterVO.setChkIdsSize(tmpArray.length);
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int cnt = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
cnt += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
cnt += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
cnt += letterService.updateNullPriority(letterVO);
}
if(resultUpdateCnt > 0) {
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("result", "fail");
}
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 맞춤제작 그림 문자 등록화면
*
* @param
* @param
* @return /letter/photo/letterPhotoCustomList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping(value="/letter/photo/letterPhotosCustomRegist.do")
public String letterPhotosCustomRegist(CateCode cateCode, Model model) throws Exception {
//카테고리 미리만들기 selectbox 미리 만들기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "letter/photo/custom/LetterPhotoCustomRegist";
}
/**
* 맞춤제작 그림 문자 등록 프로세스
*
* @param
* @param
* @return /letter/photo/letterPhotoCustomList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping(value="/letter/photo/insertletterPhotosCustomAjax.do")
public ModelAndView insertletterPhotosCustom(@RequestParam Map<?, ?> commandMap,
@ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO,
@ModelAttribute("fileVO") FileVO fileVO,
LetterVO letterVO,
RedirectAttributes redirectAttributes,
final MultipartHttpServletRequest multiRequest,
HttpServletRequest request)
throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
List<FileVO> result = null;
String atchFileId = fmsFileVO.getFmsImageFile(); //수정일때
String isThumbFile = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
String KeyStr = "PHO_";
if(!files.isEmpty()) {
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//그림문자 일반
if(depth1.equals("13000")) {
// 일반문자
letterVO.setMemberType("P");
}else if(depth1.equals("15000")) { // 기업 기업문자
letterVO.setMemberType("B");
}else {
letterVO.setMemberType("C");
}
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
letterVO.setCategoryCode(depth3);
}else{
letterVO.setCategoryCode(depth2);
}
//문자 타입 입력
//그림문자 일반
if(depth1.equals("11000")) {
// 맞춤제작문자
letterVO.setLetterType("C");
}else {
//일반그림문자
letterVO.setLetterType("P");
}
if ("".equals(atchFileId)){ // 첨부 이미지 등록
String imagePath = "";
Date now = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMdd");
String fdlDate = formatDate.format(now);
//로컬 과 개발서버의 이미지 저장 경로 분기처리
if(request.getServerName().equals("localhost")) {
imagePath = fileSaveDir+"src/main/webapp/MMS/" + fdlDate;
}else {
/*imagePath = "/usr/local/tomcat_mjon/webapps/mjon/MMS/" + fdlDate;*/
imagePath = fileSaveDir+"/file/MMS/" + fdlDate;
}
//별도 이미지 저장 함수로 파일 처리함
result = fileUtil.parseImageFileInf(files, KeyStr, 0, atchFileId , imagePath, isThumbFile);
atchFileId = fileMngService.insertFileInfs(result);
FileVO vo = null;
Iterator<FileVO> iter = result.iterator();
while (iter.hasNext()) {
vo = iter.next();
letterVO.setOrignlFileNm(vo.getOrignlFileNm());
letterVO.setAttachFileId(vo.getAtchFileId());
}
}
}
//그림문자 내용 입력
String resultSts = letterService.insertletterPhotosInfo(letterVO);
letterVO.setLetterId(resultSts);
//우선순위 변경
if(!"".equals(letterVO.getPriNum()) && letterVO.getPriNum() != null) {
String[] tmpArray = {letterVO.getLetterId()};
letterVO.setChkIds(tmpArray);
letterVO.setChkIdsSize(tmpArray.length);
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int cnt = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
cnt += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
cnt += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
cnt += letterService.updateNullPriority(letterVO);
}
if(StringUtil.isNotEmpty(resultSts)) {
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("result", "fail");
}
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/*맞춤제작 그림문자 리스트 화면 관리*/
@RequestMapping(value="/letter/photo/letterPhotosCustomList.do")
public String letterPhotosCustomList(ModelMap model ,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
HttpSession session,
HttpServletRequest request) throws Exception {
Map<String, ?> flashMap =RequestContextUtils.getInputFlashMap(request);
if(flashMap!=null && flashMap.get("userSearchVO") != null) {
userSearchVO = (UserDefaultVO)flashMap.get("userSearchVO");
}
if(userSearchVO.getPageUnit() != 10) {
userSearchVO.setPageUnit(userSearchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit());
paginationInfo.setPageSize(userSearchVO.getPageSize());
userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex());
userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("regdate");
userSearchVO.setSearchSortOrd("desc");
}
List<?> resultList = letterService.selectLetterPhotosCustomList(userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
//카테고리 미리만들기 selectbox 미리 만들기
CateCode cateCode = new CateCode();
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "letter/photo/custom/LetterPhotoCustomList";
}
/*마춤제작 그림문자 상세보기 화면*/
@RequestMapping(value="/letter/photo/letterPhotosCustomDetail.do")
public String letterPhotosCustomDetail(@RequestParam Map<?, ?> commandMap,
@ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO,
CateCode cateCode,
LetterVO letterVO,
HttpServletRequest request,
HttpServletResponse response,
RedirectAttributes redirectAttributes,
Model model,
HttpSession session,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO)
throws Exception {
//카테고리 미리만들기 selectbox 미리 만들기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
//등록된 카테고리 정보 불러오기
List<CateCode> cateCodeRegList = new ArrayList<CateCode>();
String cateCodeId = commandMap.get("cateCodeId").toString();
cateCodeRegList = letterService.selectPhotoCateCodeListWithId(cateCodeId);
model.addAttribute("cateCodeRegList", cateCodeRegList);
letterVO.setLetterId(commandMap.get("selectedId").toString());
//그림문자 내용 불러오기
LetterVO resultPhotoList = letterService.selectPhotosDetail(letterVO);
model.addAttribute("resultPhotoList", resultPhotoList);
String attchFileId = resultPhotoList.getAttachFileId();
//그림문자 첨부파일 정보 불러오기
LetterVO resultFileList = letterService.selectPhotoFileList(attchFileId);
model.addAttribute("resultFileList", resultFileList);
return "letter/photo/custom/LetterPhotoCustomDetail";
}
/* 맞춤제작 그림문자 수정 처리 */
@RequestMapping(value="/letter/photo/updateLetterPhotosCustomAjax.do")
public ModelAndView updateLetterPhotosCustom(@RequestParam Map<?, ?> commandMap,
@ModelAttribute("fmsFileVO") FmsFileVO fmsFileVO,
@ModelAttribute("fileVO") FileVO fileVO,
LetterVO letterVO,
final MultipartHttpServletRequest multiRequest,
ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail"); //권한없음 팝업창 닫고, 오프너 창 리로드
return modelAndView;
}
try {
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//그림문자 일반
if(depth1.equals("13000")) {
letterVO.setMemberType("P");
}else if(depth1.equals("15000")) { // 기업 기업문자
letterVO.setMemberType("B");
}else {// 맞춤제작문자
letterVO.setMemberType("C");
}
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
letterVO.setCategoryCode(depth3);
}else{
letterVO.setCategoryCode(depth2);
}
//문자 타입 입력
//그림문자 일반
if(depth1.equals("11000")) {
// 맞춤제작문자
letterVO.setLetterType("C");
}else {
//일반그림문자
letterVO.setLetterType("P");
}
List<FileVO> result = null;
String attachFileId = letterVO.getAttachFileId(); //수정일때
String orignlFileNm = letterVO.getOrignlFileNm();
String isThumbFile = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
String KeyStr = "PHO_";
String imagePath = "";
Date now = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMdd");
String fdlDate = formatDate.format(now);
//로컬 과 개발서버의 이미지 저장 경로 분기처리
if(request.getServerName().equals("localhost")) {
imagePath = fileSaveDir+"src/main/webapp/MMS/" + fdlDate;
}else {
/*imagePath = "/usr/local/tomcat_mjon/webapps/mjon/MMS/" + fdlDate;*/
imagePath = fileSaveDir+"/file/MMS/" + fdlDate;
}
if (!files.isEmpty()){
if ("".equals(attachFileId)){ //이미지 등록
result = fileUtil.parseImageFileInf(files, KeyStr, 0, attachFileId , imagePath, isThumbFile);
attachFileId = fileMngService.insertFileInfs(result);
FileVO vo = null;
Iterator<FileVO> iter = result.iterator();
while (iter.hasNext()) {
vo = iter.next();
orignlFileNm = vo.getOrignlFileNm();
attachFileId = vo.getAtchFileId();
}
if (vo == null) {
} else {
letterVO.setOrignlFileNm(orignlFileNm);
letterVO.setAttachFileId(attachFileId);
}
}else{ //파일 업데이트
FileVO fvo = new FileVO();
fvo.setAtchFileId(attachFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
result = fileUtil.parseImageFileInf(files, KeyStr , cnt, attachFileId, imagePath, isThumbFile);
fileMngService.updateFileInfs(result);
}
}
//해당 매뉴 DB에 update
int resultUpdateCnt = 0;
if(result != null) { // 첨부파일이 수정되었다면 신규 파일 정보로 업데이트
letterVO.setAttachFileId(result.get(0).getAtchFileId());
letterVO.setOrignlFileNm(result.get(0).getOrignlFileNm());
resultUpdateCnt = letterService.updateLetterPhotosInfo(letterVO);
}else { // 첨부파일 수정이 없다면 기존 파일 명으로 업데이트 처리
letterVO.setAttachFileId(attachFileId);
letterVO.setOrignlFileNm(orignlFileNm);
resultUpdateCnt = letterService.updateLetterPhotosInfo(letterVO);
}
//우선순위 변경
if(!"".equals(letterVO.getPriNum()) && letterVO.getPriNum() != null) {
String[] tmpArray = {letterVO.getLetterId()};
letterVO.setChkIds(tmpArray);
letterVO.setChkIdsSize(tmpArray.length);
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int cnt = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
cnt += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
cnt += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
cnt += letterService.updateNullPriority(letterVO);
}
if(resultUpdateCnt > 0) {
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("result", "fail");
}
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 맞춤제작 그림 문자 삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/letter/photo/letterPhotosCustomList.do
* @throws Exception
*/
@RequestMapping("/letter/photo/letterPhotosCustomDelete.do")
public String letterPhotosCustomDelete(@RequestParam("checkedIdForDel") String checkedIdForDel,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/letter/photo/letterPhotosCustomList.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
// 그림문자 문자 삭제 - USE_YN 값을 'N'으로 변경함
letterService.deleteLetterPhotos(checkedIdForDel);
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
if(userSearchVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/photo/letterPhotosCustomList.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/photo/letterPhotosCustomList.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
*
* 문자 발송 카테고리 관리 리스트 화면
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return letter/cateconf/categoryConfList
* @throws Exception
*/
@RequestMapping("/letter/cateconf/categoryConfList.do")
public String categoryConfList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model,
HttpServletRequest request,
HttpSession session) throws Exception {
Map<String, ?> flashMap =RequestContextUtils.getInputFlashMap(request);
if(flashMap!=null && flashMap.get("userSearchVO") != null) {
userSearchVO = (UserDefaultVO)flashMap.get("userSearchVO");
model.addAttribute("userSearchVO", userSearchVO);
}
if(userSearchVO.getPageUnit() != 10) {
userSearchVO.setPageUnit(userSearchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit());
paginationInfo.setPageSize(userSearchVO.getPageSize());
userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex());
userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("regdate");
userSearchVO.setSearchSortOrd("desc");
}
//List<?> resultList = userManageService.selectUserList(userSearchVO) ;
List<?> resultList = letterService.selectCategoryConfList(userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount(resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "letter/cateconf/CateConfList";
}
/**
* 문자 발송 카테고리 관리 등록 화면
*
* @param
* @param
* @return letter/cateconf/categoryConfRegist
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/cateconf/categoryConfRegist.do")
public String categoryConfRegist(
CateConfVO cateConfVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
// 권한 체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
// 그림문자 카테고리 리스트 불러오기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "letter/cateconf/CateConfRegist";
}
/**
* 문자 발송 카테고리 관리 디비 입력 처리
*
* @param
* @param
* @return letter/cateconf/categoryConfList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/cateconf/insertCategoryConf.do")
public String insertCategoryConf(
CateConfVO cateConfVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
//카테고리 뎁스 정보 불러오기
//String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
cateConfVO.setCategoryCode(depth3);
}else{
cateConfVO.setCategoryCode(depth2);
}
// 카테고리 내용 저장하기
int result = letterService.insertCategoryConf(cateConfVO);
if(result > 0) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
}else {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert"));
}
return "redirect:/letter/cateconf/categoryConfList.do";
}
/**
* 문자 발송 카테고리 관리 상세보기 화면
*
* @param
* @param
* @return letter/cateconf/categoryConfDetail
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/cateconf/categoryConfDetail.do")
public String categoryConfDetail(
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
CateConfVO cateConfVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
// 그림문자 카테고리 리스트 불러오기
List<CateCode> cateCodeList = letterService.selectPhotoCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
//등록된 카테고리 정보 불러오기
List<CateCode> cateCodeRegList = new ArrayList<CateCode>();
String cateCodeId = commandMap.get("cateCodeId").toString();
cateCodeRegList = letterService.selectPhotoCateCodeListWithId(cateCodeId);
model.addAttribute("cateCodeRegList", cateCodeRegList);
String categoryId = commandMap.get("selectedId").toString();
cateConfVO.setCategoryId(categoryId);
//장/단문 메세지 내용 저장하기
CateConfVO result = new CateConfVO();
result = letterService.categoryConfDetail(cateConfVO);
model.addAttribute("result", result);
return "letter/cateconf/CateConfDetail";
}
/**
* 문자 발송 카테고리 삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/letter/cateconf/categoryConfList.do
* @throws Exception
*/
@RequestMapping("/letter/cateconf/categoryConfDelete.do")
public String categoryConfDelete(@RequestParam("checkedIdForDel") String checkedIdForDel,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/letter/cateconf/categoryConfList.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
// 문자 발송 카테고리 삭제 -
letterService.deleteCategoryConf(checkedIdForDel);
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
if(userSearchVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/cateconf/categoryConfList.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/cateconf/categoryConfList.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
* 문자 발송 카테고리 수정 처리
*
* @param
* @param
* @return /letter/cateconf/categoryConfList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/cateconf/updateCategoryConf.do")
public String updateCategoryConf(
UserDefaultVO userSearchVO,
CateConfVO cateConfVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
//카테고리 뎁스 정보 불러오기
String depth1 = commandMap.get("cateCodeDepth_01").toString();
String depth2 = commandMap.get("cateCodeDepth_02").toString();
String depth3 = commandMap.get("cateCodeDepth_03").toString();
//카테고리 최종 코드 번호 저장 2 뎁스 혹은 3뎁스 번호를 저장함
if(depth3.length() > 0) {
cateConfVO.setCategoryCode(depth3);
}else{
cateConfVO.setCategoryCode(depth2);
}
//문자 발송 카테고리 내용 수정하기
int result = letterService.updateCategoryConf(cateConfVO);
if(result > 0) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
}else {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.update"));
}
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
return "redirect:/letter/cateconf/categoryConfList.do";
}
//카테고리 엑셀 다운로드
@RequestMapping(value="/letter/cateconf/categoryExcelDownload.do")
public void categoryExcelDownload(UserDefaultVO userSearchVO,
HttpServletRequest request,
HttpServletResponse response ,
ModelMap model) throws Exception {
userSearchVO.setRecordCountPerPage(100000);
userSearchVO.setFirstIndex(0);
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("categoryId");
userSearchVO.setSearchSortOrd("ASC");
}
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if(null != loginVO && !"super".equals(loginVO.getSiteId())){
userSearchVO.setSiteId(loginVO.getSiteId());
}
// 메모리에 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{
List<?> categorySearchList = letterService.selectCategoryConfList(userSearchVO) ;
{ //화면 리스트
sheetTitle = "카테고리 리스트" ; //제목
Sheet sheet = wb.createSheet(sheetTitle);
row = sheet.createRow(0);
for(int i=0 ; i < categoryExcelValue.length ; i++) {
cell = row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(categoryExcelValue[i][1]);
}
for(int i=0; i < categorySearchList.size(); i++){
row = sheet.createRow(i+1);
System.out.println("row : "+row);
System.out.println("I : "+i);
for(int j=0 ; j < categoryExcelValue.length ; j++) {
System.out.println("J : "+ j);
cell = row.createCell(j);
cell.setCellStyle(style);
if(j==0) {
cell.setCellValue(i+1); //번호
}
if(j==1) {
String categoryType = "C".equals((String)((EgovMap)categorySearchList.get(i)).get("categoryType")) ? "맞춤제작" : "일반제작";
cell.setCellValue(categoryType);
System.out.println("categoryType : "+ categoryType);
}
if(j==2) {
cell.setCellValue((String)((EgovMap)categorySearchList.get(i)).get("categoryNm")); //카테고리 이름
System.out.println("categoryNm : "+ (String)((EgovMap)categorySearchList.get(i)).get("categoryNm"));
}
if(j==3) {
BigDecimal sort = (BigDecimal)((EgovMap)categorySearchList.get(i)).get("sort");
cell.setCellValue(sort.toString()); //순서
System.out.println("sort : "+ ((EgovMap)categorySearchList.get(i)).get("sort"));
}
if(j==4) {
cell.setCellValue((String)((EgovMap)categorySearchList.get(i)).get("useYn")); //사용 유무
System.out.println("useYn : "+ (String)((EgovMap)categorySearchList.get(i)).get("useYn"));
}
if(j==5) {
cell.setCellValue((String)((EgovMap)categorySearchList.get(i)).get("regdate")); //등록일자
System.out.println("regdate : "+ ((EgovMap)categorySearchList.get(i)).get("regdate"));
}
}
}
}
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) {}
}
}
/**
* 문자 발송 해쉬태그 관리 등록 화면
*
* @param
* @param
* @return letter/hashconf/hashTagConfRegist
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/hashconf/hashTagConfRegist.do")
public String hashTagConfRegist(
HashConfVO hashConfVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
// 권한 체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
return "letter/hashconf/HashConfRegist";
}
/**
* 문자 발송 해쉬태그 관리 디비 입력 처리
*
* @param
* @param
* @return letter/cateconf/categoryConfList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/hashconf/insertHashTagConf.do")
public String insertHashTagConf(
HashConfVO hashConfVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
// 해쉬태그 내용 저장하기
int result = letterService.insertHashTagConf(hashConfVO);
if(result > 0) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
}else {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert"));
}
return "redirect:/letter/hashconf/hashTagConfList.do";
}
/**
*
* 문자 발송 해쉬태그 관리 리스트 화면
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return letter/hashconf/hashTatgconfList
* @throws Exception
*/
@RequestMapping("/letter/hashconf/hashTagConfList.do")
public String hashTagConfList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model,
HttpServletRequest request,
HttpSession session) throws Exception {
Map<String, ?> flashMap =RequestContextUtils.getInputFlashMap(request);
if(flashMap!=null && flashMap.get("userSearchVO") != null) {
userSearchVO = (UserDefaultVO)flashMap.get("userSearchVO");
model.addAttribute("userSearchVO", userSearchVO);
}
if(userSearchVO.getPageUnit() != 10) {
userSearchVO.setPageUnit(userSearchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit());
paginationInfo.setPageSize(userSearchVO.getPageSize());
userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex());
userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("regdate");
userSearchVO.setSearchSortOrd("desc");
}
//List<?> resultList = userManageService.selectUserList(userSearchVO) ;
List<?> resultList = letterService.selectHashTagConfList(userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "letter/hashconf/HashConfList";
}
/**
* 문자 발송 해쉬태그 관리 상세보기 화면
*
* @param
* @param
* @return letter/cateconf/categoryConfDetail
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/hashconf/hashTagConfDetail.do")
public String hashTagConfDetail(
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
HashConfVO hashConfVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
String hashId = commandMap.get("selectedId").toString();
hashConfVO.setHashId(hashId);
//장/단문 메세지 내용 저장하기
HashConfVO result = new HashConfVO();
result = letterService.hashTagConfDetail(hashConfVO);
model.addAttribute("result", result);
return "letter/hashconf/HashConfDetail";
}
/**
* 문자 발송 해쉬태그 수정 처리
*
* @param
* @param
* @return /letter/hashconf/hashTagConfList.do
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/letter/hashconf/updateHashTagConf.do")
public String updateHashTagConf(
UserDefaultVO userSearchVO,
HashConfVO hashConfVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
//권한체크
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "redirect:/uat/uia/EgovLoginUsr.do";
}
//문자 발송 해쉬태그 내용 수정하기
int result = letterService.updateHashTagConf(hashConfVO);
if(result > 0) {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
}else {
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.update"));
}
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
return "redirect:/letter/hashconf/hashTagConfList.do";
}
//해쉬태그 엑셀 다운로드
@RequestMapping(value="/letter/hashconf/hashTagExcelDownload.do")
public void hashTagExcelDownload(UserDefaultVO userSearchVO,
HttpServletRequest request,
HttpServletResponse response ,
ModelMap model) throws Exception {
userSearchVO.setRecordCountPerPage(100000);
userSearchVO.setFirstIndex(0);
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("regdate");
userSearchVO.setSearchSortOrd("desc");
}
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if(null != loginVO && !"super".equals(loginVO.getSiteId())){
userSearchVO.setSiteId(loginVO.getSiteId());
}
// 메모리에 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{
List<?> hashTagSearchList = letterService.selectHashTagConfList(userSearchVO) ;
{ //화면 리스트
sheetTitle = "해쉬태그 리스트" ; //제목
Sheet sheet = wb.createSheet(sheetTitle);
row = sheet.createRow(0);
for(int i=0 ; i < hashTagExcelValue.length ; i++) {
cell = row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(hashTagExcelValue[i][1]);
}
for(int i=0; i < hashTagSearchList.size(); i++){
row = sheet.createRow(i+1);
System.out.println("row : "+row);
System.out.println("I : "+i);
for(int j=0 ; j < hashTagExcelValue.length ; j++) {
System.out.println("J : "+ j);
cell = row.createCell(j);
cell.setCellStyle(style);
if(j==0) {
cell.setCellValue(i+1); //번호
}
if(j==1) {
cell.setCellValue((String)((EgovMap)hashTagSearchList.get(i)).get("hashNm")); //카테고리 이름
System.out.println("categoryNm : "+ (String)((EgovMap)hashTagSearchList.get(i)).get("hashNm"));
}
if(j==2) {
BigDecimal sort = (BigDecimal)((EgovMap)hashTagSearchList.get(i)).get("sort");
cell.setCellValue(sort.toString()); //순서
System.out.println("sort : "+ ((EgovMap)hashTagSearchList.get(i)).get("sort"));
}
if(j==3) {
cell.setCellValue((String)((EgovMap)hashTagSearchList.get(i)).get("useYn")); //사용 유무
System.out.println("useYn : "+ (String)((EgovMap)hashTagSearchList.get(i)).get("useYn"));
}
if(j==4) {
cell.setCellValue((String)((EgovMap)hashTagSearchList.get(i)).get("regdate")); //사용 유무
System.out.println("regdate : "+ (String)((EgovMap)hashTagSearchList.get(i)).get("regdate"));
}
}
}
}
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) {}
}
}
/**
* 문자 발송 해쉬태그 삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/letter/hashconf/hashTagConfList.do
* @throws Exception
*/
@RequestMapping("/letter/hashconf/deleteHashTagConf.do")
public String deleteHashTagConf(@RequestParam("checkedIdForDel") String checkedIdForDel,
@ModelAttribute("searchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/letter/hashconf/hashTagConfList.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
// 문자 발송 해쉬태그 삭제 -
letterService.deleteHashTagConf(checkedIdForDel);
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
if(userSearchVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/hashconf/hashTagConfList.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/letter/hashconf/hashTagConfList.do");
return redirectUrlMaker.getRedirectUrl();
}
/* 그림문자 letterIdgen 강제 업데이트 */
@RequestMapping(value="/letter/photo/updateLetterPhotosIdgenAjax.do")
public ModelAndView updateLetterPhotosIdgenAjax(ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail"); //권한없음
return modelAndView;
}
try {
//letterService.updateLetterIdgen(횟수)
letterService.updateLetterIdgen(50);
modelAndView.addObject("result", "success");
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/* 첨부파일 atchFileIdgen 강제 업데이트 */
@RequestMapping(value="/letter/photo/updateAtchFileIdgenAjax.do")
public ModelAndView updateAtchFileIdgenAjax(ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail"); //권한없음
return modelAndView;
}
try {
//fileUtil.updateAtchFileIdgen(횟수)
fileUtil.updateAtchFileIdgen(50);
modelAndView.addObject("result", "success");
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 그림 문자 리스트에서 우선순위 변경
* @param
* @param userSearchVO 검색조건
* @param model 화면모델
* @return
* @throws Exception
*/
@RequestMapping("/letter/photo/updateLetterPriorityChangeAjax.do")
@ResponseBody
public ModelAndView updateLetterPriorityChangeAjax(LetterVO letterVO,
ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail");
return modelAndView;
}
letterVO.setChkIdsSize(letterVO.getChkIds().length);
try {
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int result = letterService.updateChkAfterPriorityPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
result += letterService.updateChkListPriority(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
result += letterService.updateOrderByPriority(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
result += letterService.updateNullPriority(letterVO);
modelAndView.addObject("result", "success");
} catch (Exception e) {
System.out.println(e.getMessage());
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 카테고리 관리 리스트에서 우선순위 변경
* @param
* @param userSearchVO 검색조건
* @param model 화면모델
* @return
* @throws Exception
*/
@RequestMapping("/letter/cateconf/updateCateConfSortChangeAjax.do")
@ResponseBody
public ModelAndView updateCateConfPriorityChangeAjax(LetterVO letterVO,
ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail");
return modelAndView;
}
letterVO.setChkIdsSize(letterVO.getChkIds().length);
try {
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int result = letterService.updateChkCateAfterSortPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
result += letterService.updateChkCateListSort(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
result += letterService.updateCateOrderBySort(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
result += letterService.updateCateNullSort(letterVO);
modelAndView.addObject("result", "success");
} catch (Exception e) {
System.out.println(e.getMessage());
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 베스트 문자샘플 관리 리스트에서 우선순위 변경
* @param
* @param userSearchVO 검색조건
* @param model 화면모델
* @return
* @throws Exception
*/
@RequestMapping("/letter/messages/updateMainTagSortChangeAjax.do")
@ResponseBody
public ModelAndView updateMainTagSortChangeAjax(LetterVO letterVO,
ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail");
return modelAndView;
}
letterVO.setChkIdsSize(letterVO.getChkIds().length);
try {
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int result = letterService.updateChkTagAfterSortPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
result += letterService.updateChkTagListSort(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
result += letterService.updateTagOrderBySort(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
result += letterService.updateTagNullSort(letterVO);
modelAndView.addObject("result", "success");
} catch (Exception e) {
System.out.println(e.getMessage());
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
// 그림문자 해쉬태그 일괄 저장
@RequestMapping(value = "/letter/photo/hashTagMassUpdateAjax.do")
public ModelAndView hashTagMassUpdateAjax(
@ModelAttribute("letterVO") LetterVO letterVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
letterVO.setRegId(frstRegisterId); // 최초등록자ID
try{
// 제목, 해쉬태그 일괄변경
letterService.updateHashTagList(letterVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
*
* 단문/장문 문자 목록 화면 하위 카테고리 selectbox 조회 ajax
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return letter/messages/selectCateTwoDptListAjax
* @throws Exception
*/
@RequestMapping("/letter/messages/selectCateTwoDptListAjax.do")
public ModelAndView selectCateTwoDptListAjax(CateCode cateCode) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
List<CateCode> cateCodeList = letterService.selectCateCodeThrDptWithList(cateCode);
modelAndView.addObject("status", "success");
modelAndView.addObject("result", cateCodeList);
}catch(Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/**
* 메인태그 관리 (pageing)
* @param searchVO
* @param model
* @return "letter/messages/MainTagList"
* @throws Exception
*/
@RequestMapping(value="/letter/messages/selectMainTagList.do")
public String selectMainTagList(@ModelAttribute("searchVO") LetterVO searchVO,
ModelMap model) throws Exception {
if(searchVO.getPageUnit() != 10) {
searchVO.setPageUnit(searchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
searchVO.setSearchSortCnd("mainTagNo");
searchVO.setSearchSortOrd("desc");
}
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<LetterVO> mainTagList = letterService.selectMainTagList(searchVO);
model.addAttribute("resultList", mainTagList);
paginationInfo.setTotalRecordCount(mainTagList.size() > 0 ? ((LetterVO)mainTagList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "letter/messages/MainTagList";
}
/**
* 메인태그 등록화면
* @param searchVO
* @param model
* @return "letter/messages/MainTagRegist"
* @throws Exception
*/
@RequestMapping("/letter/messages/insertMainTagView.do")
public String insertMainTagView(
@ModelAttribute("searchVO") LetterVO searchVO
, Model model) throws Exception {
LetterVO letterVO = new LetterVO();
if(null != searchVO.getCrudMode() && "U".equals(searchVO.getCrudMode())) {
//수정
letterVO = letterService.selectMainTagDetail(searchVO); //이전 로그인한 IP 까지 조회
}
model.addAttribute("letterVO", letterVO);
return "letter/messages/MainTagRegist";
}
// 메인태그 정보
@RequestMapping(value = "/letter/messages/viewMainTagAjax.do")
public ModelAndView viewMainTagAjax(
@ModelAttribute("letterVO") LetterVO searchVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
LetterVO letterVO = new LetterVO();
try {
if(null != searchVO.getCrudMode() && "U".equals(searchVO.getCrudMode())) {
//수정
letterVO = letterService.selectMainTagDetail(searchVO); //이전 로그인한 IP 까지 조회
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("letterVO", letterVO);
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 메인태그 저장
@RequestMapping(value = "/letter/messages/saveMainTagAjax.do")
public ModelAndView saveMainTagAjax(
@ModelAttribute("letterVO") LetterVO letterVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
letterVO.setRegId(frstRegisterId); // 최초등록자ID
try{
if(null != letterVO.getCrudMode() && "U".equals(letterVO.getCrudMode())) {
//수정
letterService.updateMainTag(letterVO);
}
else {
// 등록
letterService.insertMainTag(letterVO);
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/*-------------------------------------------*/
/**
* @Method Name : selectBastMsgTagList
* @작성일 : 2023. 9. 5.
* @작성자 : WYH
* @변경이력 :
* @Method 설명 : 배스트 문자샘플 매인화면
*/
@RequestMapping(value="/letter/messages/selectBastMsgTagList.do")
public String selectBastMsgTagList(@ModelAttribute("searchVO") LetterVO searchVO,
ModelMap model) throws Exception {
if(searchVO.getPageUnit() != 10) {
searchVO.setPageUnit(searchVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
searchVO.setSearchSortCnd("mainSearchTagNo");
searchVO.setSearchSortOrd("desc");
}
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<LetterVO> mainTagList = letterService.selectBastMsgTagList(searchVO);
model.addAttribute("resultList", mainTagList);
paginationInfo.setTotalRecordCount(mainTagList.size() > 0 ? ((LetterVO)mainTagList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "letter/messages/BastMsgTagList";
}
/**
* @Method Name : insertBastMsgTagView
* @작성일 : 2023. 9. 5.
* @작성자 : WYH
* @변경이력 :
* @Method 설명 : 베스트 문자샘플 등록화면
*/
@RequestMapping("/letter/messages/insertBastMsgTagView.do")
public String insertBastMsgTagView(
@ModelAttribute("searchVO") LetterVO searchVO
, Model model) throws Exception {
LetterVO letterVO = new LetterVO();
if(null != searchVO.getMainSearchTagNo() && !"".equals(searchVO.getMainSearchTagNo())) {
//수정
letterVO = letterService.selectBastMsgTagInfo(searchVO); //이전 로그인한 IP 까지 조회
}
model.addAttribute("letterVO", letterVO);
return "letter/messages/BastMsgTagInfo";
}
/**
* @Method Name : saveBastMsgTagAjax
* @작성일 : 2023. 9. 5.
* @작성자 : WYH
* @변경이력 :
* @Method 설명 : 베스트 문자샘플 등록 / 수정
*/
@RequestMapping(value = "/letter/messages/saveBastMsgTagAjax.do")
public ModelAndView saveBastMsgTagAjax(
@ModelAttribute("letterVO") LetterVO letterVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
letterVO.setRegId(frstRegisterId); // 최초등록자ID
try{
if(null != letterVO.getMainSearchTagNo() && !"".equals(letterVO.getMainSearchTagNo())) {
//수정
letterService.updateBastMsgTag(letterVO);
}
else {
// 등록
letterService.insertBastMsgTag(letterVO);
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
@RequestMapping("/letter/messages/updateBastMsgTagSortChangeAjax.do")
@ResponseBody
public ModelAndView updateBastMsgTagSortChangeAjax(LetterVO letterVO,
ModelMap model,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
modelAndView.addObject("result", "auth_fail");
return modelAndView;
}
letterVO.setChkIdsSize(letterVO.getChkIds().length);
try {
//1. 설정하고자 하는 우선순위를 포함한 뒷 우선순위들을 우선순위 + 체크한 리스트 크기만큼 증가시키기
int result = letterService.updateChkBastMsgTagAfterSortPlus(letterVO);
//2. 체크한 리스트들 우선순위 업데이트
result += letterService.updateChkBastMsgTagListSort(letterVO);
//3. 그림문자 전체 우선순위 빈값없이 정렬하기
result += letterService.updateBastMsgTagOrderBySort(letterVO);
//4. 우선순위가 null인 값 우선순위 부여
result += letterService.updateBastMsgTagNullSort(letterVO);
modelAndView.addObject("result", "success");
} catch (Exception e) {
System.out.println(e.getMessage());
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
@RequestMapping(value={"/letter/photo/updateMultiMjonMsgAgentStsDataAjax.do"})
public ModelAndView updateMultiMjonMsgAgentStsDataAjax(@ModelAttribute("mjonMsgAgentStsVO") MjonMsgAgentStsVO mjonMsgAgentStsVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
System.out.print("\n updateMultiMjonMsgAgentStsData 1==== \n");
System.out.print(" mjonMsgAgentStsVO.getAgentCodes().size(): " + mjonMsgAgentStsVO.getAgentCodes().size() + ":===end=== \n");
try{
System.out.print("==== updateMultiMjonMsgAgentStsDataAjax controller try start ==== \n");
mjonMsgAgentStsService.updateMjonMsgAgentStsDataList(mjonMsgAgentStsVO);
System.out.print("==== updateMultiMjonMsgAgentStsDataAjax controller try catch end ==== \n");
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
System.out.println("modelAndView.getViewName(): " + modelAndView.getViewName()) ;
return modelAndView;
}
}