File name
Commit message
Commit date
File name
Commit message
Commit date
2023-12-21
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
2023-12-19
File name
Commit message
Commit date
package itn.let.mjo.msgCustom.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
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.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.ComDefaultCodeVO;
import itn.com.cmm.LoginVO;
import itn.com.cmm.service.EgovCmmUseService;
import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.EgovFileMngUtil;
import itn.com.cmm.service.FileVO;
import itn.let.mjo.msgCustom.service.MjonMsgCustomService;
import itn.let.mjo.msgCustom.service.MjonMsgCustomVO;
import itn.let.mjo.pay.service.MjonPayService;
import itn.let.mjo.pay.service.MjonPayVO;
@Controller
public class MjonMsgCustomController {
@Resource(name = "mjonMsgCustomService")
private MjonMsgCustomService mjonMsgCustomService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
@Resource(name = "mjonPayService")
private MjonPayService mjonPayService;
/** 첨부파일 저장경로 */
@Value("#{globalSettings['Globals.file.saveDir']}")
private String fileSaveDir;
/**
* @Method Name : selectMjonMsgCustomList
* @작성일 : 2022. 10. 4.
* @작성자 : WYH
* @Method 설명 : 관리자 맞춤문자 요청 전체 리스트
*/
@RequestMapping(value= {"/uss/ion/custom/selectMjonMsgCustomList.do"})
public String selectMjonMsgCustomList(@ModelAttribute("searchVO") MjonMsgCustomVO mjonMsgCustomVO
, ModelMap model) throws Exception{
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
//제작형태 코드 조회
comDefaultCodeVO.setCodeId("ITN040");
List<?> codeResult = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("codeResult", codeResult);
if(mjonMsgCustomVO.getPageUnit() != 10) {
mjonMsgCustomVO.setPageUnit(mjonMsgCustomVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mjonMsgCustomVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mjonMsgCustomVO.getPageUnit());
paginationInfo.setPageSize(mjonMsgCustomVO.getPageSize());
mjonMsgCustomVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mjonMsgCustomVO.setLastIndex(paginationInfo.getLastRecordIndex());
mjonMsgCustomVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(mjonMsgCustomVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
mjonMsgCustomVO.setSearchSortCnd("frstRegistPnttm");
mjonMsgCustomVO.setSearchSortOrd("desc");
}
List<MjonMsgCustomVO> customList = mjonMsgCustomService.selectMjonMsgCustomList(mjonMsgCustomVO);
paginationInfo.setTotalRecordCount(customList.size()> 0 ? customList.get(0).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("customList", customList);
return "/uss/ion/custom/MsgCustomList";
}
/**
* @Method Name : msgCustomInfo
* @작성일 : 2022. 10. 4.
* @작성자 : WYH
* @Method 설명 : 관리자 맞춤문자 등록화면 / 상세보기 / 수정화면
*/
@RequestMapping(value = {"/uss/ion/msg/MsgCustomInfo.do"})
public String msgCustomInfo(
@ModelAttribute("searchVO") MjonMsgCustomVO mjonMsgCustomVO
, HttpServletRequest request
, Model model) throws Exception {
if(!mjonMsgCustomVO.getCustomId().equals(null) && mjonMsgCustomVO.getCustomId() != "" ) { //수정
MjonMsgCustomVO mjonMsgCustomInfo = mjonMsgCustomService.selectMjonMsgCustomInfo(mjonMsgCustomVO);
// if(mjonMsgCustomInfo.getCustomResultImg() != null) {
// FileVO fileVO = new FileVO();
// String atchFileId = mjonMsgCustomInfo.getCustomResultImg();
// fileVO.setAtchFileId(atchFileId);
// List<FileVO> fileList = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", fileList);
// }
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
//제작형태 코드 조회
comDefaultCodeVO.setCodeId("ITN030");
List<?> codeResult = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("codeResult", codeResult);
//제작형태 코드 조회
comDefaultCodeVO.setCodeId("ITN040");
List<?> progCodeList = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("progCodeList", progCodeList);
model.addAttribute("mjonMsgCustomInfo", mjonMsgCustomInfo);
//제작완료 시 첨부파일 변경 가능하게 수정 23.01.25
if("05".equals(mjonMsgCustomInfo.getCustomPaymentYn())) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(mjonMsgCustomInfo.getCustomResultImg());
List<FileVO> fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
return "/uss/ion/custom/MsgCustomInfo";
}
model.addAttribute("mjonMsgCustomVO", mjonMsgCustomVO);
return "/uss/ion/custom/MsgCustomInsert";
}
/**
* @Method Name : selectMsgCustomSampleImgList
* @작성일 : 2022. 10. 4.
* @작성자 : WYH
* @Method 설명 : 관리자 맞춤문자 사용자 요청이미지 리스트 조회
*/
@RequestMapping("/uss/ion/custom/selectMsgCustomSampleImgList.do")
public String selectMsgCustomSampleImgList(@ModelAttribute("searchVO") FileVO fileVO
, @RequestParam Map<String, Object> commandMap
, ModelMap model) throws Exception {
String atchFileId = (String) commandMap.get("atchFileId");
String fileSn = (String) commandMap.get("fileSn");
String sampleId[] = atchFileId.split("/");
String sampleFileSn[] = fileSn.split("/");
List<FileVO> imgList = new ArrayList<FileVO>();
for(int i=0; i< sampleId.length; i++) {
fileVO.setAtchFileId(sampleId[i]);
fileVO.setFileSn(sampleFileSn[i]);
// fileVO.setFileSn(fileSn);
List<FileVO> result = fileService.selectImageFileList(fileVO);
imgList.addAll(result);
}
model.addAttribute("fileList", imgList);
return "/uss/ion/custom/MsgCustomSampleImgList";
}
/**
* @Method Name : selectMsgCustomImgList
* @작성일 : 2022. 10. 4.
* @작성자 : WYH
* @Method 설명 :
*/
@RequestMapping("/uss/ion/custom/selectMsgCustomImgList.do")
public String selectMsgCustomImgList(@ModelAttribute("searchVO") FileVO fileVO
, @RequestParam Map<String, Object> commandMap
, ModelMap model) throws Exception {
String atchFileId = (String) commandMap.get("param_atchFileId");
String fileType = (String) commandMap.get("fileType");
String customPaymentYn = (String) commandMap.get("customPaymentYn");
fileVO.setAtchFileId(atchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("updateFlag", "N");
model.addAttribute("fileListCnt", result.size());
model.addAttribute("atchFileId", atchFileId);
model.addAttribute("fileType", fileType);
model.addAttribute("customPaymentYn", customPaymentYn);
return "/uss/ion/custom/MsgCustomImgList";
}
/** 등록*/
/**
* @Method Name : insertMsgCustomInfoAjax
* @작성일 : 2022. 10. 4.
* @작성자 : WYH
* @Method 설명 : 관리자 맞춤문자 등록
*/
@RequestMapping(value = {"/uss/ion/msg/insertMsgCustomInfoAjax.do"})
public ModelAndView insertMsgCustomInfoAjax(final MultipartHttpServletRequest multiRequest
, MjonMsgCustomVO mjonMsgCustomVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String atchFileId = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {
List<FileVO> result = fileUtil.parseFileInf(files, "CUSTOM_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
mjonMsgCustomVO.setCustomChoiceImg(atchFileId);
}
mjonMsgCustomVO.setFrstRegisterId(user.getId());
mjonMsgCustomVO.setLastUpdusrId(user.getId());
mjonMsgCustomService.insertMjonMsgCustomInfo(mjonMsgCustomVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/** 수정*/
/**
* @Method Name : updateMsgCustomInfoAjax
* @작성일 : 2022. 10. 4.
* @작성자 : WYH
* @Method 설명 : 관리자 맞춤문자 수정
*/
@RequestMapping(value = {"/uss/ion/msg/updateMsgCustomInfoAjax.do"})
public ModelAndView updateMsgCustomInfoAjax(final MultipartHttpServletRequest multiRequest
, MjonMsgCustomVO mjonMsgCustomVO
, RedirectAttributes redirectAttributes
, HttpServletRequest request) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String atchFileId = mjonMsgCustomVO.getCustomResultImg();
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {
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 ("".equals(atchFileId)) {
List<FileVO> result = fileUtil.parseImageFileInf(files, "CUSTOM_", 0, "", imagePath, "");
atchFileId = fileMngService.insertFileInfs(result);
mjonMsgCustomVO.setCustomResultImg(atchFileId);
}else {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(atchFileId);
int cnt = fileMngService.getMaxFileSN(fileVO);
List<FileVO> fileResult = fileUtil.parseImageFileInf(files, "CUSTOM_", cnt, atchFileId, imagePath, "");
fileMngService.updateFileInfs(fileResult);
}
}
mjonMsgCustomVO.setLastUpdusrId(user.getId());
mjonMsgCustomService.updateMjonMsgCustomInfo(mjonMsgCustomVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
@RequestMapping(value = {"/uss/ion/msg/deletMsgCustomInfoAjax.do"})
public ModelAndView deletMsgCustomInfoAjax(
@ModelAttribute("mjonMsgCustomVO") MjonMsgCustomVO mjonMsgCustomVO) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
mjonMsgCustomVO.setLastUpdusrId(user.getId());
mjonMsgCustomService.updateMjonMsgCustomInfo(mjonMsgCustomVO);
//문자 발송 캐시 차감 해주기
MjonPayVO mjonPayVO = new MjonPayVO();
mjonPayVO.setUserId(mjonMsgCustomVO.getUserId());
mjonPayVO.setCash(Float.parseFloat(mjonMsgCustomVO.getCustomAmount()));
mjonPayVO.setFrstRegisterId(mjonMsgCustomVO.getUserId());
mjonPayVO.setMemo("맞춤문자 취소");
mjonPayVO.setOrderId(mjonMsgCustomVO.getCustomId());
mjonPayService.insertCash(mjonPayVO); //캐시차감
modelAndView.addObject("result", "success");
return modelAndView;
}
//제작완료 항목 첨부파일 삭제
@RequestMapping(value = {"/uss/ion/msg/updateMsgCustomFileNullAjax.do"})
public ModelAndView updateMsgCustomFileNullAjax(
@ModelAttribute("mjonMsgCustomVO") MjonMsgCustomVO mjonMsgCustomVO) throws Exception {
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
mjonMsgCustomVO.setLastUpdusrId(user.getId());
mjonMsgCustomService.updateMsgCustomFileNullAjax(mjonMsgCustomVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
}