userdaoimpl.java

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

JAVA
491
字号
package com.yuanchung.sales.dao.user.impl;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.yuanchung.sales.constants.DataBaseTableName;
import com.yuanchung.sales.constants.HibernateEntityName;
import com.yuanchung.sales.dao.user.UserDAO;
import com.yuanchung.sales.exception.ApplicationException;
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.PositionRights;
import com.yuanchung.sales.model.admin.role.Role;
import com.yuanchung.sales.model.taskEvent.Event;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.model.userDefined.UserDefined;
import com.yuanchung.sales.model.userDefined.UserField;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {

	// 根据用户名和密码取得用户实体
	public User getUser(String userName, String password)
			throws DataAccessException {
		String[] paramList = new String[2];
		paramList[0] = userName;
		paramList[1] = password;
		List ret = null;
		Iterator it = null;
		try {
			ret = getHibernateTemplate().find(
					"from User u where u.userName=? and u.password=?",
					paramList);
			if (ret != null && ret.size() > 0) {
				it = ret.iterator();
				return (User) it.next();
			}
			return null;
		} catch (HibernateException e) {
			e.printStackTrace();
			throw e;
		}
	}

	// 查找所有的用户
	public List getAll() throws DataAccessException {
		return getHibernateTemplate().find("from User ");
	}

	// 保存用户
	public void saveUser(User user) throws DataAccessException {
		// 新添加的时候把用户的删除置为0;即可用用户 by 张明强
		int deleteFlag = 0;
		user.setDeleteFlag(deleteFlag);
		// 添加 结束
		getHibernateTemplate().save(user);
	}

	// 根据id查找用户
	public User getUserById(int id) throws DataAccessException {

		return (User) getHibernateTemplate().get(User.class, id);
	}

	public List<Treeview> getTreeViewToDept() throws DataAccessException {
		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;
			}

		});
	}

	public void deleteTreeview(final Integer id) throws DataAccessException {
		this.getHibernateTemplate().executeFind(new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery("delete from treeview where id =" + id);
				return null;
			}
		});
	}

	public void deleteUser(User user) throws DataAccessException {
		try {
			this.getHibernateTemplate().delete(user);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}

	}

	public void deleteUserContact(List list) throws DataAccessException {
		try {
			this.getHibernateTemplate().deleteAll(list);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}

	}

	public void deleteUserDefined(UserDefined userDefined)
			throws DataAccessException {
		try {
			this.getHibernateTemplate().delete(userDefined);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}

	}

	public void deleteUserField(List list) throws DataAccessException {
		try {
			this.getHibernateTemplate().deleteAll(list);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	public void deleteUserFilter(List list) throws DataAccessException {
		try {
			this.getHibernateTemplate().deleteAll(list);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}

	}

	public void deleteUserRights(List list) throws DataAccessException {
		try {
			this.getHibernateTemplate().deleteAll(list);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}

	}

	public void deleteUserRole(List list) throws DataAccessException {
		try {
			this.getHibernateTemplate().deleteAll(list);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}

	}

	public List getUserContact(User user) throws DataAccessException {
		return this.getHibernateTemplate().find(
				"from UserContact where user=?", user);
	}

	public List getUserDefined(User user) throws DataAccessException {
		return this.getHibernateTemplate().find(
				"from UserDefined as ud where user=? order by ud.inDate desc",
				user);
	}

	public List getUserField(UserDefined userDefined)
			throws DataAccessException {
		return this.getHibernateTemplate().find(
				"from UserField where userDefined=?", userDefined);
	}

	public List getUserFilter(UserDefined userDefined)
			throws DataAccessException {
		return this.getHibernateTemplate().find(
				"from UserFilter where userDefined=?", userDefined);
	}

	public List getUserRight(User user) throws DataAccessException {
		return this.getHibernateTemplate().find("from UserRights where user=?",
				user);
	}

	public List getUserRoleList(int userId) throws DataAccessException {
		return this.getHibernateTemplate().find("from UserRole where userId=?",
				userId);
	}

	/**
	 * 修改某个用户对象;
	 */
	public void editUser(User user) throws DataAccessException {
		try {
			getHibernateTemplate().update(user);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	// 根据父结点和姓名查找结点
	public Treeview getTreeviewByFamilyNameAndParentId(String name, int parentId)
			throws DataAccessException {
		try {
			return (Treeview) this.getHibernateTemplate().find(
					"from Treeview as tv where tv.name=? and tv.parentId=?",
					new Object[] { name, parentId }).get(0);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	// 根据岗位ID查找岗位
	public Position getPositionById(int positionId) throws DataAccessException {
		try {
			return (Position) getHibernateTemplate().get(Position.class,
					positionId);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

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

	// --------------------------------------更新后-------------------------------------------------//

	/**
	 * 保存用户自定义选项,抛出Hibernate DAO EXCEPTION
	 */
	public void saveUserDefined(UserDefined userDefined)
			throws DataAccessException {
		try {
			getHibernateTemplate().save(userDefined);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	/**
	 * 保存用户显示字段
	 * 
	 * @param userField
	 * @throws DataAccessException
	 */
	public void saveUserField(UserField userField) throws DataAccessException {
		try {
			getHibernateTemplate().save(userField);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	/**
	 * 查找最新用户
	 * 
	 * @throws DataAccessException
	 */
	public User getUserLastest() throws DataAccessException {
		try {
			return (User) getHibernateTemplate()
					.find(
							"from "
									+ HibernateEntityName.USER
									+ " as u where u.id >= (select max(uu.id) from User as uu )")
					.get(0);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	/**
	 * 
	 * @return 最新创建的用户自定义选项
	 * @throws DataAccessException
	 */
	public UserDefined getUserDefinedLastest() throws DataAccessException {
		try {
			return (UserDefined) getHibernateTemplate()
					.find(
							"from UserDefined as  ud where ud.id >= (select max(uu.id) from UserDefined as uu )")
					.get(0);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	/**
	 * 根据岗位ID获取用户信息
	 * 
	 * @param id
	 * @return
	 */
	public List<User> findByTreeviewId(int id) {
		logger.debug("这般这般的ID值是多少?" + id);
		List<User> users = new ArrayList();
		try {
			users = getHibernateTemplate().find(
					"from " + HibernateEntityName.USER
							+ " as u where u.treeview.id=" + id);
		} catch (RuntimeException e) {
			e.printStackTrace();
			throw e;
		}
		return users;
	}

	public List<User> findByTreeviewIds(String ids) {
		return getHibernateTemplate().find(
				"from " + HibernateEntityName.USER
						+ " as u where u.treeview.id in (" + ids + ")");
	}

	/**
	 * @function 删除用户
	 * @throws DataAccessException
	 */
	public void deleteUserPosttionList(List uPositionList)
			throws DataAccessException {
		try {
			this.getHibernateTemplate().deleteAll(uPositionList);
		} catch (Exception e) {
			e.printStackTrace();
			logger.error(e.getMessage());
			throw new SystemException(e.getMessage());
		}
	}

	/**
	 * 根据角色ID获取用户信息
	 * 
	 * @param int
	 * @return List<User>
	 */
	public List<User> findByRoleId(int roleId, String familyName) {
		String hql = " From " + HibernateEntityName.USER + " u";
		hql += " Where u.id in";
		hql += " (Select ur.userId From " + HibernateEntityName.USER_ROLE
				+ " ur Where 1=1";
		if (roleId != 0) {
			hql += " And ur.roleId=" + roleId + ")";
		}
		if (familyName != null && !familyName.equals("")) {
			hql += " And u.familyName like '%" + familyName + "%'";
		}
		List<User> users = this.getHibernateTemplate().find(hql);
		return users;
	}

	public List<User> findAll(String familyName) {
		String hql = "From " + HibernateEntityName.USER + " u where 1=1";
		if (familyName != null && !familyName.equals("")
				&& !familyName.equals("null")) {
			hql += " and u.familyName like '%" + familyName + "%'";
		}
		List<User> users = this.getHibernateTemplate().find(hql);
		return users;
	}

	/**
	 * 通过主键获取对象 author:张明强 time:2009-01-18
	 */
	public User findById(int userId) {
		try {
			User user = (User) getHibernateTemplate().get(
					"com.yuanchung.sales.model.user.User", userId);
			return user;
		} catch (RuntimeException re) {
			throw re;
		}
	}

	/**
	 * 函数功能 初始化用户密码; time: 2008-12-26; author:张明强
	 */
	public void updatePassword(final int id, final String pw)
			throws DataAccessException {

		this.getHibernateTemplate().execute(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery("update user set password='" + pw
								+ "' where id=" + id);
				query.executeUpdate();
				return null;
			}

		});
	}

	/**
	 * 更新用户表的deleteFlag,如果是删除用户,则把deleteFlag置为1 author:张明强 time:2009-01-16
	 */
	public void updateDeleteFlag(User user) throws DataAccessException {
		try {
			this.getHibernateTemplate().merge(user);
		} catch (Exception e) {
			e.printStackTrace();
			throw new SystemException(e.getMessage());
		}
	}

	/**
	 * 根据岗位ID和姓名获取用户信息
	 * 
	 * @param id
	 * @return
	 */
	public List<User> findByTreeviewIdAndFamilyName(int id, String familyName) {
		List<User> users = new ArrayList();
		try {
			users = getHibernateTemplate()
					.find(
							"from " + HibernateEntityName.USER
									+ " as u where u.treeview.id='" + id
									+ "' and u.familyName like '%" + familyName
									+ "%' ");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return users;
	}

	/**
	 * 函数功能 通过userID获取部门; int userID 用户主键 return 部门名称 time: 2008-12-26;
	 * author:张明强
	 */

	public String getDepartmentName(final int userID) throws SystemException {

		String departmentName = "";
		List l = null;

		l = this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				// TODO Auto-generated method stub
				Query query = session
						.createSQLQuery("select t.ParentId from treeview t, user u where u.id = '"
								+ userID + "' and t.Id = u.treeview_Id");
				return query.list();

			}
		});
		String temp = l.get(0).toString();
		final int parentID = Integer.parseInt(temp);

		List list = null;
		list = this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				// TODO Auto-generated method stub
				Query query = session
						.createSQLQuery("select Name from treeview where Id = '"
								+ parentID + "'");
				return query.list();

			}
		});
		departmentName = list.get(0).toString();
		return departmentName;
	}

}

⌨️ 快捷键说明

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