package com.fr.tx.common.dao.impl;

import java.util.List;

import com.fr.tx.common.dao.GunDao;
import com.fr.tx.common.dao.base.BaseDao;
import com.fr.tx.common.entity.EquipAdrEntity;
import com.fr.tx.common.entity.GunEntity;

public class GunDaoImpl extends BaseDao implements GunDao{

	@Override
	public List<GunEntity> search() {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.search");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
		
	}
	
	@Override
	public List<GunEntity> searchForWeb() {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.searchForWeb");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
		
	}

	@Override
	public int getCount(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.selectOne("Gun.getCount", en);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}

	@Override
	public GunEntity getDetailByPk(String pk) {
		
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.getDetailByPk", pk);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result.get(0);
	}


	@Override
	public GunEntity getDetailByGunNo(String pk) {
		
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.getDetailByGunNo", pk);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
        return result.get(0);
	}
	
	@Override
	public int update(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.update", en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}
	@Override
	public int updateStatusTime(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.updateStatusTime", en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}
	@Override
	public int updatereregas(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.updatereregas",en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}

	@Override
	public int insert(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.insert("Gun.insert", en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}

	@Override
	public int delete(GunEntity en) {
		
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.delete", en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
	}

	@Override
	public List<GunEntity> searchStartGun(GunEntity en) {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.searchStartGun", en);
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
	}

	@Override
	public int updateStatus(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.updateStatus", en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}

	@Override
	public List<GunEntity> searchAll() {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.searchAll");
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
	}

	@Override
	public int updateLink(GunEntity linken) {
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.updateLink", linken);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
	}

	@Override
	public List<GunEntity> getregas() {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.getregas");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
	}
	
	
	
	@Override
	public List<GunEntity> getLimitData(GunEntity condition) {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.getLimitData",condition);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
		
	}

	@Override
	public int getTotalCount(GunEntity en) {
		int ret = 0;
		try {
			makeSession();
			ret = session.selectOne("Gun.getTotalCount", en);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
		
	}
	@Override
	public List<GunEntity> getGunData(GunEntity en) {
		
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.getGunData", en);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
	}
	@Override
	public List<GunEntity> searchYjtime(GunEntity en) {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.searchYjtime",en);
			if(result!=null){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			// TODO: handle exception
			session.rollback();
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
	}
	@Override
	public List<GunEntity> checkAddr(GunEntity en) {
		List<GunEntity> result = null;
		try {
			makeSession();
			result = session.selectList("Gun.checkAddr",en);
			if(result!=null){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			// TODO: handle exception
			session.rollback();
			e.printStackTrace();
		}finally {
			close();
		}
        return result;
		
	}
	@Override
	public int save(GunEntity en) {
		
		int ret = 0;
		try {
			makeSession();
			ret = session.update("Gun.save", en);
			if(ret>0){
				session.commit();
			}else{
				session.rollback();
			}
		} catch (Exception e) {
			session.rollback();
			e.printStackTrace();
		} finally {
			close();
		}
        return ret;
	}
}
