package itn.let.sym.grd.web; import java.util.List; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import itn.com.cmm.LoginVO; import itn.let.sym.grd.service.MberGrdService; import itn.let.sym.grd.service.MberGrdVO; @Controller public class MberGrdMngController { @Resource(name = "mberGrdService") MberGrdService mberGrdService; /** * 등급제 관리자 화면 * * @param mberGrdVO * @param model * @return * @throws Exception */ @RequestMapping("/sym/grd/selectMberGrdSetting.do") public String selectJoinSetting(MberGrdVO mberGrdVO, ModelMap model) throws Exception { List mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO); mberGrdVO = mberGrdService.selectMberSettingDetail(mberGrdVO); model.addAttribute("grdNoti", mberGrdVO.getGrdNoti()); model.addAttribute("grdDate", mberGrdVO.getGrdDate()); model.addAttribute("grdPeriod", mberGrdVO.getGrdPeriod()); model.addAttribute("mberGrdSettingList", mberGrdSettingList); return "/sym/grd/mberGrdSetting"; } // 등급제 단가 정보 @RequestMapping(value = "/sym/grd/mberGrdSettingListAjax.do") public ModelAndView mberGrdSettingListAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; List mberGrdSettingList = null; try{ // 등급별 단가 정보 mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("mberGrdSettingList", mberGrdSettingList); return modelAndView; } // 등급제 설정 저장 @RequestMapping(value = "/sym/grd/mberGrdSettingUpdateAjax.do") public ModelAndView mberGrdSettingUpdateAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; int updateMberCnt = 0; // 로그인VO에서 사용자 정보 가져오기 LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // Step1. 등급제 시행여부 변경 int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO); if (updateCnt1 == 0) { isSuccess = false; msg = "등급제 시행여부 변경에 실패했습니다."; } } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("updateMberCnt", updateMberCnt); return modelAndView; } // 등급제 일괄 저장 @RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do") public ModelAndView mberGrdSettingMassUpdateAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; int updateMberCnt = 0; // 로그인VO에서 사용자 정보 가져오기 LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // Step1. 등급제 시행여부 변경 //int updateCnt1 = mberGrdService.updateMberSetting(mberGrdVO); //if (updateCnt1 == 0) { // isSuccess = false; // msg = "등급제 시행여부 변경에 실패했습니다."; //} //else { // Step2. 등급제 단가 업데이트 int updateCnt2 = mberGrdService.updateGrdSettingList(mberGrdVO); if (updateCnt2 == 0) { isSuccess = false; msg = "등급제 단가 변경에 실패했습니다."; } else { // Step3. 회원 등급 일괄변경 updateMberCnt = mberGrdService.updateMberGrdAll(mberGrdVO); } //} } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("updateMberCnt", updateMberCnt); return modelAndView; } // 회원별 등급 초기화 @RequestMapping(value = "/sym/grd/mberGrdResetMassUpdateAjax.do") public ModelAndView mberGrdResetMassUpdateAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; int updateMberCnt = 0; // 로그인VO에서 사용자 정보 가져오기 LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // Step 1. 등급제 시행 ON 일경우 MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); if (mberGrdVO1.getGrdNoti().equals("Y")) { mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); // 회원별 등급 초기화 updateMberCnt = mberGrdService.updateMberGrdWhiteAll(mberGrdVO); } } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("updateMberCnt", updateMberCnt); return modelAndView; } // 회원별 등급제 전체종료 @RequestMapping(value = "/sym/grd/mberGrdEndMassUpdateAjax.do") public ModelAndView mberGrdEndMassUpdateAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = true; String msg = ""; int updateMberCnt = 0; // 로그인VO에서 사용자 정보 가져오기 LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // 회원별 등급 전체종료 updateMberCnt = mberGrdService.updateMberGrdEndAll(mberGrdVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); modelAndView.addObject("updateMberCnt", updateMberCnt); return modelAndView; } // 회원별 등급 적용 테스트 @RequestMapping(value = "/sym/grd/mberGrdSaveAjax.do") public ModelAndView mberGrdSaveAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) 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(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // 회원별 등급 적용 mberGrdVO.setAmt("0"); mberGrdService.mberGrdSaveByUser(mberGrdVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } /** * 회원별 등급제 목록 화면 * * @param mberGrdVO * @param model * @return * @throws Exception */ @RequestMapping("/sym/grd/selectMberGrdList.do") public String selectMetaTagList(@ModelAttribute("searchVO") MberGrdVO mberGrdVO, ModelMap model) throws Exception{ /** paging */ PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(mberGrdVO.getPageIndex()); paginationInfo.setRecordCountPerPage(mberGrdVO.getPageUnit()); paginationInfo.setPageSize(mberGrdVO.getPageSize()); mberGrdVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); mberGrdVO.setLastIndex(paginationInfo.getLastRecordIndex()); mberGrdVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); if("".equals(mberGrdVO.getSearchSortCnd())){ //최초조회시 최신것 조회List mberGrdVO.setSearchSortCnd("regDate"); mberGrdVO.setSearchSortOrd("desc"); } List resultList = mberGrdService.selectMberGrdList(mberGrdVO); model.addAttribute("resultList", resultList); paginationInfo.setTotalRecordCount( resultList.size()> 0 ? resultList.get(0).getTotCnt() : 0); model.addAttribute("paginationInfo", paginationInfo); return "/sym/grd/mberGrdList"; } // 등급제 적용여부 체크 @RequestMapping(value = "/sym/grd/mberGrdChkAjax.do") public ModelAndView mberGrdChkAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = false; String msg = ""; MberGrdVO rtnMberGrdVO = new MberGrdVO(); // 로그인VO에서 사용자 정보 가져오기 LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ if (StringUtils.isNotEmpty(mberGrdVO.getMberId())) { // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); if (mberGrdVO1.getGrdNoti().equals("Y")) { // Step 2. 회원별 이벤트 진행여부 int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); if (mberEventPrgCnt == 0) { rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); if (null != rtnMberGrdVO) { isSuccess = true; } else { msg = "종료"; } } } } } catch(Exception e) { msg = e.getMessage(); } modelAndView.addObject("rtnMberGrdVO", rtnMberGrdVO); modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 회원 등급 예외 정보 @RequestMapping(value = "/sym/grd/mberGrdEtcChkAjax.do") public ModelAndView mberGrdEtcChkAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); boolean isSuccess = false; boolean isEvent = false; String msg = ""; MberGrdVO rtnMberGrdVO = new MberGrdVO(); // 로그인VO에서 사용자 정보 가져오기 LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ if (StringUtils.isNotEmpty(mberGrdVO.getMberId())) { // Step 2. 회원별 이벤트 진행여부 int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); if (mberEventPrgCnt == 0) { rtnMberGrdVO = mberGrdService.selectMberEtcInfo(mberGrdVO.getMberId()); if (null != rtnMberGrdVO) { isSuccess = true; } else { msg = "종료"; } } else { isEvent = true; } } } catch(Exception e) { msg = e.getMessage(); } modelAndView.addObject("rtnMberGrdVO", rtnMberGrdVO); modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("isEvent", isEvent); modelAndView.addObject("msg", msg); return modelAndView; } // 회원 등급제 종료 @RequestMapping(value = "/sym/grd/mberGrdEndByUserAjax.do") public ModelAndView mberGrdEndByUserAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) 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(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // 회원 등급제 종료 mberGrdService.updateMberGrdEndByUser(mberGrdVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 회원 등급제 복원 @RequestMapping(value = "/sym/grd/mberGrdRestoreByUserAjax.do") public ModelAndView mberGrdRestoreByUserAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) 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(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // 회원 등급제 복원 mberGrdService.updateMberGrdRestoreByUser(mberGrdVO); // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 mberGrdService.updateMberGrdAfterRefund(mberGrdVO); } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } // 회원 등급제 갱신 @RequestMapping(value = "/sym/grd/mberGrdUpdateByUserAjax.do") public ModelAndView mberGrdUpdateByUserAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) 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(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID try{ // Step 1. 등급제 시행 ON 일경우 MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); if (mberGrdVO1.getGrdNoti().equals("Y")) { mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 mberGrdService.updateMberGrdAfterRefund(mberGrdVO); } } catch(Exception e) { isSuccess = false; msg = e.getMessage(); } modelAndView.addObject("isSuccess", isSuccess); modelAndView.addObject("msg", msg); return modelAndView; } }