DowntimeDao.java 2.82 KB
package com.sitech.ismp.check.downtime;

import com.sitech.database.dao.BaseDao;
import org.apache.log4j.Logger;

import java.sql.SQLException;
import java.util.*;

/**
 * @author frank  zmm@honggroup.com.cn
 * @Description:  宕机检测MBean对应dao类
 * @Package com.sitech.ismp.check.downtime
 * @ClassName: com.sitech.ismp.check.downtime.DowntimeDao
 * @date 2017年04月16日 14:15
 */
public class DowntimeDao extends BaseDao {

    private static Logger log=Logger.getLogger(DowntimeDao.class);

    /**
     * 添加需要监控宕机情况的设备,如果该设备已经存在,则修改。
     */
    public void addDowntimeHost(HashMap<String,String> params){
        DowntimeBean downtimeBean=map2DowntimeBean(params);
        addDowntimeHost(downtimeBean);
    }

    public void addDowntimeHost(DowntimeBean downtimeBean){
        try {
            int updateSum = sqlmapClient.update("updateDowntimeHostByIp",downtimeBean);
            if(updateSum == 0){
                sqlmapClient.insert("addDowntimeHost", downtimeBean);
            }
        } catch (Exception e) {
            error.error("Exception while addDowntimeHost.", e);
        }
    }


    /**
     * 根据IP删除对应的记录。
     * @param ip
     * @return
     */
    public int deleteDowntimeHostByIp(String ip){
        try {
            return sqlmapClient.delete("deleteDowntimeHostByIp", ip);
        } catch (Exception e) {
            error.error("Exception while deleteDowntimeHostByIp.", e);
        }
        return -1;
    }

    /**
     * 根据IP查询对应的记录。
     * @param deviceIp
     * @return
     */
    public List<DowntimeBean> getDowntimeByIp(String deviceIp){
        HashMap<String,String> param=new HashMap<String, String>();
        param.put("DEVICE_IP",deviceIp);
        List<DowntimeBean> beanList=new ArrayList<DowntimeBean>();
        try {
            beanList=sqlmapClient.queryForList("getDowntimeByIp", param);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return beanList;
    }

    public DowntimeBean map2DowntimeBean(HashMap<String,String> params){
        DowntimeBean bean=new DowntimeBean();
        try {
            bean.setDEVICE_ID(UUID.randomUUID().toString());
            bean.setDEVICE_IP(params.get("DEVICE_IP"));
            bean.setDEVICE_ALIAS(params.get("DEVICE_ALIAS"));
            bean.setKBP_CLASS(params.get("KBP_CLASS") + "-99");
            bean.setPROTOCOL(params.get("PROTOCOL"));
            bean.setPROTOCOL_PORT(Integer.parseInt(params.get("PROTOCOL_PORT")));
            bean.setUSER_NAME(params.get("USER_NAME"));
            bean.setPASSWORD(params.get("PASSWORD"));
            bean.setCREATE_DATE(new Date());
        }catch (Exception e){
            log.error("addDowntimeHost, write values to DowntimeBean has error!",e);
        }
        return bean;
    }

}