/**
 * Company Name : 中贸促信息技术有限责任公司
 * Project Name:project
 * File Name:OrgService.java
 * Package Name:org.ccpit.base.orgManage
 * Date:2015年9月18日下午4:55:11
 * Copyright (c) 2015, dingwei@ccpit.org All Rights Reserved.
 *
*/

package org.ccpit.base.orgManage;

import java.util.List;

import javax.transaction.Transactional;

import org.ccpit.base.controller.Page;
import org.ccpit.base.controller.PageRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

/**
 * ClassName:OrgService <br/>
 * Function: TODO ADD FUNCTION. <br/>
 * Reason:	 TODO ADD REASON. <br/>
 * Date:     2015年9月18日 下午4:55:11 <br/>
 * @author   dingwei
 * @version  
 * @since    JDK 1.6
 * @see 	 
 */
@Repository
@Transactional
public class OrgService {

	@Autowired
	private OrgDao orgDao; 
	/**
	 * 
	 * addOrg:(新增机构信息). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public boolean addOrg(OrgInfo orgInfo){
		return orgDao.save(orgInfo);
	}
	/**
	 * 
	 * updateOrg:(修改机构信息). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public boolean updateOrg(OrgInfo orgInfo){
		return orgDao.update(orgInfo);
	}
	/**
	 * 
	 * updateOrg:(根据Id删除机构信息). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public boolean delOrgById(long id){
		return orgDao.deleteById(id);
	}
	/**
	 * 
	 * updateOrg:(根据id查询机构详细信息). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public OrgInfo getOrgById(long id){
		return orgDao.queryById(id);
	}
	/**
	 * 
	 * updateOrg:(获取机构列表信息). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public List<OrgInfo> getOrgInfoList(){
		return orgDao.queryAll();
	}
	
	public List<OrgInfo> getChildOrgById(long id){
		return orgDao.getChildOrgById(id);
	}
	/**
	 * 
	 * updateOrg:(获取机构列表信息 分页展示). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public Page<OrgInfo> queryPage(PageRequest pageRequest){
		Page<OrgInfo> page = orgDao.findPage(pageRequest, "from " + OrgInfo.class.getName(), new String[]{});
        return page;
    }
	/**
	 * 
	 * updateOrg:(根据查询条件获取机构列表信息 分页展示). <br/>
	 * TODO(这里描述这个方法适用条件 – 可选).<br/>
	 * TODO(这里描述这个方法的执行流程 – 可选).<br/>
	 * TODO(这里描述这个方法的使用方法 – 可选).<br/>
	 * TODO(这里描述这个方法的注意事项 – 可选).<br/>
	 *
	 * @author dingwei
	 * @param orgInfo
	 * @return
	 * @since JDK 1.6
	 */
	public Page<OrgInfo> queryPage(PageRequest pageRequest,String hql){
		Page<OrgInfo> page = orgDao.findPage(pageRequest, hql + OrgInfo.class.getName(), new String[]{});
        return page;
    }
}

