/** * 알리미 수신여부 정보 조회한다. 알리미 가입시 smsJoin.jsp 알리미 해지시 smsCancle.jsp 로이동 * * @return * @throws UserServiceException */ public String smsCheck() { DataMap userData = getDataMap(); String returnStr = ""; String notify = ""; String mdn = (String) userData.get(DataMap.MAP_MDN); UserParam userParam = new UserParam(); userParam.setMdn(mdn); UserVO userVO = m_sessionManager.getUser(getRequest()); if (userVO != null) { notify = userVO.getNotify(); } if (NGCConst.USER_NOTIFY_CANCLE.equals(notify)) { // 비가입, 해지자 (알리미 가입페이지로) returnStr = "join"; } else if (NGCConst.USER_NOTIFY_SETTING.equals(notify)) { // 가입 중(알리미 해지 페이지로) returnStr = "cancle"; } else { return ERROR; } return returnStr; }
/** * 단말기 사이즈 리턴 176 = 0, 204 = 1 * * @param request * @return */ public int getUserLCDSize(HttpServletRequest request) { // 단말기 lcd 사이즈 추출 DataMap userData = getDataMap(); int lcd_size = (Integer) userData.get(DataMap.MAP_LCDSIZE); int result = 0; if (DataMap.LCDSIZE_240 == lcd_size) { // 240size일때 result = DataMap.LCDSIZE_240; } else if (DataMap.LCDSIZE_176 == lcd_size) { // 176size일때 result = DataMap.LCDSIZE_176; } return result; }
/** * 프리존 n게임센터 가입여부 체크 * * @return * @throws UserServiceException */ public String joinCheck() throws UserServiceException { String existing = CommUtils.checkNull(getParameter("existing")); if (existing.equals("Y")) { return "existing"; } else if (existing.equals("N")) { return "new"; } DataMap userData = getDataMap(); String mdn = (String) userData.get(DataMap.MAP_MDN); UserParam userParam = new UserParam(); userParam.setMdn(mdn); m_userVo = m_ngcIFController.findUserFrz(userParam); if (m_userVo == null) { return "new"; } else { m_checkedNickName = m_userVo.getNickName(); return "existing"; } }
/** * N.G.C. 서비스가입 해지 * * @param nickname * @return */ public String ngcOutSucsess() throws UserServiceException { String mdn; try { DataMap data = getDataMap(); m_userVo = m_sessionManager.getUser(getRequest()); mdn = m_userVo.getMdn(); m_traceLogger.info("ngcOutSucsess start. mdn : " + mdn); UserParam userParam = new UserParam(); userParam.setUserId(m_userVo.getUserId()); userParam.setMdn(mdn); userParam.setMin((String) data.get(DataMap.MAP_MIN)); userParam.setNotify(m_userVo.getNotify()); String siteCode = CommUtils.checkNull(getParameter("siteCode"), ""); if (!"".equals(siteCode)) { userParam.setSiteCode(siteCode); } // 회원탈퇴시 tb_user 테이블 out_date 탈퇴일자 업데이트 m_ngcIFController.deleteUser(userParam); } catch (Exception e) { m_traceLogger.error(e.getMessage()); return ERROR; } // 회원탈퇴시 세션 삭제 GameMainService.getInstance().deleteNgcTmpSession(m_userVo.getUserId()); m_traceLogger.info("ngcOutSucsess end. mdn : " + mdn); return SUCCESS; }
/** * eventList.jsp 상단 이벤트 메시지리스트 출력 * * @param * @return List * @throws */ public String selectEventMessage() { try { String pageNum = StringUtils.nvlStr(getParameter("pg"), "1"); EventParam param = new EventParam(); param.setStartPos(pageNum); param.setReadCount("7"); m_selectEventMessage = EventService.getInstance().getEventList(param); // 이벤트 목록 글씨제한 DataMap dataMap = getDataMap(); Integer lcdSizeWrap = (Integer) dataMap.get(DataMap.MAP_LCDSIZE); if (m_selectEventMessage != null && m_selectEventMessage.size() > 0) { for (int i = 0; i < m_selectEventMessage.size(); i++) { if (m_selectEventMessage.get(i) != null) { String eventTitle = CommUtils.checkNull(((EventVO) m_selectEventMessage.get(i)).getTitle(), ""); String resultTitle = getTitleCutStringLimit(eventTitle, lcdSizeWrap); ((EventVO) m_selectEventMessage.get(i)).setTitle(resultTitle); } } } m_eventTotalCount = EventService.getInstance().getEventListTotalCount(param); HttpServletRequest request = getRequest(); request.setAttribute("pg", pageNum); request.setAttribute("totalCount", String.valueOf(m_eventTotalCount)); } catch (EventServiceException e) { e.printStackTrace(); m_traceLogger.error(e.getMessage()); return ERROR; } return SUCCESS; }
/** * N.G.C. 서비스가입 * * @param nickname * @return * @throws UserServiceException */ public String ngcJoinSucsess() throws UserServiceException { DataMap data = getDataMap(); String mdn = (String) data.get(DataMap.MAP_MDN); String min = (String) data.get(DataMap.MAP_MIN); m_traceLogger.info("ngcJoinSucsess start. mdn : " + mdn); UserParam userParam = null; String nickname = CommUtils.checkNull(getParameter("nicknameCheck")); String existing = CommUtils.checkNull(getParameter("existing")); if (nickname.length() == 0) { return "Redundancy"; } userParam = new UserParam(); userParam.setNickName(nickname); userParam.setMdn(mdn); // 프리존 가입여부 체크(프리존 가입이 안되있을때) or 중복체크 or 금칙어 체크 if ((joinCheck().equals("existing") && !existing.equals("Y")) || UserService.getInstance().findNickName_join(userParam) || !CommUtils.isValidNickName(nickname) || isBannedNickname(nickname)) { m_traceLogger.info("Wrong access page."); return ERROR; } String agree1 = CommUtils.checkNull(getParameter("agree1")); // String agree2 = CommUtils.checkNull(getParameter("agree2")); String agree3 = CommUtils.checkNull(getParameter("agree3")); if (!agree1.equals("1") || !agree3.equals("1")) { m_buttonFlag = "Y"; m_checkedNickName = nickname; m_agree = false; if (existing.equals("Y")) { return "AgreeExisting"; } else { return "Agree"; } } UserVO existUser = null; String mngnumber = (String) data.get(DataMap.MAP_SVN_MNG_NUMBER); // 외부 사이트 접속 통계 기록용 siteCode 추가 String siteCode = ""; try { // 회원가입중 에러 발생 시 회원가입실패 페이지로 이동하기위해 try문구 추가. userParam = new UserParam(); userParam.setMdn(mdn); userParam.setMin(min); // tb_user테이블에서 회원 조회 out_date = null m_userVo = m_ngcIFController.findUser(userParam); /*if(m_userVo != null){ mngnumber = m_userVo.getMngNumber(); }*/ userParam.setNickName(nickname); userParam.setMngNumber(mngnumber); siteCode = CommUtils.checkNull(getParameter("siteCode"), ""); if (!"".equals(siteCode)) { userParam.setSiteCode(siteCode); } // 현재 가입상태 여부 상관없이 기존에 가입되어있던 사용자 정보를 가져온다. existUser = UserService.getInstance().findExistUser(userParam); // 이미 가입되있으면 중복가입 메세지 페이지로 이동 if (existUser != null) { if (existUser.getState().equals(NGCConst.USER_JOIN) || existUser.getState().equals(NGCConst.USER_RE_JOIN)) { m_traceLogger.info("ngcJoin duplicate. mdn : " + (String) data.get(DataMap.MAP_MDN)); return "duplicate"; } } // 회원 가입 (기존 가입정보 있을시 재가입 처리) m_ngcIFController.addUser(userParam); // 사용자 추가 /*if(existUser == null || "".equals(existUser.getUserId())){ // 신규회원 userParam.setState(NGCConst.USER_JOIN); m_ngcIFController.addUser(userParam); } else{ // 재가입 회원일경우 tb_user 테이블의 기존 사용자정보 업데이트 GameMainService.getInstance().ngcReJoinSucsess(userParam); }*/ // 세션에 추가하기위한 회원 조회 ( 신규 회원일 경우 USER_ID를 가져오기 위해 조회한다. ) m_userVo = m_ngcIFController.findUser(userParam); getSession().setAttribute(NGCConst.USER_SESSION_KEY, m_userVo); String userId = m_userVo.getUserId(); // 세션에 추가 GameMainService.getInstance().insertNgcTmpSession(userId); } catch (EcgException e) { m_traceLogger.error(e.getMessage()); m_joinFailureMessage = e.getMessage(); return ERROR; } catch (Exception e) { m_traceLogger.error(e.getMessage()); m_joinFailureMessage = "내부 서비스 오류"; return ERROR; } m_traceLogger.info("ngcJoinSucsess end. mdn : " + mdn); return SUCCESS; }
/** * 닉네임 중복체크 * * @param nickname * @return 가입가능 false, 가입불가 true */ public String joinNicknameCheck() throws UserServiceException { m_nickChk = false; m_resNickChk = 0; boolean randomChk = false; String nickname = CommUtils.checkNull(getParameter("nicknameCheck")); // 금칙어 체크 if (!"".equals(nickname) && isBannedNickname(nickname)) { // 금칙어 사용시 return m_resNickChk = 5; // 금칙어 사용 m_buttonFlag = "N"; return SUCCESS; } DataMap userData = getDataMap(); String mdn = (String) userData.get(DataMap.MAP_MDN); UserParam userParam = new UserParam(); userParam.setMdn(mdn); m_userVo = m_sessionManager.getUser(getRequest()); // m_userVo = m_ngcIFController.findUser(userParam); int nickState = BpIFUtils.checkNickName(nickname); if (m_userVo == null && nickState == 0) { // 가입가능이면 닉네임체크 userParam.setNickName(nickname); // nickname이 빈값이면 중복이 안되는 값으로 랜덤생성 if (nickname.length() == 0) { boolean bl = true; int s = 0; while (bl) { nickname = getRandomString(10); userParam.setNickName(nickname); if (!UserService.getInstance().findNickName_join(userParam)) { bl = false; m_nickChk = false; randomChk = true; } s++; if (s == 10) { bl = false; m_nickChk = true; } } } else { int byteLength = CommUtils.getByteLength(nickname); if (byteLength < 2 || byteLength > 10 || !CommUtils.isValidNickName(nickname)) { m_nickChk = true; } else { m_nickChk = UserService.getInstance().findNickName_join(userParam); } } if (m_nickChk) { // 닉네임 사용 불가 m_resNickChk = 3; m_buttonFlag = "N"; } else { if (randomChk) { // 닉네임 자동생성 m_resNickChk = 2; } else { // 사용가능한 닉네임 m_resNickChk = 1; } m_buttonFlag = "Y"; m_checkedNickName = nickname; } } else { m_resNickChk = 4; } return SUCCESS; }
/** * gameMain.jsp 모두호출 * * @param * @return List * @throws */ public String gameMain() throws UserServiceException { m_traceLogger.info("gameMain() start......"); // 인기게임 현재 페이지 번호 String pGameCurPage = CommUtils.checkNull(getParameter("pGamePageNum"), "1"); // 추천친구맺기에서 선택한 친구 ID String friendUserId = CommUtils.checkNull(getParameter("fid")); try { m_userVo = m_sessionManager.getUser(getRequest()); DataMap dataMap = getDataMap(); // 추천네트워크게임 param GameParam rGameParam = new GameParam(); rGameParam.setLcdSize(DataMap.getLcdSizeValue(dataMap)); // LCD SIZE (176,240) rGameParam.setTouchSupport((String) dataMap.get(DataMap.MAP_TOUCH_SUPPORT)); // touch 지원여부 rGameParam.setModel((String) dataMap.get(DataMap.MAP_DEVICE_MODEL)); // 단말 모델명 // 인기게임 param GameParam pGameParam = new GameParam(); pGameParam.setLcdSize(DataMap.getLcdSizeValue(dataMap)); // LCD SIZE (176,240) pGameParam.setTouchSupport((String) dataMap.get(DataMap.MAP_TOUCH_SUPPORT)); // touch 지원여부 pGameParam.setModel((String) dataMap.get(DataMap.MAP_DEVICE_MODEL)); // 단말 모델명 pGameParam.setStartPos(pGameCurPage); pGameParam.setReadCount(POPULARGAMELIST_READCOUNT); // 보여줄 인기게임목록 갯수 // 단말기 lcd 사이즈 추출 int lcdSize = getUserLCDSize(getRequest()); if (DataMap.LCDSIZE_176 == lcdSize) { // 176size일 경우 추천 게임리스트 4개 노출 rGameParam.setReadCount("4"); } else if (DataMap.LCDSIZE_240 == lcdSize) { // 240size일 경우 추천 게임리스트 6개노출 rGameParam.setReadCount("6"); } // 인기게임리스트 count int totPopularGameCount = GameMainService.getInstance().getPopularGameListCount(pGameParam); // 인기게임리스트 이전, 다음페이지 구하기 int popularGameReadCount = Integer.parseInt(POPULARGAMELIST_READCOUNT); int popularGameCurPage = Integer.parseInt(pGameCurPage); int popularGameTotalPageNum = totPopularGameCount / popularGameReadCount; if (totPopularGameCount % popularGameReadCount != 0) popularGameTotalPageNum++; // 전체 페이지가 현재 페이지보다 많다면 다음페이지 번호 입력 if (popularGameTotalPageNum > popularGameCurPage) { m_nextPageNum = popularGameCurPage + 1; } // 현재 페이지가 1보다 크면 이전페이지 번호 입력 if (popularGameCurPage > 1) { m_prevPageNum = popularGameCurPage - 1; } /* 인기게임리스트 */ m_selectPopularGameList = GameMainService.getInstance().getPopularGameList(pGameParam); /* 추천게임리스트 */ m_selectRecommandGameList = GameMainService.getInstance().getRecommandGameList(rGameParam); /* 이벤트 / 공지 */ m_eventVO = EventService.getInstance().getSimpleEventNoticeList(); /* 배너 이미지 */ m_bannerImg = BannerService.getInstance().getSelectBannerImg(); // 메인에 표시할 인기게임 제목 길이 제한 if (m_selectPopularGameList != null) { for (int i = 0; i < m_selectPopularGameList.size(); i++) { Game gameTemp = (Game) m_selectPopularGameList.get(i); String popularGameTitle = CommUtils.checkNull(gameTemp.getTitle(), ""); int cutStrLength = 0; if (dataMap != null) { Integer lcdSizeWrap = (Integer) dataMap.get(DataMap.MAP_LCDSIZE); if (lcdSizeWrap != null) { if (lcdSizeWrap.intValue() == DataMap.LCDSIZE_176) { cutStrLength = 6; } else if (lcdSizeWrap.intValue() == DataMap.LCDSIZE_240) { cutStrLength = 7; } else if (lcdSizeWrap.intValue() == DataMap.LCDSIZE_320) { cutStrLength = 7; } ((Game) m_selectPopularGameList.get(i)) .setTitle(StringUtils.cutStringLimitLength(popularGameTitle, cutStrLength)); } } } } // 메인에 표시할 이벤트, 공지 제목 길이 제한 if (m_eventVO != null) { String titleEventNotice = CommUtils.checkNull(m_eventVO.getTitle(), ""); int cutStrLength = 0; if (dataMap != null) { Integer lcdSizeWrap = (Integer) dataMap.get(DataMap.MAP_LCDSIZE); if (lcdSizeWrap != null) { if (lcdSizeWrap.intValue() == DataMap.LCDSIZE_176) { cutStrLength = 8; } else if (lcdSizeWrap.intValue() == DataMap.LCDSIZE_240) { cutStrLength = 12; } else if (lcdSizeWrap.intValue() == DataMap.LCDSIZE_320) { cutStrLength = 12; } m_eventVO.setTitle(StringUtils.cutStringLimitLength(titleEventNotice, cutStrLength)); } } } // end of if if (m_userVo != null) { /* 추천친구리스트 : 로그인 사용자 */ Friend friendParam = new Friend(); friendParam.setMyUserId(m_userVo.getUserId()); friendParam.setFriendUserId(friendUserId); if (friendUserId.equals("")) { m_friendList = m_ngcIFController.getRecommandFriendList(m_userVo.getUserId()); } else { // 추천친구리스트에 추가된 친구 추가 m_friendList = m_ngcIFController.getGameMainFriend(friendParam); } // 알림이 가입여부 boolean if (m_userVo != null) { if (NGCConst.USER_NOTIFY_SETTING.equalsIgnoreCase(m_userVo.getNotify())) { m_isNotifyJoin = true; } } } else { /* 추천친구리스트 : 비로그인 사용자 */ m_friendList = m_ngcIFController.getRecommandFriendList(null); } } catch (GameMainServiceException e) { m_traceLogger.error(e.getMessage()); return ERROR; } catch (EventServiceException e) { m_traceLogger.error(e.getMessage()); return ERROR; } catch (BannerServiceException e) { m_traceLogger.error(e.getMessage()); return ERROR; } catch (FriendServiceException e) { m_traceLogger.error(e.getMessage()); return ERROR; } catch (Exception e) { m_traceLogger.error(e.getMessage(), e); return ERROR; } m_traceLogger.info("gameMain() end......"); return SUCCESS; }