/******************************************************************************* * Copyright (c) 2013 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.engine.query.sql; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import com.hangum.tadpole.cipher.core.manager.CipherManager; import com.hangum.tadpole.commons.exception.TadpoleSQLManagerException; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.commons.util.Utils; import com.hangum.tadpole.engine.initialize.TadpoleSystemInitializer; import com.hangum.tadpole.engine.manager.TadpoleSQLManager; import com.hangum.tadpole.engine.query.dao.system.UserDAO; import com.hangum.tadpole.engine.query.dao.system.UserInfoDataDAO; import com.hangum.tadpole.preference.define.GetAdminPreference; import com.hangum.tadpole.preference.define.PreferenceDefine; import com.hangum.tadpole.session.manager.SessionManager; import com.ibatis.sqlmap.client.SqlMapClient; /** * 올챙이 시스템의 사용자 데이터를 정의 합니다. * 프리퍼런스 데이터를 저장합니다. * * @author hangum * */ public class TadpoleSystem_UserInfoData { // private static final Logger logger = Logger.getLogger(TadpoleSystem_UserInfoData.class); /** * Return to user credential * * @param strAccessKey * @param strSecretKey * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<UserInfoDataDAO> getUserCredential(String strAccessKey, String strSecretKey) throws TadpoleSQLManagerException, SQLException { Map<String, String> mapParam = new HashMap<String, String>(); mapParam.put("SECURITY_CREDENTIAL_ACCESS_KEY", strAccessKey); mapParam.put("SECURITY_CREDENTIAL_SECRET_KEY", strSecretKey); SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return sqlClient.queryForList("getUserInfoDataCredential", mapParam); //$NON-NLS-1$ } /** * 사용자 정보 데이터. * * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<UserInfoDataDAO> getUserInfoData() throws TadpoleSQLManagerException, SQLException { return getUserInfoData(SessionManager.getUserSeq()); } /** * 사용자 정보 데이터. * * @param userSeq * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<UserInfoDataDAO> getUserInfoData(int userSeq) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return sqlClient.queryForList("getUserInfoData", userSeq); //$NON-NLS-1$ } /** * user info data insert * * @param listUserData * @throws TadpoleSQLManagerException, SQLException */ public static void insertUserInfoData(List<UserInfoDataDAO> listUserData) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.insert("userInfoDataInsert", listUserData); //$NON-NLS-1$ } /** * user info data insert * * @param listUserData * @throws TadpoleSQLManagerException, SQLException */ public static void insertUserInfoData(UserInfoDataDAO listUserData) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.insert("userInfoDataInsert", listUserData); //$NON-NLS-1$ } /** * update encript value * * @param key * @param value * @throws TadpoleSQLManagerException, SQLException */ public static void updateEncriptValue(String key, String value) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.update("userInfoDataUpdate", new UserInfoDataDAO(SessionManager.getUserSeq(), key, CipherManager.getInstance().encryption(value))); //$NON-NLS-1$ // session 에도 암호화 되게 저장합니다. SessionManager.setUserInfo(key, CipherManager.getInstance().encryption(value)); } /** * update admin value * @param key * @param value * @throws TadpoleSQLManagerException * @throws SQLException */ public static UserInfoDataDAO updateAdminValue(String key, String value) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); UserInfoDataDAO userInfoData = new UserInfoDataDAO(PublicTadpoleDefine.systemAdminId, key, value); int updateCnt = sqlClient.update("userInfoDataUpdate", userInfoData); //$NON-NLS-1$ return userInfoData; } /** * update key, value * * @param key * @param value * @throws TadpoleSQLManagerException, SQLException */ public static void updateValue(String key, String value) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.update("userInfoDataUpdate", new UserInfoDataDAO(SessionManager.getUserSeq(), key, value)); //$NON-NLS-1$ SessionManager.setUserInfo(key, value); } /** * 신규 사용자의 기본 유저 데이터 정보를 저장합니다. * @param txtQueryProfilling * * @param limitSelect * @param resultSelect * @param queryTimeout * @param oraclePlan * @param txtRDBNumberColumnIsComman RDB의 결과테이블이 숫자 컬럼인 경우 ,를 넣을 것인지? * @param txtFontInfo font information * @param txtCommitCount commit count * @param txtResultHeadClick * @param txtResultType * @param txtNull */ public static void updateRDBUserInfoData(boolean txtQueryProfilling, String limitSelect, String resultSelect, String queryTimeout, String oraclePlan, String txtRDBNumberColumnIsComman, String txtFontInfo, String txtCommitCount, String txtShownInTheColumn, String txtResultHeadClick, String txtResultType, String textNull ) throws TadpoleSQLManagerException, SQLException { updateUserInfoData(PreferenceDefine.RDB_QUERY_PROFILLING, ""+txtQueryProfilling); updateUserInfoData(PreferenceDefine.SELECT_LIMIT_COUNT, limitSelect); updateUserInfoData(PreferenceDefine.SELECT_RESULT_PAGE_PREFERENCE, resultSelect); updateUserInfoData(PreferenceDefine.SELECT_QUERY_TIMEOUT, queryTimeout); updateUserInfoData(PreferenceDefine.ORACLE_PLAN_TABLE, oraclePlan); updateUserInfoData(PreferenceDefine.RDB_RESULT_NUMBER_IS_COMMA, txtRDBNumberColumnIsComman); updateUserInfoData(PreferenceDefine.RDB_RESULT_FONT, txtFontInfo); updateUserInfoData(PreferenceDefine.RDB_COMMIT_COUNT, txtCommitCount); updateUserInfoData(PreferenceDefine.RDB_CHARACTER_SHOW_IN_THE_COLUMN, txtShownInTheColumn); updateUserInfoData(PreferenceDefine.RDB_RESULT_SET_HEAD_CLICK, txtResultHeadClick); updateUserInfoData(PreferenceDefine.RDB_RESULT_TYPE, txtResultType); updateUserInfoData(PreferenceDefine.RDB_RESULT_NULL, textNull); } /** * update SQLFormatter * * @param userdb * @param tabSize * @param resultSelect * @param sqlFormatIn */ public static void updateSQLFormatterInfoData(String tabSize, String sqlFormatDecode, String sqlFormatIn, String txtNewLineBefeoreAndOr, String txtNewLineBefeoreComma, String txtRemoveEmptyLine, String txtWordbreak, String strTextWidth ) throws TadpoleSQLManagerException, SQLException { updateUserInfoData(PreferenceDefine.DEFAULT_TAB_SIZE_PREFERENCE, tabSize); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_DECODE_PREFERENCE, sqlFormatDecode); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_IN_PREFERENCE, sqlFormatIn); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_NEWLINE_BEFAORE_AND_OR_PREFERENCE, txtNewLineBefeoreAndOr); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_NEWLINE_BEFAORE_COMMA_PREFERENCE, txtNewLineBefeoreComma); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_REMOVE_EMPTY_LINE_PREFERENCE, txtRemoveEmptyLine); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_WORD_BREAK_PREFERENCE, txtWordbreak); updateUserInfoData(PreferenceDefine.SQL_FORMATTER_WORD_WIDTH_PREFERENCE, strTextWidth); } /** * mongodb update * * @param txtLimitCount * @param txtMacCount * @param txtFindPage * @param txtResultPage * @throws TadpoleSQLManagerException, SQLException */ public static void updateMongoDBUserInfoData(String txtLimitCount, String txtMacCount, String txtFindPage, String txtResultPage) throws TadpoleSQLManagerException, SQLException { updateUserInfoData(PreferenceDefine.MONGO_DEFAULT_LIMIT, txtLimitCount); updateUserInfoData(PreferenceDefine.MONGO_DEFAULT_MAX_COUNT, txtMacCount); updateUserInfoData(PreferenceDefine.MONGO_DEFAULT_FIND, txtFindPage); updateUserInfoData(PreferenceDefine.MONGO_DEFAULT_RESULT, txtResultPage); } /** * Update User info data * * @param key * @param value0 * @throws TadpoleSQLManagerException, SQLException */ public static void updateUserInfoData(String key, String value0) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.update("userInfoDataUpdate", new UserInfoDataDAO(SessionManager.getUserSeq(), key, value0)); } /** * 사용자의 프로필. * */ public static void initializeUserPreferenceData(UserDAO userdb) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.startTransaction(); sqlClient.startBatch(); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SECURITY_CREDENTIAL_USE, PreferenceDefine.SECURITY_CREDENTIAL_USE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SECURITY_CREDENTIAL_ACCESS_KEY, Utils.getUniqueID())); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SECURITY_CREDENTIAL_SECRET_KEY, Utils.getUniqueID())); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SYNC_EIDOTR_STATS, PreferenceDefine.SYNC_EIDOTR_STATS_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.EXPORT_DILIMITER, PreferenceDefine.EXPORT_DILIMITER_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SESSION_DFEAULT_PREFERENCE, ""+PreferenceDefine.SESSION_SERVER_DEFAULT_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.DEFAULT_HOME_PAGE, PreferenceDefine.DEFAULT_HOME_PAGE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.DEFAULT_HOME_PAGE_USE, PreferenceDefine.DEFAULT_HOME_PAGE_USE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SELECT_LIMIT_COUNT, ""+PreferenceDefine.SELECT_SELECT_LIMIT_COUNT_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SELECT_RESULT_PAGE_PREFERENCE, ""+PreferenceDefine.SELECT_RESULT_PAGE_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SELECT_QUERY_TIMEOUT, ""+PreferenceDefine.SELECT_QUERY_TIMEOUT_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.ORACLE_PLAN_TABLE, PreferenceDefine.ORACLE_PLAN_TABLE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.RDB_RESULT_TYPE, PreferenceDefine.RDB_RESULT_TYPE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.RDB_RESULT_FONT, PreferenceDefine.RDB_RESULT_FONT_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.RDB_RESULT_NUMBER_IS_COMMA, PreferenceDefine.RDB_RESULT_NUMBER_IS_COMMA_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.RDB_COMMIT_COUNT, PreferenceDefine.RDB_COMMIT_COUNT_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.RDB_CHARACTER_SHOW_IN_THE_COLUMN, PreferenceDefine.RDB_CHARACTER_SHOW_IN_THE_COLUMN_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.MONGO_DEFAULT_LIMIT, PreferenceDefine.MONGO_DEFAULT_LIMIT_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.MONGO_DEFAULT_MAX_COUNT, PreferenceDefine.MONGO_DEFAULT_MAX_COUNT_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.MONGO_DEFAULT_FIND, PreferenceDefine.MONGO_DEFAULT_FIND_BASIC)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.MONGO_DEFAULT_RESULT, PreferenceDefine.MONGO_DEFAULT_RESULT_TABLE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.DEFAULT_TAB_SIZE_PREFERENCE, PreferenceDefine.DEFAULT_TAB_SIZE_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_DECODE_PREFERENCE, PreferenceDefine.SQL_FORMATTER_DECODE_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_IN_PREFERENCE, PreferenceDefine.SQL_FORMATTER_IN_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_NEWLINE_BEFAORE_AND_OR_PREFERENCE, PreferenceDefine.SQL_FORMATTER_NEWLINE_BEFAORE_AND_OR_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_NEWLINE_BEFAORE_COMMA_PREFERENCE, PreferenceDefine.SQL_FORMATTER_NEWLINE_BEFAORE_COMMA_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_REMOVE_EMPTY_LINE_PREFERENCE, PreferenceDefine.SQL_FORMATTER_REMOVE_EMPTY_LINE_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_WORD_BREAK_PREFERENCE, PreferenceDefine.SQL_FORMATTER_WORD_BREAK_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.SQL_FORMATTER_WORD_WIDTH_PREFERENCE, PreferenceDefine.SQL_FORMATTER_WORD_WIDTH_PREFERENCE_VALUE)); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.DEFAULT_HOME_PAGE, GetAdminPreference.getHomePage())); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), PreferenceDefine.DEFAULT_HOME_PAGE_USE, GetAdminPreference.getHomePageOpen())); sqlClient.executeBatch(); sqlClient.commitTransaction(); sqlClient.endTransaction(); } /** * insertUserPreferenceData * * @param userdb * @param key * @param value * @throws TadpoleSQLManagerException * @throws SQLException */ public static void insertUserInfoData(UserDAO userdb, String key, String value) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.insert("userInfoDataInsert", new UserInfoDataDAO(userdb.getSeq(), key, value)); //$NON-NLS-1$ } }