File name
Commit message
Commit date
2024-11-14
File name
Commit message
Commit date
2024-11-14
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
2024-11-14
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.uss.umt.web;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.RSAPublicKeySpec;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.crypto.Cipher;
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.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springmodules.validation.commons.DefaultBeanValidator;
import com.google.gson.Gson;
import com.penta.scpdb.ScpDbAgent;
import NiceID.Check.CPClient;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.ComDefaultCodeVO;
import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.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.com.cmm.util.EgovDoubleSubmitHelper;
import itn.com.cmm.util.MJUtil;
import itn.com.cmm.util.RedirectUrlMaker;
import itn.com.cmm.util.StringUtil;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cop.bbs.service.BoardVO;
import itn.let.fax.user.service.FaxGroupDataVO;
import itn.let.fax.user.service.FaxService;
import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoATService;
import itn.let.kakao.kakaoComm.KakaoReturnVO;
import itn.let.kakao.kakaoComm.KakaoVO;
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiProfile;
import itn.let.kakao.kakaoComm.kakaoApi.KakaoApiTemplate;
import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService;
import itn.let.mjo.addr.service.AddrService;
import itn.let.mjo.addr.service.AddrVO;
import itn.let.mjo.event.service.MjonEventService;
import itn.let.mjo.event.service.MjonEventVO;
import itn.let.mjo.kisa.service.KisaService;
import itn.let.mjo.kisa.service.KisaVO;
import itn.let.mjo.msg.service.MjPhoneMemberVO;
import itn.let.mjo.msg.service.MjonMsgResultCodeVO;
import itn.let.mjo.msg.service.MjonMsgService;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.mjo.msgCustom.service.MjonMsgCustomService;
import itn.let.mjo.msgCustom.service.MjonMsgCustomVO;
import itn.let.mjo.msgagent.service.MjonMsgAgentStsService;
import itn.let.mjo.msgagent.service.MjonMsgAgentStsVO;
import itn.let.mjo.msgcampain.service.MjonCandidateService;
import itn.let.mjo.msgcampain.service.MjonCandidateVO;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.mjo.msgsent.service.MjonMsgSentService;
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
import itn.let.mjo.pay.service.MjonPayService;
import itn.let.mjo.pay.service.MjonPayVO;
import itn.let.mjo.pay.service.RefundService;
import itn.let.mjo.pay.service.RefundVO;
import itn.let.mjo.payva.service.VacsVactService;
import itn.let.mjo.payva.service.VacsVactVO;
import itn.let.mjo.reservmsg.service.MjonReservMsgService;
import itn.let.org.service.LocVO;
import itn.let.org.service.OrgChartManageService;
import itn.let.sec.ram.service.AuthorManageVO;
import itn.let.sec.ram.service.EgovAuthorManageService;
import itn.let.sec.rgm.service.AuthorGroup;
import itn.let.sec.rgm.service.EgovAuthorGroupService;
import itn.let.sym.ccm.cde.service.CateCode;
import itn.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.log.user.service.UserLogService;
import itn.let.sym.log.user.service.UserLogVO;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.sym.site.service.JoinSettingVO;
import itn.let.sym.site.service.SiteManagerVO;
import itn.let.uat.uia.service.EgovLoginService;
import itn.let.uat.uia.web.EmailVO;
import itn.let.uat.uia.web.SendLogVO;
import itn.let.uat.uia.web.SendMail;
import itn.let.uss.umt.service.EgovMberManageService;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.uss.umt.service.MberManageConfigVO;
import itn.let.uss.umt.service.MberManageVO;
import itn.let.uss.umt.service.UserDefaultVO;
import itn.let.uss.umt.service.UserManageVO;
import itn.let.utl.fcc.service.EgovCryptoUtil;
import itn.let.utl.sim.service.EgovFileScrty;
/**
* 업무사용자관련 요청을 비지니스 클래스로 전달하고 처리된결과를 해당 웹 화면으로 전달하는 Controller를 정의한다
* @author 공통서비스 개발팀 조재영
* @since 2009.04.10
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.04.10 조재영 최초 생성
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
*
* </pre>
*/
@Controller
public class EgovUserManageController {
static String RSA_WEB_KEY = "_RSA_WEB_Key_1"; // 개인키 session key
static String RSA_INSTANCE = "RSA"; // rsa transformation
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
/** cmmUseService */
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
/** EgovMessageSource */
@Resource(name = "egovMessageSource")
EgovMessageSource egovMessageSource;
/** EgovPropertyService */
@Resource(name = "propertiesService")
protected EgovPropertyService propertiesService;
/** mberManageService */
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
/** DefaultBeanValidator beanValidator */
@Autowired
private DefaultBeanValidator beanValidator;
@Resource(name = "EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "egovAuthorManageService")
private EgovAuthorManageService egovAuthorManageService;
/*@Resource(name = "EgovOrgChartManageService")
private EgovOrgChartManageService orgChartManageService;*/
@Resource(name = "orgChartManageService")
private OrgChartManageService orgChartManageService;
@Resource(name = "egovAuthorGroupService")
private EgovAuthorGroupService egovAuthorGroupService;
@Resource(name = "egovSiteManagerService")
private EgovSiteManagerService egovSiteManagerService;
@Resource(name = "loginService")
private EgovLoginService loginService;
@Resource(name = "CmmnDetailCodeManageService")
private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService;
@Resource(name = "UserLogService")
private UserLogService userLogService;
/* MjonMsgDataService */
@Resource(name = "MjonMsgDataService")
private MjonMsgDataService mjonMsgDataService;
/*
* 결제 서비스 호출
* */
@Resource(name = "mjonPayService")
private MjonPayService mjonPayService;
@Resource(name = "mjonMsgService")
private MjonMsgService mjonMsgService;
@Resource(name = "refundService")
private RefundService refundService;
@Resource(name = "KisaService")
private KisaService kisaService;
@Resource(name = "faxService")
private FaxService faxService;
@Resource(name = "mjonCandidateService")
private MjonCandidateService mjonCandidateService;
/* 암복호화 */
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource (name = "AddrService")
private AddrService addrService;
@Resource(name = "MjonMsgSentService")
private MjonMsgSentService mjonMsgSentService;
//전용계좌 서비스
@Resource(name = "vacsVactService")
private VacsVactService vacsVactService;
@Resource(name = "MjonEventService")
private MjonEventService mjonEventService;
@Resource(name = "mjonMsgCustomService")
private MjonMsgCustomService mjonMsgCustomService;
private String topLocNo = "1000000" ; //전역 최상위 매뉴번호
@Resource(name = "mjonMsgAgentStsService")
private MjonMsgAgentStsService mjonMsgAgentStsService;
@Resource(name = "mjonKakaoATService")
private MjonKakaoATService mjonKakaoATService;
@Resource(name = "kakaoApiService")
private KakaoApiService kakaoApiService;
@Resource(name = "MjonReservMsgService")
private MjonReservMsgService mjonReservMsgService;
@Autowired
KakaoApiTemplate kakaoApiTemplate;
@Autowired
KakaoApiProfile kakaoApiProfile;
/** 등급제 관리 서비스 */
@Resource(name = "mberGrdService")
MberGrdService mberGrdService;
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
private String[][] userExcelValue ={
{"0" ,"번호" , "1" , "" },
{"1", "사이트명" , "ITN" , "[코드]"},
{"2", "아이디" , "testId", ""},
{"3", "이름" , "홍길동", ""},
{"4", "권한" , "일반관리자", "[코드]"},
{"5", "전화번호(부서)" , "02-123-4567", ""},
{"6", "이메일" , "test@itn.co.kr", ""},
{"7", "등록일" ,"2019-10-31", ""}
} ;
/**
*
* (관리자)관리자목록을 조회한다. (pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovUserManage
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/EgovUserManage.do", "/uss/umt/user/EgovUserManageMenuAjax.do"})
public String selectUserList(@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");
}
{
//일반관리자가 좌측의 매뉴의 관리자 관리 클릭시 리스트가 아닌 자신의 정보수정페이지로 리로딩.
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();//최고관리자의 경우 비밀번호 확인 없음.
loginVO.setId(loginVO.getId());
if(!"ROLE_ADMIN".equals(loginService.getUserAuth(loginVO).getAuthority())){//최고관리자 아닐경우
return "redirect:/EgovTopPageLink.do?link=/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginVO.getUniqId()+"&baseMenuNo=3500000" ;
}
}
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("uniqId");
userSearchVO.setSearchSortOrd("desc");
}
if("".equals(userSearchVO.getEmplyrSttusCode()) || userSearchVO.getEmplyrSttusCode() == null){ //최초조회시 사용중인 관리자만 조회
userSearchVO.setEmplyrSttusCode("P");
}
List<?> resultList = userManageService.selectUserList(userSearchVO) ;
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
//사용자상태코드를 코드정보로부터 조회
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM038");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
if("/uss/umt/user/EgovUserManageMenuAjax.do".equals(request.getServletPath())) {
return "cmm/uss/umt/EgovUserManageMenuAjax";
}
return "cmm/uss/umt/EgovUserManage";
}
/**
*
* (사용자) 사용자목록을 조회한다. (pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovUserManage
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovGnrlUserManage.do")
public String selectGnrlUserManage(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model, HttpServletRequest request,
HttpSession session) throws Exception {
try {
// 문자 단가
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
double shortPrice = 0; // 단문(SMS)
double longPrice = 0; // 장문(LMS)
double picturePrice = 0; // 그림문자(MMS) 1장
double picture2Price = 0; // 그림문자(MMS) 2장
double picture3Price = 0; // 그림문자(MMS) 3장
shortPrice = (double)sysJoinSetVO.getShortPrice();
longPrice = (double)sysJoinSetVO.getLongPrice();
picturePrice = (double)sysJoinSetVO.getPicturePrice();
picture2Price = (double)sysJoinSetVO.getPicture2Price();
picture3Price = (double)sysJoinSetVO.getPicture3Price();
model.addAttribute("shortPrice", shortPrice);
model.addAttribute("longPrice", longPrice);
model.addAttribute("picturePrice", picturePrice);
model.addAttribute("picture2Price", picture2Price);
model.addAttribute("picture3Price", picture3Price);
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("N");
//System.out.println("userSearchVO.getSearchSortCnd() : " + userSearchVO.getSearchSortCnd());
//System.out.println("userSearchVO.getMberSttus() : " + userSearchVO.getMberSttus());
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
if(userSearchVO.getMberSttus() != null) {
if(userSearchVO.getMberSttus().equals("B")){
userSearchVO.setSearchSortCnd("mberSttusUptPnttm");
userSearchVO.setSearchSortOrd("desc");
}
else {
userSearchVO.setSearchSortCnd("sbscrbDe");
userSearchVO.setSearchSortOrd("desc");
}
}
else {
userSearchVO.setSearchSortCnd("sbscrbDe");
userSearchVO.setSearchSortOrd("desc");
}
}
//후보자 검색 isNotEmpty 조건 candidateYn = 'Y'
userSearchVO.setCandidateYn("Y");
List<?> resultList = mberManageService.selectMberLoginAddList(userSearchVO);
System.out.println("?????????????????????????????");
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
//사용자상태코드를 코드정보로부터 조회
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM038");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록
List<MjonMsgAgentStsVO> hotlineMsgAgentList = mjonMsgAgentStsService.selectMsgAgentListByHotline();
model.addAttribute("hotlineMsgAgentList", hotlineMsgAgentList);
//본인인증
/*String referer = (String)request.getHeader("REFERER");
URL newURL = new URL(referer);
String protocol = newURL.getProtocol() + "://";
String host = newURL.getHost();
String succUrl = protocol + host + "/uss/umt/user/niceCheckAjax.do";
String failUrl = protocol + host + "/uss/umt/user/EgovGnrlUserManage.do";
userSearchVO.setNiceSuccUrl(succUrl);
userSearchVO.setNiceFailUrl(failUrl);*/
model.addAttribute("userSearchVO", userSearchVO);
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
}catch(Exception ex) {
ex.printStackTrace();
}
return "cmm/uss/umt/EgovGnrlUserManage";
}
// 이용정지회원 금일, 금년 잔액 합계
@RequestMapping(value = "/uss/umt/user/selectMberStopCashSumAjax.do")
public ModelAndView DashBoardAdminLogAjax(
@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
MberManageVO mberStopCashSumInfo = null;
try {
mberStopCashSumInfo = mberManageService.selectMberStopCashSum(mberManageVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("mberStopCashSumInfo", mberStopCashSumInfo);
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
*
* (관리자) 신규 사용자목록을 조회한다. (pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovNewUserManage
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovNewUserManage.do")
public String selectNewUserManage(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model) throws Exception {
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();
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("sbscrbDe");
userSearchVO.setSearchSortOrd("desc");
}
//userSearchVO.setFirstIndex(0);
List<?> resultList = mberManageService.selectMberListNewUser(userSearchVO);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("resultList", resultList);
return "cmm/uss/umt/EgovNewUserManage";
}
/**
*
* (관리자) 탈퇴 사용자목록을 조회한다. (pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovDelUserManage
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovDelUserManage.do")
public String selectDelUserManage(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model, HttpServletRequest request,
HttpSession session) throws Exception {
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.setMberSttus("N");
userSearchVO.setAdminYn("N");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("expirePnttm");
userSearchVO.setSearchSortOrd("desc");
}
List<?> resultList = mberManageService.selectMberList(userSearchVO);
model.addAttribute("userSearchVO", userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
// 탈퇴사유별 인원수
List<?> resultMberDelTypeGrpList = mberManageService.selectMberDelTypeGrpList(userSearchVO);
model.addAttribute("resultMberDelTypeGrpList", resultMberDelTypeGrpList);
return "cmm/uss/umt/EgovDelUserManage";
}
/**
* (관리자) 사용자등록화면으로 이동한다.
* @param userSearchVO 검색조건정보
* @param userManageVO 사용자초기화정보
* @param model 화면모델
* @return cmm/uss/umt/EgovUserInsert
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUserInsertView.do")
public String insertUserView(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, @ModelAttribute("userManageVO") UserManageVO userManageVO,Model model)
throws Exception {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
//List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
//조직도 정보조회
/*PartInfVO partInfVO = new PartInfVO();
partInfVO.setDepth(1);
List<PartInfVO> orgChartDepth1 = orgChartManageService.selectChartDepth(partInfVO);
model.addAttribute("orgChartDepth1", orgChartDepth1);*/
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
//selectbox 미리 만들기
LocVO locVO = new LocVO();
locVO.setTopLocNo(topLocNo); //최상위 매뉴번호
List<LocVO> orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO);
String userOneDepth = "";
String userTwoDepth = "";
if(null != userManageVO.getPartIdx() && !"".equals(userManageVO.getPartIdx())) {
for(LocVO tempLocVO : orgHiddenList) {
if(userManageVO.getPartIdx().equals(tempLocVO.getId())){
if(1==tempLocVO.getDepth()) { //1뎁스면 조회 안함
userOneDepth = tempLocVO.getId();
}else { //2뎁스면
userTwoDepth = tempLocVO.getId() ;
userOneDepth = tempLocVO.getParent() ;
}
}
}
}
model.addAttribute("userOneDepth", userOneDepth);
model.addAttribute("userTwoDepth", userTwoDepth);
model.addAttribute("orgHiddenList", orgHiddenList);
return "cmm/uss/umt/EgovUserInsert";
}
/**
* (사용자) 사용자등록화면으로 이동한다.
* @param userSearchVO 검색조건정보
* @param userManageVO 사용자초기화정보
* @param model 화면모델
* @return cmm/uss/umt/EgovUserInsert
* @throws Exception
*/
@RequestMapping(value= {"/uss/umt/user/EgovGnrlUserInsertView.do", "/uss/umt/user/EgovGnrlUserInsertViewAjax.do"} )
public String insertGnrlUserView(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
@ModelAttribute("mberManageVO") MberManageVO mberManageVO,
HttpSession session,
HttpServletRequest request,
Model model)
throws Exception {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
//List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
//사용목적/업종 - ITN024
vo.setCodeId("ITN024");
model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo));
//가입방법 - ITN025
vo.setCodeId("ITN025");
model.addAttribute("joinTypeCode", cmmUseService.selectCmmCodeDetail(vo));
//조직도 정보조회
/*PartInfVO partInfVO = new PartInfVO();
partInfVO.setDepth(1);
List<PartInfVO> orgChartDepth1 = orgChartManageService.selectChartDepth(partInfVO);
model.addAttribute("orgChartDepth1", orgChartDepth1);*/
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
//config 정보 가져오기
MberManageConfigVO mberConfigVO = new MberManageConfigVO();
mberConfigVO.setUseYn("Y"); //사용하는것만
mberConfigVO.setIsSns("N");;
List<MberManageConfigVO> mberManageCnfList = mberManageService.selectMberCnf(mberConfigVO);
model.addAttribute("mberManageCnfList", mberManageCnfList);
if("/uss/umt/user/EgovGnrlUserInsertViewAjax.do".equals(request.getServletPath())) {
return "cmm/uss/umt/EgovGnrlUserInsertAjax";
}
MberManageVO VO = new MberManageVO();
if(null != request.getSession().getAttribute("userSearchVO")) { //세션체크
VO = ((MberManageVO)request.getSession().getAttribute("userSearchVO")) ;
mberManageVO.setNiceNm(VO.getNiceNm()); //이름
mberManageVO.setSexdstnCode(VO.getSexdstnCode()); //성별
mberManageVO.setMoblphonNo(VO.getMoblphonNo()); //핸드폰번호
mberManageVO.setBirthDay(VO.getBirthDay()); //생년월일
session.removeAttribute("userSearchVO");
model.addAttribute("mberManageVO", mberManageVO);
}
return "cmm/uss/umt/EgovGnrlUserInsert";
}
/**
* 사용자등록처리후 목록화면으로 이동한다.
* @param userManageVO 사용자등록정보
* @param bindingResult 입력값검증용 bindingResult
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUserManage.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUserInsert.do")
public String insertUser(@ModelAttribute("userManageVO") UserManageVO userManageVO, BindingResult bindingResult, Model model , RedirectAttributes redirectAttributes) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/uss/umt/user/EgovUserManage.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
if(!validationPasswd(userManageVO.getPassword())){
redirectAttributes.addFlashAttribute("message", "패스워드 규칙에 어긋납니다.");
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
beanValidator.validate(userManageVO, bindingResult);
if (bindingResult.hasErrors()){
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
//List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
//return "forward:/uss/umt/user/EgovUserInsertView.do";
return "cmm/uss/umt/EgovUserInsert";
}else{
try{
userManageService.insertUser(userManageVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
}catch(Exception e){
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert"));
}
}
//관리자등록일 경우
if(userManageVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
//사용자 등록일 경우
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
//return "redirect:/uss/umt/user/EgovUserManage.do";
}
/**
* 사용자정보 수정을 위해 사용자정보를 상세조회한다.
* 최고관리자의 경우에는 비밀번호를 체크하지 않는다.
* @param uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovUserSelectUpdt
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUserSelectUpdtView.do")
public String updateUserView(@RequestParam("selectedId") String uniqId,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
CateCode cateCode,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
Model model) throws Exception {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo));
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
UserManageVO userManageVO = new UserManageVO();
userManageVO = userManageService.selectUser(uniqId);
model.addAttribute("userManageVO", userManageVO);
if(userManageVO == null){
/*redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.select"));
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();*/
}
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
//authorManageVO.setAuthorSet("01");
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
initRsa(request);
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_ADMIN".equals(loginVO.getAuthority())) {
model.addAttribute("isAdmin", "Y");
}
if("ROLE_USER_MEMBER".equals(loginVO.getAuthority())) {
model.addAttribute("isMember", "Y");
}
//selectbox 미리 만들기
LocVO locVO = new LocVO();
locVO.setTopLocNo(topLocNo); //최상위 매뉴번호
List<LocVO> orgHiddenList = orgChartManageService.selectOrgChartListAjax(locVO);
String userOneDepth = "";
String userTwoDepth = "";
if(null != userManageVO.getPartIdx() && !"".equals(userManageVO.getPartIdx())) {
for(LocVO tempLocVO : orgHiddenList) {
if(userManageVO.getPartIdx().equals(tempLocVO.getId())){
if(1==tempLocVO.getDepth()) { //1뎁스면 조회 안함
userOneDepth = tempLocVO.getId();
}else { //2뎁스면
userTwoDepth = tempLocVO.getId() ;
userOneDepth = tempLocVO.getParent() ;
}
}
}
}
model.addAttribute("userOneDepth", userOneDepth);
model.addAttribute("userTwoDepth", userTwoDepth);
model.addAttribute("orgHiddenList", orgHiddenList);
//카테고리 미리만들기 selectbox 미리 만들기
List<CateCode> cateCodeList = cmmnDetailCodeManageService.selectCateCodeWithList(cateCode);
model.addAttribute("cateCodeList", cateCodeList);
return "cmm/uss/umt/EgovUserSelectUpdt";
}
// 회원 조회
@RequestMapping(value="/uss/umt/user/EgovGnrlselectedUserAjax.do")
public ModelAndView addrRecvListAjax(@ModelAttribute MberManageVO reqMberManageVO
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
boolean isExist = true;
String msg = "";
try {
MberManageVO mberManageVO = new MberManageVO();
//회원정보 불러오기
mberManageVO = mberManageService.selectMber(reqMberManageVO.getMberId());
if (null == mberManageVO) {
isExist = false;
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("isExist", isExist);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
* 사용자정보 수정을 위해 사용자정보를 상세조회한다.
* @param selectedUserId -> uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovGnrlUserSelectUpdt
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserView.do")
public String selectedUserView(@ModelAttribute MberManageVO reqMberManageVO,
HttpServletRequest request,
Model model) throws Exception {
/*public String selectedUserView(@RequestParam(value="selectedUserId", required =false, defaultValue="") String uniqId,
HttpServletRequest request,
@ModelAttribute("searchVO") UserDefaultVO userSearchVO,
RedirectAttributes redirectAttributes ,
Model model,
HttpSession session) throws Exception {*/
MberManageVO mberManageVO = new MberManageVO();
//회원정보 불러오기
mberManageVO = mberManageService.selectMber(reqMberManageVO.getMberId());
System.out.println(" mberManageVOmberManageVO");
//스팸 필터링 예외처리 여부 값 - (온: Y, 오프 : N) 온 일때 스미싱의심 예외 되도록 적용
String exceptSpamYn = mberManageVO.getExceptSpamYn();
model.addAttribute("exceptSpamYn", exceptSpamYn);
// 법인폰 알림여부
UserManageVO userManageVO = new UserManageVO();
userManageVO.setMberId(reqMberManageVO.getMberId());
userManageVO = userManageService.selectAdminSmsNoticeYn(userManageVO);
mberManageVO.setAdminSmsNoticeYn(userManageVO.getAdminSmsNoticeYn());
mberManageVO.setPrePaymentYn(userManageVO.getPrePaymentYn());
mberManageVO.setAutoCash(userManageVO.getAutoCash());
mberManageVO.setBlineCode(userManageVO.getBlineCode());
mberManageVO.setRecommendId(userManageVO.getRecommendId());
String userId = mberManageVO.getMberId();
UserLogVO userLogVO = new UserLogVO();
userLogVO.setLoginId(userId);
String mberSttus = mberManageVO.getMberSttus();
if(mberSttus.equals("B")) {
MberManageVO resultSpamMberInfo = mberManageService.selectSpamMemberInfo(mberManageVO);
model.addAttribute("resultSpamMberInfo", resultSpamMberInfo);
}
UserManageVO smishingTmpVO = new UserManageVO();
smishingTmpVO.setMberId(userId);
UserManageVO smishingUserVO = userManageService.selectSmishingYnUserInfo(smishingTmpVO);
model.addAttribute("smishingUserVO", smishingUserVO);
//회원 로그인 로그 기록 조회하기
userLogVO.setFirstIndex(0);
List<UserLogVO> userLogList = userLogService.selectLoginLogId(userLogVO);
model.addAttribute("userLogList",userLogList);
//회원 메모 기록 조회하기
List<MberManageVO> memoList = mberManageService.selectMberMemo(mberManageVO);
model.addAttribute("memoList", memoList);
//현월 총 발송건수
String msgMonthSum = mjonMsgDataService.selectMsgSentSumData(userId);
Calendar aCalendar = Calendar.getInstance();
int nowMonth = aCalendar.get(Calendar.MONTH) + 1;
model.addAttribute("month", Integer.toString(nowMonth));
model.addAttribute("msgMonthSum", msgMonthSum);
//총 결제 금액 조회하기
String sumPayMoney = mjonPayService.selectSumPayMoney(userId);
model.addAttribute("sumPayMoney", sumPayMoney);
//연간 결제 횟수
String oneYearPayCnt = mjonPayService.selectOneYearPayCnt(userId);
model.addAttribute("oneYearPayCnt", oneYearPayCnt);
//회원 캐시 및 포인트 조회하기
Double userMoney = 0.0;
String userPoint = "0";
String money = "0";
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setUserId(userId);
//보유캐시 정보 조회하기
money = mjonMsgDataService.selectBeforeCashData(mjonMsgVO);
if(money != null) {
userMoney = Double.parseDouble(money);
}
//보유 포인트 정보 불러오기
userPoint = mjonMsgDataService.selectBeforePointData(mjonMsgVO);
model.addAttribute("userMoney", userMoney);
model.addAttribute("userPoint", userPoint);
//발신번호 리스트 조회하기
MjPhoneMemberVO phoneMemberVO = new MjPhoneMemberVO();
phoneMemberVO.setUserId(userId);
phoneMemberVO.setFirstIndex(0);
List<MjPhoneMemberVO> sendNumberList = mjonMsgService.selectSendNumberList(phoneMemberVO);
MJUtil mjUtil = new MJUtil();
for(int i=0; i < sendNumberList.size(); i++) {
String phoneNumber = mjUtil.addDash(sendNumberList.get(i).getPhoneNumber());
sendNumberList.get(i).setPhoneNumber(phoneNumber);
}
int countNum = sendNumberList.size() > 0 ? sendNumberList.get(0).getTotCnt() : 0;
model.addAttribute("countNum", countNum);
model.addAttribute("sendNumberList", sendNumberList);
//문자발송 단가 조회하기
//1.시스템 기본 단가 정보 조회하기
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
model.addAttribute("sysShortPrice", sysJoinSetVO.getShortPrice());
model.addAttribute("sysLongPrice", sysJoinSetVO.getLongPrice());
model.addAttribute("sysPicturePrice", sysJoinSetVO.getPicturePrice());
model.addAttribute("sysPicture2Price", sysJoinSetVO.getPicture2Price());
model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
model.addAttribute("sysKakaoAtPrice", sysJoinSetVO.getKakaoAtPrice());
model.addAttribute("sysKakaoFtPrice", sysJoinSetVO.getKakaoFtPrice());
// 등급제 단가 추출 => 시스템 단가에 적용
sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId);
//2.사용자 개인단가 정보가 0이 아니면 개인단가 사용, 없으면 시스템 기본 단가 사용
Float shortPrice = mberManageVO.getShortPrice();
Float longPrice = mberManageVO.getLongPrice();
Float picturePrice = mberManageVO.getPicturePrice();
Float picture2Price = mberManageVO.getPicture2Price();
Float picture3Price = mberManageVO.getPicture3Price();
Float kakaoAtPrice = mberManageVO.getKakaoAtPrice();
Float kakaoFtPrice = mberManageVO.getKakaoFtPrice();
Float faxPrice = mberManageVO.getFaxPrice();
System.out.println("mberManageVO.getFaxPrice() : " + mberManageVO.getFaxPrice());
if(shortPrice < 1 || longPrice < 1 || picturePrice < 1) {
shortPrice = sysJoinSetVO.getShortPrice();
longPrice = sysJoinSetVO.getLongPrice();
picturePrice = sysJoinSetVO.getPicturePrice();
picture2Price = sysJoinSetVO.getPicture2Price();
picture3Price = sysJoinSetVO.getPicture3Price();
}
if(kakaoAtPrice < 1) {
kakaoAtPrice = sysJoinSetVO.getKakaoAtPrice();
}
if(kakaoFtPrice < 1) {
kakaoFtPrice = sysJoinSetVO.getKakaoFtPrice();
}
if(faxPrice < 1) {
faxPrice = sysJoinSetVO.getFaxPrice();
}
model.addAttribute("shortPrice", shortPrice);
model.addAttribute("longPrice", longPrice);
model.addAttribute("picturePrice", picturePrice);
model.addAttribute("picture2Price", picture2Price);
model.addAttribute("picture3Price", picture3Price);
model.addAttribute("kakaoAtPrice", kakaoAtPrice);
model.addAttribute("kakaoFtPrice", kakaoFtPrice);
model.addAttribute("faxPrice", faxPrice);
model.addAttribute("sysJoinSetVO", sysJoinSetVO);
//포인트 교환 내역 조회하기
MjonPayVO mjonPayVO = new MjonPayVO();
mjonPayVO.setUserId(userId);
//최근 5개만 불러오도록 페이징 처리함
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mjonPayVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mjonPayVO.getPageUnit());
paginationInfo.setPageSize(mjonPayVO.getPageSize());
mjonPayVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mjonPayVO.setLastIndex(paginationInfo.getLastRecordIndex());
mjonPayVO.setRecordCountPerPage(5);
if("".equals(mjonPayVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
mjonPayVO.setSearchSortCnd("pointUseId");
mjonPayVO.setSearchSortOrd("desc");
}
//포인트 교환 내역 조회
List<MjonPayVO> pointUseList = mjonPayService.selectPointUseList(mjonPayVO);
model.addAttribute("pointUseList", pointUseList);
//KISA 신고내역 조회하기
KisaVO kisaVO = new KisaVO();
kisaVO.setMberId(userId);
List<KisaVO> kisaList = kisaService.selectKisaListMberId(kisaVO);
model.addAttribute("kisaList", kisaList);
//환불요청 내역 조회하기
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
//환불요청 코드 조회
comDefaultCodeVO.setCodeId("ITN041");
List<?> codeResult = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("refundStatuscode", codeResult);
RefundVO refundVO = new RefundVO();
refundVO.setMberId(userId);
List<RefundVO> refundList = refundService.selectRefundListAllById(refundVO);
model.addAttribute("refundList", refundList);
//double 지수표현 제거를 위해 BigDecimal 사용
List<BigDecimal> cashList = new ArrayList<>();
for(int i = 0 ; i < refundList.size() ; i++) {
BigDecimal b2 = new BigDecimal(refundList.get(i).getRefundMoney()).setScale(2, RoundingMode.HALF_EVEN);
cashList.add(b2);
}
model.addAttribute("cashList", cashList);
//사용목적/업종 코드조회- ITN024
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("ITN024");
model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo));
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId);
model.addAttribute("mjonMsgSentList", mjonMsgSentList);
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만(에약)
List<MjonMsgSentVO> mjonMsgSentList2 = mberManageService.selectMberMsgSentLatestList2(userId);
model.addAttribute("mjonMsgSentList2", mjonMsgSentList2);
//스팸 및 스미싱 문자 지연처리 문자 내용 불러오기(30분 지연처리된 문자 내역 불러오기)
List<MjonMsgSentVO> mjonMsgDelaySentList = mberManageService.selectMberMsgDelaySentList(userId);
model.addAttribute("mjonMsgDelaySentList", mjonMsgDelaySentList);
model.addAttribute("mberManageVO", mberManageVO);
{
/**
* 최근 알리톡/친구톡 전송 내역
* */
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만
//List<MjonKakaoATSentVO> mjonKakaoATSentList = mjonKakaoATService.selectMberKakaoATSentLatestList(userId);
//model.addAttribute("mjonKakaoATSentList", mjonKakaoATSentList);
}
{
/**
* 이벤트 회원 정보 불러오기
*
*
* */
String mberId = reqMberManageVO.getMberId();
MjonEventVO mjonEventVO = new MjonEventVO();
mjonEventVO.setMberId(mberId);
//mjonEventVO.setEventStatus("Y");
MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO);
model.addAttribute("eventMberInfo", eventMberInfo);
long eventDiffDate = 0;
boolean compareEndDate = false;
if(eventMberInfo != null) {
String eventEndDate = eventMberInfo.getEventEndDate();
/**
* MJUtil.getCompareDate()
* 현재 날짜와 파라미터 전달 날짜를 비교
* 전달날짜를 지난경우 False를 리턴함.
* 현재날짜 이전 혹은 같은 날짜면 True를 리턴함.
*
* */
if(eventEndDate != null) {
compareEndDate = MJUtil.getCompareDate(eventEndDate);
if(!compareEndDate) {//이벤트 종료 일자가 지난 경우, 이벤트 상태가 종료아 아니면 종료 처리 시킴
if(!eventMberInfo.getEventStatus().equals("E")) {
//이벤트 상태값을 종료로 변경한다.
mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId());
mjonEventVO.setEventStatus("E");
mjonEventService.updateEventEndStatus(mjonEventVO);
}
}else {//이벤트 진행중이면 남은 날짜 계산해서 전달.
/**
* MJUtil.getDiffDateDay()
* 현재 날짜와 파라미터 날짜 사이의 날짜 수를 계산해줌.
*
* */
eventDiffDate = MJUtil.getDiffDateDay(eventEndDate);
}
}
}
//남은 날짜값을 절대값으로 변경(음수로 나오기 때문)
model.addAttribute("eventDiffDate", Math.abs(eventDiffDate));
model.addAttribute("compareEndDate", compareEndDate);
}
{// 맞춤제작 리스트 조회
//제작형태 코드 조회
comDefaultCodeVO.setCodeId("ITN030");
List<?> customCode = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("customCode", customCode);
//요청상태 코드 조회
comDefaultCodeVO.setCodeId("ITN040");
List<?> compleatCode = cmmUseService.selectCmmCodeDetail(comDefaultCodeVO);
model.addAttribute("compleatCode", compleatCode);
MjonMsgCustomVO mjonMsgCustomVO = new MjonMsgCustomVO();
mjonMsgCustomVO.setUserId(userId);
List<MjonMsgCustomVO> customtList = mjonMsgCustomService.selectUserCustomtList(mjonMsgCustomVO);
model.addAttribute("customtList", customtList);
}
{// 문자 타입별 최저/최고 단가
double minPriceS;
double maxPriceS;
double minPriceL;
double maxPriceL;
double minPriceP;
double maxPriceP;
double avgPriceS = 0.00;
double avgPriceL = 0.00;
double avgPriceP = 0.00;
double kakaoAtCost = 0.00;
double kakaoAtMargin = 0.00;
double kakaoFtCost = 0.00;
double kakaoFtMargin = 0.00;
double faxCost = 0.00;
double faxMargin = 0.00;
MjonMsgAgentStsVO mjonMsgAgentStsVO = new MjonMsgAgentStsVO();
mjonMsgAgentStsVO.setMsgType("S");
mjonMsgAgentStsVO = mjonMsgAgentStsService.selectMjonMsgAgentMinMaxInfo(mjonMsgAgentStsVO);
minPriceS = mjonMsgAgentStsVO.getMinPrice();
maxPriceS = mjonMsgAgentStsVO.getMaxPrice();
mjonMsgAgentStsVO.setMsgType("L");
mjonMsgAgentStsVO = mjonMsgAgentStsService.selectMjonMsgAgentMinMaxInfo(mjonMsgAgentStsVO);
minPriceL = mjonMsgAgentStsVO.getMinPrice();
maxPriceL = mjonMsgAgentStsVO.getMaxPrice();
mjonMsgAgentStsVO.setMsgType("P");
mjonMsgAgentStsVO = mjonMsgAgentStsService.selectMjonMsgAgentMinMaxInfo(mjonMsgAgentStsVO);
minPriceP = mjonMsgAgentStsVO.getMinPrice();
maxPriceP = mjonMsgAgentStsVO.getMaxPrice();
List<MjonMsgAgentStsVO> msgAvgPriceList = new ArrayList<MjonMsgAgentStsVO>();
msgAvgPriceList = mjonMsgAgentStsService.selectMsgAvgPriceList();
for (MjonMsgAgentStsVO item : msgAvgPriceList) {
if (item.getMsgType().equals("S")) {
avgPriceS = Double.parseDouble(item.getAgentPrice());
}
else if (item.getMsgType().equals("L")) {
avgPriceL = Double.parseDouble(item.getAgentPrice());
}
else if (item.getMsgType().equals("P")) {
avgPriceP = Double.parseDouble(item.getAgentPrice());
}
}
/*
* 알림톡,친구톡 원가 정보 조회
* Agent 코드 번호를 넘겨준다.
* 다우기술 04번으로 넘겨줌
* */
MjonMsgAgentStsVO resultAgentCost = mjonMsgAgentStsService.selectHotLineAgentCost("04");
kakaoAtCost = resultAgentCost.getKakaoAtCost(); //알림톡 원가
kakaoFtCost = resultAgentCost.getKakaoFtCost(); //친구톡 원가
// kakao 알림톡 마진률 계산
//kakaoAtCost = kakaoApiService.selectKakaoCost();
kakaoAtMargin = (1-(kakaoAtCost / kakaoAtPrice))*100;
//kakao 친구톡 마진률 계산
kakaoFtMargin = (1-(kakaoFtCost / kakaoFtPrice))*100;
// fax 원가 SELECT
faxCost = faxService.getFaxCost();
// fax 마직 계산 :: 1-원가/단가
faxMargin = (1-(faxCost / faxPrice))*100;
model.addAttribute("minPriceS", minPriceS);
model.addAttribute("maxPriceS", maxPriceS);
model.addAttribute("minPriceL", minPriceL);
model.addAttribute("maxPriceL", maxPriceL);
model.addAttribute("minPriceP", minPriceP);
model.addAttribute("maxPriceP", maxPriceP);
model.addAttribute("avgPriceS", avgPriceS);
model.addAttribute("avgPriceL", avgPriceL);
model.addAttribute("avgPriceP", avgPriceP);
model.addAttribute("kakaoAtCost", kakaoAtCost);
model.addAttribute("kakaoFtCost", kakaoFtCost);
model.addAttribute("kakaoAtMargin", kakaoAtMargin);
model.addAttribute("kakaoFtMargin", kakaoFtMargin);
model.addAttribute("faxCost", faxCost);
model.addAttribute("faxMargin", faxMargin);
}
{//전용전송사 선택시 마진율 계산을 위한 데이터 조회
String hotLineAgentCode = mberManageVO.getHotlineAgentCode();
double agentPriceS = 0.00; //전송사 단문 발송 단가
double agentPriceL = 0.00; //전송사 장문 발송 단가
double agentPriceP = 0.00; //전송사 그림 발송 단가
double agentCostS = 0.00; //전송사 단문 발송 원가
double agentCostL = 0.00; //전송사 장문 발송 원가
double agentCostP = 0.00; //전송사 그림 발송 원가
String agentCodeNm = "";
if(!hotLineAgentCode.equals("00")) {
//전용 전송사 발송 단가 조회
List<MjonMsgAgentStsVO> resultAgentPriceList = mjonMsgAgentStsService.selectHotLineAgentPriceList(hotLineAgentCode);
System.out.println("??????????????????????!!!!!!!!!!!!!!");
agentCodeNm = resultAgentPriceList.get(0).getAgentCodeNm();
for(MjonMsgAgentStsVO hotLineVO : resultAgentPriceList) {
String msgType = hotLineVO.getMsgType();
if(msgType.equals("S")) {
agentPriceS = Double.parseDouble(hotLineVO.getAgentPrice());
}else if(msgType.equals("L")) {
agentPriceL = Double.parseDouble(hotLineVO.getAgentPrice());
}else {
agentPriceP = Double.parseDouble(hotLineVO.getAgentPrice());
}
}
//전용 전송사 발송 단가 조회
MjonMsgAgentStsVO resultAgentCost = mjonMsgAgentStsService.selectHotLineAgentCost(hotLineAgentCode);
agentCostS = resultAgentCost.getShortCost();
agentCostL = resultAgentCost.getLongCost();
agentCostP = resultAgentCost.getPictureCost();
model.addAttribute("agentPriceS", agentPriceS);
model.addAttribute("agentPriceL", agentPriceL);
model.addAttribute("agentPriceP", agentPriceP);
model.addAttribute("agentCostS", agentCostS);
model.addAttribute("agentCostL", agentCostL);
model.addAttribute("agentCostP", agentCostP);
model.addAttribute("agentCodeNm", agentCodeNm);
}
}
{//첫결제 내역 정보 불러오기
MjonPayVO resultMjonFrstPayVO = mjonPayService.selectFrstPayInfoByUserId(userId);
model.addAttribute("resultMjonFrstPayVO", resultMjonFrstPayVO);
if(resultMjonFrstPayVO != null) {
//첫결제 충전 포인트 정보 조회
MjonPayVO resultMjonFrstPointVO = mjonPayService.selectFrstPointInfoByUserId(resultMjonFrstPayVO);
model.addAttribute("mjonFrstPointVO", resultMjonFrstPointVO);
}
}
{//카카오 채널 및 알림톡 관련 내역 처리
//System.out.println("++++++++++++++++++++ serverName ::: "+request.getServerName());
//String serverName = request.getServerName();
//if(!serverName.equals("www.munjaon.co.kr")) {
/*
* 카카오 채널ID 정보 불러오기(채널 갯수)
* */
System.out.println(reqMberManageVO.getMberId());
KakaoVO kakaoVO = new KakaoVO();
kakaoVO.setUserId(reqMberManageVO.getMberId());
List<KakaoVO> resultKakaoChannelIDList = kakaoApiService.selectKakaoProfileList(kakaoVO);
int channelIdCnt = resultKakaoChannelIDList.size();
model.addAttribute("channelIdCnt", channelIdCnt);
model.addAttribute("resultKakaoChannelIDList", resultKakaoChannelIDList);
/*
* 알림톡/친구톡 최근 발송내역 리스트 불러오기
*/
KakaoVO sendKakaoVO = new KakaoVO();
//sendKakaoVO.setSearchCondition2("N");//예약건은 제외하기
sendKakaoVO.setReserveCYn("N");//예약취소건은 제외하기
sendKakaoVO.setUserId(reqMberManageVO.getMberId());
// 문자발송 완료건은 모두 보이도록 처리
//kakaoVO.setMsgType("8");
sendKakaoVO.setSearchSortCnd("reqDate");
sendKakaoVO.setSearchSortOrd("desc");
sendKakaoVO.setFirstIndex(0);
sendKakaoVO.setPageType("sand");
List<KakaoVO> kakaoResultList = new ArrayList<KakaoVO>();
kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(sendKakaoVO);
model.addAttribute("kakaoResultList", kakaoResultList);
/*
* 알림톡/친구톡 예약발송 리스트 불러오기
*/
KakaoVO reserveKakaoVO = new KakaoVO();
reserveKakaoVO.setReserveYn("Y"); //예약건만 조회
reserveKakaoVO.setSearchCondition2("Y");//예약건만 불러오기
reserveKakaoVO.setReserveCYn("N");//예약취소건은 제외하기
reserveKakaoVO.setUserId(reqMberManageVO.getMberId());
// 문자발송 완료건은 모두 보이도록 처리
//kakaoVO.setMsgType("8");
reserveKakaoVO.setSearchSortCnd("reqDate");
reserveKakaoVO.setSearchSortOrd("desc");
reserveKakaoVO.setFirstIndex(0);
reserveKakaoVO.setPageType("sand");
List<KakaoVO> kakaoReserveList = new ArrayList<KakaoVO>();
kakaoReserveList = mjonKakaoATService.selectReserveMjonKakaoATGroupList(reserveKakaoVO);
model.addAttribute("kakaoReserveList", kakaoReserveList);
/*
* 알림톡 지연처리 알림톡 내용 불러오기(30분 지연처리된 알림톡 내역 불러오기)
*/
List<KakaoVO> kakaoATDelaySentList = mjonKakaoATService.selectKakaoATDelaySentList(reqMberManageVO.getMberId());
model.addAttribute("kakaoATDelaySentList", kakaoATDelaySentList);
}
{//팩스 발송 내역 리스트 불러오기
List<FaxGroupDataVO> faxSendListVO = faxService.selectFaxMainList(new FaxGroupDataVO(reqMberManageVO.getMberId()));
model.addAttribute("faxSendListVO", faxSendListVO);
}
{//사용중인 전송사 정보 조회하기 - 사용자 전용 전송사 리스트 표시용
List<MjonMsgAgentStsVO> hotlineMsgAgentList = mjonMsgAgentStsService.selectMsgAgentListByHotline();
model.addAttribute("hotlineMsgAgentList", hotlineMsgAgentList);
}
System.out.println("+++++++++++++++++++++++ prePaymentYn ::: "+mberManageVO.getPrePaymentYn());
return "cmm/uss/umt/EgovGnrlUserSelectUpdt";
}
/**
* 회원정보 팝업 이벤트 강제 종료 기능
* @param eventVO
* @param model
* @return modelAndView
* @throws Exception
* /kisaWeb/kisaWeb/updateKisaWarnMessageAjax.do
*/
@RequestMapping(value = {"/uss/umt/user/updateEventEndAjax.do"})
public ModelAndView updateEventEndAjax(MjonEventVO mjonEventVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId == null) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//이벤트 강제 종료 처리
mjonEventVO.setEventEndDate(MJUtil.getRealTime());
mjonEventVO.setEventStatus("E");
//이벤트 강제 처리에 따른 회원 메모 추가
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setMberId(mjonEventVO.getMberId());
mberManageVO.setFrstRegisterId(userId);//관리자 아이디
mberManageVO.setUniqId(mjonEventVO.getUniqId());//회원의 고유 아이디
mberManageVO.setMemoCn("이벤트 강제 종료 처리 사유 : " + mjonEventVO.getEventMemo());
//이벤트 강제종료 처리 및 회원 메모 입력
int resultCnt = mjonEventService.updateEventAdmClosedStatus(mjonEventVO, mberManageVO);
if(resultCnt > 0) {
modelAndView.addObject("message", "이벤트가 정상적으로 종료 되었습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "이벤트를 종료하는중 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 회원정보 팝업 이벤트 수정 기능
* @param eventVO
* @param model
* @return modelAndView
* @throws Exception
* /kisaWeb/kisaWeb/updateKisaWarnMessageAjax.do
*/
@RequestMapping(value = {"/uss/umt/user/updateEventEditAjax.do"})
public ModelAndView updateEventEditAjax(MjonEventVO mjonEventVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId == null) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//이벤트 강제 종료 처리 - 이벤트 종료일자가 없으면 현재 시간 입력
//이벤트 수정시 시작일 및 종료일의 값을 넘겨주고 있음
if(mjonEventVO.getEventEndDate().equals("")) {
mjonEventVO.setEventEndDate(MJUtil.getRealTime());
}
mjonEventVO.setEventStatus("Y");
//이벤트 강제 처리에 따른 회원 메모 추가
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setMberId(mjonEventVO.getMberId());
mberManageVO.setFrstRegisterId(userId);//관리자 아이디
mberManageVO.setUniqId(mjonEventVO.getUniqId());//회원의 고유 아이디
String memo = "";
memo = "첫결제 충전캐시 수정 : " + mjonEventVO.getEventRemainOriginCash() + "원 => " + mjonEventVO.getEventRemainCash() + "원으로 변경";
if (!mjonEventVO.getEventMemo().equals("")) {
memo += ", 수정코멘트 : " + mjonEventVO.getEventMemo();
}
mberManageVO.setMemoCn(memo);
//이벤트 강제종료 처리 및 회원 메모 입력
int resultCnt = mjonEventService.updateEventAdmEdit(mjonEventVO, mberManageVO);
if(resultCnt > 0) {
modelAndView.addObject("message", "이벤트가 정상적으로 수정 되었습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "이벤트 수정중 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 회원정보 팝업 이벤트 정보 신규 추가 기능
* @param eventVO
* @param model
* @return modelAndView
* @throws Exception
*
*/
@RequestMapping(value = {"/uss/umt/user/insertEventAddAjax.do"})
public ModelAndView insertEventAddAjax(MjonEventVO mjonEventVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId == null) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
try {
/**
* 이벤트 컨텐츠 정보 불러오기
* 이벤트 게시글 제목 및 카테고리로 검색해서 불러온다.
*
* */
float nttId = 0;
String bbsId = "BBSMSTR_000000000731"; //이벤트 게시판 번호
String nttSj = "[첫결제 이벤트] 첫 결제 시, 누구나 조건 없이 인생 최저가!";
BoardVO resultEvent = selectEventBoardInfo(bbsId, nttSj);
//이벤트 현재 시간 및 2개월 뒤 시간 셋팅
String nowDate = MJUtil.getRealTime();
String eventEndDate = MJUtil.getAfterTimerMonth(2);
mjonEventVO.setEventStartDate(nowDate); //이벤트 시작일자 설정
mjonEventVO.setEventEndDate(eventEndDate); //이벤트 종료일자 설정
mjonEventVO.setEventStatus("Y"); //이벤트 상태를 진행 중으로 변경
mjonEventVO.setEventPolicyYn("Y"); //정책 동의
mjonEventVO.setEventSmsYn("N"); //문자 수신 동의
mjonEventVO.setEventShortPrice("7.5"); //단문 단가
mjonEventVO.setEventLongPrice("32"); //장문 단가
mjonEventVO.setEventPicturePrice("59"); //그림1장 단가
mjonEventVO.setEventPicture2Price("67"); //그림2장 단가
mjonEventVO.setEventPicture3Price("70"); //그림3장 단가
mjonEventVO.setFrstRegisterId(userId); //등록처리하는 관리자 아이디 셋팅
if(resultEvent != null) {//이벤트 게시판의 이벤트 게시글 번호 셋팅
mjonEventVO.setEventNttId(Float.toString(resultEvent.getNttId()));
mjonEventVO.setEventBbsId(resultEvent.getBbsId());
}else {//이벤트 게시글 정보가 없으면 0으로 셋팅.
modelAndView.addObject("resultSts", "eventEnded");
return modelAndView;
}
//이벤트 회원정보 존재여부 확인 및 회원 정보 불러오기
MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO);
if(eventMberInfo != null) {
modelAndView.addObject("message", "등록된 이벤트 정보가 있어 추가할 수 없습니다.");
modelAndView.addObject("result", "fail");
return modelAndView;
}
//이벤트 정보 신규 추가 처리
int resultCnt = mjonEventService.insertEventFrstInfoByAdm(mjonEventVO);
if(resultCnt > 0) {
modelAndView.addObject("message", "이벤트가 정상적으로 추가 되었습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "이벤트를 추가하는중 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
System.out.println("++++++++++++++++ insertEventAddAjax Controller Error !!! " + e);
modelAndView.addObject("message", "이벤트를 추가하는중 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
return modelAndView;
}
return modelAndView;
}
//이벤트 게시글 정보 불러오기 함수
public BoardVO selectEventBoardInfo(String bbsId, String nttSj) throws Exception{
BoardVO boardVO = new BoardVO();
boardVO.setBbsId(bbsId);
boardVO.setNttSj(nttSj);
BoardVO resultEvent = mjonEventService.selectEventInfoByNttSj(boardVO);
return resultEvent;
}
/**
* 사용자정보 발송 문자내역 리스트 팝업 띄우기
* @param selectedUserId -> uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovGnrlUserSelectUpdtPopup
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserMsgDataListAjax.do")
public String EgovGnrlselectedUserMsgDataListAjax(@ModelAttribute MberManageVO reqMberManageVO,
@ModelAttribute("searchVO") MjonMsgVO searchVO,
HttpServletRequest request,
Model model) throws Exception {
searchVO.setUserId(reqMberManageVO.getMberId());
//회원정보 불러오기
MberManageVO mberManageVO = mberManageService.selectMber(reqMberManageVO.getMberId());
String mberSttus = mberManageVO.getMberSttus(); //이용자 상태값 저장
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
searchVO.setSearchSortCnd("msgGroupId");
searchVO.setSearchSortOrd("desc");
}
//3개월전 첫째날과 마지막 날짜 받아오기
if(StringUtil.isEmpty(searchVO.getNtceBgnde())) {
searchVO.setNtceBgnde(StringUtil.getDate3MonthAgoFirstDay());
searchVO.setNtceEndde(StringUtil.getDateMonthLastDay());
if (searchVO.getReserveType().equals("R")) {
searchVO.setNtceEndde(StringUtil.getDateMonthLastDay1YearAfter());
}
}
//searchVO 원본 문자 타입 및 파일 갯수 저장해 놓기
String msgType = searchVO.getMsgType();
String fileCnt = searchVO.getFileCnt();
String sendKind = searchVO.getSendKind();
//전체 리스트 불러오기
List<MjonMsgVO> resultList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("");
//resultList = mjonMsgService.selectUserMsgDataListByMbrId(searchVO);
resultList = mjonMsgService.selectUserMsgDataListByMbrId2(searchVO);
model.addAttribute("resultList", resultList);
model.addAttribute("mberSttus", mberSttus); //이용자 상태값 전달
//종합 리스트 정보 불러오기
//단문 리스트 정보 불러오기
/*List<MjonMsgVO> resultSmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("4");
searchVO.setFileCnt("");
resultSmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultSmsList", resultSmsList);
//장문 리스트 정보 불러오기
List<MjonMsgVO> resultLmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("6");
searchVO.setFileCnt("");
resultLmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultLmsList", resultLmsList);
//그림 리스트 정보 불러오기
List<MjonMsgVO> resultMmsList = new ArrayList<MjonMsgVO>();
searchVO.setMsgType("6");
searchVO.setFileCnt("0");
resultMmsList = mjonMsgService.selectUserMsgDataTotInfoListByMbrId(searchVO);
model.addAttribute("resultMmsList", resultMmsList);
String msgGroupSCntSum = "0"; //정상수신 총 건수 합계
String totSPriceSum = "0"; //정상수신 총 금액 합계
String msgGroupFWCntSum = "0"; //실패대기 총 건수 합계
String totFWPriceSum = "0"; //실패대기 총 금액 합계
if(resultList.size() > 0) {
msgGroupSCntSum = ((MjonMsgVO)resultList.get(0)).getMsgGroupSCntSum();
totSPriceSum = ((MjonMsgVO)resultList.get(0)).getTotSPriceSum();
msgGroupFWCntSum = ((MjonMsgVO)resultList.get(0)).getMsgGroupFWCntSum();
totFWPriceSum = ((MjonMsgVO)resultList.get(0)).getTotFWPriceSum();
}
model.addAttribute("msgGroupSCntSum", msgGroupSCntSum);
model.addAttribute("totSPriceSum", totSPriceSum);
model.addAttribute("msgGroupFWCntSum", msgGroupFWCntSum);
model.addAttribute("totFWPriceSum", totFWPriceSum);
//단문 건수 및 금액 변수 처리
String msgSmsGroupSCntSum = "0"; //정상수신 총 건수 합계
String totSmsSPriceSum = "0"; //정상수신 총 금액 합계
String msgSmsGroupFWCntSum = "0"; //실패대기 총 건수 합계
String totSmsFWPriceSum = "0"; //실패대기 총 금액 합계
if(resultSmsList.size() > 0) {
msgSmsGroupSCntSum = ((MjonMsgVO)resultSmsList.get(0)).getMsgGroupSCntSum();
totSmsSPriceSum = ((MjonMsgVO)resultSmsList.get(0)).getTotSPriceSum();
msgSmsGroupFWCntSum = ((MjonMsgVO)resultSmsList.get(0)).getMsgGroupFWCntSum();
totSmsFWPriceSum = ((MjonMsgVO)resultSmsList.get(0)).getTotFWPriceSum();
}
model.addAttribute("msgSmsGroupSCntSum", msgSmsGroupSCntSum);
model.addAttribute("totSmsSPriceSum", totSmsSPriceSum);
model.addAttribute("msgSmsGroupFWCntSum", msgSmsGroupFWCntSum);
model.addAttribute("totSmsFWPriceSum", totSmsFWPriceSum);
//장문 건수 및 금액 변수 처리
String msgLmsGroupSCntSum = "0"; //정상수신 총 건수 합계
String totLmsSPriceSum = "0"; //정상수신 총 금액 합계
String msgLmsGroupFWCntSum = "0"; //실패대기 총 건수 합계
String totLmsFWPriceSum = "0"; //실패대기 총 금액 합계
if(resultLmsList.size() > 0) {
msgLmsGroupSCntSum = ((MjonMsgVO)resultLmsList.get(0)).getMsgGroupSCntSum();
totLmsSPriceSum = ((MjonMsgVO)resultLmsList.get(0)).getTotSPriceSum();
msgLmsGroupFWCntSum = ((MjonMsgVO)resultLmsList.get(0)).getMsgGroupFWCntSum();
totLmsFWPriceSum = ((MjonMsgVO)resultLmsList.get(0)).getTotFWPriceSum();
}
model.addAttribute("msgLmsGroupSCntSum", msgLmsGroupSCntSum);
model.addAttribute("totLmsSPriceSum", totLmsSPriceSum);
model.addAttribute("msgLmsGroupFWCntSum", msgLmsGroupFWCntSum);
model.addAttribute("totLmsFWPriceSum", totLmsFWPriceSum);
//그림 건수 및 금액 변수 처리
String msgMmsGroupSCntSum = "0"; //정상수신 총 건수 합계
String totMmsSPriceSum = "0"; //정상수신 총 금액 합계
String msgMmsGroupFWCntSum = "0"; //실패대기 총 건수 합계
String totMmsFWPriceSum = "0"; //실패대기 총 금액 합계
if(resultMmsList.size() > 0) {
msgMmsGroupSCntSum = ((MjonMsgVO)resultMmsList.get(0)).getMsgGroupSCntSum();
totMmsSPriceSum = ((MjonMsgVO)resultMmsList.get(0)).getTotSPriceSum();
msgMmsGroupFWCntSum = ((MjonMsgVO)resultMmsList.get(0)).getMsgGroupFWCntSum();
totMmsFWPriceSum = ((MjonMsgVO)resultMmsList.get(0)).getTotFWPriceSum();
}
model.addAttribute("msgMmsGroupSCntSum", msgMmsGroupSCntSum);
model.addAttribute("totMmsSPriceSum", totMmsSPriceSum);
model.addAttribute("msgMmsGroupFWCntSum", msgMmsGroupFWCntSum);
model.addAttribute("totMmsFWPriceSum", totMmsFWPriceSum);
*/
System.out.println("===========================================================");
System.out.println("===========================================================");
List<MjonMsgVO> sendSttstList = new ArrayList<MjonMsgVO>();
searchVO.setSendKind("");
MjonMsgVO allSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
System.out.println("allSttstInfo.toString() : " + allSttstInfo.toString());
allSttstInfo.setSendKind("");
searchVO.setSendKind("H");
MjonMsgVO hompageSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
hompageSttstInfo.setSendKind("H");
searchVO.setSendKind("A");
MjonMsgVO apiSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
apiSttstInfo.setSendKind("A");
sendSttstList.add(allSttstInfo);
sendSttstList.add(hompageSttstInfo);
sendSttstList.add(apiSttstInfo);
model.addAttribute("sendSttstList", sendSttstList);
System.out.println("===========================================================");
System.out.println("===========================================================");
System.out.println("===========================================================");
//searchVO 데이터 원복 시키기
searchVO.setMsgType(msgType);
searchVO.setFileCnt(fileCnt);
searchVO.setSendKind(sendKind);
//문자발송 실패 결과 코드정보 리스트 불러오기
MjonMsgResultCodeVO mjonMsgResultCodeVO = new MjonMsgResultCodeVO();
List<MjonMsgResultCodeVO> resultMsgCodeList = mjonMsgService.selectMsgResultCodeAllList(mjonMsgResultCodeVO);
model.addAttribute("resultMsgCodeList", resultMsgCodeList);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "cmm/uss/umt/EgovGnrlUserSelectMsgDataListPop";
}
/**
* 사용자정보 발송 문자내역 상세(Msg Group List) 리스트 팝업 띄우기
* @param selectedUserId -> uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovGnrlUserSelectUpdtPopup
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserMsgDataDetailListAjax.do")
public String EgovGnrlselectedUserMsgDataDetailListAjax(@ModelAttribute("searchVO") MjonMsgVO searchVO,
HttpServletRequest request,
Model model) throws Exception {
searchVO.setUserId(searchVO.getUserId());
//회원정보 불러오기
MberManageVO mberManageVO = mberManageService.selectMber(searchVO.getUserId());
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
searchVO.setSearchSortCnd("msgGroupId");
searchVO.setSearchSortOrd("desc");
}
List<MjonMsgVO> resultList = new ArrayList<MjonMsgVO>();
resultList = mjonMsgService.selectMjonMsgGroupDtList(searchVO);
model.addAttribute("resultList", resultList);
model.addAttribute("searchVO", searchVO);
//문자발송 실패 결과 코드정보 리스트 불러오기
MjonMsgResultCodeVO mjonMsgResultCodeVO = new MjonMsgResultCodeVO();
List<MjonMsgResultCodeVO> resultMsgCodeList = mjonMsgService.selectMsgResultCodeAllList(mjonMsgResultCodeVO);
model.addAttribute("resultMsgCodeList", resultMsgCodeList);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "cmm/uss/umt/EgovGnrlUserSelectMsgDataDetailListPop";
}
/**
* 문자전송 상세보기 팝업화면
* @param searchVO
* @param model
* @return "uss/ion/msg/SendMsgDetailPopAjax.do"
* @throws Exception
*/
@RequestMapping(value = {"uss/ion/msg/SendMsgDetailPopAjax.do"})
public String SendMsgDetailPopAjax(
@ModelAttribute("searchVO") MjonMsgVO searchVO,
HttpServletRequest request ,
Model model) throws Exception {
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
String reserveType = searchVO.getReserveType();
MjonMsgVO mjonMsgVO = new MjonMsgVO();
if(null != searchVO.getUserData() && !"".equals(searchVO.getUserData())) { //수정
mjonMsgVO = mjonMsgService.selectMjonMsgVO(searchVO);
//문자 상세보기 이미지 아이디 받아오기
String atchFileId1 ="";
String atchFileId2 ="";
String atchFileId3 ="";
String path1 = mjonMsgVO.getFilePath1();
String path2 = mjonMsgVO.getFilePath2();
String path3 = mjonMsgVO.getFilePath3();
FileVO fileVO1 = new FileVO();
FileVO fileVO2 = new FileVO();
FileVO fileVO3 = new FileVO();
if(StringUtil.isNotEmpty(path1)) {
//파일경로 및 이름을 이용하여 atchFileId, fileExtsn 번호 받아오기
fileVO1 = getFilePathToAtchFileId(path1);
model.addAttribute("fileVO1", fileVO1);
}
if(StringUtil.isNotEmpty(path2)) {
//파일경로 및 이름을 이용하여 atchFileId, fileExtsn 번호 받아오기
fileVO2 = getFilePathToAtchFileId(path2);
model.addAttribute("fileVO2", fileVO2);
}
if(StringUtil.isNotEmpty(path3)) {
//파일경로 및 이름을 이용하여 atchFileId, fileExtsn 번호 받아오기
fileVO3 = getFilePathToAtchFileId(path3);
model.addAttribute("fileVO3", fileVO3);
}
}
if(request.getHeader("REFERER").contains("ReceiveNumberList") ) { //수신번호 조회에서 넘김
mjonMsgVO.setBeforeUrl("ReceiveNumberList");
}
if(pattern.equals("/uss/ion/msg/CampaignMsgModify.do")) { //사용자 발신
searchVO.setSearchCampaignYn("Y");
}
mjonMsgVO.setReserveType(reserveType);
model.addAttribute("mjonMsgVO", mjonMsgVO);
return "/cmm/uss/umt/EgovGnrlUserSelectMsgDataDetailPop";
}
//파일 이름을 이용하여 첨부파일 아이디(atchFileId), 첨부파일 순번(fileExtsn)을 찾는 함수
public FileVO getFilePathToAtchFileId(String filePath) throws Exception{
//마지막 / 의 인덱스 값 +1을 기준으로 문자열을 짤라줌
String strFilePath = filePath.substring(filePath.lastIndexOf("/")+1);
FileVO returnFileVO = new FileVO();
//파일 이름과 확장자를 분리해줌
String[] arrFileNm = strFilePath.split("\\.");
String fileNm = arrFileNm[0];
String fileExtsn = arrFileNm[1];
FileVO fileVO = new FileVO();
fileVO.setStreFileNm(fileNm);
fileVO.setFileExtsn(fileExtsn);
returnFileVO = mjonReservMsgService.selectFileNmToAtchFileIdInfo(fileVO);
return returnFileVO;
}
/**
* @Method Name : EgovGnrlselectedUserKakaoDataListAjax
* @작성일 : 2023. 3. 6.
* @작성자 : 우영두
* @Method 설명 : 카카오 알림톡 사용자 발송 내역 팝업 호출
*/
@RequestMapping("/uss/umt/user/kakaoat/EgovGnrlselectedUserKakaoDataListAjax.do")
public String EgovGnrlselectedUserKakaoDataListAjax(
@ModelAttribute("searchVO") KakaoVO searchVO
, @ModelAttribute MberManageVO reqMberManageVO
, HttpServletRequest request
, Model model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(id == "") {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
try {
String userId = reqMberManageVO.getMberId();
String reserveType = searchVO.getReserveType();
//회원정보 불러오기
MberManageVO mberManageVO = mberManageService.selectMber(reqMberManageVO.getMberId());
String mberSttus = mberManageVO.getMberSttus(); //이용자 상태값 저장
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
searchVO.setSearchSortCnd("msgGroupId");
searchVO.setSearchSortOrd("desc");
}
/*
* 1년전 첫째날과 마지막 날짜 받아오기
* 예약 발송 내역의 경우 1년 후의 날짜로 종료일을 셋팅해준다.
* */
if(StringUtil.isEmpty(searchVO.getNtceBgnde())) {
searchVO.setNtceBgnde(StringUtil.getDate3MonthAgoFirstDay());
searchVO.setNtceEndde(StringUtil.getDateMonthLastDay());
if (searchVO.getReserveType().equals("R")) {
searchVO.setNtceEndde(StringUtil.getDateMonthLastDay1YearAfter());
}
}
//전송 완료 불러오기
searchVO.setUserId(userId);
searchVO.setSearchSortCnd("reqDate");
searchVO.setSearchSortOrd("desc");
//searchVO.setFirstIndex(0);
List<KakaoVO> kakaoResultList = new ArrayList<KakaoVO>();
KakaoVO kakoStatisticResult = new KakaoVO();
if(reserveType.equals("D")) {
//searchVO.setSearchCondition2("N");//예약건은 제외하기
searchVO.setReserveCYn("N");//예약취소건은 제외하기
//searchVO.setReserveYn("N");
// 문자발송 완료건은 모두 보이도록 처리
kakaoResultList = mjonKakaoATService.selectMjonKakaoATGroupCompleteByUserList(searchVO);
model.addAttribute("kakaoResultList", kakaoResultList);
//카카오톡 발송 통계 정보 불러오기
kakoStatisticResult = mjonKakaoATService.selectMjonKakaoStatisticATData(searchVO);
model.addAttribute("kakoStatisticResult", kakoStatisticResult);
}else {
searchVO.setReserveYn("Y"); //예약건만 조회
searchVO.setSearchCondition2("Y"); //예약건만 조회
searchVO.setReserveCYn("N");//예약취소건은 제외하기
// 문자발송 완료건은 모두 보이도록 처리
kakaoResultList = mjonKakaoATService.selectReserveMjonKakaoATGroupList(searchVO);
model.addAttribute("kakaoResultList", kakaoResultList);
//카카오톡 발송 통계 정보 불러오기
kakoStatisticResult = mjonKakaoATService.selectMjonKakaoStatisticATData(searchVO);
model.addAttribute("kakoStatisticResult", kakoStatisticResult);
}
paginationInfo.setTotalRecordCount(kakaoResultList.size() > 0 ? ((KakaoVO)kakaoResultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
} catch (Exception e) {
System.out.println("EgovGnrlselectedUserKakaoDataListAjax Controller Error !!! " + e);
}
return "cmm/uss/umt/kakao/EgovGnrlUserSelectKakaoDataListPop";
}
/**
* @methodName : EgovGnrlselectedUserFaxDataListAjax
* @author : 이호영
* @date : 2023.04.11
* @description : 관리자 팩스리스트팝업 데이터 불러오기
* @param faxGroupDataVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/uss/umt/user/fax/EgovGnrlselectedUserFaxDataListAjax.do")
public String EgovGnrlselectedUserFaxDataListAjax(
@ModelAttribute("searchVO") FaxGroupDataVO faxGroupDataVO
, Model model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(id == "") {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
Map<String, Object> faxSendListMap = userManageService.selectFaxSendList(faxGroupDataVO);
// 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"));
model.addAttribute("faxPriceMap", faxSendListMap.get("faxPriceMap"));
return "cmm/uss/umt/fax/EgovGnrlUserSelectFaxDataListPop";
}
/**
* @methodName : getExcelForFaxSendList
* @author : 이호영
* @date : 2023.04.11
* @description : 관리자 팩스리스트팝업에서 엑셀 다운로드
* @param faxGroupDataVO
* @throws Exception
*/
@RequestMapping(value= {"/uss/umt/user/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);
}
/**
* @Method Name : EgovGnrlSelectedUserCashDataListAjax
* @작성일 : 2022. 12. 5.
* @작성자 : WYH
* @Method 설명 : 보유 캐시 잔액 조회
*/
@RequestMapping("/uss/umt/user/EgovGnrlSelectedUserCashDataListAjax.do")
public String EgovGnrlSelectedUserCashDataListAjax(
@ModelAttribute("searchVO") MjonPayVO mjonPayVO
, @ModelAttribute MberManageVO reqMberManageVO
, MjonMsgVO mjonMsgVO
, HttpServletRequest request
, Model model) throws Exception {
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
mjonPayVO.setUserId(reqMberManageVO.getMberId());
//검색 일자가 없는 경우 3개월전 1 ~ 마지막날짜로 셋팅
if(StringUtil.isEmpty(mjonMsgVO.getNtceBgnde())) {
mjonPayVO.setStartDate(StringUtil.getDate3MonthAgoFirstDay());
mjonPayVO.setEndDate(StringUtil.getDateMonthLastDay());
}else {
mjonPayVO.setStartDate(mjonMsgVO.getNtceBgnde());
mjonPayVO.setEndDate(mjonMsgVO.getNtceEndde());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mjonPayVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mjonPayVO.getPageUnit());
paginationInfo.setPageSize(mjonPayVO.getPageSize());
mjonPayVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mjonPayVO.setLastIndex(paginationInfo.getLastRecordIndex());
mjonPayVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(mjonPayVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
mjonPayVO.setSearchSortCnd("moid");
mjonPayVO.setSearchSortOrd("desc");
}
List<MjonPayVO> resultList = mjonPayService.selectMemberCashList(mjonPayVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonPayVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "cmm/uss/umt/EgovGnrlUserSelectCashDataListPop";
}
/**
* @Method Name : EgovGnrlSelectedUserCashDataDetailAjax
* @작성일 : 2022. 12. 5.
* @작성자 : WYH
* @Method 설명 : 보유 케시 잔액 상세
*/
@RequestMapping(value = {"/uss/umt/user/EgovGnrlSelectedUserCashDataDetailAjax.do"})
public String EgovGnrlSelectedUserCashDataDetailAjax(
@ModelAttribute("searchVO") MjonPayVO searchVO
, HttpServletRequest request
, Model model) throws Exception {
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
MjonPayVO mjonPayVO = mjonPayService.selectCashVO(searchVO);
model.addAttribute("mjonPayVO", mjonPayVO);
model.addAttribute("searchVO", searchVO);
return "cmm/uss/umt/EgovGnrlUserSelectCashDataDetailPop";
}
/**
* 사용자정보 결제내역 리스트 팝업 띄우기
* @param selectedUserId -> uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovGnrlUserSelectUpdtPopup
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserPayDataListAjax.do")
public String EgovGnrlselectedUserPayDataListAjax(@ModelAttribute("searchVO") MjonPayVO mjonPayVO,
@ModelAttribute MberManageVO reqMberManageVO,
MjonMsgVO mjonMsgVO,
HttpServletRequest request,
Model model) throws Exception {
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
mjonPayVO.setUserId(reqMberManageVO.getMberId());
//검색 일자가 없는 경우 3개월전 1 ~ 마지막날짜로 셋팅
if(StringUtil.isEmpty(mjonMsgVO.getNtceBgnde())) {
mjonPayVO.setStartDate(StringUtil.getDate3MonthAgoFirstDay());
mjonPayVO.setEndDate(StringUtil.getDateMonthLastDay());
}else {
mjonPayVO.setStartDate(mjonMsgVO.getNtceBgnde());
mjonPayVO.setEndDate(mjonMsgVO.getNtceEndde());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mjonPayVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mjonPayVO.getPageUnit());
paginationInfo.setPageSize(mjonPayVO.getPageSize());
mjonPayVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mjonPayVO.setLastIndex(paginationInfo.getLastRecordIndex());
mjonPayVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(mjonPayVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
mjonPayVO.setSearchSortCnd("moid");
mjonPayVO.setSearchSortOrd("desc");
}
List<MjonPayVO> resultList = mjonPayService.selectPayList(mjonPayVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonPayVO)resultList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
{
/**
* 이벤트 회원 정보 불러오기
*
* */
MjonEventVO mjonEventVO = new MjonEventVO();
mjonEventVO.setMberId(reqMberManageVO.getMberId());
//mjonEventVO.setEventStatus("Y");
MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO);
model.addAttribute("eventMberInfo", eventMberInfo);
}
return "cmm/uss/umt/EgovGnrlUserSelectPayDataListPop";
}
/**
* 회원 결제 상세화면
* @param searchVO
* @param model
* @return "/uss/ion/pay/CashModify.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/EgovGnrlselectedUserPayDataDetailAjax.do"})
public String EgovGnrlselectedUserPayDataDetailAjax(
@ModelAttribute("searchVO") MjonPayVO searchVO,
HttpServletRequest request ,
Model model) throws Exception {
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
MjonPayVO mjonPayVO = new MjonPayVO();
if(null != searchVO.getMoid() && !"".equals(searchVO.getMoid())) { //수정
mjonPayVO = mjonPayService.selectPayVO(searchVO);
}
model.addAttribute("mjonPayVO", mjonPayVO);
model.addAttribute("searchVO", searchVO);
return "cmm/uss/umt/EgovGnrlUserSelectPayDataDetailPop";
}
/**
* 사용자정보 수정을 위해 팝업을 띄운다.
* @param selectedUserId -> uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovGnrlUserSelectUpdtPopup
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserViewPopup.do")
public String EgovGnrlselectedUserViewPopup(@RequestParam(value="selectedUserId", required =false, defaultValue="") String uniqId,
@RequestParam(value="modiType", required =false, defaultValue="") String modiType,
HttpServletRequest request,
@ModelAttribute("searchVO") UserDefaultVO userSearchVO,
@ModelAttribute("mberManageVO") MberManageVO mberManageVO,
RedirectAttributes redirectAttributes ,
Model model,
HttpSession session) throws Exception {
mberManageVO.setUniqId(uniqId);
String mberId = mberManageService.selectUniqIdToMberId(mberManageVO);
mberManageVO = mberManageService.selectMber(mberId) ;
model.addAttribute("userSearchVO", userSearchVO);
model.addAttribute("mberManageVO", mberManageVO);
if(mberManageVO == null){
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.select"));
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//사용목적/업종 코드조회- ITN024
vo.setCodeId("ITN024");
model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo));
model.addAttribute("modiType",modiType);
return "cmm/uss/umt/EgovGnrlUserSelectUpdtPopup";
}
/*
* 사용자 상태 변경하기
* 일반, 이용 정지, 탈퇴
*
* */
//ㅁ
//사유를 넣어 사용자 상태를 변경하는 경우
//step1.회원상태 변경
//step1-1-1.이용정지시
//step1-1-1-1.발신번호거부처리
//step1-1-1-2.스팸회원정보등록
//step1-1-1-3.이용정지IP등록
//step1-1-2.이용정지해제시
//step1-1-2-1.이용정지IP삭제
//step1-2.관리자 처리 히스토리 남기기
//step1-3.사용자 상태 변경
//step2.가상계좌 처리
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserMsttusAjax.do")
public ModelAndView EgovGnrlUpdateUserMsttusAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
}
try {
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
//수정하는 관리자 아이디 셋팅
mberManageVO.setMberSttusUpdusrId(userId);
//수정할 회원 아이디 정보
String mberId = mberManageVO.getMberId();
//회원 정보 조회
MberManageVO resultMberVO = mberManageService.selectMber(mberId);
if(resultMberVO == null) {
modelAndView.addObject("message", "이용자 정보를 찾을 수 없습니다.");
modelAndView.addObject("result", "fail");
}
//회원 상태 변경하기
int resultCnt = 0;
resultCnt = mberManageService.updateUserMsttus(mberManageVO);
if(resultCnt > 0) {
if(mberManageVO.getMberSttus().equals("B")) { //회원 이용정지를 시키는 경우 가상계좌도 함께 해지 시킨다.
//가상계좌 보유 여부 체크
//대상 리스트 가져오기
VacsVactVO vacsVactVO = new VacsVactVO();
vacsVactVO.setMberId(mberId);
List<VacsVactVO> myBankList = vacsVactService.selectBankAccountByUserId(vacsVactVO); //내가 할당받은 전용계좌 리스트 받아오기
int vacsCnt = myBankList.size();
//가상계좌 해지 처리
if(vacsCnt > 0) {
for(int i=0; i < vacsCnt; i++) {
String acctNo = myBankList.get(i).getAcctNo();
VacsVactVO vacsVO = new VacsVactVO();
vacsVO.setMberId(mberId); //회원 아이디
//계좌 해지일자 생성
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String closeDate = sdf.format(now);
vacsVO.setCloseIl(closeDate); //해지일자
vacsVO.setAcctNo(acctNo); //해지계좌번호
//계좌 상태 셋팅 0: 미할당, 1:할당, 9: 해지
vacsVO.setAcctSt("9");
int blockCnt = vacsVactService.updateVacsAccountUsrBlock(vacsVO);
}
}
}
// 관리자 메모
String memo = "";
if(mberManageVO.getMberSttus().equals("Y")) {
memo = "회원상태 변경 : 일반";
}
else if(mberManageVO.getMberSttus().equals("B")) {
memo = "회원상태 변경 : 이용정지";
}
mberManageVO.setMberId(mberId);
mberManageVO.setMemoCn(memo);
mberManageVO.setFrstRegisterId(userId);
mberManageService.insertMberMemo(mberManageVO);
modelAndView.addObject("message", "이용자 상태를 수정하였습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "이용자 상태 수정에 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
modelAndView.addObject("message", "이용자 상태 수정에 오류가 발생하였습니다.");
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
// 이용정지 사유 수정
@RequestMapping(value="/uss/umt/user/EgovGnrlUpdateUserMemoAjax.do")
public ModelAndView EgovGnrlUpdateUserMemoAjax(@ModelAttribute MberManageVO mberManageVO
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
try {
// 이용정지 사유 수정
int resultCnt = 0;
resultCnt = mberManageService.updateSpamMemberMemo(mberManageVO);
if (resultCnt == 0) {
isSuccess = false;
msg = "업데이트 실패";
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 법인폰 알림여부
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserAdminSmsAjax.do")
public ModelAndView EgovGnrlUpdateUserAdminSmsAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateUserAdminSmsNoticeYn(userManageVO, "");
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 스미싱의심 여부 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserSmishingAjax.do")
public ModelAndView EgovGnrlUpdateUserSmishingAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateOneUserSmishingYn(userManageVO);
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 알림톡 스미싱의심 여부 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do")
public ModelAndView EgovGnrlUpdateUserAtSmishingAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateOneUserAtSmishingYn(userManageVO);
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 스팸회원 여부 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserSpamAjax.do")
public ModelAndView EgovGnrlUpdateUserSpamAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateUserSpamYn(userManageVO);
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// VIP 여부 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserVIPAjax.do")
public ModelAndView EgovGnrlUpdateUserVIPAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateUserVIPYn(userManageVO, "");
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 전용 전송사 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserHotlineAgentCodeAjax.do")
public ModelAndView EgovGnrlUpdateUserHotlineAgentCodeAjax(@ModelAttribute("userManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
mberManageVO.setAdmUserId(userId);
int result = mjonMsgAgentStsService.updateMberHotlineAgentCodeInfo(mberManageVO);
if(result > 0) {
isSuccess = true;
msg = "전용 전송사 수정이 완료되었습니다.";
}else {
isSuccess = false;
msg = "전용 전송사 수정에 오류가 발생하였습니다.";
}
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 후불제 여부
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserPrePaymentYnAjax.do")
public ModelAndView EgovGnrlUpdateUserPrePaymentYnAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
MberManageVO mberManageVO = mberManageService.selectMber(userManageVO.getMberId());
String taxbillAuto = mberManageVO.getTaxbillAuto();
if(taxbillAuto == null || taxbillAuto.equals("N")) {
isSuccess = false;
msg = "세금계산서 자동발행의 선택이 안되어 있습니다. 확인 부탁드리겠습니다.";
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
int payCnt = userManageService.selectPayCountByUser(userManageVO);
if (payCnt > 0) {
isSuccess = false;
msg = "이미 결제한 내역이 있어, 후불제 변경이 불가합니다.";
}
else {
userManageService.updateUserPrePaymentYn(userManageVO);
}
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 후불제 월한도충전금
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserAutoCashAjax.do")
public ModelAndView EgovGnrlUpdateUserAutoCashAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateUserAutoCash(userManageVO);
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/*
* 사용자 상태 변경하기
* 일반, 이용 정지, 탈퇴
*
* */
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserSecessionMsttusAjax.do")
public ModelAndView EgovGnrlUpdateUserSecessionMsttusAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
}
try {
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
//수정하는 관리자 아이디 셋팅
mberManageVO.setMberSttusUpdusrId(userId);
//수정할 회원 아이디 정보
String mberId = mberManageVO.getMberId();
//회원 정보 조회
MberManageVO resultMberVO = mberManageService.selectMber(mberId);
if(resultMberVO == null) {
modelAndView.addObject("message", "이용자 정보를 찾을 수 없습니다.");
modelAndView.addObject("result", "fail");
}
//회원 상태 변경하기
int resultCnt = 0;
mberManageVO.setDeleteType("07"); //탈퇴사유 중 직접입력으로 타입 지정
resultCnt = mberManageService.updateUserSecessionMsttus(mberManageVO);
if(resultCnt > 0) {
// 관리자 메모
String memo = "";
memo = "회원상태 변경 : 탈퇴";
mberManageVO.setMberId(mberId);
mberManageVO.setMemoCn(memo);
mberManageVO.setFrstRegisterId(userId);
mberManageService.insertMberMemo(mberManageVO);
modelAndView.addObject("message", "이용자 탈퇴가 완료 되었습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "이용자 탈퇴에 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
modelAndView.addObject("message", "이용자 탈퇴에 오류가 발생하였습니다.");
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/*
* 사용자 문자 발송 금액 변경해주기
*
* */
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserPriceAjax.do")
public ModelAndView EgovGnrlUpdateUserPriceAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
}
try {
//1.시스템 기본 단가 정보 조회하기
JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
// 문자 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
if (Float.compare(sysJoinSetVO.getShortPrice(), mberManageVO.getShortPrice()) == 0) {
if (Float.compare(sysJoinSetVO.getLongPrice(), mberManageVO.getLongPrice()) == 0) {
if (Float.compare(sysJoinSetVO.getPicturePrice(), mberManageVO.getPicturePrice()) == 0) {
if (Float.compare(sysJoinSetVO.getPicture2Price(), mberManageVO.getPicture2Price()) == 0) {
if (Float.compare(sysJoinSetVO.getPicture3Price(), mberManageVO.getPicture3Price()) == 0) {
mberManageVO.setShortPrice(0);
mberManageVO.setLongPrice(0);
mberManageVO.setPicturePrice(0);
mberManageVO.setPicture2Price(0);
mberManageVO.setPicture3Price(0);
}
}
}
}
}
// 알림톡 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
if (Float.compare(sysJoinSetVO.getKakaoAtPrice(), mberManageVO.getKakaoAtPrice()) == 0) {
mberManageVO.setKakaoAtPrice(0);
}
// 친구톡 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
if (Float.compare(sysJoinSetVO.getKakaoFtPrice(), mberManageVO.getKakaoFtPrice()) == 0) {
mberManageVO.setKakaoFtPrice(0);
}
int resultCnt = mberManageService.updateUserPrice(mberManageVO);
if(resultCnt > 0) {
modelAndView.addObject("message", "전송 금액을 수정하였습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "전송 금액을 수정에 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
modelAndView.addObject("message", "전송 금액을 수정에 오류가 발생하였습니다.");
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserFaxPriceAjax.do")
public ModelAndView EgovGnrlUpdateUserFaxPriceAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
}
try {
int resultCnt = mberManageService.updateUserFaxPrice(mberManageVO);
if(resultCnt > 0) {
modelAndView.addObject("message", "전송 금액을 수정하였습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "전송 금액을 수정에 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
modelAndView.addObject("message", "전송 금액을 수정에 오류가 발생하였습니다.");
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/*
* 사용자 문자 발송 금액 변경해주기
*
* */
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserPwdAjax.do")
public ModelAndView EgovGnrlUpdateUserPwdAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
modelAndView.addObject("message", "로그인이 필요합니다.");
modelAndView.addObject("result", "loginFail");
}
try {
UserManageVO userManageVO = new UserManageVO();
userManageVO.setEmplyrId(mberManageVO.getMberId());
userManageVO.setEmplyrNm(mberManageVO.getMberNm());
userManageVO.setPassword(mberManageVO.getPassword());
//해당 정보의 유저가 있으면
UserManageVO checkUser = userManageService.selectUserPwByAdminAjax(userManageVO);
if(checkUser != null) {
//비밀번호 업데이트
userManageService.updateUserPWAjax(userManageVO);
//변경 비밀번호 이메일 발송
EmailVO emailVO = new EmailVO();
emailVO.setSend_from("noreply@munjaon.co.kr");
emailVO.setSend_to(checkUser.getEmailAdres());
emailVO.setTitle("대량문자 발송 사이트 문자온 임시비밀번호 안내 메일입니다.");
emailVO.setContents(mberManageVO.getPassword());
//변경 비밀번호 회원 이메일 주소로 발송해주기
String resultStr = userUpdtPasswordSendEmail(emailVO);
//String resultStr = "success";
if(resultStr.equals("success")) {
modelAndView.addObject("message", "비밀번호 변경 및 이메일 발송이 완료되었습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "비밀번호 변경에 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
}else {
modelAndView.addObject("message", "비밀번호 변경에 오류가 발생하였습니다.");
modelAndView.addObject("result", "fail");
}
} catch (Exception e) {
System.out.println("관리자 회원 비밀번호 변경시 오류 발생 !");
modelAndView.addObject("message", "문자전송 금액을 수정에 오류가 발생하였습니다.");
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
public String userUpdtPasswordSendEmail(EmailVO mailSender) throws Exception{
String resultStr = "fail";
try {
// 이메일 발송 내용
String contents = "";
contents += "<!DOCTYPE html>";
contents += "<html lang=\"ko\">";
contents += "<head>";
contents += "<meta charset=\"UTF-8\">";
contents += "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">";
contents += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">";
contents += "<title>대량문자 발송 사이트 문자온 임시비밀번호 안내 메일 입니다.</title>";
contents += "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">";
contents += "<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>";
contents += "<link href=\"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap\" rel=\"stylesheet\">";
contents += "</head>";
contents += "";
contents += "<body>";
contents += "<div class=\"wrap\" style=\"width: 100%; height: 100%; background-color: #e3e8f0; padding: 70px 0;\">";
contents += "<div class=\"box\" style=\"max-width: 700px; width: 98%; background-color: #fff; box-shadow: 0 0 5px rgba(0,0,0,0.2); border-radius: 20px; overflow: hidden; margin: 0 auto;\">";
contents += "<div class=\"area_top\" style=\"background-color: #2e5ac8; width: 100%; height: 80px; padding: 0 40px; box-sizing: border-box;\">";
contents += "<p style=\"display:inline-block; color: #fff; font-size: 24px; margin: 0; font-family: 'Noto Sans KR', sans-serif; line-height: 80px;\">";
contents += "<span style=\"font-weight: 600;\">문자온 임시비밀번호</span> 안내 메일입니다.</p> <a href=\"http://www.munjaon.co.kr\" target='_blank' style='text-decoration:none'><img src=\"http://www.munjaon.co.kr/publish/images/emailForm/top_logo.png\" alt=\"\" style=\"width: 94px; height: 53px; float: right; margin-top: 12px; vertical-align:top;\"></a>";
contents += "</div>";
contents += "<div class=\"area_content\" style=\"padding: 6%;\">";
contents += "<p style=\"font-size: 18px; letter-spacing: -0.5px; line-height: 1.5; color: #222; margin: 0; font-weight: 400; font-family: 'Noto Sans KR', sans-serif;\">";
contents += "안녕하세요. 대량문자 발송 사이트 문자온입니다.<br> 임시비밀번호는 아래와 같습니다.</p>";
contents += "<p class=\"area_num\" style=\"background-color: #f3f4f5; width: 100%; font-family: 'Noto Sans KR', sans-serif; font-size: 21px; font-weight: 600; box-sizing: border-box; border-radius: 1px; letter-spacing: -0.5px; padding: 8px 30px; margin: 20px 0;\">%password%</p>";
contents += "<p style=\"padding-top: 40px; font-size: 18px; font-family: 'Noto Sans KR', sans-serif; letter-spacing: -0.5px; line-height: 1.5; color: #222; margin: 0;\">문자온 서비스를 이용해 주셔서 감사합니다.</p>";
contents += "<div class=\"info_mail\" style=\"width: 100%; border-top: 1px solid #d5d5d5; margin-top: 20px;\">";
contents += "<p style=\"font-size: 15px; font-weight: 400; color: #999; line-height: 1.3; letter-spacing: -0.5px; font-family: 'Noto Sans KR', sans-serif;\">본 메일은 <span style=\"font-weight: 500;\">발신전용</span>이며, 문의에 대한 회신은 처리되지 않습니다. 문자온 관련하여 궁금하신 점이나 불편한 사항은 <span style=\"font-weight: 500;\">고객센터</span>를 통해 문의하여 주시기 바랍니다.</p>";
contents += "<p style=\"margin-top: 20px; font-size: 15px; font-weight: 400; color: #999; line-height: 1.3; letter-spacing: -0.5px; font-family: 'Noto Sans KR', sans-serif;\">주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스) <br> 사업자 번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 2021-다산-0422 <br> 문의전화 : 1551-8011 | E-mail : help@iten.co.kr</p>";
contents += "<p style=\"margin-top: 20px; font-size: 15px; font-weight: 400; color: #999; line-height: 1.3; letter-spacing: -0.5px; font-family: 'Noto Sans KR', sans-serif;\">Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.</p>";
contents += "</div>";
contents += "</div>";
contents += "</div>";
contents += "</div>";
contents += "</body>";
contents += "";
contents += "</html>";
String repContents = contents;
//이메일 내용에 비밀번호 치환해주기
String password = mailSender.getContents();
repContents = repContents.replace("%password%", password);
// 이메일로 보내기
SendMail sMail = new SendMail();
// 사용자 이메일 주소
mailSender.setSend_from(mailSender.getSend_from());
// 발송자 이메일 주소
mailSender.setSend_to(mailSender.getSend_to());
// 메일 제목
mailSender.setTitle(mailSender.getTitle());
// 메일 내용
mailSender.setContents(repContents);
// 메일 발송하기
sMail.sendMail2(mailSender);
// 발송 이력 저장 SendType 1:문자로 발송 2:이메일로 발송
SendLogVO sendLogVO = new SendLogVO();
sendLogVO.setSendType("2");
sendLogVO.setFrstSendInfo(mailSender.getSend_from());//이메일 발신자 정보
sendLogVO.setReceive(mailSender.getSend_to()); //수신자 정보
sendLogVO.setContents(repContents);
mjonMsgDataService.insertSysMsgLog(sendLogVO);
resultStr = "success";
} catch (Exception e) {
System.out.println("관리자 임시비밀번호 변경 저장 후 이메일 발송 오류 !");
}
return resultStr;
}
/* 사용자정보 업데이트 Ajax*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserUpdateUsrAjax.do")
public ModelAndView EgovGnrlselectedUserUpdateUsrAjax(@ModelAttribute("mberManageVO") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
try {
mberManageVO.setLastUpdusrId(user.getId());
mberManageService.updateMberAdmin(mberManageVO);
modelAndView.addObject("message", "개인정보를 수정하였습니다.");
modelAndView.addObject("result", "success");
} catch (Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/* 메모 insert Ajax*/
@RequestMapping("/uss/umt/user/EgovGnrlUserSelectUpdtViewMemoAjax.do")
public ModelAndView EgovGnrlUserSelectUpdtViewMemoAjax(@ModelAttribute("memoForm") MberManageVO mberManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
try {
mberManageVO.setFrstRegisterId(user.getId());
mberManageService.insertMberMemo(mberManageVO);
modelAndView.addObject("message", "메모가 저장되었습니다.");
modelAndView.addObject("result", "success");
} catch (Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/* 메모 갱신 Ajax*/
@RequestMapping("/uss/umt/user/EgovGnrlUserSelectUpdtViewMemoRefreshAjax.do")
public ModelAndView EgovGnrlUserSelectUpdtViewMemoRefreshAjax(@ModelAttribute("memoForm") MberManageVO mberManageVO, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
//리스트에 메모 조회
List<MberManageVO> memoList = mberManageService.selectMberMemo(mberManageVO);
//메모 model.addAttribute
model.addAttribute("memoList", memoList);
modelAndView.addObject("message", "리스트가 갱신되었습니다.");
modelAndView.addObject("status", "success");
} catch (Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/* 메모 삭제 Ajax*/
@RequestMapping("/uss/umt/user/EgovGnrlUserSelectUpdtViewMemoDeleteAjax.do")
public ModelAndView EgovGnrlUserSelectUpdtViewMemoDeleteAjax(@ModelAttribute("memoForm") MberManageVO mberManageVO, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
mberManageVO.setLastMemoUpdusrId(user.getId());
try {
//update MEMO_YN 'N'처리
mberManageService.deleteMberMemo(mberManageVO);
modelAndView.addObject("message", "메모가 삭제되었습니다.");
modelAndView.addObject("status", "success");
} catch (Exception e) {
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/**
* 관리자 정보 수정후 목록조회 화면으로 이동한다.
* @param userManageVO 사용자수정정보
* @param bindingResult 입력값검증용 bindingResult
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUserManage.do
* @throws Exception
*/
@RequestMapping(value= {"/uss/umt/user/EgovUserSelectUpdt.do", "/uss/umt/user/EgovUserSelectUpdtAjax.do"})
public String updateUser(@ModelAttribute("userManageVO") UserManageVO userManageVO,
UserDefaultVO userSearchVO,
HttpSession session,
HttpServletRequest request ,
BindingResult bindingResult,
RedirectAttributes redirectAttributes,
Model model) throws Exception {
/*if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")){
return "redirect:/uss/umt/user/EgovUserManage.do";
}*/
PrivateKey privateKey = (PrivateKey) session.getAttribute(EgovUserManageController.RSA_WEB_KEY);
if(privateKey == null) {
initRsa(request);
redirectAttributes.addFlashAttribute("message", "저장되지 않았습니다.");
if(userManageVO.getGnrlUser().equals("N")){
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
//최고 관리자의 경우 관리자정보 변경시 비번 체크안함.
LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
/*
tempLoginVO.setId(tempLoginVO.getId());
if(!"ROLE_ADMIN".equals(tempLoginVO.getAuthority())){ //관리자 아닌경우 Ajax
String password = "";
try{
password = decryptRsa(privateKey, userManageVO.getRsaPasswd());
}catch(Exception e) {
redirectAttributes.addFlashAttribute("message", "저장되지 않았습니다.");
if(userManageVO.getGnrlUser().equals("N")){
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+userManageVO.getUniqId());
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
LoginVO loginVO = new LoginVO();
loginVO.setId(userManageVO.getEmplyrId());
loginVO.setPassword(password);
loginVO.setUserSe("USR");
loginVO.setStatusAll("Y"); //상태정보에 관계없이 모든 사용자 검색
LoginVO resultVO = loginService.actionLogin(loginVO); // 1. 일반 로그인 처리
if(resultVO.getId() ==null){
if(userManageVO.getGnrlUser().equals("N")){ //일반관리자가 자신의 정보수정시 수정페이지로딩
return "forward:/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+userManageVO.getUniqId();
}
}
}*/
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
if("".equals(userManageVO.getEmplyrSttusCode()) || userManageVO.getEmplyrSttusCode() == null ) {
userManageVO.setEmplyrSttusCode("P");
}
//beanValidator.validate(userManageVO, bindingResult);
/*if (bindingResult.hasErrors()) {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo));
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
return "cmm/uss/umt/EgovUserSelectUpdt";
} else {*/
//업무사용자 수정시 히스토리 정보를 등록한다.
AuthorGroup authorGroup = new AuthorGroup();
if(null!=userManageVO.getSiteId()){
authorGroup.setUniqId(userManageVO.getUniqId());
authorGroup.setAuthorCode(userManageVO.getAuthorCode());
}else{
authorGroup.setUniqId(userManageVO.getUniqId());
authorGroup.setAuthorCode(userManageVO.getAuthorCode());
}
userManageService.insertUserHistory(userManageVO);
userManageService.updateUser(userManageVO);
//권한업데이트
egovAuthorGroupService.updateAuthorGroup(authorGroup);
//최고관리자가 수정하고 리스트 화면으로 이동하면 최고관리자 권한만 리스트에 나오는 문제가 있어서 권한을 지우고 리턴해줌
userSearchVO.setAuthorCode("");
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
if(userManageVO.getGnrlUser().equals("N")){
if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) {
LoginVO tempUser = new LoginVO();
tempUser.setId(userManageVO.getEmplyrId());
//RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId());
return redirectUrlMaker.getRedirectUrl();
}else {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
}
//사용자 수정 시
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
* 사용자정보삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUserManage.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUserDelete.do")
public String deleteUser(@RequestParam("checkedIdForDel") String checkedIdForDel, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, RedirectAttributes redirectAttributes, Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/uss/umt/user/EgovUserManage.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
userManageService.deleteUser(checkedIdForDel);
//Exception 없이 진행시 등록성공메시지
//model.addAttribute("message", "success.common.delete");
//return "forward:/uss/umt/user/EgovUserManage.do";
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete"));
if(userSearchVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
* 사용자의 법인폰알림 여부를 수정한 후 목록조회 화면으로 이동한다.
* @param checkedIdForDel update 아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUsersSmsNoticeUpdate.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUsersSmsNoticeUpdate.do")
public String updateUsersSmsNotice(@RequestParam("checkedIdForDel") String checkedIdForUpt, @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes, Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/uss/umt/user/EgovUserManage.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
userManageService.updateUserAdminSmsNoticeYn(userManageVO, checkedIdForUpt);
redirectAttributes.addFlashAttribute("message", "법인폰알림 여부가 정상적으로 수정되었습니다.");
if(userManageVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do?pageIndex="+userManageVO.getPageIndex());
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do?pageIndex="+userManageVO.getPageIndex());
return redirectUrlMaker.getRedirectUrl();
}
/**
* 사용자의 법인폰알림 여부를 수정한 후 목록조회 화면으로 이동한다.
* @param checkedIdForDel update 아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUsersSmsNoticeUpdate2.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUsersSmsNoticeUpdate2.do")
public String updateUsersSmsNotice2(@RequestParam("checkedIdForDel") String checkedIdForUpt, @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes, Model model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
userManageService.updateUserAdminSmsNoticeYn(userManageVO, checkedIdForUpt);
redirectAttributes.addFlashAttribute("message", "법인폰알림 여부가 정상적으로 수정되었습니다.");
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/msg/SendMsgList.do?pageIndex="+userManageVO.getPageIndex());
return redirectUrlMaker.getRedirectUrl();
}
/**
* 사용자의 법인폰알림 여부를 수정한 후 목록조회 화면으로 이동한다.
* @param checkedIdForDel update 아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUsersSmsNoticeUpdate3.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUsersSmsNoticeUpdate3.do")
public String updateUsersSmsNotice3(@RequestParam("checkedIdForDel") String checkedIdForUpt, @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes, Model model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
userManageService.updateUserAdminSmsNoticeYn(userManageVO, checkedIdForUpt);
redirectAttributes.addFlashAttribute("message", "법인폰알림 여부가 정상적으로 수정되었습니다.");
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/msg/ReserveNumberList.do?pageIndex="+userManageVO.getPageIndex());
return redirectUrlMaker.getRedirectUrl();
}
// 법인폰알림 업데이트
@RequestMapping(value = "/uss/umt/user/smsNoticeUpdateAjax.do")
public ModelAndView smsNoticeUpdateAjax(
@ModelAttribute("userManageVO") UserManageVO userManageVO) 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();
try{
// 법인폰알림 업데이트
userManageService.updateUserAdminSmsNoticeYn(userManageVO, "");
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
/**
* 사용자의 스미싱의심 여부를 수정한 후 목록조회 화면으로 이동한다.
* @param checkedIdForDel update 아이디 정보
* @param userSearchVO 검색조건
* @param model 화면모델
* @return forward:/uss/umt/user/EgovUsersSmishingUpdate.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovUsersSmishingUpdate.do")
public String updateUserSmishingYn(@RequestParam("checkedIdForDel") String checkedIdForUpt, @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes, Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/uss/umt/user/EgovUserManage.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
userManageService.updateUserSmishingYn(userManageVO, checkedIdForUpt);
redirectAttributes.addFlashAttribute("message", "스미싱의심 여부가 정상적으로 수정되었습니다.");
if(userManageVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do?pageIndex=\"+userManageVO.getPageIndex()");
return redirectUrlMaker.getRedirectUrl();
}
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do?pageIndex="+userManageVO.getPageIndex());
return redirectUrlMaker.getRedirectUrl();
}
/**
* 입력한 사용자아이디의 중복확인화면 이동
* @param model 화면모델
* @return cmm/uss/umt/EgovIdDplctCnfirm
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/cmm/EgovIdDplctCnfirmView.do")
public String checkIdDplct(ModelMap model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
model.addAttribute("checkId", "");
model.addAttribute("usedCnt", "-1");
return "cmm/uss/umt/EgovIdDplctCnfirm";
}
/**
* 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인
* @param commandMap 파라메터전달용 commandMap
* @param model 화면모델
* @return cmm/uss/umt/EgovIdDplctCnfirm
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/cmm/EgovIdDplctCnfirm.do")
public String checkIdDplct(@RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
String checkId = (String) commandMap.get("checkId");
checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8");
if (checkId == null || checkId.equals(""))
return "forward:/uss/umt/EgovIdDplctCnfirmView.do";
int usedCnt = userManageService.checkIdDplct(checkId);
model.addAttribute("usedCnt", usedCnt);
model.addAttribute("checkId", checkId);
return "cmm/uss/umt/EgovIdDplctCnfirm";
}
/**
* 업무사용자 암호 수정처리 후 화면 이동
* @param model 화면모델
* @param commandMap 파라메터전달용 commandMap
* @param userSearchVO 검색조 건
* @param userManageVO 사용자수정정보(비밀번호)
* @return cmm/uss/umt/EgovUserPasswordUpdt
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdt.do")
public String updatePassword(ModelMap model, @RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO,
@ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
List<String> authorities = EgovUserDetailsHelper.getAuthorities();
boolean authFlag = false;
for (String authority : authorities) {
if (authority.equals("ROLE_ADMIN")) authFlag = true;
}
String newPassword = (String) commandMap.get("newPassword");
if(!validationPasswd(newPassword)){
model.addAttribute("userManageVO", userManageVO);
model.addAttribute("userSearchVO", userSearchVO);
model.addAttribute("adminYn", authFlag);
model.addAttribute("message", "비밀번호은(는) 문자+숫자+특수문자 포함, 8~20자 내에서 입력해야 합니다.");
return "cmm/uss/umt/EgovUserPasswordUpdt";
}
String oldPassword = (String) commandMap.get("oldPassword");
// String newPassword = (String) commandMap.get("newPassword");
String newPassword2 = (String) commandMap.get("newPassword2");
String uniqId = (String) commandMap.get("uniqId");
boolean isCorrectPassword = false;
UserManageVO resultVO = new UserManageVO();
userManageVO.setPassword(newPassword);
userManageVO.setOldPassword(oldPassword);
userManageVO.setUniqId(uniqId);
String resultMsg = "";
resultVO = userManageService.selectPassword(userManageVO);
//패스워드 암호화
String encryptPass = EgovFileScrty.encryptPassword(oldPassword, userManageVO.getEmplyrId());
for (String authority : authorities) { //일반사용자까지
if (authority.equals("ROLE_ADMIN") || authority.equals("ROLE_USER_MEMBER")) authFlag = true;
}
authFlag = false; //GS인증으로 이전비밀번호 체크
//관리자 이전 비밀번호 변경 시 이전비밀번호 입력 없애기_이준호_220602
/*if (encryptPass.equals(resultVO.getPassword()) || authFlag) {
if (newPassword.equals(newPassword2)) {
isCorrectPassword = true;
} else {
isCorrectPassword = false;
resultMsg = "fail.user.passwordUpdate2";
}
} else {
isCorrectPassword = false;
resultMsg = "fail.user.passwordUpdate1";
}*/
if (newPassword.equals(newPassword2)) {
isCorrectPassword = true;
} else {
isCorrectPassword = false;
resultMsg = "fail.user.passwordUpdate2";
}
if (isCorrectPassword) {
userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId()));
userManageService.updatePassword(userManageVO);
model.addAttribute("userManageVO", userManageVO);
resultMsg = "success.common.update";
} else {
model.addAttribute("userManageVO", userManageVO);
}
model.addAttribute("userSearchVO", userSearchVO);
model.addAttribute("message", resultMsg);
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage(resultMsg));
if(userSearchVO.getGnrlUser().equals("N")) { //관리자 비밀번호 변경시
/*RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();*/
LoginVO tempLoginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if("ROLE_USER_MEMBER".equals(tempLoginVO.getAuthority())) {
LoginVO tempUser = new LoginVO();
tempUser.setId(userManageVO.getEmplyrId());
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginService.getUserAuth(tempUser).getId());
return redirectUrlMaker.getRedirectUrl();
}else {
redirectAttributes.addFlashAttribute("userSearchVO", userSearchVO);
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
//return "cmm/uss/umt/EgovUserPasswordUpdt";
} //사용자 비밀번호 변경시
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
* 업무사용자 암호 수정 화면 이동
* @param model 화면모델
* @param commandMap 파라메터전달용 commandMap
* @param userSearchVO 검색조건
* @param userManageVO 사용자수정정보(비밀번호)
* @return cmm/uss/umt/EgovUserPasswordUpdt
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovUserPasswordUpdtView.do")
public String updatePasswordView(ModelMap model, @RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") UserDefaultVO userSearchVO,
@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
if("".equals(userManageVO.getUniqId())){
String sLocationUrl = "uss/umt/user/EgovUserManage.do";
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker(sLocationUrl);
return redirectUrlMaker.getRedirectUrl();
}
String userTyForPassword = (String) commandMap.get("userTyForPassword");
userManageVO.setUserTy(userTyForPassword);
List<String> authorities = EgovUserDetailsHelper.getAuthorities();
boolean authFlag = false;
for (String authority : authorities) {
if (authority.equals("ROLE_ADMIN")) authFlag = true;
}
model.addAttribute("userManageVO", userManageVO);
model.addAttribute("userSearchVO", userSearchVO);
model.addAttribute("adminYn", authFlag);
return "cmm/uss/umt/EgovUserPasswordUpdt";
}
/**
* 회원가입설정관리
* @return uss/umt/user/EgovMberConfigInsert
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/mber/EgovMberConfigInsert.do" , "/uss/umt/mber/EgovMberConfigInsertAjax.do"})
public String selectMberConfigInsert(
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
@ModelAttribute("mberManageVO") MberManageVO mberManageVO,
@RequestParam Map<String, Object> commandMap,
SiteManagerVO siteManagerVO,
HttpServletRequest request,
Model model ,
HttpSession session) throws Exception {
MberManageConfigVO mberConfigVO = new MberManageConfigVO();//config 정보 가져오기
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if("super".equals(loginVO.getSiteId()) && null==mberManageVO.getSiteId()){ //수퍼 관리자이고 사이트 아이디 없을경우 itn 으로 기본 세팅
mberConfigVO.setSiteId("itn");
siteManagerVO.setSiteId("itn");
}else{
if("".equals(mberManageVO.getSiteId()) || null==mberManageVO.getSiteId()){
mberConfigVO.setSiteId(loginVO.getSiteId());
siteManagerVO.setSiteId(loginVO.getSiteId());
}else {
mberConfigVO.setSiteId(mberManageVO.getSiteId());
siteManagerVO.setSiteId(mberManageVO.getSiteId());
}
}
model.addAttribute("mberConfigVO", mberConfigVO);
List<MberManageConfigVO> mberManageCnfVO = mberManageService.selectMberCnf(mberConfigVO);
model.addAttribute("mberManageCnfVO", mberManageCnfVO);
mberManageVO.setMberSttus("DEFAULT");
SiteManagerVO joinSiteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ;//자동가입 여부 조회
model.addAttribute("joinSiteManagerVO", joinSiteManagerVO);
if("/uss/umt/mber/EgovMberConfigInsertAjax.do".equals(request.getServletPath())){
return "cmm/uss/umt/EgovMberConfigInsertAjax";
}
return "cmm/uss/umt/EgovMberConfigInsert";
}
/* 회원가입 설정 업데이트*/
@RequestMapping("/uss/umt/EgovMberConfigUpdateAjax.do")
public ModelAndView updateMberConfigUpdateAjax(@ModelAttribute("mberManageConfigVO") MberManageConfigVO mberManageConfigVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
mberManageService.updateMberCnf(mberManageConfigVO);
return modelAndView;
}
/*자동가입 설정 업데이트*/
@RequestMapping("/uss/umt/EgovMberJoinAutoUpdateAjax.do")
public ModelAndView EgovMberJoinAutoUpdateAjax(SiteManagerVO siteManagerVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
egovSiteManagerService.updateJoinAutoAjax(siteManagerVO);
return modelAndView;
}
/**
* 일반회원가입신청 등록화면으로 이동한다.
* @param userSearchVO 검색조건
* @param mberManageVO 일반회원가입신청정보
* @param commandMap 파라메터전달용 commandMap
* @param model 화면모델
* @return uss/umt/user/EgovUserRegister
* @throws Exception
*/
@RequestMapping("/uss/umt/mber/EgovMberRegister.do")
public String EgovMberRegister(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, @ModelAttribute("mberManageVO") MberManageVO mberManageVO,
@RequestParam Map<String, Object> commandMap, Model model) throws Exception {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
List<?> passwordHint_result = cmmUseService.selectCmmCodeDetail(vo);
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
List<?> sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("passwordHint_result", passwordHint_result); //패스워트힌트목록
model.addAttribute("sexdstnCode_result", sexdstnCode_result); //성별구분코드목록
if (!"".equals(commandMap.get("realname"))) {
model.addAttribute("mberNm", commandMap.get("realname")); //실명인증된 이름 - 주민번호 인증
model.addAttribute("ihidnum", commandMap.get("ihidnum")); //실명인증된 주민등록번호 - 주민번호 인증
}
if (!"".equals(commandMap.get("realName"))) {
model.addAttribute("mberNm", commandMap.get("realName")); //실명인증된 이름 - ipin인증
}
//이메일 코드
vo.setCodeId("COM103");
List<?> emailCodeList = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("emailCodeList", emailCodeList); //이메일코드
//회원가입 config 정보 가져오기
MberManageConfigVO voTemp = new MberManageConfigVO();
//List<?> mberManageCnfVO = mberManageService.selectMberCnf(voTemp);
List<MberManageConfigVO> mberManageCnfVO = mberManageService.selectMberCnf(voTemp);
for (MberManageConfigVO configVO : mberManageCnfVO) {
model.addAttribute(configVO.getConfigId() , configVO); //컬럼 이름으로 jsp에 VO 전송
}
model.addAttribute("mberManageCnfVO", mberManageCnfVO);
mberManageVO.setMberSttus("DEFAULT");
return "cmm/uss/umt/EgovMberRegister";
}
/**
* 모달조회
* @return String
* @exception Exception
*/
@RequestMapping(value="/EgovModal.do")
public String EgovModal() throws Exception {
return "cmm/uss/umt/EgovModal";
}
/**
* 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인
* @param commandMap 파라메터전달용 commandMap
* @param model 화면모델
* @return uss/umt/EgovIdDplctCnfirm
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovIdDplctCnfirmAjax.do")
public ModelAndView EgovIdDplctCnfirmAjax(@RequestParam Map<String, Object> commandMap) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String checkId = (String) commandMap.get("checkId");
//checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8");
int usedCnt = userManageService.checkIdDplct(checkId);
modelAndView.addObject("usedCnt", usedCnt);
modelAndView.addObject("checkId", checkId);
return modelAndView;
}
/**
* 일반회원가입신청등록처리후로그인화면으로 이동한다.
* @param mberManageVO 일반회원가입신청정보
* @return forward:/uss/umt/user/EgovUserExpInsert.do
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovMberInsert.do")
public String EgovMberInsert(
@ModelAttribute("mberManageVO") MberManageVO mberManageVO,
BindingResult bindingResult,
Model model,
RedirectAttributes redirectAttributes) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey")) {
return "redirect:/uss/umt/user/EgovUserManage.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
if(!validationPasswd(mberManageVO.getPassword())){
redirectAttributes.addFlashAttribute("message", "패스워드 규칙에 어긋납니다.");
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
beanValidator.validate(mberManageVO, bindingResult);
if (bindingResult.hasErrors()){
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo)); //패스워트힌트목록
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
//List sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
//return "forward:/uss/umt/user/EgovUserInsertView.do";
return "cmm/uss/umt/EgovUserInsert";
}else{
try{
//userManageService.insertUser(userManageVO);
mberManageService.insertMber(mberManageVO); //일반사용자 등록
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
}catch(Exception e){
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("fail.common.insert"));
}
}
//관리자등록일 경우
if(mberManageVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
//사용자 등록일 경우
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovGnrlUserManage.do");
return redirectUrlMaker.getRedirectUrl();
}
/**
* 일반회원목록을 조회한다. (pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovMberManage
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/mber/EgovMberList.do")
public String EgovMberList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, ModelMap model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
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());
model.addAttribute("resultList", mberManageService.selectMberList(userSearchVO));
int totCnt = mberManageService.selectMberListTotCnt(userSearchVO);
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("paginationInfo", paginationInfo);
//일반회원 상태코드를 코드정보로부터 조회
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM013");
model.addAttribute("entrprsMberSttus_result", cmmUseService.selectCmmCodeDetail(vo));
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
SiteManagerVO siteManagerVO =new SiteManagerVO();
siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ;
model.addAttribute("siteManagerVO", siteManagerVO);
//return "cmm/uss/umt/EgovMberList";
return "cmm/uss/umt/EgovGnrlUserManage";
}
/**
* 일반회원정보 수정을 위해 일반회원정보를 상세조회한다.
* @param mberId 상세조회대상 일반회원아이디
* @param userSearchVO 검색조건
* @param model 화면모델
* @return uss/umt/EgovMberSelectUpdt
* @throws Exception
*/
@RequestMapping("/uss/umt/mber/EgovMberSelectUpdtView.do")
public String EgovMberSelectUpdtView(@RequestParam("selectedId") String uniqId, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, Model model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
return "index";
}
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
List<?> passwordHint_result = cmmUseService.selectCmmCodeDetail(vo);
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
List<?> sexdstnCode_result = cmmUseService.selectCmmCodeDetail(vo);
//이메일 코드
vo.setCodeId("COM103");
List<?> emailCodeList = cmmUseService.selectCmmCodeDetail(vo);
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
List<?> mberSttus_result = cmmUseService.selectCmmCodeDetail(vo);
//권한정보를 조회 -
//AuthorManageVO authorManageVO = new AuthorManageVO();
//List<AuthorManageVO> authorManageList = egovAuthorManageService.selectAuthorUseAllList(authorManageVO);
model.addAttribute("passwordHint_result", passwordHint_result); //패스워트힌트목록
model.addAttribute("sexdstnCode_result", sexdstnCode_result); //성별구분코드목록
model.addAttribute("emailCodeList", emailCodeList); //이메일코드
model.addAttribute("mberSttus_result", mberSttus_result); //사용자상태코드목록
//model.addAttribute("authorManageList", authorManageList); //그룹정보 목록
//config 정보 가져오기
MberManageConfigVO voTemp = new MberManageConfigVO();
List<MberManageConfigVO> mberManageCnfVO = mberManageService.selectMberCnf(voTemp);
for (MberManageConfigVO configVO : mberManageCnfVO) {
model.addAttribute(configVO.getConfigId() , configVO); //컬럼 이름으로 jsp에 VO 전송
}
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setUniqId(uniqId);
String mberId = mberManageService.selectUniqIdToMberId(mberManageVO);
mberManageVO = mberManageService.selectMber(mberId);
//생일/핸드폰번호/이메일 VO에서 자르기?
String birth = mberManageVO.getBirth();
if (!EgovStringUtil.isEmpty(birth)) {
mberManageVO.setBirthYear(birth.substring(0, 4));
mberManageVO.setBirthMonth(birth.substring(4, 6));
mberManageVO.setBirthDay(birth.substring(6, 8));
}
String moblphonNo = mberManageVO.getMoblphonNo();
if (!EgovStringUtil.isEmpty(moblphonNo)) {
int subSize = 0;
if (moblphonNo.length() > 10) subSize = 7;
else subSize = 6;
mberManageVO.setMoblphonNo1(moblphonNo.substring(0, 3));
mberManageVO.setMoblphonNo2(moblphonNo.substring(3, subSize));
mberManageVO.setMoblphonNo3(moblphonNo.substring(subSize, moblphonNo.length()));
}
String mberEmailAdres = mberManageVO.getMberEmailAdres();
if (!EgovStringUtil.isEmpty(mberEmailAdres)) {
String[] emailAdres = EgovStringUtil.split(mberEmailAdres, "@");
mberManageVO.setEmail1(emailAdres[0]);
mberManageVO.setEmail2(emailAdres[1]);
}
// 사진파일ID
mberManageVO.setAtchFileId(mberManageVO.getPhotofileId());
//기존 권한 코드
mberManageVO.setOrignlAuthorCode(mberManageVO.getAuthorCode());
model.addAttribute("mberManageVO", mberManageVO);
model.addAttribute("userSearchVO", userSearchVO);
return "cmm/uss/umt/EgovMberSelectUpdtView";
}
/**
* 일반회원정보 수정후 목록조회 화면으로 이동한다.
* @param mberManageVO 일반회원수정정보
* @param bindingResult 입력값검증용 bindingResult
* @param model 화면모델
* @return forward:/uss/umt/EgovMberManage.do
* @throws Exception
*/
@RequestMapping("/uss/umt/mber/EgovMberSelectUpdt.do")
public String EgovMberSelectUpdt(@ModelAttribute("mberManageVO") MberManageVO mberManageVO, BindingResult bindingResult, Model model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (!isAuthenticated) {
return "forward:/uss/umt/mber/EgovMberList.do";
}
beanValidator.validate(mberManageVO, bindingResult);
if (bindingResult.hasErrors()) {
model.addAttribute("message", bindingResult.getAllErrors().get(0).getDefaultMessage());
return "forward:/uss/umt/EgovMberManage.do";
} else {
if (EgovStringUtil.isEmpty(mberManageVO.getGroupId())) {
mberManageVO.setGroupId(null);
}
mberManageService.updateMber(mberManageVO);
//Exception 없이 진행시 수정성공메시지
model.addAttribute("message", egovMessageSource.getMessage("success.common.update"));
return "forward:/uss/umt/mber/EgovMberList.do";
}
}
/**
* 일반회원정보삭제후 목록조회 화면으로 이동한다.
* @param checkedIdForDel 삭제대상 아이디 정보
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return forward:/uss/umt/EgovMberManage.do
* @throws Exception
*/
@RequestMapping("/uss/umt/mber/EgovMberDelete.do")
public String EgovMberDelete(final MultipartHttpServletRequest multiRequest, @RequestParam("checkedIdForDel") String checkedIdForDel, @ModelAttribute("searchVO") UserDefaultVO userSearchVO, Model model) throws Exception {
if (!EgovDoubleSubmitHelper.checkAndSaveToken("someKey" , multiRequest)) {
return "redirect:/uss/umt/mber/EgovMberList.do";
}
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
mberManageService.deleteMber(checkedIdForDel);
//Exception 없이 진행시 삭제성공메시지
model.addAttribute("message", egovMessageSource.getMessage("success.common.delete"));
return "forward:/uss/umt/mber/EgovMberList.do";
}
private boolean validationPasswd(String pw){
String pattern = "(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&*()-+=])(?=\\S+$).{8,}";
if(pw.matches(pattern)){
return true;
}
return false;
}
@RequestMapping(value = "/uss/umt/user/PassMissResetAjax.do")
public ModelAndView passMissResetAjax(@RequestParam Map<String, Object> commandMap,
LoginVO loginVO
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
loginService.updatePassMissReset(loginVO);
return modelAndView;
}
//사용자 회원상태 변경
@RequestMapping(value = "/uss/umt/user/updateEmplyrSttusCodeAjax.do")
public ModelAndView updateEmplyrSttusCodeAjax(@RequestParam Map<String, Object> commandMap,
LoginVO loginVO
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
loginService.updateEmplyrSttusCode(loginVO);
return modelAndView;
}
/**
*
* (사용자) 차단 사용자목록을 조회한다. (pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovUserManage
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/EgovBlockUserList.do")
public String selectBlockUserList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model,
HttpSession session) throws Exception{
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();
if(null != loginVO && !"super".equals(loginVO.getSiteId())){
userSearchVO.setSiteId(loginVO.getSiteId());
}
userSearchVO.setAdminYn("N");
if(null==userSearchVO.getSearchCondition_01()){ //최초 페이지 로딩시 차단목록 조회
userSearchVO.setEmplyrSttusCode("B");
}else{
userSearchVO.setEmplyrSttusCode(userSearchVO.getSearchCondition_01());
}
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("uniqId");
userSearchVO.setSearchSortOrd("desc");
}
List<?> resultList = userManageService.selectUserList(userSearchVO);
model.addAttribute("resultList", resultList);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
//사용자상태코드를 코드정보로부터 조회
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCodeList", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
return "cmm/uss/umt/EgovBlockUserList";
}
/**
* rsa 공개키, 개인키 생성
*
* @param request
*/
public void initRsa(HttpServletRequest request) {
HttpSession session = request.getSession();
KeyPairGenerator generator;
try {
generator = KeyPairGenerator.getInstance(EgovUserManageController.RSA_INSTANCE);
generator.initialize(1024);
KeyPair keyPair = generator.genKeyPair();
KeyFactory keyFactory = KeyFactory.getInstance(EgovUserManageController.RSA_INSTANCE);
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
session.setAttribute(EgovUserManageController.RSA_WEB_KEY, privateKey); // session에 RSA 개인키를 세션에 저장
RSAPublicKeySpec publicSpec = (RSAPublicKeySpec) keyFactory.getKeySpec(publicKey, RSAPublicKeySpec.class);
String publicKeyModulus = publicSpec.getModulus().toString(16);
String publicKeyExponent = publicSpec.getPublicExponent().toString(16);
request.setAttribute("RSAModulus", publicKeyModulus); // rsa modulus 를 request 에 추가
request.setAttribute("RSAExponent", publicKeyExponent); // rsa exponent 를 request 에 추가
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 복호화
*
* @param privateKey
* @param securedValue
* @return
* @throws Exception
*/
private String decryptRsa(PrivateKey privateKey, String securedValue) throws Exception {
Cipher cipher = Cipher.getInstance(EgovUserManageController.RSA_INSTANCE);
byte[] encryptedBytes = hexToByteArray(securedValue);
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
String decryptedValue = new String(decryptedBytes, "utf-8"); // 문자 인코딩 주의.
return decryptedValue;
}
/**
* 16진 문자열을 byte 배열로 변환한다.
*
* @param hex
* @return
*/
public static byte[] hexToByteArray(String hex) {
if (hex == null || hex.length() % 2 != 0) { return new byte[] {}; }
byte[] bytes = new byte[hex.length() / 2];
for (int i = 0; i < hex.length(); i += 2) {
byte value = (byte) Integer.parseInt(hex.substring(i, i + 2), 16);
bytes[(int) Math.floor(i / 2)] = value;
}
return bytes;
}
/* 회원가입 설정 업데이트*/
@RequestMapping("/uss/umt/user/EgovBlockUserUpdateAjax.do")
public ModelAndView selectBlockUserAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
UserManageVO inertUserManageVO = new UserManageVO();
//mberManageService.updateMberCnf(mberManageConfigVO);
try {
for(int i=0 ; i< userManageVO.getEsntlIdNsttusCode().length ; i++) {
inertUserManageVO.setEsntlId(userManageVO.getEsntlIdNsttusCode()[i].split(":")[0]);
inertUserManageVO.setEmplyrSttusCode(userManageVO.getEsntlIdNsttusCode()[i].split(":")[1]);
userManageService.updateUserSttusCode(inertUserManageVO);
}
modelAndView.addObject("result", "success");
}catch (Exception e) {
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 개인정보보호 비밀번호 체크
* @param commandMap 파라메터전달용 commandMap
* @param model 화면모델
* @return uss/umt/EgovIdDplctCnfirm
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/CheckInfoProtectAjax.do")
public ModelAndView CheckInfoProtectAjax(@RequestParam Map<String, Object> commandMap
,UserManageVO userManageVO
,HttpSession session
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
UserManageVO returnUserManageVO = new UserManageVO();
userManageVO.setUniqId(userManageVO.getEsntlId());
returnUserManageVO = userManageService.selectPassword(userManageVO) ;
if(null==returnUserManageVO) { //UserManageVO
modelAndView.addObject("usedCnt", 0);
}else {
String returnPassword = returnUserManageVO.getPassword() ;
//패스워드 암호화
String encryptPass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
if(returnPassword.equals(encryptPass)) {
modelAndView.addObject("usedCnt", 1);
//세션으로 인증넣어줌
session.setAttribute("info_pro_session", true);
}else {
modelAndView.addObject("usedCnt", 0);
}
}
return modelAndView;
}
/**
* 개인정보보호 하단 include
* @param commandMap 파라메터전달용 commandMap
* @param model 화면모델
* @return uss/umt/EgovIdDplctCnfirm
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/IncInfoProtect.do")
public String IncInfoProtect(ModelMap model,
HttpSession session) throws Exception{
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
SiteManagerVO siteManagerVO =new SiteManagerVO();
siteManagerVO.setSiteId(loginVO.getSiteId()); //자신이 속한 사이트 아이디
siteManagerVO = egovSiteManagerService.selectSiteManagerVO(siteManagerVO) ;
model.addAttribute("siteManagerVO", siteManagerVO);
return "cmm/uss/umt/IncInfoProtect";
}
//리스트 엑셀 다운로드
@RequestMapping(value="/uss/umt/user/userExcelDownload.do")
public void userExcelDownload(UserDefaultVO userSearchVO,
HttpServletRequest request,
HttpServletResponse response ,
ModelMap model) throws Exception {
userSearchVO.setRecordCountPerPage(100000);
userSearchVO.setFirstIndex(0);
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 ="관리자 리스트";
if("Y".equals(userSearchVO.getGnrlUser())) fileName = "사용자 리스트" ;
String sheetTitle = "";
try{
List<?> userSearchList = userManageService.selectUserList(userSearchVO) ;
{ //화면 리스트
sheetTitle = "관리자 리스트(화면)" ; //제목
if("Y".equals(userSearchVO.getGnrlUser())) sheetTitle = "사용자 리스트(화면)" ;
Sheet sheet = wb.createSheet(sheetTitle);
row = sheet.createRow(0);
for(int i=0 ; i < userExcelValue.length ; i++) {
cell = row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(userExcelValue[i][1]);
}
for(int i=0; i < userSearchList.size(); i++){
row = sheet.createRow(i+1);
for(int j=0 ; j < userExcelValue.length ; j++) {
cell = row.createCell(j);
cell.setCellStyle(style);
if(j==0) cell.setCellValue(i+1); //번호
if(j==1) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("siteIdTxt")); //사이트명
if(j==2) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userId")); //아이디
if(j==3) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userNm")); //관리자명
if(j==4) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("authorCodeTxt")); //권한
if(j==5) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("offmTelno")); //전화번호
if(j==6) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("emailAdres")); //이메일
if(j==7) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("sbscrbDe")); //등록일
}
}
}
{ //DB리스트
sheetTitle = "관리자 리스트(DB)" ; //제목
if("Y".equals(userSearchVO.getGnrlUser())) sheetTitle = "사용자 리스트(DB)" ;
Sheet sheet = wb.createSheet(sheetTitle);
row = sheet.createRow(0);
for(int i=0 ; i < userExcelValue.length-2 ; i++){ //아이디,등록일자 없어 -2
cell = row.createCell(i);
cell.setCellStyle(style);
if(i==0) {
cell.setCellValue( "Y".equals(userSearchVO.getGnrlUser()) ? "사용자 아이디" : "관리자 아이디" );
}else if(i==1){
if(!"".equals(userExcelValue[i][3])){
cell.setCellValue(userExcelValue[i][1]+"\n"+userExcelValue[i][3]);
}else {
cell.setCellValue(userExcelValue[i][1]);
}
}else{ //3번제 컬럼 부터 하나씩 앞으로 세팅
if(!"".equals(userExcelValue[i+1][3])){
cell.setCellValue(userExcelValue[i+1][1]+"\n"+userExcelValue[i+1][3]);
}else {
cell.setCellValue(userExcelValue[i+1][1]);
}
}
}
for(int i=0; i < userSearchList.size(); i++){
row = sheet.createRow(i+1);
/*for(int j=0 ; j < userExcelValue.length-1 ; j++) {*/
for(int j=0 ; j < userExcelValue.length-2 ; j++) {//아이디 없어 -1
cell = row.createCell(j);
cell.setCellStyle(style);
if(j==0) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userId")); //아이디
if(j==1) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("siteId")); //사이트명
if(j==2) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("userNm")); //관리자명
if(j==3) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("authorCode")); //권한
if(j==4) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("offmTelno")); //전화번호
if(j==5) cell.setCellValue((String)((EgovMap)userSearchList.get(i)).get("emailAdres")); //이메일
}
}
}
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy_MM_dd_HH_mm_ss", Locale.KOREA );
Date currentTime = new Date ();
String mTime = mSimpleDateFormat.format ( currentTime );
fileName = fileName+"("+mTime+")";
response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx"));
wb.write(response.getOutputStream());
}catch(Exception e) {
response.setHeader("Set-Cookie", "fileDownload=false; path=/");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Content-Type","text/html; charset=utf-8");
OutputStream out = null;
try {
out = response.getOutputStream();
byte[] data = new String("fail..").getBytes();
out.write(data, 0, data.length);
} catch(Exception ignore) {
ignore.printStackTrace();
} finally {
if(out != null) try { out.close(); } catch(Exception ignore) {}
}
}finally {
// 디스크 적었던 임시파일을 제거합니다.
wb.dispose();
try { wb.close(); } catch(Exception ignore) {}
}
}
//자동완성 데이터 가져오기
@RequestMapping(value = "/uat/uia/RecentSearchShowAjax.do", method = RequestMethod.GET, produces="text/plain;charset=UTF-8")
@ResponseBody
public String recentSearchShowAjax(Locale locale,
UserManageVO userManageVO,
Model model,
HttpSession session) throws Exception {
//DB부하로 로그인시 session 의 최근 검색어를 가져옴.
Gson gson = new Gson();
return gson.toJson(session.getAttribute("recentSearch"));
}
/**
* 검색 버튼 클릭시 최근검색어 등록
*/
@RequestMapping("/uat/uia/RecentSearchUpdateAjax.do")
public ModelAndView RecentSearchUpdateAjax(UserManageVO userManageVO,
HttpSession session
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
if(null != session.getAttribute("loginId")) { //로그인시
if(null != session.getAttribute("recentSearch")){ //세션이 없으면(로그인 안함) DB조회
List<String> arrRecentSearch = (List<String>)session.getAttribute("recentSearch") ;
arrRecentSearch.add(0 , userManageVO.getSearchWord()); //맨앞 추가;
//사이트별 갯수 세팅
List<SiteManagerVO> siteManageList = (List<SiteManagerVO>)session.getAttribute("siteManageList") ;
for(SiteManagerVO siteManagerVO : siteManageList) {
if(siteManagerVO.getSiteId().equals((String)session.getAttribute("siteId"))){
//RECENT_SEARCH_CD` char(1) DEFAULT 'N' COMMENT '최근검색어 관리코드(N:사용안함,5:5개,9:10개)'
if("N".equals(siteManagerVO.getRecentSearchCd())){ //사용안함
arrRecentSearch = arrRecentSearch.subList(0 ,0) ;
}else if("5".equals(siteManagerVO.getRecentSearchCd())){
if(arrRecentSearch.size() > 5) {
arrRecentSearch = arrRecentSearch.subList(0 ,5) ;
}else {
arrRecentSearch = arrRecentSearch.subList(0, arrRecentSearch.size()) ;
}
}else{ //9면 10개까지
if(arrRecentSearch.size() > 10) {
arrRecentSearch = arrRecentSearch.subList(0 , 10) ;
}else {
arrRecentSearch = arrRecentSearch.subList(0, arrRecentSearch.size()) ;
}
}
break;
}
}
//중복값 제거
ArrayList arrList = new ArrayList();
HashSet hs = new HashSet(arrRecentSearch);
Iterator it = hs.iterator();
String tempStr = "";
while(it.hasNext()){
tempStr = (String)it.next();
if(!"".equals(tempStr)) {
arrList.add(tempStr) ;
}
tempStr = "";
}
arrRecentSearch = arrList ;
//추가된 값을 세션에 넣는다.
session.setAttribute("recentSearch", arrRecentSearch) ;
//String 변환 및 DB 업데이트
userManageVO.setEmplyrId((String)session.getAttribute("loginId"));
userManageVO.setSearchWord(String.join(",", arrRecentSearch));
userManageService.insertUpdateSearchWord(userManageVO);
}else{
}
}
/*egovSiteManagerService.updateAdminLogKpCd(siteManagerVO);
modelAndView.addObject("siteManagerVO", siteManagerVO);*/
return modelAndView;
}
@RequestMapping("/getUrlAjax.do")
public ModelAndView getUrlAjax(UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
StringBuffer sbuf = new StringBuffer();
StringBuffer result = new StringBuffer();
try {
// URL 객체 생성
String strurlOri = "https://www.warmemo.or.kr/front/militaryInfo/searchView.do?idx=" ;
String strurl = "";
for(int i = 2073 ; i <= 2430 ; i++) {
strurl = strurlOri+i;
URL url = new URL(strurl);
// URLConnection 생성
URLConnection urlConn = url.openConnection();
InputStream is = urlConn.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String str ;
int line = 0;
while((str=br.readLine()) != null){
sbuf.append(str + "\r\n") ;
if(line != 0) {
line++;
}
if(str.contains("<div class=\"rightInfo\">")) {
line ++;
}
if(line == 3) {
result.append(strurl +"," + str.trim()+"," );
}
if(str.contains("유형 :")) {
result.append(str.split(":")[1].trim()+"\n");
}
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return modelAndView;
}
/*nice체크 오프너로 이용*/
@RequestMapping("/uss/umt/user/niceCheckAjax.do")
public String niceCheckWeb(HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
@ModelAttribute("mberManageVO") MberManageVO mberManageVO,
ModelMap model , HttpSession session
) throws Exception {
String niceMessage = niceCheck(request, session, mberManageVO).getNiceMessage();
System.out.println("niceMessage --- " + niceMessage) ;
if("".equals(niceMessage)) { //정상의 경우 세션 생성 후 오프너 close
/*UserVO tempVO = new UserVO();
// tempVO.setMblDn(damoEnc(userSearchVO.getMblDn(), request)); //DI암호화 //테스트라 주석
tempVO.setName(userSearchVO.getNiceNm());*/
MberManageVO tempVO = new MberManageVO();
tempVO.setNiceNm(mberManageVO.getNiceNm());
tempVO.setBirthDay(mberManageVO.getBirthDay());
tempVO.setMoblphonNo(mberManageVO.getMoblphonNo());
tempVO.setSexdstnCode(mberManageVO.getSexdstnCode());
request.getSession().setAttribute("userSearchVO", tempVO);
}
if(null != (String)session.getAttribute("PAGE_TYPE") && "SEND_AUTH_NUMBER".equals((String)session.getAttribute("PAGE_TYPE"))) { //발신인증경우
MberManageVO authSendMemberVO = new MberManageVO();
authSendMemberVO.setMoblphonNo(mberManageVO.getMoblphonNo());
model.addAttribute("authSendMemberVO", authSendMemberVO);
return "web/cop/selfauth/niceCheckSendAuthAjax";
}
return "web/cop/selfauth/niceCheckAjax";
}
/**
* 사용자정보 후보자 상세를 위해 후보자정보를 상세조회한다.
* @param mberId 상세조회대상 사용자아이디
* @param
* @return MjonCandidateVO
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserCondidateDetailPop.do")
public String EgovGnrlselectedUserCondidateDetailPop(@ModelAttribute MberManageVO reqMberManageVO,
HttpServletRequest request,
Model model) throws Exception {
//선거 후보자 정보 불러오기
MjonCandidateVO mjonCandidateVO = new MjonCandidateVO();
if(reqMberManageVO.getMberId() != ""){
mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(reqMberManageVO.getMberId());
//String cryptText = egovCryptoUtil.encrypt(plainText);
if(mjonCandidateVO != null) {
// 주민번호 복호화 하기
String regidentNo1 = egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo1());
String regidentNo2 = egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo2());
mjonCandidateVO.setRegidentNo1(regidentNo1);
mjonCandidateVO.setRegidentNo2(regidentNo2);
}
}
model.addAttribute("mjonCandidateVO", mjonCandidateVO);
return "cmm/uss/umt/EgovGnrlUserSelectCondidateDetailPop";
}
/**
* 회원 그림문자 이미지 경로 및 파일 아이디 조회하기
* @param searchVO
* @param model
* @return "/uss/umt/user/selectMberAtchFileInfoAjax.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/selectMberMsgDetailAjax.do"})
public String selectMberMsgDetailAjax(@ModelAttribute("searchVO") MjonMsgSentVO mjonMsgSentVO, ModelMap model) throws Exception{
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
//문자 상세보기 처리
MjonMsgSentVO resultMsgDetail = mjonMsgSentService.selectMsgSentDetailDataAjax(mjonMsgSentVO);
if(resultMsgDetail.getFileCnt() != "0") {
if(resultMsgDetail.getFilePath1() != null) {
String filePathId1 = resultMsgDetail.getFilePath1().substring(resultMsgDetail.getFilePath1().lastIndexOf("/")+1);
int idx = filePathId1.lastIndexOf(".");
String fileId = filePathId1.substring(0, idx);
MjonMsgSentVO info = mjonMsgSentService.selectFileInfo(fileId);
model.addAttribute("atchFileId1", info.getAtchFileId());
model.addAttribute("fileSn1", info.getFileSn());
}
if(resultMsgDetail.getFilePath2() != null) {
String filePathId2 = resultMsgDetail.getFilePath2().substring(resultMsgDetail.getFilePath2().lastIndexOf("/")+1);
int idx = filePathId2.lastIndexOf(".");
String fileId = filePathId2.substring(0, idx);
MjonMsgSentVO info = mjonMsgSentService.selectFileInfo(fileId);
model.addAttribute("atchFileId2", info.getAtchFileId());
model.addAttribute("fileSn2", info.getFileSn());
}
if(resultMsgDetail.getFilePath3() != null) {
String filePathId3 = resultMsgDetail.getFilePath3().substring(resultMsgDetail.getFilePath3().lastIndexOf("/")+1);
int idx = filePathId3.lastIndexOf(".");
String fileId = filePathId3.substring(0, idx);
MjonMsgSentVO info = mjonMsgSentService.selectFileInfo(fileId);
model.addAttribute("atchFileId3", info.getAtchFileId());
model.addAttribute("fileSn3", info.getFileSn());
}
}
model.addAttribute("resultMsgDetail", resultMsgDetail);
return "cmm/uss/umt/EgovGnrUserSelectMsgSentDetailPopAjax";
}
/**
* 회원 이용정지 사유 조회하기
* @param searchVO
* @param model
* @return "/uss/umt/user/uss/umt/user/selectMberSpamBlockMemoDetailAjax.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/selectMberSpamBlockMemoDetailAjax.do"})
public String selectMberSpamBlockMemoDetailAjax(MberManageVO mberManageVO, ModelMap model) throws Exception{
try {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
//스팸정지 회원 정보 조회하기
MberManageVO resultSpamMberInfo = mberManageService.selectSpamMemberInfo(mberManageVO);
MjonMsgSentVO mjonMsgSentVO = new MjonMsgSentVO();
MjonMsgSentVO resultMsgDetail = new MjonMsgSentVO();
//스팸정지를 문자내용 문제로 정지시킨경우 문자 내용 정보 불러오기
if(resultSpamMberInfo.getMsgGroupId() != null) {
mjonMsgSentVO.setUserId(mberManageVO.getMberId());
mjonMsgSentVO.setMsgGroupId(resultSpamMberInfo.getMsgGroupId());
//문자 상세보기 처리
resultMsgDetail = mjonMsgSentService.selectMsgSentDetailDataAjax(mjonMsgSentVO);
//그림 문자인 경우 그림 이미지 불러오기
if(resultMsgDetail != null && resultMsgDetail.getFileCnt() != "0") {
if(resultMsgDetail.getFilePath1() != null) {
String filePathId1 = resultMsgDetail.getFilePath1().substring(resultMsgDetail.getFilePath1().lastIndexOf("/")+1);
int idx = filePathId1.lastIndexOf(".");
String fileId = filePathId1.substring(0, idx);
MjonMsgSentVO info = mjonMsgSentService.selectFileInfo(fileId);
model.addAttribute("atchFileId1", info.getAtchFileId());
model.addAttribute("fileSn1", info.getFileSn());
}
if(resultMsgDetail.getFilePath2() != null) {
String filePathId2 = resultMsgDetail.getFilePath2().substring(resultMsgDetail.getFilePath2().lastIndexOf("/")+1);
int idx = filePathId2.lastIndexOf(".");
String fileId = filePathId2.substring(0, idx);
MjonMsgSentVO info = mjonMsgSentService.selectFileInfo(fileId);
model.addAttribute("atchFileId2", info.getAtchFileId());
model.addAttribute("fileSn2", info.getFileSn());
}
if(resultMsgDetail.getFilePath3() != null) {
String filePathId3 = resultMsgDetail.getFilePath3().substring(resultMsgDetail.getFilePath3().lastIndexOf("/")+1);
int idx = filePathId3.lastIndexOf(".");
String fileId = filePathId3.substring(0, idx);
MjonMsgSentVO info = mjonMsgSentService.selectFileInfo(fileId);
model.addAttribute("atchFileId3", info.getAtchFileId());
model.addAttribute("fileSn3", info.getFileSn());
}
}
}
model.addAttribute("resultSpamMberInfo", resultSpamMberInfo);
model.addAttribute("resultMsgDetail", resultMsgDetail);
} catch (Exception e) {
System.out.println("이용자 정지 사유 정보 불러오기 오류 : Controller");
}
return "cmm/uss/umt/EgovGnrUserSelectSpamBlockDetailPopAjax";
}
/**
* 회원 스팸회원 처리
* @param searchVO
* @param model
* @return "/uss/umt/user/updateMberSttusBlockAjax"
* @throws Exception
*/
//ㅁ
//자동으로 사용자 상태를 변경하는 경우
//step1.회원상태 변경
//step1-1-1.이용정지시
//step1-1-1-1.발신번호거부처리
//step1-1-1-2.스팸회원정보등록
//step1-1-1-3.이용정지IP등록
//step1-1-2.이용정지해제시
//step1-1-2-1.이용정지IP삭제
//step1-2.관리자 처리 히스토리 남기기
//step1-3.사용자 상태 변경
//step2.가상계좌 처리
@RequestMapping(value = {"/uss/umt/user/updateMberSttusBlockAjax.do"})
public ModelAndView updateMberSttusBlockAjax(@ModelAttribute("searchVO") MberManageVO mberManageVO, Model model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
mberManageVO.setMberSttusUpdusrId(userId); //회원테이블 상태 수정자 ID
mberManageVO.setLastUpdusrId(userId); // 문자온 전화번호 테이블 상태 수정자 ID
mberManageVO.setPhmType("03"); //전화번호 타입 03(거부) 처리
mberManageVO.setMberSttus("B"); //차단처리
mberManageService.updateMberSttusBlockAjax(mberManageVO);
//가상계좌 보유 여부 체크
//대상 리스트 가져오기
VacsVactVO vacsVactVO = new VacsVactVO();
String mberId = mberManageVO.getMberId(); //이용정지 할 회원 아이디
vacsVactVO.setMberId(mberId);
List<VacsVactVO> myBankList = vacsVactService.selectBankAccountByUserId(vacsVactVO); //내가 할당받은 전용계좌 리스트 받아오기
int vacsCnt = myBankList.size();
//가상계좌 해지 처리
if(vacsCnt > 0) {
for(int i=0; i < vacsCnt; i++) {
String acctNo = myBankList.get(i).getAcctNo();
VacsVactVO vacsVO = new VacsVactVO();
vacsVO.setMberId(mberId); //회원 아이디
//계좌 해지일자 생성
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String closeDate = sdf.format(now);
vacsVO.setCloseIl(closeDate); //해지일자
vacsVO.setAcctNo(acctNo); //해지계좌번호
//계좌 상태 셋팅 0: 미할당, 1:할당, 9: 해지
vacsVO.setAcctSt("9");
int resultCnt = vacsVactService.updateVacsAccountUsrBlock(vacsVO);
}
}
// 관리자 메모
String memo = "";
memo = "회원상태 변경 : 이용정지, 사유 : "+ mberManageVO.getSmiMemo();
mberManageVO.setMberId(mberId);
mberManageVO.setMemoCn(memo);
mberManageVO.setFrstRegisterId(userId);
mberManageService.insertMberMemo(mberManageVO);
modelAndView.addObject("message", "차단처리가 완료되었습니다.");
modelAndView.addObject("result", "success");
}catch(Exception e) {
modelAndView.addObject("message", "차단처리에 실패했습니다.");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 회원 금지어 예외 처리 수정
* @param searchVO
* @param model
* @return "/uss/umt/user/updateMberExceptSpamYnAjax.do"
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/updateMberExceptSpamYnAjax.do"})
public ModelAndView updateMberExceptSpamYnAjax(@ModelAttribute("searchVO") MberManageVO mberManageVO, Model model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
mberManageVO.setMberSttusUpdusrId(userId); //회원테이블 상태 수정자 ID
mberManageVO.setLastUpdusrId(userId); // 문자온 전화번호 테이블 상태 수정자 ID
System.out.println(mberManageVO.getExceptSpamYn());
System.out.println(mberManageVO.getMberId());
int result = mberManageService.updateMberExceptSpamYn(mberManageVO);
if(result > 0) {
modelAndView.addObject("message", "금지어 예외 수정이 완료되었습니다.");
modelAndView.addObject("result", "success");
}else {
modelAndView.addObject("message", "금지어 예외 수정이 완료되지 못하였습니다.");
modelAndView.addObject("result", "fail");
}
}catch(Exception e) {
modelAndView.addObject("message", "차단처리에 실패했습니다.");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 회원 스팸회원 체크
* @param searchVO
* @param model
* @return "/uss/umt/user/selectMberSttusAjax"
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/selectMberSttusAjax.do"})
public ModelAndView selectMberSttusAjax(@RequestParam("mberId") String mberId,
Model model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
MberManageVO mberManageVO = mberManageService.selectMber(mberId);
modelAndView.addObject("message", "조회 완료되었습니다.");
modelAndView.addObject("result", mberManageVO.getMberSttus());
}catch(Exception e) {
modelAndView.addObject("message", "조회에 실패했습니다.");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
*
* (관리자) 이용정지회원 주소록 요청 목록(pageing)
* @param userSearchVO 검색조건정보
* @param model 화면모델
* @return cmm/uss/umt/EgovNewUserManage
* @throws Exception
*/
@RequestMapping(value = "/uss/umt/user/selectRequestAddrList.do")
public String selectRequestAddrList(@ModelAttribute("searchVO") MberManageVO mberManageVO,
ModelMap model) throws Exception {
if(mberManageVO.getPageUnit() != 10) {
mberManageVO.setPageUnit(mberManageVO.getPageUnit());
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mberManageVO.getPageIndex());
paginationInfo.setRecordCountPerPage(mberManageVO.getPageUnit());
paginationInfo.setPageSize(mberManageVO.getPageSize());
mberManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mberManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
mberManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if("".equals(mberManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
mberManageVO.setSearchSortCnd("smiId");
mberManageVO.setSearchSortOrd("desc");
}
List<?> resultList = mberManageService.selectRequestAddrList(mberManageVO);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("resultList", resultList);
return "cmm/uss/umt/EgovRequestAddrList";
}
/**
* 이용정지회원 주소록 전송 완료 처리
* @param searchVO
* @param model
* @return "/uss/umt/user/updateMberSttusYAjax"
* @throws Exception
*/
@RequestMapping(value = {"/uss/umt/user/updateSendSttusYAjax.do"})
public ModelAndView updateSendSttusYAjax(@ModelAttribute MberManageVO mberManageVO,
Model model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
mberManageVO.setSendId(userId);
mberManageVO.setSendSttus("Y"); //완료 처리
mberManageService.updateSendSttusY(mberManageVO);
modelAndView.addObject("message", "완료 처리되었습니다.");
modelAndView.addObject("result", "success");
}catch(Exception e) {
modelAndView.addObject("message", "완료 처리 실패했습니다.");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
//이용정지 회원 주소록 엑셀 다운로드
@RequestMapping("/uss/umt/user/spamMberAddrExcelDownload.do")
public void spamMberAddrExcelDownload(
AddrVO addrVO,
HttpServletRequest request,
HttpServletResponse response ,
ModelMap model) throws Exception {
addrVO.setRecordCountPerPage(100000);
addrVO.setFirstIndex(0);
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//모든항목 다운로드
String[] cellCheck = new String[8];
cellCheck[0] = "addrPhoneNo";
cellCheck[1] = "addrNm";
cellCheck[2] = "addrGrpNm";
cellCheck[3] = "addrComment";
cellCheck[4] = "addrInfo1";
cellCheck[5] = "addrInfo2";
cellCheck[6] = "addrInfo3";
cellCheck[7] = "addrInfo4";
// 메모리에 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{
addrVO.setSearchSortCnd("A.ADDR_ID");
addrVO.setSearchSortOrd("desc");
List<AddrVO> addrList = addrService.selectAddrList(addrVO);
{
// row, cell 개수 순서대로 증가용 필드
int rowNumber = 0;
int celNumber = 0;
//화면 리스트
sheetTitle = "주소록" ; //제목
Sheet sheet = wb.createSheet(sheetTitle);
row = sheet.createRow(rowNumber++);
cell = row.createCell(celNumber++);
cell.setCellValue("번호");
cell.setCellStyle(style);
//cell = row.createCell(celNumber++);
//cell.setCellValue("휴대폰번호");
//cell.setCellStyle(style);
for(String field : cellCheck) {
cell = row.createCell(celNumber++);
cell.setCellValue(addrVO.getHeaderName(field));
cell.setCellStyle(style);
}
for(int i=0; i < addrList.size(); i++){
row = sheet.createRow(rowNumber++); //줄추가
celNumber = 0;
cell = row.createCell(celNumber++);
cell.setCellStyle(style);
cell.setCellValue(i+1); //번호
//cell = row.createCell(celNumber++);
//cell.setCellStyle(style);
//cell.setCellValue(((AddrVO)addrList.get(i)).getAddrPhoneNo()); // 휴대폰번호
for(String field : cellCheck) {
cell = row.createCell(celNumber++);
cell.setCellStyle(style);
cell.setCellValue(((AddrVO)addrList.get(i)).getFieldValue(field));
}
}
}
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 selectedUserId -> uniqId 상세조회대상 사용자아이디
* @param userSearchVO 검색조건
* @return cmm/uss/umt/EgovGnrlUserSelectUpdtPopup
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserLoginDataListAjax.do")
public String EgovGnrlselectedUserLoginDataListAjax(@ModelAttribute("searchVO") UserLogVO userLogVO,
HttpServletRequest request,
Model model) throws Exception {
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userLogVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userLogVO.getPageUnit());
paginationInfo.setPageSize(userLogVO.getPageSize());
userLogVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userLogVO.setLastIndex(paginationInfo.getLastRecordIndex());
userLogVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
//전체 리스트 불러오기
//로그인 목록
List<UserLogVO> userLogList = userLogService.selectLoginLogId(userLogVO);
model.addAttribute("resultList", userLogList);
paginationInfo.setTotalRecordCount(userLogList.size() > 0 ? ((UserLogVO)userLogList.get(0)).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
return "cmm/uss/umt/EgovGnrlUserSelectLoginDataListPop";
}
/**
* 사용자정보 카카오 채널 등록 건 리스트 팝업 띄우기
* @param
* @param
* @return
* @param model 화면모델
* @throws Exception
*/
@RequestMapping("/uss/umt/user/EgovGnrlselectedUserKakaoChListPopup.do")
public String EgovGnrlselectedUserKakaoChListAjax(@ModelAttribute("searchVO") ChannelIDVO channelIDVO,
HttpServletRequest request ,
ModelMap model) throws Exception {
try {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(id == "") {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
if(channelIDVO.getPageUnit() != 10) {
channelIDVO.setPageUnit(channelIDVO.getPageUnit());
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(channelIDVO.getPageIndex());
paginationInfo.setRecordCountPerPage(channelIDVO.getPageUnit());
paginationInfo.setPageSize(channelIDVO.getPageSize());
channelIDVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
channelIDVO.setLastIndex(paginationInfo.getLastRecordIndex());
channelIDVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(channelIDVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
channelIDVO.setSearchSortCnd("profileId");
channelIDVO.setSearchSortOrd("desc");
}
//사용자 등록 발신프로필 정보 조회해오기
List<ChannelIDVO> resultChannelList = mjonKakaoATService.selectChannelIDList(channelIDVO);
int totCnt = 0;
paginationInfo.setTotalRecordCount(totCnt);
if(resultChannelList.size() > 0) {
totCnt = resultChannelList.get(0).getTotCnt();
}
paginationInfo.setTotalRecordCount(totCnt);
List<ChannelIDVO> resultApiProfileList = new ArrayList<ChannelIDVO>();
for(int i=0; i < resultChannelList.size(); i++) {
KakaoVO kakaoProfileVO = new KakaoVO();
String senderKey = resultChannelList.get(i).getSenderKey();
String profileId = resultChannelList.get(i).getProfileId();
String deleteYn = resultChannelList.get(i).getDeleteYn();
String userId = resultChannelList.get(i).getUserId();
kakaoProfileVO.setSenderKey(senderKey);
kakaoProfileVO.setProfileId(profileId);
KakaoReturnVO tmpProfileVO = kakaoApiProfile.kakaoApiProfileList(kakaoProfileVO);
ChannelIDVO returnChannelVO = new ChannelIDVO();
returnChannelVO.setSenderKey(tmpProfileVO.getSenderKey());
returnChannelVO.setUuid(tmpProfileVO.getUuid());
returnChannelVO.setName(tmpProfileVO.getName());
returnChannelVO.setStatus(tmpProfileVO.getStatus());
returnChannelVO.setProfileStatus(tmpProfileVO.getProfileStatus());
returnChannelVO.setCreatedAt(tmpProfileVO.getCreatedAt());
returnChannelVO.setModifiedAt(tmpProfileVO.getModifiedAt());
returnChannelVO.setDeleteYn(deleteYn);
returnChannelVO.setUserId(userId);
resultApiProfileList.add(returnChannelVO);
}
model.addAttribute("resultChannelList", resultApiProfileList);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("searchVO", channelIDVO);
} catch (Exception e) {
System.out.println("EgovGnrlselectedUserKakaoChListAjax Contrller Error ::: " + e);
}
return "cmm/uss/umt/EgovGnrlUserSelectKakaoChListPop";
}
public MberManageVO niceCheck(HttpServletRequest request, HttpSession session, MberManageVO mberManageVO) {
CPClient niceCheck = new CPClient();
String sEncodeData = requestReplace(request.getParameter("EncodeData"), "encodeData");
String sSiteCode = "BS933"; // NICE로부터 부여받은 사이트 코드
String sSitePassword = "2CU5kY9wpppk"; // NICE로부터 부여받은 사이트 패스워드
String sCipherTime = ""; // 복호화한 시간
String sRequestNumber = ""; // 요청 번호
String sResponseNumber = ""; // 인증 고유번호
String sAuthType = ""; // 인증 수단
String sName = ""; // 성명
String sDupInfo = ""; // 중복가입 확인값 (DI_64 byte)
String sConnInfo = ""; // 연계정보 확인값 (CI_88 byte)
String sBirthDate = ""; // 생년월일(YYYYMMDD)
String sGender = ""; // 성별
String sNationalInfo = ""; // 내/외국인정보 (개발가이드 참조)
String sMobileNo = ""; // 휴대폰번호
String sMobileCo = ""; // 통신사
String sMessage = "";
String sPlainData = "";
int iReturn = niceCheck.fnDecode(sSiteCode, sSitePassword, sEncodeData);
if( iReturn == 0 )
{
sPlainData = niceCheck.getPlainData();
sCipherTime = niceCheck.getCipherDateTime();
// 데이타를 추출합니다.
java.util.HashMap mapresult = niceCheck.fnParse(sPlainData);
sRequestNumber = (String)mapresult.get("REQ_SEQ");
sResponseNumber = (String)mapresult.get("RES_SEQ");
sAuthType = (String)mapresult.get("AUTH_TYPE");
sName = (String)mapresult.get("NAME");
//sName = (String)mapresult.get("UTF8_NAME"); //charset utf8 사용시 주석 해제 후 사용
sBirthDate = (String)mapresult.get("BIRTHDATE");
sGender = (String)mapresult.get("GENDER");
sNationalInfo = (String)mapresult.get("NATIONALINFO");
sDupInfo = (String)mapresult.get("DI");
sConnInfo = (String)mapresult.get("CI");
sMobileNo = (String)mapresult.get("MOBILE_NO");
sMobileCo = (String)mapresult.get("MOBILE_CO");
String session_sRequestNumber = (String)session.getAttribute("REQ_SEQ");
if(!sRequestNumber.equals(session_sRequestNumber))
{
sMessage = "세션값 불일치 오류입니다.";
sResponseNumber = "";
sAuthType = "";
}
}
else if( iReturn == -1)
{
sMessage = "복호화 시스템 오류입니다.";
}
else if( iReturn == -4)
{
sMessage = "복호화 처리 오류입니다.";
}
else if( iReturn == -5)
{
sMessage = "복호화 해쉬 오류입니다.";
}
else if( iReturn == -6)
{
sMessage = "복호화 데이터 오류입니다.";
}
else if( iReturn == -9)
{
sMessage = "입력 데이터 오류입니다.";
}
else if( iReturn == -12)
{
sMessage = "사이트 패스워드 오류입니다.";
}
else
{
sMessage = "알수 없는 에러 입니다. iReturn : " + iReturn;
}
try {
mberManageVO.setNiceMessage(sMessage);
mberManageVO.setNiceNm(sName);
mberManageVO.setMblDn(sDupInfo);
mberManageVO.setSexdstnCode(sGender);
mberManageVO.setMoblphonNo(sMobileNo);
mberManageVO.setBirthDay(sBirthDate);
}catch(Exception e) {
e.printStackTrace();
}
return mberManageVO;
}
//나이스 인증
public String requestReplace (String paramValue, String gubun) {
String result = "";
if (paramValue != null) {
paramValue = paramValue.replaceAll("<", "<").replaceAll(">", ">");
paramValue = paramValue.replaceAll("\\*", "");
paramValue = paramValue.replaceAll("\\?", "");
paramValue = paramValue.replaceAll("\\[", "");
paramValue = paramValue.replaceAll("\\{", "");
paramValue = paramValue.replaceAll("\\(", "");
paramValue = paramValue.replaceAll("\\)", "");
paramValue = paramValue.replaceAll("\\^", "");
paramValue = paramValue.replaceAll("\\$", "");
paramValue = paramValue.replaceAll("'", "");
paramValue = paramValue.replaceAll("@", "");
paramValue = paramValue.replaceAll("%", "");
paramValue = paramValue.replaceAll(";", "");
paramValue = paramValue.replaceAll(":", "");
paramValue = paramValue.replaceAll("-", "");
paramValue = paramValue.replaceAll("#", "");
paramValue = paramValue.replaceAll("--", "");
paramValue = paramValue.replaceAll("-", "");
paramValue = paramValue.replaceAll(",", "");
if(gubun != "encodeData"){
paramValue = paramValue.replaceAll("\\+", "");
paramValue = paramValue.replaceAll("/", "");
paramValue = paramValue.replaceAll("=", "");
}
result = paramValue;
}
return result;
}
public String damoEnc(String strDec, HttpServletRequest request) {
//DI 암호화
System.out.println("-----damoEnc---request.getRequestURL().toString()-----------" + request.getRequestURL().toString()+"-----") ;
String iniFilePath = "/usr/local/tomcat/damo/scpdb_agent.ini"; //실서버
if(request.getRequestURL().toString().contains("test.kofons.or.kr")){ //로컬
iniFilePath = "C:\\damo\\scpdb_agent.ini";
}else if(request.getRequestURL().toString().contains("219.240.88.15")) { //테스트
iniFilePath = "/usr/local/tomcat_kofons/damo/scpdb_agent.ini";
}
System.out.println("iniFilePath --" + iniFilePath + "---");
ScpDbAgent agt = new ScpDbAgent();
String strEnc = "";
try {
strEnc = agt.ScpEncB64( iniFilePath, "KEY1", strDec);
}catch(Exception e) {
}
return strEnc ;
}
}