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.fax.user.web;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO;
import itn.com.cmm.util.FileUtil;
import itn.com.cmm.util.PdfUtil;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.fax.addr.service.FaxAddrService;
import itn.let.fax.addr.service.FaxAddrVO;
import itn.let.fax.user.service.FaxConvertVO;
import itn.let.fax.user.service.FaxGroupDataVO;
import itn.let.fax.user.service.FaxService;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
@Controller
public class FaxController {
private static final Logger logger = LoggerFactory.getLogger(FaxController.class);
@Resource(name = "faxService")
private FaxService faxService;
@Resource (name = "FaxAddrService")
private FaxAddrService faxAddrService;
@Resource(name = "MjonMsgDataService")
private MjonMsgDataService mjonMsgDataService;
/** fax 변환 파일 저장 경로*/
@Value("#{globalSettings['Globals.fax.file.convert.path']}")
private String FAX_CONVERT_FILE_PATH;
/**
* @methodName : selectFaxDataView
* @author : 이호영
* @date : 2023.02.07
* @description :
* @param cateCode
* @param request
* @param model
* @param redirectAttributes
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/fax/faxDataView.do"})
public String faxDataView(HttpServletRequest request, ModelMap model
,FaxAddrVO faxAddrVO, RedirectAttributes redirectAttributes) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(StringUtils.isEmpty(userId)) {
return "redirect:/web/user/login/login.do";
}
// TODO 미로그인 시 로그인 페이지로 이동 처리
model.addAttribute("loginVO", loginVO);
//주소록에서 전달 받은 주소록 정보 조회하기
String moveAddrFlag = faxAddrVO.getMoveAddrFlag();
String moveAddrAllFlag = faxAddrVO.getMoveAddrAllFlag();
if(moveAddrFlag == null || moveAddrFlag.equals("")) {
moveAddrFlag = "N";
}
if(moveAddrAllFlag == null || moveAddrAllFlag.equals("")) {
moveAddrAllFlag = "N";
}
List<String> addrIdList = faxAddrVO.getAddrIdList();
List<String> tempList = new ArrayList<String>();
List<FaxAddrVO> resultFaxAddrList = new ArrayList<FaxAddrVO>();
List<String> addrNmList = new ArrayList<String>();
List<String> addrPhoneNoList = new ArrayList<String>();
int listCnt = 0;
//주소록 선택 전송시
if(moveAddrFlag.equals("Y")) {
for(String seqStr : addrIdList) {
String seqId = seqStr.replace("[", "");
seqId = seqId.replace("]", "");
tempList.add(seqId);
}
faxAddrVO.setAddrIdList(tempList);
faxAddrVO.setMberId(userId);
resultFaxAddrList = faxAddrService.selectFaxAddrDataList(faxAddrVO);
for(FaxAddrVO tmp : resultFaxAddrList) {
addrNmList.add(tmp.getAddrNm());
addrPhoneNoList.add(tmp.getAddrPhoneNo());
}
listCnt = resultFaxAddrList.size();
}
//주소록 전체 전송시
if(moveAddrAllFlag.equals("Y")) {
FaxAddrVO faxAddrAllVO = new FaxAddrVO();
faxAddrAllVO.setMberId(userId);
faxAddrAllVO.setRecordCountPerPage(100000);
faxAddrAllVO.setFirstIndex(0);
faxAddrAllVO.setSearchAddrGrpId(request.getParameter("searchAddrGrpId"));
faxAddrAllVO.setSearchCondition(request.getParameter("searchCondition"));
faxAddrAllVO.setSearchKeyword(request.getParameter("searchKeyword"));
faxAddrAllVO.setStartKeyword(request.getParameter("startKeyword"));
List<FaxAddrVO> reaultaddrAllList = faxAddrService.selectFaxAddrList(faxAddrAllVO);
for(FaxAddrVO tmpAll : reaultaddrAllList) {
addrNmList.add(tmpAll.getAddrNm());
addrPhoneNoList.add(tmpAll.getAddrPhoneNo());
}
listCnt = reaultaddrAllList.size();
}
/* 목록을 가져 온다 */
Map<String, Object> faxDataViewMap = faxService.selectFaxDataView(userId);
//최근 전송내역
model.addAttribute("resultLatestMsgList", faxDataViewMap.get("resultLatestMsgList"));
//자주보내는 번호
model.addAttribute("resultBookMarkMsgList", faxDataViewMap.get("resultBookMarkMsgList"));
//사용자 보유 잔액
model.addAttribute("userMoney", faxDataViewMap.get("userMoney"));
//단가
model.addAttribute("faxPrice", faxDataViewMap.get("faxPrice"));
//주소록에서 전달 받은 주소록 정보
model.addAttribute("addrNmList", addrNmList);
model.addAttribute("addrPhoneNoList", addrPhoneNoList);
model.addAttribute("resultFaxAddrListCnt", listCnt);
model.addAttribute("moveAddrFlag", moveAddrFlag);
model.addAttribute("moveAddrAllFlag", moveAddrAllFlag);
return "/web/fax/faxDataView";
}
@RequestMapping(value= {"/web/mjon/fax/faxSendList.do"})
public String faxSendList(@ModelAttribute("searchVO") FaxGroupDataVO faxGroupDataVO
, ModelMap model) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(StringUtils.isEmpty(userId)) {
return "redirect:/web/user/login/login.do";
}
model.addAttribute("loginVO", loginVO);
try {
/* 목록을 가져 온다 */
faxGroupDataVO.setUserId(userId);
Map<String, Object> faxSendListMap = faxService.selectFaxSendList(faxGroupDataVO);
// 전송내역
model.addAttribute("faxGroupListVO", faxSendListMap.get("faxGroupListVO"));
model.addAttribute("searchKeyword", faxSendListMap.get("searchKeyword"));
model.addAttribute("paginationInfo", faxSendListMap.get("paginationInfo"));
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return "/web/fax/faxSendList";
}
/**
* @methodName : faxSendDetailList
* @author : 이호영
* @date : 2023.04.05
* @description : 상세 팝업
* @param faxGroupDataVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/fax/faxSendDetailPopup.do"})
public String faxSendDetailList(@ModelAttribute("searchVO") FaxGroupDataVO faxGroupDataVO
, ModelMap model) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(StringUtils.isEmpty(userId)) {
return "redirect:/web/user/login/login.do";
}
model.addAttribute("loginVO", loginVO);
/* 목록을 가져 온다 */
faxGroupDataVO.setUserId(userId);
Map<String, Object> resultMap = faxService.selectFaxSendDetailList(faxGroupDataVO);
// 전송내역
model.addAttribute("faxDetailListVO", resultMap.get("faxDetailListVO"));
model.addAttribute("paginationInfo", resultMap.get("paginationInfo"));
return "/web/fax/faxSendDetailPopup";
}
/**
* @methodName : pdfPreview
* @author : 이호영
* @date : 2023.04.06
* @description : pdf 미리보기 / [상세 팝업]문서보기
* @param response
* @param faxConvertVO
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/fax/pdfPreview.do"})
public void pdfPreview(HttpServletResponse response, FaxConvertVO faxConvertVO) throws Exception{
String pdfFileName = faxConvertVO.getFaxConvertFilePath();
if(pdfFileName.indexOf("/") < 0)
pdfFileName = FAX_CONVERT_FILE_PATH+"/" + pdfFileName;
PdfUtil.showPdf(response, pdfFileName);
}
/**
* @methodName : tifDownload
* @author : 이호영
* @date : 2023.04.06
* @description : tif 파일 다운로드
* @param response
* @param faxConvertVO
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/fax/tifDownload.do"})
public void tifDownload(HttpServletResponse response, FaxConvertVO faxConvertVO) throws Exception{
String fileInfo = faxConvertVO.getFaxConvertFilePath();
if(fileInfo.indexOf("/") < 0)
fileInfo = FAX_CONVERT_FILE_PATH+"/" + fileInfo;
FileUtil.downLoad(response, fileInfo, "");
}
/**
* @methodName : getExcelForFaxSendList
* @author : 이호영
* @date : 2023.04.07
* @description : 팩스 전송리스트 엑셀 다운로드
* @param faxGroupDataVO
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/fax/getExcelForFaxSendList.do"})
public void getExcelForFaxSendList( FaxGroupDataVO faxGroupDataVO) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
/* 목록을 가져 온다 */
faxGroupDataVO.setUserId(userId);
faxService.getExcelForFaxSendList(faxGroupDataVO);
}
/**
* @methodName : printfaxSentDataAjax
* @author : 이호영
* @date : 2023.04.07
* @description : 팩스 전송결과 출력하기
* @param faxGroupDataVO
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/fax/printfaxSentDataAjax.do"})
public String printfaxSentDataAjax( FaxGroupDataVO faxGroupDataVO
, ModelMap model) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
String userNm = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getName());
/* 목록을 가져 온다 */
faxGroupDataVO.setUserId(userId);
Map<String, Object> resultMap = faxService.printfaxSentDataAjax(faxGroupDataVO);
model.addAttribute("faxGroupListVO", resultMap.get("faxGroupListVO"));
model.addAttribute("dateMap", resultMap.get("dateMap"));
model.addAttribute("userNm", userNm);
return "web/fax/faxSentPrintListPopUp";
}
@RequestMapping(value= {"/web/mjon/fax/faxSendListAjax.do"})
public String faxSendListAjax(@ModelAttribute("searchVO") FaxGroupDataVO faxGroupDataVO
, ModelMap model) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(StringUtils.isEmpty(userId)) {
return "redirect:/web/user/login/login.do";
}
model.addAttribute("loginVO", loginVO);
/* 목록을 가져 온다 */
faxGroupDataVO.setUserId(userId);
FaxGroupDataVO faxFileInfo = faxService.selectFaxSendDetailInfo(faxGroupDataVO);
// 전송내역
model.addAttribute("faxFileInfo", faxFileInfo);
return "/web/fax/faxSentListPopAjax";
}
}