Пример #1
0
  /**
   * 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;
  }