package com.hangum.tadpole.engine.query.sql;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.hangum.tadpole.commons.exception.TadpoleSQLManagerException;
import com.hangum.tadpole.engine.initialize.TadpoleSystemInitializer;
import com.hangum.tadpole.engine.manager.TadpoleSQLManager;
import com.hangum.tadpole.engine.query.dao.system.TadpoleUserDbRoleDAO;
import com.hangum.tadpole.engine.query.dao.system.UserDAO;
import com.hangum.tadpole.engine.query.dao.system.UserDBDAO;
import com.ibatis.sqlmap.client.SqlMapClient;
/**
* Tadpole basic table (User_group_role)
*
* @author hangum
*
*/
public class TadpoleSystem_UserRole {
/**
* 탈퇴.
* @param userSeq
* @throws TadpoleSQLManagerException, SQLException
*/
public static void withdrawal(int userSeq) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.update("userWithdrawal", userSeq); //$NON-NLS-1$
sqlClient.update("dbWithdrawal", userSeq); //$NON-NLS-1$
}
/**
* 해당 디비에 사용자 롤이 추가 되어 있는지 검사합니다.
*
* @param userDB
* @param user
* @return
* @throws TadpoleSQLManagerException, SQLException
*/
public static boolean isDBAddRole(UserDBDAO userDB, UserDAO user) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
Map<String, Integer> mapParameter = new HashMap<String, Integer>();
mapParameter.put("db_seq", userDB.getSeq());
mapParameter.put("user_seq", user.getSeq());
List roleList = sqlClient.queryForList("isDBAddRole", mapParameter);
return roleList.size()==0;
}
/**
* insert table
*
* @param userSeq
* @param dbSeq
* @param roleType
* @throws TadpoleSQLManagerException, SQLException
*/
public static TadpoleUserDbRoleDAO insertTadpoleUserDBRole(int userSeq, int dbSeq, String roleType) throws TadpoleSQLManagerException, SQLException {
TadpoleUserDbRoleDAO userDBRoleDao = new TadpoleUserDbRoleDAO();
userDBRoleDao.setUser_seq(userSeq);
userDBRoleDao.setDb_seq(dbSeq);
userDBRoleDao.setRole_id(roleType);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 100);
userDBRoleDao.setTerms_of_use_endtime(new Timestamp(cal.getTimeInMillis()));
// Insert tadpole_user_db_role table.
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
TadpoleUserDbRoleDAO roleDao = (TadpoleUserDbRoleDAO)sqlClient.insert("userDBRoleInsert", userDBRoleDao);
return roleDao;
}
/**
* insert tadpole_user_db_role table
*
* @param userDBRoleDao
* @throws TadpoleSQLManagerException, SQLException
*/
public static TadpoleUserDbRoleDAO insertTadpoleUserDBRole(TadpoleUserDbRoleDAO userDBRoleDao) throws TadpoleSQLManagerException, SQLException {
// Insert tadpole_user_db_role table.
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
userDBRoleDao = (TadpoleUserDbRoleDAO)sqlClient.insert("userDBRoleInsert", userDBRoleDao);
// save db access control
TadpoleSystem_AccessControl.saveDBAccessControl(userDBRoleDao);
return userDBRoleDao;
}
/**
* update user role
*
* @param userDBRoleDao
* @throws TadpoleSQLManagerException, SQLException
*/
public static void updateTadpoleUserDBRole(TadpoleUserDbRoleDAO userDBRoleDao) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.update("userDBRoleUpdate", userDBRoleDao);
}
/**
* user list
* @param userDB
* @throws TadpoleSQLManagerException, SQLException
*/
public static List getUserRoleList(UserDBDAO userDB) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
return sqlClient.queryForList("getUserRoleList", userDB);
}
}