treeviewdaoimpl.java

来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 360 行

JAVA
360
字号
package com.yuanchung.organize.treeview;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.yuanchung.organize.treeview.TreeviewDAO;
import com.yuanchung.sales.exception.SystemException;
import com.yuanchung.sales.model.Position;
import com.yuanchung.sales.model.Treeview;
import com.yuanchung.sales.model.admin.position.UserPosition;
import com.yuanchung.sales.model.user.User;

public class TreeViewDaoImpl extends HibernateDaoSupport implements TreeviewDAO {
	private static Logger logger = Logger.getLogger(TreeViewDaoImpl.class);

	// 根据父结点主键查找
	public Treeview findByParentId(int parentID) throws SystemException {
		return (Treeview) getHibernateTemplate().find(
				"from Treeview as t where t.parentId=?", parentID).get(0);
	}

	// 根据父结点取得所有子结点
	public List getAllTreeByParentId(int parentId) throws SystemException {
		return getHibernateTemplate().find(
				"from Treeview as t where t.parentId=?", parentId);
	}

	// 根据主键查找结点
	public Treeview findById(int id) throws SystemException {
		return (Treeview) getHibernateTemplate().get(Treeview.class, id);
	}

	// 根据树结点查找用户
	public List getUserByTreeview(Treeview treeview) throws SystemException {
		System.out.println("结点ID:" + treeview.getId());
		// 添加 u.deleteFlag != 1 and by 张明强 过滤掉被删除的用户
		return getHibernateTemplate().find(
				"from User as u where u.deleteFlag != 1 and u.treeview=?",
				treeview);
	}

	// 根据用户查找岗位
	public UserPosition getUserPositionByUser(User user) throws SystemException {
		return (UserPosition) getHibernateTemplate().find(
				"from UserPosition as up where up.user=?", user).get(0);
	}

	// 保存岗位,保存岗位表
	public void addPosition(Position position) throws SystemException {
		getHibernateTemplate().save(position);
	}

	// 根据岗位名称和部门模糊查找
	public List findPositionLike(int treeviewId, String positionName)
			throws SystemException {
		return getHibernateTemplate().find(
				"from Position as p where p.treeview.id=? and p.positionName like '%"
						+ positionName + "%'", treeviewId);
	}

	// 根据部门查找岗位
	public List getPositionByDeptId(int deptId, int isLeader)
			throws SystemException {
		return getHibernateTemplate().find(
				"from Treeview as t where t.parentId=? and t.isLeader!=?",
				new Object[] { deptId, isLeader });
	}

	// 根据岗位ID查找岗位
	public Position getPositionById(int positionId) throws SystemException {
		return (Position) getHibernateTemplate()
				.get(Position.class, positionId);
	}

	// 更新用户---岗位
	public void updateUserPosition(UserPosition userPosition)
			throws SystemException {
		getHibernateTemplate().update(userPosition);
	}

