2678 lines
92 KiB
Java
2678 lines
92 KiB
Java
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(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;
|
|
}
|
|
|
|
}
|
|
|
|
|