File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
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.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.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;
@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);
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());
//스팸 필터링 예외처리 여부 값 - (온: 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());
// 등급제 단가 추출 => 시스템 단가에 적용
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 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(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("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.selectMberMsgSentLatestList(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 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());
}
}
// kakao 원가
kakaoAtCost = kakaoApiService.selectKakaoCost();
kakaoAtMargin = (1-(kakaoAtCost / kakaoAtPrice))*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("kakaoAtMargin", kakaoAtMargin);
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);
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);
*/
List<MjonMsgVO> sendSttstList = new ArrayList<MjonMsgVO>();
searchVO.setSendKind("");
MjonMsgVO allSttstInfo = mjonMsgService.selectApiSttstList(searchVO);
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);
//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";
}
/**
* @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);
}
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> 문의전화 : 010-8432-9333 | 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/EgovGnrlselectedUserView.do.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);
}
}
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 ;
}
}