?? userdaoimpl.java
字號:
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 {
// 根據(jù)用戶名和密碼取得用戶實體
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);
// 添加 結(jié)束
getHibernateTemplate().save(user);
}
// 根據(jù)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());
}
}
// 根據(jù)父結(jié)點和姓名查找結(jié)點
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());
}
}
// 根據(jù)崗位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());
}
}
// 根據(jù)主鍵查找結(jié)點
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 最新創(chuàng)建的用戶自定義選項
* @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());
}
}
/**
* 根據(jù)崗位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());
}
}
/**
* 根據(jù)角色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;
}
}
/**
* 函數(shù)功能 初始化用戶密碼; 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());
}
}
/**
* 根據(jù)崗位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;
}
/**
* 函數(shù)功能 通過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;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -