/******************************************************************************* * Copyright (c) 2014 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.ArrayList; import java.util.List; import org.apache.log4j.Logger; import com.hangum.tadpole.commons.exception.TadpoleSQLManagerException; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.engine.initialize.TadpoleSystemInitializer; import com.hangum.tadpole.engine.manager.TadpoleSQLManager; import com.hangum.tadpole.engine.query.dao.system.ScheduleDAO; import com.hangum.tadpole.engine.query.dao.system.ScheduleDetailDAO; import com.hangum.tadpole.engine.query.dao.system.ScheduleMainDAO; import com.hangum.tadpole.engine.query.dao.system.ScheduleResultDAO; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; import com.hangum.tadpole.session.manager.SessionManager; import com.ibatis.sqlmap.client.SqlMapClient; /** * schedule * * @author hangum * */ public class TadpoleSystem_Schedule { private static final Logger logger = Logger.getLogger(TadpoleSystem_Schedule.class); /** * delete schedule * * @param seq * @throws TadpoleSQLManagerException, SQLException */ public static void deleteSchedule(int seq) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.update("deleteScheduleMain", seq); } /** * get result * @param seq * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<ScheduleResultDAO> getScheduleResult(int seq) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return sqlClient.queryForList("getScheduleResult", seq); } /** * schedule result * * @param seq * @param isResult * @param msg */ public static void saveScheduleResult(int seq, boolean isResult, String msg) throws TadpoleSQLManagerException, SQLException { ScheduleResultDAO dao = new ScheduleResultDAO(); dao.setSchedule_main_seq(seq); dao.setResult(isResult?PublicTadpoleDefine.YES_NO.YES.name():PublicTadpoleDefine.YES_NO.NO.name()); dao.setDescription(msg); SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.insert("scheduleResultInsert", dao); } /** * get all schedule * * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<ScheduleMainDAO> findAllScheduleMain() throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return sqlClient.queryForList("getAllScheduleMain"); } /** * find user schedule * * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<ScheduleMainDAO> findUserScheduleMain() throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return sqlClient.queryForList("getUserScheduleMain", SessionManager.getUserSeq()); } /** * find schedule main * * @param seq {@link ScheduleMainDAO#getSeq()} * @return * @throws TadpoleSQLManagerException, SQLException */ public static ScheduleMainDAO findScheduleMain(final int seq) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return (ScheduleMainDAO)sqlClient.queryForObject("getScheduleMain", seq); } /** * seq * * @param seq {@link ScheduleDAO#getSeq()} * @return * @throws TadpoleSQLManagerException, SQLException */ public static List<ScheduleDAO> findSchedule(final int seq) throws TadpoleSQLManagerException, SQLException { List<ScheduleDAO> listSchedule = new ArrayList<ScheduleDAO>(); SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); listSchedule = sqlClient.queryForList("getSchedule", seq); for (ScheduleDAO scheduleDAO : listSchedule) { List<ScheduleDetailDAO> listDetail = sqlClient.queryForList("getScheduleDetail", scheduleDAO.getSeq()); StringBuffer sbSQL = new StringBuffer(); for (ScheduleDetailDAO scheduleDetailDAO : listDetail) { sbSQL.append(scheduleDetailDAO.getDatas()); } scheduleDAO.setSql(sbSQL.toString()); } return listSchedule; } /** * * @param userDB * @param title * @param desc * @param cronExp * @param listSchedule */ public static ScheduleMainDAO addSchedule(final UserDBDAO userDB, String title, String desc, String cronExp, List<ScheduleDAO> listSchedule) throws TadpoleSQLManagerException, SQLException { int userSeq = SessionManager.getUserSeq(); ScheduleMainDAO dao = new ScheduleMainDAO(); dao.setSeq(userSeq); dao.setUser_seq(SessionManager.getUserSeq()); dao.setDb_seq(userDB.getSeq()); dao.setTitle(title); dao.setDescription(desc); dao.setCron_exp(cronExp); SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); dao = (ScheduleMainDAO)sqlClient.insert("scheduleMainInsert", dao); // save schedule for (ScheduleDAO scheduleDAO : listSchedule) { scheduleDAO.setSchedule_main_seq(dao.getSeq()); ScheduleDAO retScheduleDAO = (ScheduleDAO)sqlClient.insert("scheduleInsert", scheduleDAO); // sql ScheduleDetailDAO detailDao = new ScheduleDetailDAO(); detailDao.setSchedule_seq(retScheduleDAO.getSeq()); detailDao.setDatas(scheduleDAO.getSql()); sqlClient.insert("scheduleDetailInsert", detailDao); } return dao; } /** * 데이터 수정. * @param userDB * @param title * @param desc * @param cronExp * @param listSchedule * @return * @throws TadpoleSQLManagerException, SQLException */ public static ScheduleMainDAO modifySchedule(final UserDBDAO userDB, ScheduleMainDAO scheduleDao, List<ScheduleDAO> listSchedule) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); sqlClient.update("scheduleMainUpdate", scheduleDao); // 기존 데이터를 삭제합니다. sqlClient.update("deleteSchedule", scheduleDao.getSeq()); // save schedule for (ScheduleDAO scheduleDAO : listSchedule) { scheduleDAO.setSchedule_main_seq(scheduleDao.getSeq()); ScheduleDAO retScheduleDAO = (ScheduleDAO)sqlClient.insert("scheduleInsert", scheduleDAO); // sql ScheduleDetailDAO detailDao = new ScheduleDetailDAO(); detailDao.setSchedule_seq(retScheduleDAO.getSeq()); detailDao.setDatas(scheduleDAO.getSql()); sqlClient.insert("scheduleDetailInsert", detailDao); } return scheduleDao; } }