	// 根据用户和岗位查找用户---岗位
	public UserPosition getUserPositionByUserAndPosition(User user)
			throws SystemException {
		try {
			return (UserPosition) getHibernateTemplate().find(
					"from UserPosition as up where up.user=? ", user).get(0);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// 根据ID查找用户
	public User getUserById(int userId) throws SystemException {
		return (User) getHibernateTemplate().get(User.class, userId);
	}

	// 更新用户
	public void updateUser(User user) throws SystemException {
		getHibernateTemplate().saveOrUpdate(user);
	}

	// 根据岗位查找用户
	public User getUserByPosition(Position position) throws SystemException {
		return (User) getHibernateTemplate().find(
				"select up.user from UserPosition as up where up.position=?",
				position).get(0);
	}

	// 更新节点
	public void updateTreeview(Treeview treeview) throws SystemException {
		getHibernateTemplate().update(treeview);
	}

	// 新增组织
	public void saveTreeview(Treeview treeview) throws SystemException {
		getHibernateTemplate().save(treeview);
	}

	// 删除节点
	public void deleteTreeview(Treeview treeview) throws SystemException {
		this.getHibernateTemplate().delete(treeview);
	}

	// 查找所有的部门
	public List<Treeview> getTreeViewToDept() throws SystemException {
		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session.createSQLQuery(
						"select * from treeview t where 1=1 and isLeader=0")
						.addEntity(Treeview.class);
				List<Treeview> list = query.list();
				return list;
			}

		});
	}

	// 根据子节点ID查找父节点
	public Treeview getParentByChild(int childNodeId) throws SystemException {
		try {
			return (Treeview) getHibernateTemplate().get(Treeview.class,
					childNodeId);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// 根据部门ID和岗位ID查找节点
	public Treeview findTreeviewByDeptIdAndPositionName(int deptId,
			String positionName) throws SystemException {
		try {
			return (Treeview) getHibernateTemplate().find(
					"from Treeview as t where t.parentId=? and t.name=?",
					new Object[] { deptId, positionName }).get(0);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	// 根据姓名查找用户
	public List getUserByFamilyName(String familyName) throws SystemException {
		try {
			return getHibernateTemplate().find(
					"from User as u where u.familyName like '" + familyName
							+ "'");
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	// 根据节点和姓名查找用户
	public List getUserByTreeviewAndName(Treeview treeview, String familyName)
			throws SystemException {
		try {
			return getHibernateTemplate().find(
					"from User as u where u.familyName like '" + familyName
							+ "' and u.treeview=?", treeview);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	// 根据部门ID和岗位名称查找唯一岗位
	public Position findPositionByNameAndDeptId(String positionName, int deptId)
			throws SystemException {
		try {
			return (Position) getHibernateTemplate()
					.find(
							"from Position as p where p.positionName=? and p.treeview.id=?",
							new Object[] { positionName, deptId }).get(0);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	// 删除岗位
	public void deleteUser(User user) throws SystemException {
		try {
			getHibernateTemplate().delete(user);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 更新岗位名称
	public void updatePosition(Position position) throws SystemException {
		try {
			getHibernateTemplate().update(position);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 根据父部门节点ID查找所有子部门节点
	 * 
	 * @param parentId
	 * @return List<Treeview>
	 * @throws SystemException
	 */
	public List<Treeview> getSubDeptByParentId(int parentId)
			throws SystemException {

		String hql = "From Treeview t Where t.parentId = " + parentId;
		// 只查找出部门 isLeader = 0 代表部门
		hql = hql + " and isLeader = 0";
		List<Treeview> treeviews = this.getHibernateTemplate().find(hql);
		return treeviews;
	}

	/**
	 * 根据父节点ID查找所有子节点ID
	 * 
	 * @param parentId
	 * @return
	 * @throws SystemException
	 */
	public List<Treeview> findChildIdsByParentId(int parentId) {
		String hql = "From Treeview t Where t.parentId = " + parentId;
		List treeviewIds = this.getHibernateTemplate().find(hql);
		return treeviewIds;
	}

	/**
	 * 查询出所有的用户 author:张明强 time:2009-01-20
	 * 
	 * @return
	 */
	public List<TreeviewVo> findAllUser() {
		List<TreeviewVo> tvList = new ArrayList<TreeviewVo>();
		String hql = "From User u Where u.deleteFlag != 1"; // 去掉删除的用户

		tvList = this.getHibernateTemplate().find(hql);
		return tvList;
	}
	
	/**
	 * 通过deptID获取treeview对象集合
	 * author:张明强
	 * time:2009-01-22
	 */
	public List<Treeview> findTreeViewByDeptID(int deptID) {
		List<Treeview> tvList = new ArrayList<Treeview>();
		String hql = "From Treeview tv Where tv.parentId = " + deptID;
		tvList = this.getHibernateTemplate().find(hql);
		return tvList;

	}

	/**
	 * 通过deptID和岗位名称获取treeview对象集合
	 * author:张明强
	 * time:2009-01-22
	 */
	public List<Treeview> findByDeptIDAndPositionName(int deptID,
			String positionName) {
		List<Treeview> tvList = new ArrayList<Treeview>();
		String hql = "From Treeview tv Where tv.parentId = '" + deptID
				+ "' AND tv.name = '" + positionName + "'";
		tvList = this.getHibernateTemplate().find(hql);
		return tvList;
	}

	
	/**
	 * 根据deptID,岗位以及姓名查询 treeview对象集合
	 * author:张明强
	 * time:2009-01-22
	 */
	public List<Treeview> findByAllPara(final int deptID,
			final String positionName, final String familyName)
			throws SystemException {
		logger.debug("开始果果");
		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery(
								"select t.* from treeview t,user u where u.treeview_Id = t.Id and u.familyName like '%"
										+ familyName
										+ "%' and t.ParentId = '"
										+ deptID
										+ "' and t.name = '"
										+ positionName
										+ "' and u.deleteFlag != 1 ")
						.addEntity(Treeview.class);
				List<Treeview> list = query.list();
				return list;
			}

		});
	}
	
	
	

	/**
	 * 根据deptID和姓名查找treeview集合
	 * author:张明强
	 * time:2009-01-22
	 */
	public List<Treeview> findByDeptIDAndFamilyName(final int deptID,final String familyName)
			throws SystemException {
		logger.debug("开始果果");
		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery(
								"select t.* from treeview t,user u where u.treeview_Id = t.Id and u.familyName like '%"
										+ familyName
										+ "%' and t.ParentId = '"
										+ deptID
										+ "' and u.deleteFlag != 1 ")
						.addEntity(Treeview.class);
				List<Treeview> list = query.list();
				return list;
			}

		});
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?