/** * <br> * [機 能] 順序変更処理 <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param sortKbn 処理区分 0:順序をあげる 1:順序を下げる * @param sessionUserSid セッションユーザSID * @throws SQLException SQL実行時例外 */ public void updateSort(Connection con, Ptl140ParamModel paramMdl, int sortKbn, int sessionUserSid) throws SQLException { // 画面表示全キーリスト取得 String[] keyList = paramMdl.getArrayPtl140sortPortal(); if (keyList == null || keyList.length < 1) { return; } HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); // 画面表示全ラジオの値をマップに格納 int index = 0; for (String strRadio : keyList) { String[] sidSort = strRadio.split(SORT_SEPARATE); int sid = Integer.parseInt(sidSort[0]); map.put(sid, index); index++; } // ラジオ選択値取得 String strSelectSort = paramMdl.getPtl140sortPortal(); if (StringUtil.isNullZeroString(strSelectSort)) { return; } String[] selectKeyList = strSelectSort.split(SORT_SEPARATE); // 選択されたポートレットSID int selectSid = Integer.parseInt(selectKeyList[0]); // 選択された画面上の並び順 int selectSort = map.get(selectSid); // 画面の最初に表示されている項目 + 順位を上げる if (selectSort == 0 && sortKbn == SORT_UP) { return; // 画面の最後に表示されている項目 + 順位を下げる } else if (selectSort == keyList.length - 1 && sortKbn == SORT_DOWN) { return; } // 選択された項目のポートレットSID + DBソート順 int motoSid = Integer.parseInt(selectKeyList[0]); int motoSort = Integer.parseInt(selectKeyList[1]); int sakiSid = -1; int sakiSort = -1; int target = selectSort; if (sortKbn == SORT_UP) { target -= 1; } else if (sortKbn == SORT_DOWN) { target += 1; } // 画面表示全キーから入れ替え先のデータを探す for (String allKey : keyList) { String[] allKeyList = allKey.split(SORT_SEPARATE); int allKeyDispSid = Integer.parseInt(allKeyList[0]); int dspSort = map.get(allKeyDispSid); if (dspSort == target) { sakiSid = Integer.parseInt(allKeyList[0]); sakiSort = Integer.parseInt(allKeyList[1]); break; } } if (sakiSid == -1 || sakiSort == -1) { return; } // 順序入れ替え PtlPortalSortDao dao = new PtlPortalSortDao(con); dao.updateSort(motoSid, motoSort, sakiSid, sakiSort, sessionUserSid); // 新しいキーを設定 paramMdl.setPtl140sortPortal(__getRadioValueStr(motoSid, sakiSort)); }
/** * <br> * [機 能] 初期表示処理を行います <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param usrSid ユーザSID * @throws SQLException SQL実行時例外 */ public void initDsp(Connection con, Ptl140ParamModel paramMdl, int usrSid) throws SQLException { PtlPortalDao dao = new PtlPortalDao(con); // ポータルを取得する ArrayList<PtlPortalModel> list = dao.selectForUser(usrSid); if (list == null) { list = new ArrayList<PtlPortalModel>(); } else { // ポータル個人並び順のレコードがあるか判定 PtlPortalSortDao sortDao = new PtlPortalSortDao(con); ArrayList<PtlPortalSortModel> sortList = new ArrayList<PtlPortalSortModel>(); sortList = sortDao.select(usrSid); // ポータルの個人並び順新規作成 if (sortList.isEmpty() || sortList.size() != list.size()) { log__.debug("個人並び順なし"); int sort = 1; // 一度並び順を削除してから登録 sortDao.deleteSortForUser(usrSid); for (PtlPortalModel ptlMdl : list) { boolean commit = false; try { PtlPortalSortModel mdl = new PtlPortalSortModel(); mdl.setPtlSid(ptlMdl.getPtlSid()); mdl.setPtsKbn(GSConstPortal.PTS_KBN_USER); mdl.setPtsSort(sort); mdl.setUsrSid(usrSid); sortDao.insert(mdl); ptlMdl.setPtsSort(sort); sort++; con.commit(); commit = true; } catch (SQLException e) { log__.error("ポータル登録処理エラー", e); throw e; } finally { if (!commit) { con.rollback(); } } } } } for (PtlPortalModel model : list) { // html表示用に整形 String dspSetumei = StringUtilHtml.transToHTml(model.getPtlDescription()); // 整形したものを入れなおす model.setPtlDescription(dspSetumei); } if (!list.isEmpty()) { // ラジオの文字列作成 for (PtlPortalModel model : list) { int sid = model.getPtlSid(); int sort = model.getPtsSort(); String strSort = __getRadioValueStr(sid, sort); model.setStrPtsSort(strSort); } } paramMdl.setPtl140portalList(list); // チェックされているラジオがNULLの場合、初期値設定 if (StringUtil.isNullZeroString(paramMdl.getPtl140sortPortal()) && list.size() > 0) { PtlPortalModel model = list.get(0); paramMdl.setPtl140sortPortal(__getRadioValueStr(model.getPtlSid(), model.getPtsSort())); } // ポータル初期表示権限 PtlAdmConfDao aConfDao = new PtlAdmConfDao(con); PtlAdmConfModel aConfModel = aConfDao.select(); if (aConfModel == null) { aConfModel = new PtlAdmConfModel(); } int pow = aConfModel.getPacDefKbn(); paramMdl.setPtlDefPow(pow); // ポータルの表示順変更権限 paramMdl.setPtlSortPow(aConfModel.getPacPtlEditkbn()); // ポータルの初期表示取得 PtlUconfModel uconfMdl = new PtlUconfModel(); PtlUconfDao uconfDao = new PtlUconfDao(con); uconfMdl = uconfDao.select(usrSid); if (uconfMdl == null) { uconfMdl = new PtlUconfModel(); } paramMdl.setPtlType(uconfMdl.getPucDefType()); }
/** * <br> * [機 能] ポータル情報の登録処理を行う <br> * [解 説] <br> * [備 考] * * @param paramMdl パラメータ情報 * @param con コネクション * @param cntCon MlCountMtController * @param userSid セッションユーザSID * @throws SQLException SQL実行例外 */ public void insertData( Ptl050knParamModel paramMdl, Connection con, MlCountMtController cntCon, int userSid) throws SQLException { PtlPortalDao ptlDao = new PtlPortalDao(con); PtlPortalSortDao ptlSortDao = new PtlPortalSortDao(con); PtlPortalLayoutDao ptlLayoutDao = new PtlPortalLayoutDao(con); PtlPortalConfReadDao ptlConfReadDao = new PtlPortalConfReadDao(con); PtlCommonBiz ptlBiz = new PtlCommonBiz(con); UDate now = new UDate(); // ポータルSID採番 int ptlSid = (int) cntCon.getSaibanNumber( GSConstPortal.SBNSID_SUB_PORTAL, GSConstPortal.SBNSID_SUB_PORTAL, userSid); // ポータル情報の登録 PtlPortalModel ptlModel = new PtlPortalModel(); ptlModel.setPtlSid(ptlSid); ptlModel.setPtlName(NullDefault.getString(paramMdl.getPtl050name(), "")); ptlModel.setPtlOpen(paramMdl.getPtl050openKbn()); ptlModel.setPtlDescription(NullDefault.getString(paramMdl.getPtl050description(), "")); ptlModel.setPtlAccess(paramMdl.getPtl050accessKbn()); ptlModel.setPtlAuid(userSid); ptlModel.setPtlAdate(now); ptlModel.setPtlEuid(userSid); ptlModel.setPtlEdate(now); ptlDao.insert(ptlModel); // 並び順の最大値を取得する。 int maxSort = ptlSortDao.getMaxSort(GSConstPortal.PTS_KBN_COMMON); // ポータル並び順の登録 PtlPortalSortModel ptlSortModel = new PtlPortalSortModel(); ptlSortModel.setPtlSid(ptlSid); ptlSortModel.setPtsKbn(GSConstPortal.PTS_KBN_COMMON); ptlSortModel.setPtsSort(maxSort + 1); ptlSortModel.setUsrSid(0); ptlSortDao.insert(ptlSortModel); // ポータルレイアウトの登録 PtlPortalLayoutModel ptlLayoutModel = new PtlPortalLayoutModel(); ptlLayoutModel.setPtlSid(ptlSid); ptlLayoutModel.setPtsView(GSConstPortal.PTL_OPENKBN_OK); ptlLayoutModel.setPlyAuid(userSid); ptlLayoutModel.setPlyAdate(now); ptlLayoutModel.setPlyEuid(userSid); ptlLayoutModel.setPlyEdate(now); List<Integer> positionList = new ArrayList<Integer>(); positionList.add(GSConstPortal.LAYOUT_POSITION_TOP); positionList.add(GSConstPortal.LAYOUT_POSITION_BOTTOM); positionList.add(GSConstPortal.LAYOUT_POSITION_LEFT); positionList.add(GSConstPortal.LAYOUT_POSITION_CENTER); positionList.add(GSConstPortal.LAYOUT_POSITION_RIGHT); for (Integer position : positionList) { ptlLayoutModel.setPlyPosition(position); ptlLayoutDao.insert(ptlLayoutModel); } // ポータル閲覧設定の登録 if (paramMdl.getPtl050accessKbn() == GSConstPortal.PTL_ACCESS_ON) { String[] memberSids = paramMdl.getPtl050memberSid(); if (memberSids != null && memberSids.length > 0) { ptlConfReadDao.insert(ptlSid, memberSids); } } // インフォメーションの登録 int ptpSort = 1; ptlBiz.insertInfomation(ptlSid, userSid, GSConstPortal.LAYOUT_POSITION_TOP, ptpSort); }